From 8d37b723ca7e955c33f4a44569f0c132af16ac14 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sun, 22 Oct 2017 10:07:36 +0200 Subject: [PATCH] Upadte vendored dependencies --- Gopkg.lock | 46 +- cmd/restic/excludes | 31 + vendor/cloud.google.com/go/CONTRIBUTING.md | 6 + vendor/cloud.google.com/go/README.md | 53 +- vendor/cloud.google.com/go/bigquery/doc.go | 11 +- .../go/errorreporting/error_logging_test.go | 215 - .../go/errorreporting/errors.go | 448 +- .../go/errorreporting/errors_test.go | 171 +- .../go/errorreporting/stack_test.go | 66 +- .../go/errors/error_logging_test.go | 215 - vendor/cloud.google.com/go/errors/errors.go | 458 - .../cloud.google.com/go/errors/errors_test.go | 212 - .../cloud.google.com/go/errors/stack_test.go | 118 - .../go/firestore/apiv1beta1/doc.go | 44 + .../firestore/apiv1beta1/firestore_client.go | 544 + .../firestore_client_example_test.go | 329 + .../go/firestore/apiv1beta1/mock_test.go | 1154 ++ .../cloud.google.com/go/firestore/client.go | 245 + .../go/firestore/client_test.go | 221 + .../cloud.google.com/go/firestore/collref.go | 124 + .../go/firestore/collref_test.go | 97 + vendor/cloud.google.com/go/firestore/doc.go | 220 + .../cloud.google.com/go/firestore/docref.go | 599 + .../go/firestore/docref_test.go | 733 + .../cloud.google.com/go/firestore/document.go | 266 + .../go/firestore/document_test.go | 238 + .../go/firestore/examples_test.go | 552 + .../go/firestore/fieldpath.go | 222 + .../go/firestore/fieldpath_test.go | 152 + .../go/firestore/from_value.go | 400 + .../go/firestore/from_value_test.go | 541 + .../go/firestore/integration_test.go | 954 ++ .../go/firestore/internal/Makefile | 10 + .../go/firestore/internal/doc-snippets.go | 164 + .../go/firestore/internal/doc.template | 148 + .../go/firestore/internal/snipdoc.awk | 116 + .../go/firestore/mock_test.go | 175 + .../cloud.google.com/go/firestore/options.go | 182 + .../go/firestore/options_test.go | 155 + vendor/cloud.google.com/go/firestore/query.go | 447 + .../go/firestore/query_test.go | 381 + .../go/firestore/testdata/fieldpaths.json | 23 + .../cloud.google.com/go/firestore/to_value.go | 256 + .../go/firestore/to_value_test.go | 219 + .../go/firestore/transaction.go | 279 + .../go/firestore/transaction_test.go | 346 + .../go/firestore/util_test.go | 147 + .../go/firestore/writebatch.go | 113 + .../go/firestore/writebatch_test.go | 145 + .../go/internal/testutil/context.go | 24 +- vendor/cloud.google.com/go/old-news.md | 35 + .../go/profiler/busybench/busybench.go | 79 + .../go/profiler/integration-test.sh | 52 + .../go/profiler/integration_test.go | 690 + .../go/profiler/profiler_test.go | 44 +- .../Azure/azure-sdk-for-go/.travis.yml | 1 + .../Azure/azure-sdk-for-go/CHANGELOG.md | 11 + .../Azure/azure-sdk-for-go/README.md | 27 +- .../arm/containerregistry/models.go | 20 +- .../arm/containerregistry/version.go | 4 +- .../arm/trafficmanager/client.go | 2 +- .../arm/trafficmanager/endpoints.go | 8 +- .../trafficmanager/geographichierarchies.go | 2 +- .../arm/trafficmanager/models.go | 14 + .../arm/trafficmanager/profiles.go | 14 +- .../arm/trafficmanager/usermetricskeys.go | 222 + .../arm/trafficmanager/version.go | 4 +- .../azure-sdk-for-go/management/version.go | 2 +- .../Azure/azure-sdk-for-go/storage/blob.go | 2 +- .../azure-sdk-for-go/storage/blob_test.go | 1 + .../storage/container_test.go | 13 +- .../github.com/Azure/go-autorest/.travis.yml | 2 + .../github.com/Azure/go-autorest/CHANGELOG.md | 58 + .../go-autorest/autorest/adal/cmd/adal.go | 14 + .../Azure/go-autorest/autorest/adal/config.go | 14 + .../go-autorest/autorest/adal/config_test.go | 14 + .../go-autorest/autorest/adal/devicetoken.go | 14 + .../autorest/adal/devicetoken_test.go | 14 + .../Azure/go-autorest/autorest/adal/msi.go | 14 + .../go-autorest/autorest/adal/msi_windows.go | 14 + .../go-autorest/autorest/adal/persist.go | 14 + .../go-autorest/autorest/adal/persist_test.go | 14 + .../Azure/go-autorest/autorest/adal/sender.go | 14 + .../Azure/go-autorest/autorest/adal/token.go | 14 + .../go-autorest/autorest/adal/token_test.go | 14 + .../go-autorest/autorest/authorization.go | 14 + .../autorest/authorization_test.go | 14 + .../Azure/go-autorest/autorest/autorest.go | 14 + .../go-autorest/autorest/autorest_test.go | 14 + .../Azure/go-autorest/autorest/azure/async.go | 14 + .../go-autorest/autorest/azure/async_test.go | 14 + .../autorest/azure/auth/authfile.go | 143 + .../autorest/azure/auth/authfile_test.go | 111 + .../Azure/go-autorest/autorest/azure/azure.go | 22 +- .../go-autorest/autorest/azure/azure_test.go | 82 + .../go-autorest/autorest/azure/cli/profile.go | 14 + .../go-autorest/autorest/azure/cli/token.go | 14 + .../autorest/azure/environments.go | 14 + .../autorest/azure/environments_test.go | 14 + .../autorest/azure/example/main.go | 14 + .../Azure/go-autorest/autorest/azure/rp.go | 202 + .../go-autorest/autorest/azure/rp_test.go | 81 + .../Azure/go-autorest/autorest/client.go | 25 +- .../Azure/go-autorest/autorest/client_test.go | 60 + .../Azure/go-autorest/autorest/date/date.go | 14 + .../go-autorest/autorest/date/date_test.go | 14 + .../Azure/go-autorest/autorest/date/time.go | 14 + .../go-autorest/autorest/date/time_test.go | 14 + .../go-autorest/autorest/date/timerfc1123.go | 14 + .../autorest/date/timerfc1123_test.go | 14 + .../go-autorest/autorest/date/unixtime.go | 14 + .../autorest/date/unixtime_test.go | 14 + .../go-autorest/autorest/date/utility.go | 14 + .../Azure/go-autorest/autorest/error.go | 14 + .../Azure/go-autorest/autorest/error_test.go | 14 + .../go-autorest/autorest/mocks/helpers.go | 14 + .../autorest/mocks/helpers_test.go | 1 - .../Azure/go-autorest/autorest/mocks/mocks.go | 14 + .../go-autorest/autorest/mocks/mocks_test.go | 1 - .../Azure/go-autorest/autorest/preparer.go | 14 + .../go-autorest/autorest/preparer_test.go | 14 + .../Azure/go-autorest/autorest/responder.go | 14 + .../go-autorest/autorest/responder_test.go | 14 + .../go-autorest/autorest/retriablerequest.go | 14 + .../autorest/retriablerequest_1.7.go | 36 +- .../autorest/retriablerequest_1.8.go | 42 +- .../Azure/go-autorest/autorest/sender.go | 14 + .../Azure/go-autorest/autorest/sender_test.go | 14 + .../Azure/go-autorest/autorest/to/convert.go | 14 + .../go-autorest/autorest/to/convert_test.go | 14 + .../Azure/go-autorest/autorest/utility.go | 14 + .../go-autorest/autorest/utility_test.go | 14 + .../Azure/go-autorest/autorest/utils/auth.go | 14 + .../go-autorest/autorest/utils/commit.go | 14 + .../autorest/validation/validation.go | 21 +- .../autorest/validation/validation_test.go | 14 + .../Azure/go-autorest/autorest/version.go | 14 + .../go-autorest/testdata/credsutf16be.json | Bin 0 -> 1094 bytes .../go-autorest/testdata/credsutf16le.json | Bin 0 -> 1094 bytes .../Azure/go-autorest/testdata/credsutf8.json | 12 + .../github.com/dgrijalva/jwt-go/.travis.yml | 5 + .../dgrijalva/jwt-go/MIGRATION_GUIDE.md | 5 +- vendor/github.com/dgrijalva/jwt-go/README.md | 10 +- .../dgrijalva/jwt-go/VERSION_HISTORY.md | 6 + .../dgrijalva/jwt-go/cmd/jwt/README.md | 4 +- .../dgrijalva/jwt-go/cmd/jwt/app.go | 39 +- .../dgrijalva/jwt-go/cmd/jwt/args.go | 23 + vendor/github.com/dgrijalva/jwt-go/errors.go | 6 +- .../dgrijalva/jwt-go/hmac_example_test.go | 2 + vendor/github.com/dgrijalva/jwt-go/parser.go | 21 +- .../dgrijalva/jwt-go/parser_test.go | 11 +- .../github.com/dustin/go-humanize/.gitignore | 6 - .../go-ini/ini/.github/ISSUE_TEMPLATE.md | 5 + .../ini/.github/PULL_REQUEST_TEMPLATE.md | 3 + vendor/github.com/go-ini/ini/.gitignore | 1 + vendor/github.com/go-ini/ini/.travis.yml | 3 +- vendor/github.com/go-ini/ini/LICENSE | 2 +- vendor/github.com/go-ini/ini/README.md | 29 +- vendor/github.com/go-ini/ini/README_ZH.md | 29 +- vendor/github.com/go-ini/ini/ini.go | 8 +- vendor/github.com/go-ini/ini/ini_test.go | 29 +- vendor/github.com/go-ini/ini/key.go | 37 +- vendor/github.com/go-ini/ini/key_test.go | 12 +- vendor/github.com/go-ini/ini/parser.go | 19 +- vendor/github.com/go-ini/ini/section_test.go | 6 +- vendor/github.com/go-ini/ini/struct.go | 14 +- vendor/github.com/go-ini/ini/struct_test.go | 23 +- vendor/github.com/golang/protobuf/README.md | 1 + vendor/github.com/ncw/swift/largeobjects.go | 9 +- vendor/github.com/ncw/swift/swift.go | 2 + vendor/github.com/ncw/swift/timeout_reader.go | 4 +- vendor/github.com/pkg/sftp/sftp.go | 2 +- vendor/github.com/restic/chunker/.travis.yml | 5 +- vendor/github.com/restic/chunker/chunker.go | 45 +- .../github.com/restic/chunker/chunker_test.go | 54 +- vendor/github.com/spf13/cobra/README.md | 427 +- .../spf13/cobra/bash_completions.go | 2 +- vendor/github.com/spf13/cobra/cobra/README.md | 94 + .../spf13/cobra/cobra/cmd/licenses.go | 2 +- vendor/github.com/spf13/cobra/cobra_test.go | 74 +- vendor/github.com/spf13/cobra/command.go | 175 +- vendor/github.com/spf13/cobra/command_test.go | 177 + .../github.com/spf13/cobra/doc/rest_docs.go | 185 + .../github.com/spf13/cobra/doc/rest_docs.md | 114 + .../spf13/cobra/doc/rest_docs_test.go | 124 + vendor/golang.org/x/crypto/acme/acme.go | 8 +- vendor/golang.org/x/crypto/acme/acme_test.go | 6 + .../x/crypto/acme/autocert/autocert.go | 4 +- vendor/golang.org/x/crypto/ocsp/ocsp.go | 24 +- vendor/golang.org/x/crypto/ssh/client.go | 21 + vendor/golang.org/x/crypto/ssh/client_auth.go | 30 +- vendor/golang.org/x/crypto/ssh/client_test.go | 37 + vendor/golang.org/x/crypto/ssh/handshake.go | 6 + vendor/golang.org/x/crypto/ssh/messages.go | 14 +- vendor/golang.org/x/crypto/ssh/server.go | 17 + vendor/golang.org/x/net/http2/server.go | 42 +- vendor/golang.org/x/net/http2/server_test.go | 1 + vendor/golang.org/x/net/http2/transport.go | 12 +- .../golang.org/x/net/http2/transport_test.go | 28 + vendor/golang.org/x/net/http2/write.go | 7 +- .../x/net/internal/socket/iovec_32bit.go | 6 +- .../x/net/internal/socket/iovec_64bit.go | 6 +- .../internal/socket/iovec_solaris_64bit.go | 6 +- .../x/net/internal/socket/msghdr_bsdvar.go | 6 +- .../net/internal/socket/msghdr_linux_32bit.go | 6 +- .../net/internal/socket/msghdr_linux_64bit.go | 6 +- .../x/net/internal/socket/msghdr_openbsd.go | 6 +- .../internal/socket/msghdr_solaris_64bit.go | 6 +- .../net/internal/socket/socket_go1_9_test.go | 129 +- .../x/net/internal/socket/sys_posix.go | 6 +- vendor/golang.org/x/net/proxy/per_host.go | 2 +- vendor/golang.org/x/net/proxy/socks5.go | 4 +- vendor/golang.org/x/sys/unix/mkall.sh | 3 - vendor/golang.org/x/sys/unix/mkerrors.sh | 1 + vendor/golang.org/x/sys/unix/syscall_linux.go | 1 + .../x/sys/unix/syscall_linux_arm64.go | 7 +- .../x/sys/unix/syscall_linux_mips64x.go | 7 +- .../x/sys/unix/zerrors_freebsd_386.go | 43 + .../x/sys/unix/zerrors_freebsd_amd64.go | 43 + .../x/sys/unix/zerrors_freebsd_arm.go | 43 + .../x/sys/unix/zsyscall_linux_386.go | 11 + .../x/sys/unix/zsyscall_linux_amd64.go | 11 + .../x/sys/unix/zsyscall_linux_arm.go | 11 + .../x/sys/unix/zsyscall_linux_arm64.go | 22 +- .../x/sys/unix/zsyscall_linux_mips.go | 11 + .../x/sys/unix/zsyscall_linux_mips64.go | 22 +- .../x/sys/unix/zsyscall_linux_mips64le.go | 22 +- .../x/sys/unix/zsyscall_linux_mipsle.go | 11 + .../x/sys/unix/zsyscall_linux_ppc64.go | 11 + .../x/sys/unix/zsyscall_linux_ppc64le.go | 11 + .../x/sys/unix/zsyscall_linux_s390x.go | 11 + ...sctl_openbsd.go => zsysctl_openbsd_386.go} | 0 .../x/sys/unix/zsysctl_openbsd_amd64.go | 270 + .../x/sys/unix/zsysctl_openbsd_arm.go | 270 + .../golang.org/x/sys/windows/syscall_test.go | 20 + .../x/sys/windows/syscall_windows.go | 15 + .../v1/acceleratedmobilepageurl-api.json | 142 +- .../v2beta1/adexchangebuyer2-api.json | 6059 +++++---- .../v2beta1/adexchangebuyer2-gen.go | 4689 ++++++- .../v1/adexperiencereport-api.json | 266 +- .../api/admin/directory/v1/admin-api.json | 127 +- .../api/admin/directory/v1/admin-gen.go | 408 +- .../v4/analyticsreporting-api.json | 1350 +- .../v1/androiddeviceprovisioning-api.json | 882 +- .../v1/androidenterprise-api.json | 42 +- .../v1/androidenterprise-gen.go | 74 +- .../v1/androidmanagement-api.json | 12 +- .../v1/androidmanagement-gen.go | 41 +- vendor/google.golang.org/api/api-list.json | 50 +- .../api/appengine/v1/appengine-api.json | 3404 ++--- .../api/appengine/v1alpha/appengine-api.json | 1088 +- .../api/appengine/v1beta/appengine-api.json | 3700 +++--- .../api/appengine/v1beta4/appengine-api.json | 2606 ++-- .../api/appengine/v1beta5/appengine-api.json | 2810 ++-- .../api/bigquery/v2/bigquery-api.json | 26 +- .../api/bigquery/v2/bigquery-gen.go | 56 +- .../v1/bigquerydatatransfer-api.json | 2534 ++-- .../v1/bigquerydatatransfer-gen.go | 109 +- .../api/calendar/v3/calendar-api.json | 19 +- .../api/calendar/v3/calendar-gen.go | 41 + .../api/classroom/v1/classroom-api.json | 5736 ++++---- .../api/classroom/v1/classroom-gen.go | 28 +- .../api/cloudbuild/v1/cloudbuild-api.json | 1608 +-- .../clouddebugger/v2/clouddebugger-api.json | 1582 +-- .../v1beta1/clouderrorreporting-api.json | 1092 +- .../cloudfunctions/v1/cloudfunctions-api.json | 820 +- .../cloudfunctions/v1/cloudfunctions-gen.go | 1784 +++ .../v1beta2/cloudfunctions-api.json | 1002 +- .../v1beta2/cloudfunctions-gen.go | 440 + .../api/cloudiot/v1/cloudiot-api.json | 1143 +- .../api/cloudiot/v1beta1/cloudiot-api.json | 1595 +-- .../api/cloudkms/v1/cloudkms-api.json | 2184 +-- .../v1/cloudresourcemanager-api.json | 2608 ++-- .../v1beta1/cloudresourcemanager-api.json | 1496 +-- .../v2beta1/cloudresourcemanager-api.json | 1476 +-- .../cloudtasks/v2beta2/cloudtasks-api.json | 2988 +++-- .../api/cloudtasks/v2beta2/cloudtasks-gen.go | 408 +- .../api/cloudtrace/v1/cloudtrace-api.json | 540 +- .../api/cloudtrace/v2/cloudtrace-api.json | 667 +- .../api/cloudtrace/v2/cloudtrace-gen.go | 130 +- .../api/compute/v0.alpha/compute-api.json | 1784 ++- .../api/compute/v0.alpha/compute-gen.go | 2006 ++- .../api/compute/v0.beta/compute-api.json | 1249 +- .../api/compute/v0.beta/compute-gen.go | 982 +- .../api/compute/v1/compute-api.json | 7030 +++++++++- .../api/compute/v1/compute-gen.go | 11021 +++++++++++++++- .../api/container/v1/container-api.json | 3042 ++--- .../api/container/v1/container-gen.go | 11 +- .../api/container/v1beta1/container-api.json | 4973 +++---- .../api/container/v1beta1/container-gen.go | 51 +- .../api/content/v2/content-api.json | 14 +- .../api/content/v2/content-gen.go | 32 +- .../api/dataflow/v1b3/dataflow-api.json | 4484 +++---- .../api/dataflow/v1b3/dataflow-gen.go | 4 - .../api/dataproc/v1/dataproc-api.json | 2792 ++-- .../api/dataproc/v1beta2/dataproc-api.json | 3439 ++--- .../api/dataproc/v1beta2/dataproc-gen.go | 202 +- .../api/datastore/v1/datastore-api.json | 2104 +-- .../api/datastore/v1/datastore-gen.go | 178 + .../api/datastore/v1beta1/datastore-api.json | 392 +- .../api/datastore/v1beta3/datastore-api.json | 1896 +-- .../api/datastore/v1beta3/datastore-gen.go | 178 + .../api/dlp/v2beta1/dlp-api.json | 2069 +-- .../api/dlp/v2beta1/dlp-gen.go | 151 +- .../v1/firebasedynamiclinks-api.json | 767 +- .../v1/firebasedynamiclinks-gen.go | 36 + .../v1/firebaseremoteconfig-api.json | 414 +- .../v1/firebaseremoteconfig-gen.go | 32 +- .../firebaserules/v1/firebaserules-api.json | 1559 +-- .../api/firebaserules/v1/firebaserules-gen.go | 174 + .../api/firestore/v1beta1/firestore-api.json | 1967 +++ .../api/firestore/v1beta1/firestore-gen.go | 5362 ++++++++ .../api/genomics/v1/genomics-api.json | 4234 +++--- .../api/genomics/v1alpha2/genomics-api.json | 850 +- .../google.golang.org/api/iam/v1/iam-api.json | 2632 ++-- .../v3/identitytoolkit-api.json | 82 +- .../identitytoolkit/v3/identitytoolkit-gen.go | 205 + .../api/kgsearch/v1/kgsearch-api.json | 152 +- .../api/language/v1/language-api.json | 1776 +-- .../api/language/v1beta1/language-api.json | 908 +- .../api/language/v1beta2/language-api.json | 1712 +-- .../api/logging/v2/logging-api.json | 3764 +++--- .../api/logging/v2/logging-gen.go | 15 +- .../api/logging/v2beta1/logging-api.json | 1486 +-- .../api/logging/v2beta1/logging-gen.go | 15 +- .../manufacturers/v1/manufacturers-api.json | 497 +- .../api/manufacturers/v1/manufacturers-gen.go | 16 +- .../google.golang.org/api/ml/v1/ml-api.json | 1916 +-- vendor/google.golang.org/api/ml/v1/ml-gen.go | 346 + .../api/monitoring/v3/monitoring-api.json | 2875 ++-- .../api/monitoring/v3/monitoring-gen.go | 1407 +- .../api/oslogin/v1alpha/oslogin-api.json | 500 +- .../api/oslogin/v1beta/oslogin-api.json | 498 +- .../api/partners/v2/partners-api.json | 3814 +++--- .../api/partners/v2/partners-gen.go | 8 + .../api/people/v1/people-api.json | 2728 ++-- .../v1/playmoviespartner-api.json | 776 +- .../v1beta1/proximitybeacon-api.json | 1414 +- .../v1beta1/proximitybeacon-gen.go | 68 +- .../api/pubsub/v1/pubsub-api.json | 1400 +- .../api/pubsub/v1beta1a/pubsub-api.json | 654 +- .../api/pubsub/v1beta2/pubsub-api.json | 1016 +- .../runtimeconfig/v1/runtimeconfig-api.json | 322 +- .../v1beta1/runtimeconfig-api.json | 1254 +- .../api/safebrowsing/v4/safebrowsing-api.json | 1590 +-- .../api/script/v1/script-api.json | 402 +- .../searchconsole/v1/searchconsole-api.json | 232 +- .../servicecontrol/v1/servicecontrol-api.json | 1281 +- .../servicecontrol/v1/servicecontrol-gen.go | 77 +- .../v1/servicemanagement-api.json | 5678 ++++---- .../v1/servicemanagement-gen.go | 70 +- .../api/serviceuser/v1/serviceuser-api.json | 2252 ++-- .../api/serviceuser/v1/serviceuser-gen.go | 70 +- .../api/sheets/v4/sheets-api.json | 6083 ++++----- .../api/sheets/v4/sheets-gen.go | 143 +- .../api/slides/v1/slides-api.json | 2881 ++-- .../api/slides/v1/slides-gen.go | 619 +- .../api/sourcerepo/v1/sourcerepo-api.json | 1074 +- .../api/sourcerepo/v1/sourcerepo-gen.go | 2 +- .../api/spanner/v1/spanner-api.json | 3328 ++--- .../api/speech/v1/speech-api.json | 579 +- .../api/speech/v1/speech-gen.go | 12 +- .../api/speech/v1beta1/speech-api.json | 716 +- .../api/sqladmin/v1beta4/sqladmin-api.json | 117 +- .../api/sqladmin/v1beta4/sqladmin-gen.go | 297 + .../api/storage/v1/storage-api.json | 94 +- .../api/storage/v1/storage-gen.go | 180 +- .../v1/storagetransfer-api.json | 1330 +- .../v1/streetviewpublish-api.json | 1139 +- .../v1/streetviewpublish-gen.go | 71 + .../api/testing/v1/testing-api.json | 1476 +-- .../api/testing/v1/testing-gen.go | 23 +- .../toolresults/v1beta3/toolresults-api.json | 99 +- .../toolresults/v1beta3/toolresults-gen.go | 103 + .../api/translate/v2/translate-api.json | 370 +- .../api/vault/v1/vault-api.json | 1118 +- .../v1beta1/videointelligence-api.json | 794 +- .../api/vision/v1/vision-api.json | 1608 +-- .../api/vision/v1/vision-gen.go | 8 +- .../v1/youtubereporting-api.json | 508 +- 380 files changed, 136541 insertions(+), 78532 deletions(-) create mode 100644 cmd/restic/excludes delete mode 100644 vendor/cloud.google.com/go/errorreporting/error_logging_test.go delete mode 100644 vendor/cloud.google.com/go/errors/error_logging_test.go delete mode 100644 vendor/cloud.google.com/go/errors/errors.go delete mode 100644 vendor/cloud.google.com/go/errors/errors_test.go delete mode 100644 vendor/cloud.google.com/go/errors/stack_test.go create mode 100644 vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go create mode 100644 vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go create mode 100644 vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client_example_test.go create mode 100644 vendor/cloud.google.com/go/firestore/apiv1beta1/mock_test.go create mode 100644 vendor/cloud.google.com/go/firestore/client.go create mode 100644 vendor/cloud.google.com/go/firestore/client_test.go create mode 100644 vendor/cloud.google.com/go/firestore/collref.go create mode 100644 vendor/cloud.google.com/go/firestore/collref_test.go create mode 100644 vendor/cloud.google.com/go/firestore/doc.go create mode 100644 vendor/cloud.google.com/go/firestore/docref.go create mode 100644 vendor/cloud.google.com/go/firestore/docref_test.go create mode 100644 vendor/cloud.google.com/go/firestore/document.go create mode 100644 vendor/cloud.google.com/go/firestore/document_test.go create mode 100644 vendor/cloud.google.com/go/firestore/examples_test.go create mode 100644 vendor/cloud.google.com/go/firestore/fieldpath.go create mode 100644 vendor/cloud.google.com/go/firestore/fieldpath_test.go create mode 100644 vendor/cloud.google.com/go/firestore/from_value.go create mode 100644 vendor/cloud.google.com/go/firestore/from_value_test.go create mode 100644 vendor/cloud.google.com/go/firestore/integration_test.go create mode 100644 vendor/cloud.google.com/go/firestore/internal/Makefile create mode 100644 vendor/cloud.google.com/go/firestore/internal/doc-snippets.go create mode 100644 vendor/cloud.google.com/go/firestore/internal/doc.template create mode 100644 vendor/cloud.google.com/go/firestore/internal/snipdoc.awk create mode 100644 vendor/cloud.google.com/go/firestore/mock_test.go create mode 100644 vendor/cloud.google.com/go/firestore/options.go create mode 100644 vendor/cloud.google.com/go/firestore/options_test.go create mode 100644 vendor/cloud.google.com/go/firestore/query.go create mode 100644 vendor/cloud.google.com/go/firestore/query_test.go create mode 100644 vendor/cloud.google.com/go/firestore/testdata/fieldpaths.json create mode 100644 vendor/cloud.google.com/go/firestore/to_value.go create mode 100644 vendor/cloud.google.com/go/firestore/to_value_test.go create mode 100644 vendor/cloud.google.com/go/firestore/transaction.go create mode 100644 vendor/cloud.google.com/go/firestore/transaction_test.go create mode 100644 vendor/cloud.google.com/go/firestore/util_test.go create mode 100644 vendor/cloud.google.com/go/firestore/writebatch.go create mode 100644 vendor/cloud.google.com/go/firestore/writebatch_test.go create mode 100644 vendor/cloud.google.com/go/profiler/busybench/busybench.go create mode 100644 vendor/cloud.google.com/go/profiler/integration-test.sh create mode 100644 vendor/cloud.google.com/go/profiler/integration_test.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/usermetricskeys.go create mode 100644 vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile.go create mode 100644 vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile_test.go create mode 100644 vendor/github.com/Azure/go-autorest/autorest/azure/rp.go create mode 100644 vendor/github.com/Azure/go-autorest/autorest/azure/rp_test.go delete mode 100644 vendor/github.com/Azure/go-autorest/autorest/mocks/helpers_test.go delete mode 100644 vendor/github.com/Azure/go-autorest/autorest/mocks/mocks_test.go create mode 100644 vendor/github.com/Azure/go-autorest/testdata/credsutf16be.json create mode 100644 vendor/github.com/Azure/go-autorest/testdata/credsutf16le.json create mode 100644 vendor/github.com/Azure/go-autorest/testdata/credsutf8.json create mode 100644 vendor/github.com/dgrijalva/jwt-go/cmd/jwt/args.go delete mode 100644 vendor/github.com/dustin/go-humanize/.gitignore create mode 100644 vendor/github.com/go-ini/ini/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/github.com/go-ini/ini/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 vendor/github.com/spf13/cobra/cobra/README.md create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs.go create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs.md create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs_test.go rename vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_386.go} (100%) create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go create mode 100644 vendor/google.golang.org/api/firestore/v1beta1/firestore-api.json create mode 100644 vendor/google.golang.org/api/firestore/v1beta1/firestore-gen.go diff --git a/Gopkg.lock b/Gopkg.lock index b1f76dd31..e17fc5f6d 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -10,20 +10,20 @@ [[projects]] name = "cloud.google.com/go" packages = ["compute/metadata"] - revision = "f6de2c509ed9d2af648c3c147207eaaf97149aed" - version = "v0.14.0" + revision = "eaddaf6dd7ee35fd3c2420c8d27478db176b0485" + version = "v0.15.0" [[projects]] name = "github.com/Azure/azure-sdk-for-go" packages = ["storage"] - revision = "2592daf71ab6b95dcfc7f7437ecc1afb9ddb7360" - version = "v11.0.0-beta" + revision = "509eea43b93cec2f3f17acbe2578ef58703923f8" + version = "v11.1.1-beta" [[projects]] name = "github.com/Azure/go-autorest" packages = ["autorest","autorest/adal","autorest/azure","autorest/date"] - revision = "f6be1abbb5abd0517522f850dd785990d373da7e" - version = "v8.4.0" + revision = "7aa5b8a6f18b5c15910c767ab005fc4585221177" + version = "v9.1.1" [[projects]] name = "github.com/cenkalti/backoff" @@ -40,14 +40,14 @@ [[projects]] name = "github.com/dgrijalva/jwt-go" packages = ["."] - revision = "d2709f9f1f31ebcda9651b03077758c1f3a0018c" - version = "v3.0.0" + revision = "dbeaa9332f19a944acb5736b4456cfcc02140e29" + version = "v3.1.0" [[projects]] branch = "master" name = "github.com/dustin/go-humanize" packages = ["."] - revision = "79e699ccd02f240a1f1fbbdcee7e64c1c12e41aa" + revision = "77ed807830b4df581417e7f89eb81d4872832b72" [[projects]] name = "github.com/elithrar/simple-scrypt" @@ -58,14 +58,14 @@ [[projects]] name = "github.com/go-ini/ini" packages = ["."] - revision = "20b96f641a5ea98f2f8619ff4f3e061cff4833bd" - version = "v1.28.2" + revision = "5b3e00af70a9484542169a976dcab8d03e601a17" + version = "v1.30.0" [[projects]] branch = "master" name = "github.com/golang/protobuf" packages = ["proto"] - revision = "130e6b02ab059e7b717a096f397c5b60111cae74" + revision = "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" [[projects]] name = "github.com/inconshreveable/mousetrap" @@ -107,7 +107,7 @@ branch = "master" name = "github.com/ncw/swift" packages = ["."] - revision = "9d3f812e23d270d1c66a9a01e20af1005061cdc4" + revision = "c95c6e5c2d1a3d37fc44c8c6dc9e231c7500667d" [[projects]] name = "github.com/pkg/errors" @@ -122,10 +122,10 @@ version = "v1.2.1" [[projects]] - branch = "master" name = "github.com/pkg/sftp" packages = ["."] - revision = "7c1f7a370726a2457b33b29baefc2402b4965c65" + revision = "98203f5a8333288eb3163b7c667d4260fe1333e9" + version = "1.0.0" [[projects]] name = "github.com/pkg/xattr" @@ -136,8 +136,8 @@ [[projects]] name = "github.com/restic/chunker" packages = ["."] - revision = "bb2ecf9a98e35a0b336ffc23fc515fb6e7961577" - version = "v0.1.0" + revision = "db83917be3b88cc307464b7d8a221c173e34a0db" + version = "v0.2.0" [[projects]] name = "github.com/russross/blackfriday" @@ -161,7 +161,7 @@ branch = "master" name = "github.com/spf13/cobra" packages = [".","doc"] - revision = "e5f66de850af3302fbe378c8acded2b0fa55472c" + revision = "7b2c5ac9fc04fc5efafb60700713d4fa609b777b" [[projects]] name = "github.com/spf13/pflag" @@ -173,13 +173,13 @@ branch = "master" name = "golang.org/x/crypto" packages = ["curve25519","ed25519","ed25519/internal/edwards25519","pbkdf2","poly1305","scrypt","ssh","ssh/terminal"] - revision = "9419663f5a44be8b34ca85f08abc5fe1be11f8a3" + revision = "edd5e9b0879d13ee6970a50153d85b8fec9f7686" [[projects]] branch = "master" name = "golang.org/x/net" packages = ["context","context/ctxhttp"] - revision = "0a9397675ba34b2845f758fe3cd68828369c6517" + revision = "cd69bc3fc700721b709c3a59e16e24c67b58f6ff" [[projects]] branch = "master" @@ -191,13 +191,13 @@ branch = "master" name = "golang.org/x/sys" packages = ["unix","windows"] - revision = "314a259e304ff91bd6985da2a7149bbf91237993" + revision = "8dbc5d05d6edcc104950cc299a1ce6641235bc86" [[projects]] branch = "master" name = "google.golang.org/api" packages = ["gensupport","googleapi","googleapi/internal/uritemplates","storage/v1"] - revision = "906273f42cdebd65de3a53f30dd9e23de1b55ba9" + revision = "7afc123cf726cd2f253faa3e144d2ab65477b18f" [[projects]] name = "google.golang.org/appengine" @@ -214,6 +214,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "abc33af201086afac21e33a2a7987a473daa6a229c3699ca13761f4d4fd7f52e" + inputs-digest = "f0a207197cb502238ac87ca8e07b2640c02ec380a50b036e09ef87e40e31ca2d" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/restic/excludes b/cmd/restic/excludes new file mode 100644 index 000000000..ab2f4fd31 --- /dev/null +++ b/cmd/restic/excludes @@ -0,0 +1,31 @@ +/boot +/dev +/etc +/home +/lost+found +/mnt +/proc +/root +/run +/sys +/tmp +/usr +/var +/opt/android-sdk +/opt/bullet +/opt/dex2jar +/opt/jameica +/opt/google +/opt/JDownloader +/opt/JDownloaderScripts +/opt/opencascade +/opt/vagrant +/opt/visual-studio-code +/opt/vtk6 +/bin +/fonts* +/srv/ftp +/srv/http +/sbin +/lib +/lib64 diff --git a/vendor/cloud.google.com/go/CONTRIBUTING.md b/vendor/cloud.google.com/go/CONTRIBUTING.md index aed05dc4f..f99b50d0e 100644 --- a/vendor/cloud.google.com/go/CONTRIBUTING.md +++ b/vendor/cloud.google.com/go/CONTRIBUTING.md @@ -42,6 +42,12 @@ run the against the actual APIs. - **GCLOUD_TESTS_GOLANG_KEY**: The path to the JSON key file. - **GCLOUD_TESTS_API_KEY**: Your API key. +Firestore requires a different project and key: + +- **GCLOUD_TESTS_GOLANG_FIRESTORE_PROJECT_ID**: Developers Console project's ID + supporting Firestore +- **GCLOUD_TESTS_GOLANG_FIRESTORE_KEY**: The path to the JSON key file. + Install the [gcloud command-line tool][gcloudcli] to your machine and use it to create some resources used in integration tests. diff --git a/vendor/cloud.google.com/go/README.md b/vendor/cloud.google.com/go/README.md index 4927e83f8..1e0e241d6 100644 --- a/vendor/cloud.google.com/go/README.md +++ b/vendor/cloud.google.com/go/README.md @@ -33,6 +33,18 @@ make backwards-incompatible changes. ## News +*v0.15.0* + +_October 3, 2017_ + +- firestore: beta release. See the + [announcement](https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html). + +- errorreporting: The existing package has been redesigned. + +- errors: This package has been removed. Use errorreporting. + + _September 28, 2017_ *v0.14.0* @@ -104,41 +116,6 @@ _August 22, 2017_ - storage: support bucket lifecycle configurations. -_July 31, 2017_ - -*v0.11.0* - -- Clients for spanner, pubsub and video are now in beta. - -- New client for DLP. - -- spanner: performance and testing improvements. - -- storage: requester-pays buckets are supported. - -- storage, profiler, bigtable, bigquery: bug fixes and other minor improvements. - -- pubsub: bug fixes and other minor improvements - -_June 17, 2017_ - - -*v0.10.0* - -- pubsub: Subscription.ModifyPushConfig replaced with Subscription.Update. - -- pubsub: Subscription.Receive now runs concurrently for higher throughput. - -- vision: cloud.google.com/go/vision is deprecated. Use -cloud.google.com/go/vision/apiv1 instead. - -- translation: now stable. - -- trace: several changes to the surface. See the link below. - -[Code changes required from v0.9.0.](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/MIGRATION.md) - - [Older news](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/old-news.md) ## Supported APIs @@ -146,6 +123,7 @@ cloud.google.com/go/vision/apiv1 instead. Google API | Status | Package ---------------------------------|--------------|----------------------------------------------------------- [Datastore][cloud-datastore] | stable | [`cloud.google.com/go/datastore`][cloud-datastore-ref] +[Firestore][cloud-firestore] | beta | [`cloud.google.com/go/firestore`][cloud-firestore-ref] [Storage][cloud-storage] | stable | [`cloud.google.com/go/storage`][cloud-storage-ref] [Bigtable][cloud-bigtable] | beta | [`cloud.google.com/go/bigtable`][cloud-bigtable-ref] [BigQuery][cloud-bigquery] | beta | [`cloud.google.com/go/bigquery`][cloud-bigquery-ref] @@ -480,6 +458,11 @@ for more information. [cloud-datastore-docs]: https://cloud.google.com/datastore/docs [cloud-datastore-activation]: https://cloud.google.com/datastore/docs/activate +[cloud-firestore]: https://cloud.google.com/firestore/ +[cloud-firestore-ref]: https://godoc.org/cloud.google.com/go/firestore +[cloud-firestore-docs]: https://cloud.google.com/firestore/docs +[cloud-firestore-activation]: https://cloud.google.com/firestore/docs/activate + [cloud-pubsub]: https://cloud.google.com/pubsub/ [cloud-pubsub-ref]: https://godoc.org/cloud.google.com/go/pubsub [cloud-pubsub-docs]: https://cloud.google.com/pubsub/docs diff --git a/vendor/cloud.google.com/go/bigquery/doc.go b/vendor/cloud.google.com/go/bigquery/doc.go index f644792bc..71dc57a3b 100644 --- a/vendor/cloud.google.com/go/bigquery/doc.go +++ b/vendor/cloud.google.com/go/bigquery/doc.go @@ -124,7 +124,7 @@ These methods create references to datasets, not the datasets themselves. You ca a dataset reference even if the dataset doesn't exist yet. Use Dataset.Create to create a dataset from a reference: - if err := myDataset.Create(ctx); err != nil { + if err := myDataset.Create(ctx, nil); err != nil { // TODO: Handle error. } @@ -134,9 +134,10 @@ to an object in BigQuery that may or may not exist. table := myDataset.Table("my_table") You can create, delete and update the metadata of tables with methods on Table. -Table.Create supports a few options. For instance, you could create a temporary table with: +For instance, you could create a temporary table with: - err = myDataset.Table("temp").Create(ctx, bigquery.TableExpiration(time.Now().Add(1*time.Hour))) + err = myDataset.Table("temp").Create(ctx, &bigquery.TableMetadata{ + ExpirationTime: time.Now().Add(1*time.Hour)}) if err != nil { // TODO: Handle error. } @@ -179,9 +180,9 @@ so you can change names or ignore fields: } // schema3 has fields "full_name" and "Grade". -Having constructed a schema, you can pass it to Table.Create as an option: +Having constructed a schema, you can create a table with it like so: - if err := table.Create(ctx, schema1); err != nil { + if err := table.Create(ctx, &bigquery.TableMetadata{Schema: schema1}); err != nil { // TODO: Handle error. } diff --git a/vendor/cloud.google.com/go/errorreporting/error_logging_test.go b/vendor/cloud.google.com/go/errorreporting/error_logging_test.go deleted file mode 100644 index ba1a3c987..000000000 --- a/vendor/cloud.google.com/go/errorreporting/error_logging_test.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package errorreporting - -import ( - "bytes" - "errors" - "log" - "strings" - "testing" - - "cloud.google.com/go/logging" - "golang.org/x/net/context" - "google.golang.org/api/option" -) - -type fakeLogger struct { - entry *logging.Entry - fail bool -} - -func (c *fakeLogger) LogSync(ctx context.Context, e logging.Entry) error { - if c.fail { - return errors.New("request failed") - } - c.entry = &e - return nil -} - -func (c *fakeLogger) Close() error { - return nil -} - -func newTestClientUsingLogging(c *fakeLogger) *Client { - newLoggerInterface = func(ctx context.Context, project string, opts ...option.ClientOption) (loggerInterface, error) { - return c, nil - } - t, err := NewClient(context.Background(), testProjectID, "myservice", "v1.000", true) - if err != nil { - panic(err) - } - t.RepanicDefault = false - return t -} - -func TestCatchNothingUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx) -} - -func entryMessage(e *logging.Entry) string { - return e.Payload.(map[string]interface{})["message"].(string) -} - -func commonLoggingChecks(t *testing.T, e *logging.Entry, panickingFunction string) { - if e.Payload.(map[string]interface{})["serviceContext"].(map[string]string)["service"] != "myservice" { - t.Errorf("error report didn't contain service name") - } - if e.Payload.(map[string]interface{})["serviceContext"].(map[string]string)["version"] != "v1.000" { - t.Errorf("error report didn't contain version name") - } - if !strings.Contains(entryMessage(e), "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(entryMessage(e), panickingFunction) { - t.Errorf("error report didn't contain stack trace") - } -} - -func TestCatchPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestCatchPanic") - if !strings.Contains(entryMessage(e), "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchPanicNilClientUsingLogging(t *testing.T) { - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "TestCatchPanicNilClient") { - t.Errorf("error report didn't contain recovered value") - } - }() - var c *Client - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestLogFailedReportsUsingLogging(t *testing.T) { - fl := &fakeLogger{fail: true} - c := newTestClientUsingLogging(fl) - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "errorreporting.TestLogFailedReports") { - t.Errorf("error report didn't contain stack trace") - } - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchNilPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestCatchNilPanic") - if !strings.Contains(entryMessage(e), "nil") { - t.Errorf("error report didn't contain recovered value") - } - }() - b := true - defer c.Catch(ctx, WithMessage("hello, error"), PanicFlag(&b)) - panic(nil) -} - -func TestNotCatchNilPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - panic(nil) -} - -func TestReportUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - c.Report(ctx, nil, "hello, ", "error") - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestReport") -} - -func TestReportfUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - c.Reportf(ctx, nil, "hello, error 2+%d=%d", 2, 2+2) - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestReportf") - if !strings.Contains(entryMessage(e), "2+2=4") { - t.Errorf("error report didn't contain formatted message") - } -} - -func TestCloseUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - err := c.Close() - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/cloud.google.com/go/errorreporting/errors.go b/vendor/cloud.google.com/go/errorreporting/errors.go index dee600733..d409c32c5 100644 --- a/vendor/cloud.google.com/go/errorreporting/errors.go +++ b/vendor/cloud.google.com/go/errorreporting/errors.go @@ -20,50 +20,17 @@ // // To initialize a client, use the NewClient function. // -// import "cloud.google.com/go/errorreporting" +// import er "cloud.google.com/go/errorreporting" // ... -// errorsClient, err = errorreporting.NewClient(ctx, projectID, "myservice", "v1.0", true) +// errorsClient, err = er.NewClient(ctx, projectID, er.Config{ +// ServiceName: "myservice", +// ServiceVersion: "v1.0", +// }) // -// The client can recover panics in your program and report them as errors. -// To use this functionality, defer its Catch method, as you would any other -// function for recovering panics. -// -// func foo(ctx context.Context, ...) { -// defer errorsClient.Catch(ctx) -// ... -// } -// -// Catch writes an error report containing the recovered value and a stack trace -// to Stackdriver Error Reporting. -// -// There are various options you can add to the call to Catch that modify how -// panics are handled. -// -// WithMessage and WithMessagef add a custom message after the recovered value, -// using fmt.Sprint and fmt.Sprintf respectively. -// -// defer errorsClient.Catch(ctx, errorreporting.WithMessagef("x=%d", x)) -// -// WithRequest fills in various fields in the error report with information -// about an http.Request that's being handled. -// -// defer errorsClient.Catch(ctx, errorreporting.WithRequest(httpReq)) -// -// By default, after recovering a panic, Catch will panic again with the -// recovered value. You can turn off this behavior with the Repanic option. -// -// defer errorsClient.Catch(ctx, errorreporting.Repanic(false)) -// -// You can also change the default behavior for the client by changing the -// RepanicDefault field. -// -// errorsClient.RepanicDefault = false -// -// It is also possible to write an error report directly without recovering a -// panic, using Report or Reportf. +// With a client, you can then report errors: // // if err != nil { -// errorsClient.Reportf(ctx, r, "unexpected error %v", err) +// errorsClient.Report(ctx, er.Entry{Error: err}) // } // // If you try to write an error report with a nil client, or if the client @@ -77,16 +44,15 @@ import ( "log" "net/http" "runtime" - "strings" "time" api "cloud.google.com/go/errorreporting/apiv1beta1" "cloud.google.com/go/internal/version" - "cloud.google.com/go/logging" - "github.com/golang/protobuf/ptypes/timestamp" + "github.com/golang/protobuf/ptypes" gax "github.com/googleapis/gax-go" "golang.org/x/net/context" "google.golang.org/api/option" + "google.golang.org/api/support/bundler" erpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1" ) @@ -94,12 +60,39 @@ const ( userAgent = `gcloud-golang-errorreporting/20160701` ) -type apiInterface interface { - ReportErrorEvent(ctx context.Context, req *erpb.ReportErrorEventRequest, opts ...gax.CallOption) (*erpb.ReportErrorEventResponse, error) - Close() error +// Config is additional configuration for Client. +type Config struct { + // ServiceName identifies the running program and is included in the error reports. + // Optional. + ServiceName string + + // ServiceVersion identifies the version of the running program and is + // included in the error reports. + // Optional. + ServiceVersion string + + // OnError is the function to call if any background + // tasks errored. By default, errors are logged. + OnError func(err error) } -var newApiInterface = func(ctx context.Context, opts ...option.ClientOption) (apiInterface, error) { +// Entry holds information about the reported error. +type Entry struct { + Error error + Req *http.Request // if error is associated with a request. +} + +// Client represents a Google Cloud Error Reporting client. +type Client struct { + projectID string + apiClient client + serviceContext erpb.ServiceContext + bundler *bundler.Bundler + + onErrorFn func(err error) +} + +var newClient = func(ctx context.Context, opts ...option.ClientOption) (client, error) { client, err := api.NewReportErrorsClient(ctx, opts...) if err != nil { return nil, err @@ -108,289 +101,89 @@ var newApiInterface = func(ctx context.Context, opts ...option.ClientOption) (ap return client, nil } -type loggerInterface interface { - LogSync(ctx context.Context, e logging.Entry) error - Close() error -} - -type logger struct { - *logging.Logger - c *logging.Client -} - -func (l logger) Close() error { - return l.c.Close() -} - -var newLoggerInterface = func(ctx context.Context, projectID string, opts ...option.ClientOption) (loggerInterface, error) { - lc, err := logging.NewClient(ctx, projectID, opts...) - if err != nil { - return nil, fmt.Errorf("creating Logging client: %v", err) - } - l := lc.Logger("errorreports") - return logger{l, lc}, nil -} - -type sender interface { - send(ctx context.Context, r *http.Request, message string) - close() error -} - -// errorApiSender sends error reports using the Stackdriver Error Reporting API. -type errorApiSender struct { - apiClient apiInterface - projectID string - serviceContext erpb.ServiceContext -} - -// loggingSender sends error reports using the Stackdriver Logging API. -type loggingSender struct { - logger loggerInterface - projectID string - serviceContext map[string]string -} - -// Client represents a Google Cloud Error Reporting client. -type Client struct { - sender - // RepanicDefault determines whether Catch will re-panic after recovering a - // panic. This behavior can be overridden for an individual call to Catch using - // the Repanic option. - RepanicDefault bool -} - // NewClient returns a new error reporting client. Generally you will want // to create a client on program initialization and use it through the lifetime // of the process. -// -// The service name and version string identify the running program, and are -// included in error reports. The version string can be left empty. -// -// Set useLogging to report errors also using Stackdriver Logging, -// which will result in errors appearing in both the logs and the error -// dashboard. This is useful if you are already a user of Stackdriver Logging. -func NewClient(ctx context.Context, projectID, serviceName, serviceVersion string, useLogging bool, opts ...option.ClientOption) (*Client, error) { - if useLogging { - l, err := newLoggerInterface(ctx, projectID, opts...) - if err != nil { - return nil, fmt.Errorf("creating Logging client: %v", err) - } - sender := &loggingSender{ - logger: l, - projectID: projectID, - serviceContext: map[string]string{ - "service": serviceName, - }, - } - if serviceVersion != "" { - sender.serviceContext["version"] = serviceVersion - } - c := &Client{ - sender: sender, - RepanicDefault: true, - } - return c, nil - } else { - a, err := newApiInterface(ctx, opts...) - if err != nil { - return nil, fmt.Errorf("creating Error Reporting client: %v", err) - } - c := &Client{ - sender: &errorApiSender{ - apiClient: a, - projectID: "projects/" + projectID, - serviceContext: erpb.ServiceContext{ - Service: serviceName, - Version: serviceVersion, - }, - }, - RepanicDefault: true, - } - return c, nil +func NewClient(ctx context.Context, projectID string, cfg Config, opts ...option.ClientOption) (*Client, error) { + if cfg.ServiceName == "" { + cfg.ServiceName = "goapp" } + c, err := newClient(ctx, opts...) + if err != nil { + return nil, fmt.Errorf("creating client: %v", err) + } + + client := &Client{ + apiClient: c, + projectID: "projects/" + projectID, + serviceContext: erpb.ServiceContext{ + Service: cfg.ServiceName, + Version: cfg.ServiceVersion, + }, + } + bundler := bundler.NewBundler((*erpb.ReportErrorEventRequest)(nil), func(bundle interface{}) { + reqs := bundle.([]*erpb.ReportErrorEventRequest) + for _, req := range reqs { + _, err = client.apiClient.ReportErrorEvent(ctx, req) + if err != nil { + client.onError(fmt.Errorf("failed to upload: %v", err)) + } + } + }) + // TODO(jbd): Optimize bundler limits. + bundler.DelayThreshold = 2 * time.Second + bundler.BundleCountThreshold = 100 + bundler.BundleByteThreshold = 1000 + bundler.BundleByteLimit = 1000 + bundler.BufferedByteLimit = 10000 + client.bundler = bundler + return client, nil +} + +func (c *Client) onError(err error) { + if c.onErrorFn != nil { + c.onErrorFn(err) + return + } + log.Println(err) } // Close closes any resources held by the client. // Close should be called when the client is no longer needed. // It need not be called at program exit. func (c *Client) Close() error { - err := c.sender.close() - c.sender = nil + return c.apiClient.Close() +} + +// Report writes an error report. It doesn't block. Errors in +// writing the error report can be handled via Client.OnError. +func (c *Client) Report(e Entry) { + req := c.makeReportErrorEventRequest(e.Req, e.Error.Error()) + c.bundler.Add(req, 1) +} + +// ReportSync writes an error report. It blocks until the entry is written. +func (c *Client) ReportSync(ctx context.Context, e Entry) error { + req := c.makeReportErrorEventRequest(e.Req, e.Error.Error()) + _, err := c.apiClient.ReportErrorEvent(ctx, req) return err } -// An Option is an optional argument to Catch. -type Option interface { - isOption() -} - -// PanicFlag returns an Option that can inform Catch that a panic has occurred. -// If *p is true when Catch is called, an error report is made even if recover -// returns nil. This allows Catch to report an error for panic(nil). -// If p is nil, the option is ignored. +// Flush blocks until all currently buffered error reports are sent. // -// Here is an example of how to use PanicFlag: -// -// func foo(ctx context.Context, ...) { -// hasPanicked := true -// defer errorsClient.Catch(ctx, errorreporting.PanicFlag(&hasPanicked)) -// ... -// ... -// // We have reached the end of the function, so we're not panicking. -// hasPanicked = false -// } -func PanicFlag(p *bool) Option { return panicFlag{p} } - -type panicFlag struct { - *bool +// If any errors occurred since the last call to Flush, or the +// creation of the client if this is the first call, then Flush report the +// error via the (*Client).OnError handler. +func (c *Client) Flush() { + c.bundler.Flush() } -func (h panicFlag) isOption() {} - -// Repanic returns an Option that determines whether Catch will re-panic after -// it reports an error. This overrides the default in the client. -func Repanic(r bool) Option { return repanic(r) } - -type repanic bool - -func (r repanic) isOption() {} - -// WithRequest returns an Option that informs Catch or Report of an http.Request -// that is being handled. Information from the Request is included in the error -// report, if one is made. -func WithRequest(r *http.Request) Option { return withRequest{r} } - -type withRequest struct { - *http.Request -} - -func (w withRequest) isOption() {} - -// WithMessage returns an Option that sets a message to be included in the error -// report, if one is made. v is converted to a string with fmt.Sprint. -func WithMessage(v ...interface{}) Option { return message(v) } - -type message []interface{} - -func (m message) isOption() {} - -// WithMessagef returns an Option that sets a message to be included in the error -// report, if one is made. format and v are converted to a string with fmt.Sprintf. -func WithMessagef(format string, v ...interface{}) Option { return messagef{format, v} } - -type messagef struct { - format string - v []interface{} -} - -func (m messagef) isOption() {} - -// Catch tries to recover a panic; if it succeeds, it writes an error report. -// It should be called by deferring it, like any other function for recovering -// panics. -// -// Catch can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Catch(ctx context.Context, opt ...Option) { - panicked := false - for _, o := range opt { - switch o := o.(type) { - case panicFlag: - panicked = panicked || o.bool != nil && *o.bool - } - } - x := recover() - if x == nil && !panicked { - return - } - var ( - r *http.Request - shouldRepanic = true - messages = []string{fmt.Sprint(x)} - ) - if c != nil { - shouldRepanic = c.RepanicDefault - } - for _, o := range opt { - switch o := o.(type) { - case repanic: - shouldRepanic = bool(o) - case withRequest: - r = o.Request - case message: - messages = append(messages, fmt.Sprint(o...)) - case messagef: - messages = append(messages, fmt.Sprintf(o.format, o.v...)) - } - } - c.logInternal(ctx, r, true, strings.Join(messages, " ")) - if shouldRepanic { - panic(x) - } -} - -// Report writes an error report unconditionally, instead of only when a panic -// occurs. -// If r is non-nil, information from the Request is included in the error report. -// -// Report can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Report(ctx context.Context, r *http.Request, v ...interface{}) { - c.logInternal(ctx, r, false, fmt.Sprint(v...)) -} - -// Reportf writes an error report unconditionally, instead of only when a panic -// occurs. -// If r is non-nil, information from the Request is included in the error report. -// -// Reportf can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Reportf(ctx context.Context, r *http.Request, format string, v ...interface{}) { - c.logInternal(ctx, r, false, fmt.Sprintf(format, v...)) -} - -func (c *Client) logInternal(ctx context.Context, r *http.Request, isPanic bool, msg string) { +func (c *Client) makeReportErrorEventRequest(r *http.Request, msg string) *erpb.ReportErrorEventRequest { // limit the stack trace to 16k. - var buf [16384]byte + var buf [16 * 1024]byte stack := buf[0:runtime.Stack(buf[:], false)] - message := msg + "\n" + chopStack(stack, isPanic) - if c == nil { - log.Println("Error report used nil client:", message) - return - } - c.send(ctx, r, message) -} + message := msg + "\n" + chopStack(stack) -func (s *loggingSender) send(ctx context.Context, r *http.Request, message string) { - payload := map[string]interface{}{ - "eventTime": time.Now().In(time.UTC).Format(time.RFC3339Nano), - "message": message, - "serviceContext": s.serviceContext, - } - if r != nil { - payload["context"] = map[string]interface{}{ - "httpRequest": map[string]interface{}{ - "method": r.Method, - "url": r.Host + r.RequestURI, - "userAgent": r.UserAgent(), - "referrer": r.Referer(), - "remoteIp": r.RemoteAddr, - }, - } - } - e := logging.Entry{ - Severity: logging.Error, - Payload: payload, - } - err := s.logger.LogSync(ctx, e) - if err != nil { - log.Println("Error writing error report:", err, "report:", payload) - } -} - -func (s *loggingSender) close() error { - return s.logger.Close() -} - -func (s *errorApiSender) send(ctx context.Context, r *http.Request, message string) { - time := time.Now() var errorContext *erpb.ErrorContext if r != nil { errorContext = &erpb.ErrorContext{ @@ -403,37 +196,21 @@ func (s *errorApiSender) send(ctx context.Context, r *http.Request, message stri }, } } - req := erpb.ReportErrorEventRequest{ - ProjectName: s.projectID, + return &erpb.ReportErrorEventRequest{ + ProjectName: c.projectID, Event: &erpb.ReportedErrorEvent{ - EventTime: ×tamp.Timestamp{ - Seconds: time.Unix(), - Nanos: int32(time.Nanosecond()), - }, - ServiceContext: &s.serviceContext, + EventTime: ptypes.TimestampNow(), + ServiceContext: &c.serviceContext, Message: message, Context: errorContext, }, } - _, err := s.apiClient.ReportErrorEvent(ctx, &req) - if err != nil { - log.Println("Error writing error report:", err, "report:", message) - } -} - -func (s *errorApiSender) close() error { - return s.apiClient.Close() } // chopStack trims a stack trace so that the function which panics or calls // Report is first. -func chopStack(s []byte, isPanic bool) string { - var f []byte - if isPanic { - f = []byte("panic(") - } else { - f = []byte("cloud.google.com/go/errorreporting.(*Client).Report") - } +func chopStack(s []byte) string { + f := []byte("cloud.google.com/go/errorreporting.(*Client).Report") lfFirst := bytes.IndexByte(s, '\n') if lfFirst == -1 { @@ -454,3 +231,8 @@ func chopStack(s []byte, isPanic bool) string { } return string(s[:lfFirst+1]) + string(stack) } + +type client interface { + ReportErrorEvent(ctx context.Context, req *erpb.ReportErrorEventRequest, opts ...gax.CallOption) (*erpb.ReportErrorEventResponse, error) + Close() error +} diff --git a/vendor/cloud.google.com/go/errorreporting/errors_test.go b/vendor/cloud.google.com/go/errorreporting/errors_test.go index c5cda8815..7673e76bb 100644 --- a/vendor/cloud.google.com/go/errorreporting/errors_test.go +++ b/vendor/cloud.google.com/go/errorreporting/errors_test.go @@ -15,12 +15,12 @@ package errorreporting import ( - "bytes" "errors" - "log" "strings" "testing" + "cloud.google.com/go/internal/testutil" + gax "github.com/googleapis/gax-go" "golang.org/x/net/context" @@ -28,14 +28,16 @@ import ( erpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1" ) -const testProjectID = "testproject" - type fakeReportErrorsClient struct { - req *erpb.ReportErrorEventRequest - fail bool + req *erpb.ReportErrorEventRequest + fail bool + doneCh chan struct{} } func (c *fakeReportErrorsClient) ReportErrorEvent(ctx context.Context, req *erpb.ReportErrorEventRequest, _ ...gax.CallOption) (*erpb.ReportErrorEventResponse, error) { + defer func() { + close(c.doneCh) + }() if c.fail { return nil, errors.New("request failed") } @@ -47,166 +49,65 @@ func (c *fakeReportErrorsClient) Close() error { return nil } +func newFakeReportErrorsClient() *fakeReportErrorsClient { + c := &fakeReportErrorsClient{} + c.doneCh = make(chan struct{}) + return c +} + func newTestClient(c *fakeReportErrorsClient) *Client { - newApiInterface = func(ctx context.Context, opts ...option.ClientOption) (apiInterface, error) { + newClient = func(ctx context.Context, opts ...option.ClientOption) (client, error) { return c, nil } - t, err := NewClient(context.Background(), testProjectID, "myservice", "v1.000", false) + t, err := NewClient(context.Background(), testutil.ProjID(), Config{ + ServiceName: "myservice", + ServiceVersion: "v1.0", + }) if err != nil { panic(err) } - t.RepanicDefault = false return t } -var ctx context.Context - -func init() { - ctx = context.Background() -} - -func TestCatchNothing(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx) -} - -func commonChecks(t *testing.T, req *erpb.ReportErrorEventRequest, panickingFunction string) { +func commonChecks(t *testing.T, req *erpb.ReportErrorEventRequest, fn string) { if req.Event.ServiceContext.Service != "myservice" { t.Errorf("error report didn't contain service name") } - if req.Event.ServiceContext.Version != "v1.000" { + if req.Event.ServiceContext.Version != "v1.0" { t.Errorf("error report didn't contain version name") } - if !strings.Contains(req.Event.Message, "hello, error") { + if !strings.Contains(req.Event.Message, "error") { t.Errorf("error report didn't contain message") } - if !strings.Contains(req.Event.Message, panickingFunction) { + if !strings.Contains(req.Event.Message, fn) { t.Errorf("error report didn't contain stack trace") } } -func TestCatchPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errorreporting.TestCatchPanic") - if !strings.Contains(r.Event.Message, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchPanicNilClient(t *testing.T) { - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "TestCatchPanicNilClient") { - t.Errorf("error report didn't contain recovered value") - } - }() - var c *Client - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestLogFailedReports(t *testing.T) { - fc := &fakeReportErrorsClient{fail: true} - c := newTestClient(fc) - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "errorreporting.TestLogFailedReports") { - t.Errorf("error report didn't contain stack trace") - } - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchNilPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errorreporting.TestCatchNilPanic") - if !strings.Contains(r.Event.Message, "nil") { - t.Errorf("error report didn't contain recovered value") - } - }() - b := true - defer c.Catch(ctx, WithMessage("hello, error"), PanicFlag(&b)) - panic(nil) -} - -func TestNotCatchNilPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - panic(nil) -} - func TestReport(t *testing.T) { - fc := &fakeReportErrorsClient{} + fc := newFakeReportErrorsClient() c := newTestClient(fc) - c.Report(ctx, nil, "hello, ", "error") + c.Report(Entry{Error: errors.New("error")}) + + <-fc.doneCh r := fc.req if r == nil { t.Fatalf("got no error report, expected one") } commonChecks(t, r, "errorreporting.TestReport") } - -func TestReportf(t *testing.T) { - fc := &fakeReportErrorsClient{} +func TestReportSync(t *testing.T) { + ctx := context.Background() + fc := newFakeReportErrorsClient() c := newTestClient(fc) - c.Reportf(ctx, nil, "hello, error 2+%d=%d", 2, 2+2) + if err := c.ReportSync(ctx, Entry{Error: errors.New("error")}); err != nil { + t.Fatalf("cannot upload errors: %v", err) + } + + <-fc.doneCh r := fc.req if r == nil { t.Fatalf("got no error report, expected one") } - commonChecks(t, r, "errorreporting.TestReportf") - if !strings.Contains(r.Event.Message, "2+2=4") { - t.Errorf("error report didn't contain formatted message") - } + commonChecks(t, r, "errorreporting.TestReport") } diff --git a/vendor/cloud.google.com/go/errorreporting/stack_test.go b/vendor/cloud.google.com/go/errorreporting/stack_test.go index 950534f25..92ece0b27 100644 --- a/vendor/cloud.google.com/go/errorreporting/stack_test.go +++ b/vendor/cloud.google.com/go/errorreporting/stack_test.go @@ -21,68 +21,7 @@ func TestChopStack(t *testing.T) { name string in []byte expected string - isPanic bool }{ - { - name: "Catch", - in: []byte(`goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errorreporting.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:259 +0x18b -cloud.google.com/go/errorreporting.(*Client).Catch() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:219 +0x6ed -panic() - /gopath/src/runtime/panic.go:458 +0x243 -cloud.google.com/go/errorreporting.TestCatchPanic() - /gopath/src/cloud.google.com/go/errorreporting/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`), - expected: `goroutine 20 [running]: -cloud.google.com/go/errorreporting.TestCatchPanic() - /gopath/src/cloud.google.com/go/errorreporting/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`, - isPanic: true, - }, - { - name: "function not found", - in: []byte(`goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errorreporting.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:259 +0x18b -cloud.google.com/go/errorreporting.(*Client).Catch() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:219 +0x6ed -cloud.google.com/go/errorreporting.TestCatchPanic() - /gopath/src/cloud.google.com/go/errorreporting/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`), - expected: `goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errorreporting.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:259 +0x18b -cloud.google.com/go/errorreporting.(*Client).Catch() - /gopath/src/cloud.google.com/go/errorreporting/errors.go:219 +0x6ed -cloud.google.com/go/errorreporting.TestCatchPanic() - /gopath/src/cloud.google.com/go/errorreporting/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`, - isPanic: true, - }, { name: "Report", in: []byte(` goroutine 39 [running]: @@ -107,12 +46,11 @@ testing.tRunner() created by testing.(*T).Run /gopath/testing/testing.go:646 +0x2ec `, - isPanic: false, }, } { - out := chopStack(test.in, test.isPanic) + out := chopStack(test.in) if out != test.expected { - t.Errorf("case %q: chopStack(%q, %t): got %q want %q", test.name, test.in, test.isPanic, out, test.expected) + t.Errorf("case %q: chopStack(%q): got %q want %q", test.name, test.in, out, test.expected) } } } diff --git a/vendor/cloud.google.com/go/errors/error_logging_test.go b/vendor/cloud.google.com/go/errors/error_logging_test.go deleted file mode 100644 index cead5a4d5..000000000 --- a/vendor/cloud.google.com/go/errors/error_logging_test.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package errors - -import ( - "bytes" - "errors" - "log" - "strings" - "testing" - - "cloud.google.com/go/logging" - "golang.org/x/net/context" - "google.golang.org/api/option" -) - -type fakeLogger struct { - entry *logging.Entry - fail bool -} - -func (c *fakeLogger) LogSync(ctx context.Context, e logging.Entry) error { - if c.fail { - return errors.New("request failed") - } - c.entry = &e - return nil -} - -func (c *fakeLogger) Close() error { - return nil -} - -func newTestClientUsingLogging(c *fakeLogger) *Client { - newLoggerInterface = func(ctx context.Context, project string, opts ...option.ClientOption) (loggerInterface, error) { - return c, nil - } - t, err := NewClient(context.Background(), testProjectID, "myservice", "v1.000", true) - if err != nil { - panic(err) - } - t.RepanicDefault = false - return t -} - -func TestCatchNothingUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx) -} - -func entryMessage(e *logging.Entry) string { - return e.Payload.(map[string]interface{})["message"].(string) -} - -func commonLoggingChecks(t *testing.T, e *logging.Entry, panickingFunction string) { - if e.Payload.(map[string]interface{})["serviceContext"].(map[string]string)["service"] != "myservice" { - t.Errorf("error report didn't contain service name") - } - if e.Payload.(map[string]interface{})["serviceContext"].(map[string]string)["version"] != "v1.000" { - t.Errorf("error report didn't contain version name") - } - if !strings.Contains(entryMessage(e), "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(entryMessage(e), panickingFunction) { - t.Errorf("error report didn't contain stack trace") - } -} - -func TestCatchPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestCatchPanic") - if !strings.Contains(entryMessage(e), "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchPanicNilClientUsingLogging(t *testing.T) { - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "TestCatchPanicNilClient") { - t.Errorf("error report didn't contain recovered value") - } - }() - var c *Client - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestLogFailedReportsUsingLogging(t *testing.T) { - fl := &fakeLogger{fail: true} - c := newTestClientUsingLogging(fl) - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "errors.TestLogFailedReports") { - t.Errorf("error report didn't contain stack trace") - } - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchNilPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestCatchNilPanic") - if !strings.Contains(entryMessage(e), "nil") { - t.Errorf("error report didn't contain recovered value") - } - }() - b := true - defer c.Catch(ctx, WithMessage("hello, error"), PanicFlag(&b)) - panic(nil) -} - -func TestNotCatchNilPanicUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - defer func() { - e := fl.entry - if e != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - panic(nil) -} - -func TestReportUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - c.Report(ctx, nil, "hello, ", "error") - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestReport") -} - -func TestReportfUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - c.Reportf(ctx, nil, "hello, error 2+%d=%d", 2, 2+2) - e := fl.entry - if e == nil { - t.Fatalf("got no error report, expected one") - } - commonLoggingChecks(t, e, "TestReportf") - if !strings.Contains(entryMessage(e), "2+2=4") { - t.Errorf("error report didn't contain formatted message") - } -} - -func TestCloseUsingLogging(t *testing.T) { - fl := &fakeLogger{} - c := newTestClientUsingLogging(fl) - err := c.Close() - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/cloud.google.com/go/errors/errors.go b/vendor/cloud.google.com/go/errors/errors.go deleted file mode 100644 index a4c836403..000000000 --- a/vendor/cloud.google.com/go/errors/errors.go +++ /dev/null @@ -1,458 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package errors is a Google Stackdriver Error Reporting library. -// -// This package is still experimental and subject to change. -// -// See https://cloud.google.com/error-reporting/ for more information. -// -// To initialize a client, use the NewClient function. -// -// import "cloud.google.com/go/errors" -// ... -// errorsClient, err = errors.NewClient(ctx, projectID, "myservice", "v1.0", true) -// -// The client can recover panics in your program and report them as errors. -// To use this functionality, defer its Catch method, as you would any other -// function for recovering panics. -// -// func foo(ctx context.Context, ...) { -// defer errorsClient.Catch(ctx) -// ... -// } -// -// Catch writes an error report containing the recovered value and a stack trace -// to Stackdriver Error Reporting. -// -// There are various options you can add to the call to Catch that modify how -// panics are handled. -// -// WithMessage and WithMessagef add a custom message after the recovered value, -// using fmt.Sprint and fmt.Sprintf respectively. -// -// defer errorsClient.Catch(ctx, errors.WithMessagef("x=%d", x)) -// -// WithRequest fills in various fields in the error report with information -// about an http.Request that's being handled. -// -// defer errorsClient.Catch(ctx, errors.WithRequest(httpReq)) -// -// By default, after recovering a panic, Catch will panic again with the -// recovered value. You can turn off this behavior with the Repanic option. -// -// defer errorsClient.Catch(ctx, errors.Repanic(false)) -// -// You can also change the default behavior for the client by changing the -// RepanicDefault field. -// -// errorsClient.RepanicDefault = false -// -// It is also possible to write an error report directly without recovering a -// panic, using Report or Reportf. -// -// if err != nil { -// errorsClient.Reportf(ctx, r, "unexpected error %v", err) -// } -// -// If you try to write an error report with a nil client, or if the client -// fails to write the report to the server, the error report is logged using -// log.Println. -// -// Deprecated: Use cloud.google.com/go/errorreporting instead. -package errors // import "cloud.google.com/go/errors" - -import ( - "bytes" - "fmt" - "log" - "net/http" - "runtime" - "strings" - "time" - - api "cloud.google.com/go/errorreporting/apiv1beta1" - "cloud.google.com/go/internal/version" - "cloud.google.com/go/logging" - "github.com/golang/protobuf/ptypes/timestamp" - gax "github.com/googleapis/gax-go" - "golang.org/x/net/context" - "google.golang.org/api/option" - erpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1" -) - -const ( - userAgent = `gcloud-golang-errorreporting/20160701` -) - -type apiInterface interface { - ReportErrorEvent(ctx context.Context, req *erpb.ReportErrorEventRequest, opts ...gax.CallOption) (*erpb.ReportErrorEventResponse, error) - Close() error -} - -var newApiInterface = func(ctx context.Context, opts ...option.ClientOption) (apiInterface, error) { - client, err := api.NewReportErrorsClient(ctx, opts...) - if err != nil { - return nil, err - } - client.SetGoogleClientInfo("gccl", version.Repo) - return client, nil -} - -type loggerInterface interface { - LogSync(ctx context.Context, e logging.Entry) error - Close() error -} - -type logger struct { - *logging.Logger - c *logging.Client -} - -func (l logger) Close() error { - return l.c.Close() -} - -var newLoggerInterface = func(ctx context.Context, projectID string, opts ...option.ClientOption) (loggerInterface, error) { - lc, err := logging.NewClient(ctx, projectID, opts...) - if err != nil { - return nil, fmt.Errorf("creating Logging client: %v", err) - } - l := lc.Logger("errorreports") - return logger{l, lc}, nil -} - -type sender interface { - send(ctx context.Context, r *http.Request, message string) - close() error -} - -// errorApiSender sends error reports using the Stackdriver Error Reporting API. -type errorApiSender struct { - apiClient apiInterface - projectID string - serviceContext erpb.ServiceContext -} - -// loggingSender sends error reports using the Stackdriver Logging API. -type loggingSender struct { - logger loggerInterface - projectID string - serviceContext map[string]string -} - -// Client represents a Google Cloud Error Reporting client. -type Client struct { - sender - // RepanicDefault determines whether Catch will re-panic after recovering a - // panic. This behavior can be overridden for an individual call to Catch using - // the Repanic option. - RepanicDefault bool -} - -// NewClient returns a new error reporting client. Generally you will want -// to create a client on program initialization and use it through the lifetime -// of the process. -// -// The service name and version string identify the running program, and are -// included in error reports. The version string can be left empty. -// -// Set useLogging to report errors also using Stackdriver Logging, -// which will result in errors appearing in both the logs and the error -// dashboard. This is useful if you are already a user of Stackdriver Logging. -func NewClient(ctx context.Context, projectID, serviceName, serviceVersion string, useLogging bool, opts ...option.ClientOption) (*Client, error) { - if useLogging { - l, err := newLoggerInterface(ctx, projectID, opts...) - if err != nil { - return nil, fmt.Errorf("creating Logging client: %v", err) - } - sender := &loggingSender{ - logger: l, - projectID: projectID, - serviceContext: map[string]string{ - "service": serviceName, - }, - } - if serviceVersion != "" { - sender.serviceContext["version"] = serviceVersion - } - c := &Client{ - sender: sender, - RepanicDefault: true, - } - return c, nil - } else { - a, err := newApiInterface(ctx, opts...) - if err != nil { - return nil, fmt.Errorf("creating Error Reporting client: %v", err) - } - c := &Client{ - sender: &errorApiSender{ - apiClient: a, - projectID: "projects/" + projectID, - serviceContext: erpb.ServiceContext{ - Service: serviceName, - Version: serviceVersion, - }, - }, - RepanicDefault: true, - } - return c, nil - } -} - -// Close closes any resources held by the client. -// Close should be called when the client is no longer needed. -// It need not be called at program exit. -func (c *Client) Close() error { - err := c.sender.close() - c.sender = nil - return err -} - -// An Option is an optional argument to Catch. -type Option interface { - isOption() -} - -// PanicFlag returns an Option that can inform Catch that a panic has occurred. -// If *p is true when Catch is called, an error report is made even if recover -// returns nil. This allows Catch to report an error for panic(nil). -// If p is nil, the option is ignored. -// -// Here is an example of how to use PanicFlag: -// -// func foo(ctx context.Context, ...) { -// hasPanicked := true -// defer errorsClient.Catch(ctx, errors.PanicFlag(&hasPanicked)) -// ... -// ... -// // We have reached the end of the function, so we're not panicking. -// hasPanicked = false -// } -func PanicFlag(p *bool) Option { return panicFlag{p} } - -type panicFlag struct { - *bool -} - -func (h panicFlag) isOption() {} - -// Repanic returns an Option that determines whether Catch will re-panic after -// it reports an error. This overrides the default in the client. -func Repanic(r bool) Option { return repanic(r) } - -type repanic bool - -func (r repanic) isOption() {} - -// WithRequest returns an Option that informs Catch or Report of an http.Request -// that is being handled. Information from the Request is included in the error -// report, if one is made. -func WithRequest(r *http.Request) Option { return withRequest{r} } - -type withRequest struct { - *http.Request -} - -func (w withRequest) isOption() {} - -// WithMessage returns an Option that sets a message to be included in the error -// report, if one is made. v is converted to a string with fmt.Sprint. -func WithMessage(v ...interface{}) Option { return message(v) } - -type message []interface{} - -func (m message) isOption() {} - -// WithMessagef returns an Option that sets a message to be included in the error -// report, if one is made. format and v are converted to a string with fmt.Sprintf. -func WithMessagef(format string, v ...interface{}) Option { return messagef{format, v} } - -type messagef struct { - format string - v []interface{} -} - -func (m messagef) isOption() {} - -// Catch tries to recover a panic; if it succeeds, it writes an error report. -// It should be called by deferring it, like any other function for recovering -// panics. -// -// Catch can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Catch(ctx context.Context, opt ...Option) { - panicked := false - for _, o := range opt { - switch o := o.(type) { - case panicFlag: - panicked = panicked || o.bool != nil && *o.bool - } - } - x := recover() - if x == nil && !panicked { - return - } - var ( - r *http.Request - shouldRepanic = true - messages = []string{fmt.Sprint(x)} - ) - if c != nil { - shouldRepanic = c.RepanicDefault - } - for _, o := range opt { - switch o := o.(type) { - case repanic: - shouldRepanic = bool(o) - case withRequest: - r = o.Request - case message: - messages = append(messages, fmt.Sprint(o...)) - case messagef: - messages = append(messages, fmt.Sprintf(o.format, o.v...)) - } - } - c.logInternal(ctx, r, true, strings.Join(messages, " ")) - if shouldRepanic { - panic(x) - } -} - -// Report writes an error report unconditionally, instead of only when a panic -// occurs. -// If r is non-nil, information from the Request is included in the error report. -// -// Report can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Report(ctx context.Context, r *http.Request, v ...interface{}) { - c.logInternal(ctx, r, false, fmt.Sprint(v...)) -} - -// Reportf writes an error report unconditionally, instead of only when a panic -// occurs. -// If r is non-nil, information from the Request is included in the error report. -// -// Reportf can be called concurrently with other calls to Catch, Report or Reportf. -func (c *Client) Reportf(ctx context.Context, r *http.Request, format string, v ...interface{}) { - c.logInternal(ctx, r, false, fmt.Sprintf(format, v...)) -} - -func (c *Client) logInternal(ctx context.Context, r *http.Request, isPanic bool, msg string) { - // limit the stack trace to 16k. - var buf [16384]byte - stack := buf[0:runtime.Stack(buf[:], false)] - message := msg + "\n" + chopStack(stack, isPanic) - if c == nil { - log.Println("Error report used nil client:", message) - return - } - c.send(ctx, r, message) -} - -func (s *loggingSender) send(ctx context.Context, r *http.Request, message string) { - payload := map[string]interface{}{ - "eventTime": time.Now().In(time.UTC).Format(time.RFC3339Nano), - "message": message, - "serviceContext": s.serviceContext, - } - if r != nil { - payload["context"] = map[string]interface{}{ - "httpRequest": map[string]interface{}{ - "method": r.Method, - "url": r.Host + r.RequestURI, - "userAgent": r.UserAgent(), - "referrer": r.Referer(), - "remoteIp": r.RemoteAddr, - }, - } - } - e := logging.Entry{ - Severity: logging.Error, - Payload: payload, - } - err := s.logger.LogSync(ctx, e) - if err != nil { - log.Println("Error writing error report:", err, "report:", payload) - } -} - -func (s *loggingSender) close() error { - return s.logger.Close() -} - -func (s *errorApiSender) send(ctx context.Context, r *http.Request, message string) { - time := time.Now() - var errorContext *erpb.ErrorContext - if r != nil { - errorContext = &erpb.ErrorContext{ - HttpRequest: &erpb.HttpRequestContext{ - Method: r.Method, - Url: r.Host + r.RequestURI, - UserAgent: r.UserAgent(), - Referrer: r.Referer(), - RemoteIp: r.RemoteAddr, - }, - } - } - req := erpb.ReportErrorEventRequest{ - ProjectName: s.projectID, - Event: &erpb.ReportedErrorEvent{ - EventTime: ×tamp.Timestamp{ - Seconds: time.Unix(), - Nanos: int32(time.Nanosecond()), - }, - ServiceContext: &s.serviceContext, - Message: message, - Context: errorContext, - }, - } - _, err := s.apiClient.ReportErrorEvent(ctx, &req) - if err != nil { - log.Println("Error writing error report:", err, "report:", message) - } -} - -func (s *errorApiSender) close() error { - return s.apiClient.Close() -} - -// chopStack trims a stack trace so that the function which panics or calls -// Report is first. -func chopStack(s []byte, isPanic bool) string { - var f []byte - if isPanic { - f = []byte("panic(") - } else { - f = []byte("cloud.google.com/go/errors.(*Client).Report") - } - - lfFirst := bytes.IndexByte(s, '\n') - if lfFirst == -1 { - return string(s) - } - stack := s[lfFirst:] - panicLine := bytes.Index(stack, f) - if panicLine == -1 { - return string(s) - } - stack = stack[panicLine+1:] - for i := 0; i < 2; i++ { - nextLine := bytes.IndexByte(stack, '\n') - if nextLine == -1 { - return string(s) - } - stack = stack[nextLine+1:] - } - return string(s[:lfFirst+1]) + string(stack) -} diff --git a/vendor/cloud.google.com/go/errors/errors_test.go b/vendor/cloud.google.com/go/errors/errors_test.go deleted file mode 100644 index 1494be7e2..000000000 --- a/vendor/cloud.google.com/go/errors/errors_test.go +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package errors - -import ( - "bytes" - "errors" - "log" - "strings" - "testing" - - gax "github.com/googleapis/gax-go" - - "golang.org/x/net/context" - "google.golang.org/api/option" - erpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1" -) - -const testProjectID = "testproject" - -type fakeReportErrorsClient struct { - req *erpb.ReportErrorEventRequest - fail bool -} - -func (c *fakeReportErrorsClient) ReportErrorEvent(ctx context.Context, req *erpb.ReportErrorEventRequest, _ ...gax.CallOption) (*erpb.ReportErrorEventResponse, error) { - if c.fail { - return nil, errors.New("request failed") - } - c.req = req - return &erpb.ReportErrorEventResponse{}, nil -} - -func (c *fakeReportErrorsClient) Close() error { - return nil -} - -func newTestClient(c *fakeReportErrorsClient) *Client { - newApiInterface = func(ctx context.Context, opts ...option.ClientOption) (apiInterface, error) { - return c, nil - } - t, err := NewClient(context.Background(), testProjectID, "myservice", "v1.000", false) - if err != nil { - panic(err) - } - t.RepanicDefault = false - return t -} - -var ctx context.Context - -func init() { - ctx = context.Background() -} - -func TestCatchNothing(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx) -} - -func commonChecks(t *testing.T, req *erpb.ReportErrorEventRequest, panickingFunction string) { - if req.Event.ServiceContext.Service != "myservice" { - t.Errorf("error report didn't contain service name") - } - if req.Event.ServiceContext.Version != "v1.000" { - t.Errorf("error report didn't contain version name") - } - if !strings.Contains(req.Event.Message, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(req.Event.Message, panickingFunction) { - t.Errorf("error report didn't contain stack trace") - } -} - -func TestCatchPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errors.TestCatchPanic") - if !strings.Contains(r.Event.Message, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchPanicNilClient(t *testing.T) { - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "TestCatchPanicNilClient") { - t.Errorf("error report didn't contain recovered value") - } - }() - var c *Client - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestLogFailedReports(t *testing.T) { - fc := &fakeReportErrorsClient{fail: true} - c := newTestClient(fc) - buf := new(bytes.Buffer) - log.SetOutput(buf) - defer func() { - recover() - body := buf.String() - if !strings.Contains(body, "hello, error") { - t.Errorf("error report didn't contain message") - } - if !strings.Contains(body, "errors.TestLogFailedReports") { - t.Errorf("error report didn't contain stack trace") - } - if !strings.Contains(body, "divide by zero") { - t.Errorf("error report didn't contain recovered value") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - var x int - x = x / x -} - -func TestCatchNilPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errors.TestCatchNilPanic") - if !strings.Contains(r.Event.Message, "nil") { - t.Errorf("error report didn't contain recovered value") - } - }() - b := true - defer c.Catch(ctx, WithMessage("hello, error"), PanicFlag(&b)) - panic(nil) -} - -func TestNotCatchNilPanic(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - defer func() { - r := fc.req - if r != nil { - t.Errorf("got error report, expected none") - } - }() - defer c.Catch(ctx, WithMessage("hello, error")) - panic(nil) -} - -func TestReport(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - c.Report(ctx, nil, "hello, ", "error") - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errors.TestReport") -} - -func TestReportf(t *testing.T) { - fc := &fakeReportErrorsClient{} - c := newTestClient(fc) - c.Reportf(ctx, nil, "hello, error 2+%d=%d", 2, 2+2) - r := fc.req - if r == nil { - t.Fatalf("got no error report, expected one") - } - commonChecks(t, r, "errors.TestReportf") - if !strings.Contains(r.Event.Message, "2+2=4") { - t.Errorf("error report didn't contain formatted message") - } -} diff --git a/vendor/cloud.google.com/go/errors/stack_test.go b/vendor/cloud.google.com/go/errors/stack_test.go deleted file mode 100644 index 25cd4c60b..000000000 --- a/vendor/cloud.google.com/go/errors/stack_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2016 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package errors - -import "testing" - -func TestChopStack(t *testing.T) { - for _, test := range []struct { - name string - in []byte - expected string - isPanic bool - }{ - { - name: "Catch", - in: []byte(`goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errors.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b -cloud.google.com/go/errors.(*Client).Catch() - /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed -panic() - /gopath/src/runtime/panic.go:458 +0x243 -cloud.google.com/go/errors_test.TestCatchPanic() - /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`), - expected: `goroutine 20 [running]: -cloud.google.com/go/errors_test.TestCatchPanic() - /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`, - isPanic: true, - }, - { - name: "function not found", - in: []byte(`goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errors.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b -cloud.google.com/go/errors.(*Client).Catch() - /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed -cloud.google.com/go/errors_test.TestCatchPanic() - /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`), - expected: `goroutine 20 [running]: -runtime/debug.Stack() - /gopath/src/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errors.(*Client).logInternal() - /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b -cloud.google.com/go/errors.(*Client).Catch() - /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed -cloud.google.com/go/errors_test.TestCatchPanic() - /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171 -testing.tRunner() - /gopath/src/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/src/testing/testing.go:646 +0x2ec -`, - isPanic: true, - }, - { - name: "Report", - in: []byte(` goroutine 39 [running]: -runtime/debug.Stack() - /gopath/runtime/debug/stack.go:24 +0x79 -cloud.google.com/go/errors.(*Client).logInternal() - /gopath/cloud.google.com/go/errors/errors.go:259 +0x18b -cloud.google.com/go/errors.(*Client).Report() - /gopath/cloud.google.com/go/errors/errors.go:248 +0x4ed -cloud.google.com/go/errors_test.TestReport() - /gopath/cloud.google.com/go/errors/errors_test.go:137 +0x2a1 -testing.tRunner() - /gopath/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/testing/testing.go:646 +0x2ec -`), - expected: ` goroutine 39 [running]: -cloud.google.com/go/errors_test.TestReport() - /gopath/cloud.google.com/go/errors/errors_test.go:137 +0x2a1 -testing.tRunner() - /gopath/testing/testing.go:610 +0x81 -created by testing.(*T).Run - /gopath/testing/testing.go:646 +0x2ec -`, - isPanic: false, - }, - } { - out := chopStack(test.in, test.isPanic) - if out != test.expected { - t.Errorf("case %q: chopStack(%q, %t): got %q want %q", test.name, test.in, test.isPanic, out, test.expected) - } - } -} diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go new file mode 100644 index 000000000..ef585cf09 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go @@ -0,0 +1,44 @@ +// Copyright 2017, Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// AUTO-GENERATED CODE. DO NOT EDIT. + +// Package firestore is an auto-generated package for the +// Google Cloud Firestore API. +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// +// Use the client at cloud.google.com/go/firestore in preference to this. +package firestore + +import ( + "golang.org/x/net/context" + "google.golang.org/grpc/metadata" +) + +func insertXGoog(ctx context.Context, val []string) context.Context { + md, _ := metadata.FromOutgoingContext(ctx) + md = md.Copy() + md["x-goog-api-client"] = val + return metadata.NewOutgoingContext(ctx, md) +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + } +} diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go new file mode 100644 index 000000000..b5361563a --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go @@ -0,0 +1,544 @@ +// Copyright 2017, Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// AUTO-GENERATED CODE. DO NOT EDIT. + +package firestore + +import ( + "math" + "time" + + "cloud.google.com/go/internal/version" + firestorepb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + gax "github.com/googleapis/gax-go" + "golang.org/x/net/context" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/transport" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +// CallOptions contains the retry settings for each method of Client. +type CallOptions struct { + GetDocument []gax.CallOption + ListDocuments []gax.CallOption + CreateDocument []gax.CallOption + UpdateDocument []gax.CallOption + DeleteDocument []gax.CallOption + BatchGetDocuments []gax.CallOption + BeginTransaction []gax.CallOption + Commit []gax.CallOption + Rollback []gax.CallOption + RunQuery []gax.CallOption + Write []gax.CallOption + Listen []gax.CallOption + ListCollectionIds []gax.CallOption +} + +func defaultClientOptions() []option.ClientOption { + return []option.ClientOption{ + option.WithEndpoint("firestore.googleapis.com:443"), + option.WithScopes(DefaultAuthScopes()...), + } +} + +func defaultCallOptions() *CallOptions { + retry := map[[2]string][]gax.CallOption{ + {"default", "idempotent"}: { + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.3, + }) + }), + }, + {"streaming", "idempotent"}: { + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.3, + }) + }), + }, + } + return &CallOptions{ + GetDocument: retry[[2]string{"default", "idempotent"}], + ListDocuments: retry[[2]string{"default", "idempotent"}], + CreateDocument: retry[[2]string{"default", "non_idempotent"}], + UpdateDocument: retry[[2]string{"default", "non_idempotent"}], + DeleteDocument: retry[[2]string{"default", "idempotent"}], + BatchGetDocuments: retry[[2]string{"streaming", "idempotent"}], + BeginTransaction: retry[[2]string{"default", "idempotent"}], + Commit: retry[[2]string{"default", "non_idempotent"}], + Rollback: retry[[2]string{"default", "idempotent"}], + RunQuery: retry[[2]string{"default", "idempotent"}], + Write: retry[[2]string{"streaming", "non_idempotent"}], + Listen: retry[[2]string{"streaming", "idempotent"}], + ListCollectionIds: retry[[2]string{"default", "idempotent"}], + } +} + +// Client is a client for interacting with Google Cloud Firestore API. +type Client struct { + // The connection to the service. + conn *grpc.ClientConn + + // The gRPC API client. + client firestorepb.FirestoreClient + + // The call options for this service. + CallOptions *CallOptions + + // The metadata to be sent with each request. + xGoogHeader []string +} + +// NewClient creates a new firestore client. +// +// The Cloud Firestore service. +// +// This service exposes several types of comparable timestamps: +// +// create_time - The time at which a document was created. Changes only +// when a document is deleted, then re-created. Increases in a strict +// monotonic fashion. +// +// update_time - The time at which a document was last updated. Changes +// every time a document is modified. Does not change when a write results +// in no modifications. Increases in a strict monotonic fashion. +// +// read_time - The time at which a particular state was observed. Used +// to denote a consistent snapshot of the database or the time at which a +// Document was observed to not exist. +// +// commit_time - The time at which the writes in a transaction were +// committed. Any read with an equal or greater read_time is guaranteed +// to see the effects of the transaction. +func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...) + if err != nil { + return nil, err + } + c := &Client{ + conn: conn, + CallOptions: defaultCallOptions(), + + client: firestorepb.NewFirestoreClient(conn), + } + c.SetGoogleClientInfo() + return c, nil +} + +// Connection returns the client's connection to the API service. +func (c *Client) Connection() *grpc.ClientConn { + return c.conn +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *Client) Close() error { + return c.conn.Close() +} + +// SetGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *Client) SetGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", version.Go()}, keyval...) + kv = append(kv, "gapic", version.Repo, "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeader = []string{gax.XGoogHeader(kv...)} +} + +// DatabaseRootPath returns the path for the database root resource. +func DatabaseRootPath(project, database string) string { + return "" + + "projects/" + + project + + "/databases/" + + database + + "" +} + +// DocumentRootPath returns the path for the document root resource. +func DocumentRootPath(project, database string) string { + return "" + + "projects/" + + project + + "/databases/" + + database + + "/documents" + + "" +} + +// DocumentPathPath returns the path for the document path resource. +func DocumentPathPath(project, database, documentPath string) string { + return "" + + "projects/" + + project + + "/databases/" + + database + + "/documents/" + + documentPath + + "" +} + +// AnyPathPath returns the path for the any path resource. +func AnyPathPath(project, database, document, anyPath string) string { + return "" + + "projects/" + + project + + "/databases/" + + database + + "/documents/" + + document + + "/" + + anyPath + + "" +} + +// GetDocument gets a single document. +func (c *Client) GetDocument(ctx context.Context, req *firestorepb.GetDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.GetDocument[0:len(c.CallOptions.GetDocument):len(c.CallOptions.GetDocument)], opts...) + var resp *firestorepb.Document + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetDocument(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// ListDocuments lists documents. +func (c *Client) ListDocuments(ctx context.Context, req *firestorepb.ListDocumentsRequest, opts ...gax.CallOption) *DocumentIterator { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.ListDocuments[0:len(c.CallOptions.ListDocuments):len(c.CallOptions.ListDocuments)], opts...) + it := &DocumentIterator{} + it.InternalFetch = func(pageSize int, pageToken string) ([]*firestorepb.Document, string, error) { + var resp *firestorepb.ListDocumentsResponse + req.PageToken = pageToken + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListDocuments(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + return resp.Documents, resp.NextPageToken, nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + return it +} + +// CreateDocument creates a new document. +func (c *Client) CreateDocument(ctx context.Context, req *firestorepb.CreateDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.CreateDocument[0:len(c.CallOptions.CreateDocument):len(c.CallOptions.CreateDocument)], opts...) + var resp *firestorepb.Document + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateDocument(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// UpdateDocument updates or inserts a document. +func (c *Client) UpdateDocument(ctx context.Context, req *firestorepb.UpdateDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.UpdateDocument[0:len(c.CallOptions.UpdateDocument):len(c.CallOptions.UpdateDocument)], opts...) + var resp *firestorepb.Document + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateDocument(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// DeleteDocument deletes a document. +func (c *Client) DeleteDocument(ctx context.Context, req *firestorepb.DeleteDocumentRequest, opts ...gax.CallOption) error { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.DeleteDocument[0:len(c.CallOptions.DeleteDocument):len(c.CallOptions.DeleteDocument)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.client.DeleteDocument(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +// BatchGetDocuments gets multiple documents. +// +// Documents returned by this method are not guaranteed to be returned in the +// same order that they were requested. +func (c *Client) BatchGetDocuments(ctx context.Context, req *firestorepb.BatchGetDocumentsRequest, opts ...gax.CallOption) (firestorepb.Firestore_BatchGetDocumentsClient, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.BatchGetDocuments[0:len(c.CallOptions.BatchGetDocuments):len(c.CallOptions.BatchGetDocuments)], opts...) + var resp firestorepb.Firestore_BatchGetDocumentsClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.BatchGetDocuments(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// BeginTransaction starts a new transaction. +func (c *Client) BeginTransaction(ctx context.Context, req *firestorepb.BeginTransactionRequest, opts ...gax.CallOption) (*firestorepb.BeginTransactionResponse, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.BeginTransaction[0:len(c.CallOptions.BeginTransaction):len(c.CallOptions.BeginTransaction)], opts...) + var resp *firestorepb.BeginTransactionResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.BeginTransaction(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// Commit commits a transaction, while optionally updating documents. +func (c *Client) Commit(ctx context.Context, req *firestorepb.CommitRequest, opts ...gax.CallOption) (*firestorepb.CommitResponse, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.Commit[0:len(c.CallOptions.Commit):len(c.CallOptions.Commit)], opts...) + var resp *firestorepb.CommitResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.Commit(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// Rollback rolls back a transaction. +func (c *Client) Rollback(ctx context.Context, req *firestorepb.RollbackRequest, opts ...gax.CallOption) error { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.Rollback[0:len(c.CallOptions.Rollback):len(c.CallOptions.Rollback)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.client.Rollback(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +// RunQuery runs a query. +func (c *Client) RunQuery(ctx context.Context, req *firestorepb.RunQueryRequest, opts ...gax.CallOption) (firestorepb.Firestore_RunQueryClient, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.RunQuery[0:len(c.CallOptions.RunQuery):len(c.CallOptions.RunQuery)], opts...) + var resp firestorepb.Firestore_RunQueryClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.RunQuery(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// Write streams batches of document updates and deletes, in order. +func (c *Client) Write(ctx context.Context, opts ...gax.CallOption) (firestorepb.Firestore_WriteClient, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.Write[0:len(c.CallOptions.Write):len(c.CallOptions.Write)], opts...) + var resp firestorepb.Firestore_WriteClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.Write(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// Listen listens to changes. +func (c *Client) Listen(ctx context.Context, opts ...gax.CallOption) (firestorepb.Firestore_ListenClient, error) { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.Listen[0:len(c.CallOptions.Listen):len(c.CallOptions.Listen)], opts...) + var resp firestorepb.Firestore_ListenClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.Listen(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// ListCollectionIds lists all the collection IDs underneath a document. +func (c *Client) ListCollectionIds(ctx context.Context, req *firestorepb.ListCollectionIdsRequest, opts ...gax.CallOption) *StringIterator { + ctx = insertXGoog(ctx, c.xGoogHeader) + opts = append(c.CallOptions.ListCollectionIds[0:len(c.CallOptions.ListCollectionIds):len(c.CallOptions.ListCollectionIds)], opts...) + it := &StringIterator{} + it.InternalFetch = func(pageSize int, pageToken string) ([]string, string, error) { + var resp *firestorepb.ListCollectionIdsResponse + req.PageToken = pageToken + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListCollectionIds(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + return resp.CollectionIds, resp.NextPageToken, nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + return it +} + +// DocumentIterator manages a stream of *firestorepb.Document. +type DocumentIterator struct { + items []*firestorepb.Document + pageInfo *iterator.PageInfo + nextFunc func() error + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*firestorepb.Document, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DocumentIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *DocumentIterator) Next() (*firestorepb.Document, error) { + var item *firestorepb.Document + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DocumentIterator) bufLen() int { + return len(it.items) +} + +func (it *DocumentIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// StringIterator manages a stream of string. +type StringIterator struct { + items []string + pageInfo *iterator.PageInfo + nextFunc func() error + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []string, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *StringIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *StringIterator) Next() (string, error) { + var item string + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *StringIterator) bufLen() int { + return len(it.items) +} + +func (it *StringIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client_example_test.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client_example_test.go new file mode 100644 index 000000000..4038db2f0 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client_example_test.go @@ -0,0 +1,329 @@ +// Copyright 2017, Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// AUTO-GENERATED CODE. DO NOT EDIT. + +package firestore_test + +import ( + "io" + + firestore "cloud.google.com/go/firestore/apiv1beta1" + firestorepb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "golang.org/x/net/context" + "google.golang.org/api/iterator" +) + +func ExampleNewClient() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use client. + _ = c +} + +func ExampleClient_GetDocument() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.GetDocumentRequest{ + // TODO: Fill request struct fields. + } + resp, err := c.GetDocument(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListDocuments() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.ListDocumentsRequest{ + // TODO: Fill request struct fields. + } + it := c.ListDocuments(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_CreateDocument() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.CreateDocumentRequest{ + // TODO: Fill request struct fields. + } + resp, err := c.CreateDocument(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateDocument() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.UpdateDocumentRequest{ + // TODO: Fill request struct fields. + } + resp, err := c.UpdateDocument(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteDocument() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.DeleteDocumentRequest{ + // TODO: Fill request struct fields. + } + err = c.DeleteDocument(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_BatchGetDocuments() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.BatchGetDocumentsRequest{ + // TODO: Fill request struct fields. + } + stream, err := c.BatchGetDocuments(ctx, req) + if err != nil { + // TODO: Handle error. + } + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_BeginTransaction() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.BeginTransactionRequest{ + // TODO: Fill request struct fields. + } + resp, err := c.BeginTransaction(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_Commit() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.CommitRequest{ + // TODO: Fill request struct fields. + } + resp, err := c.Commit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_Rollback() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.RollbackRequest{ + // TODO: Fill request struct fields. + } + err = c.Rollback(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_RunQuery() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.RunQueryRequest{ + // TODO: Fill request struct fields. + } + stream, err := c.RunQuery(ctx, req) + if err != nil { + // TODO: Handle error. + } + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_Write() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + stream, err := c.Write(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*firestorepb.WriteRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_Listen() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + stream, err := c.Listen(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*firestorepb.ListenRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListCollectionIds() { + ctx := context.Background() + c, err := firestore.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + + req := &firestorepb.ListCollectionIdsRequest{ + // TODO: Fill request struct fields. + } + it := c.ListCollectionIds(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/mock_test.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/mock_test.go new file mode 100644 index 000000000..9db3a4977 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/mock_test.go @@ -0,0 +1,1154 @@ +// Copyright 2017, Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// AUTO-GENERATED CODE. DO NOT EDIT. + +package firestore + +import ( + firestorepb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + emptypb "github.com/golang/protobuf/ptypes/empty" +) + +import ( + "flag" + "fmt" + "io" + "log" + "net" + "os" + "strings" + "testing" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + "golang.org/x/net/context" + "google.golang.org/api/option" + status "google.golang.org/genproto/googleapis/rpc/status" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" + gstatus "google.golang.org/grpc/status" +) + +var _ = io.EOF +var _ = ptypes.MarshalAny +var _ status.Status + +type mockFirestoreServer struct { + // Embed for forward compatibility. + // Tests will keep working if more methods are added + // in the future. + firestorepb.FirestoreServer + + reqs []proto.Message + + // If set, all calls return this error. + err error + + // responses to return if err == nil + resps []proto.Message +} + +func (s *mockFirestoreServer) GetDocument(ctx context.Context, req *firestorepb.GetDocumentRequest) (*firestorepb.Document, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.Document), nil +} + +func (s *mockFirestoreServer) ListDocuments(ctx context.Context, req *firestorepb.ListDocumentsRequest) (*firestorepb.ListDocumentsResponse, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.ListDocumentsResponse), nil +} + +func (s *mockFirestoreServer) CreateDocument(ctx context.Context, req *firestorepb.CreateDocumentRequest) (*firestorepb.Document, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.Document), nil +} + +func (s *mockFirestoreServer) UpdateDocument(ctx context.Context, req *firestorepb.UpdateDocumentRequest) (*firestorepb.Document, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.Document), nil +} + +func (s *mockFirestoreServer) DeleteDocument(ctx context.Context, req *firestorepb.DeleteDocumentRequest) (*emptypb.Empty, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*emptypb.Empty), nil +} + +func (s *mockFirestoreServer) BatchGetDocuments(req *firestorepb.BatchGetDocumentsRequest, stream firestorepb.Firestore_BatchGetDocumentsServer) error { + md, _ := metadata.FromIncomingContext(stream.Context()) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return s.err + } + for _, v := range s.resps { + if err := stream.Send(v.(*firestorepb.BatchGetDocumentsResponse)); err != nil { + return err + } + } + return nil +} + +func (s *mockFirestoreServer) BeginTransaction(ctx context.Context, req *firestorepb.BeginTransactionRequest) (*firestorepb.BeginTransactionResponse, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.BeginTransactionResponse), nil +} + +func (s *mockFirestoreServer) Commit(ctx context.Context, req *firestorepb.CommitRequest) (*firestorepb.CommitResponse, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.CommitResponse), nil +} + +func (s *mockFirestoreServer) Rollback(ctx context.Context, req *firestorepb.RollbackRequest) (*emptypb.Empty, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*emptypb.Empty), nil +} + +func (s *mockFirestoreServer) RunQuery(req *firestorepb.RunQueryRequest, stream firestorepb.Firestore_RunQueryServer) error { + md, _ := metadata.FromIncomingContext(stream.Context()) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return s.err + } + for _, v := range s.resps { + if err := stream.Send(v.(*firestorepb.RunQueryResponse)); err != nil { + return err + } + } + return nil +} + +func (s *mockFirestoreServer) Write(stream firestorepb.Firestore_WriteServer) error { + md, _ := metadata.FromIncomingContext(stream.Context()) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + for { + if req, err := stream.Recv(); err == io.EOF { + break + } else if err != nil { + return err + } else { + s.reqs = append(s.reqs, req) + } + } + if s.err != nil { + return s.err + } + for _, v := range s.resps { + if err := stream.Send(v.(*firestorepb.WriteResponse)); err != nil { + return err + } + } + return nil +} + +func (s *mockFirestoreServer) Listen(stream firestorepb.Firestore_ListenServer) error { + md, _ := metadata.FromIncomingContext(stream.Context()) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + for { + if req, err := stream.Recv(); err == io.EOF { + break + } else if err != nil { + return err + } else { + s.reqs = append(s.reqs, req) + } + } + if s.err != nil { + return s.err + } + for _, v := range s.resps { + if err := stream.Send(v.(*firestorepb.ListenResponse)); err != nil { + return err + } + } + return nil +} + +func (s *mockFirestoreServer) ListCollectionIds(ctx context.Context, req *firestorepb.ListCollectionIdsRequest) (*firestorepb.ListCollectionIdsResponse, error) { + md, _ := metadata.FromIncomingContext(ctx) + if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { + return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) + } + s.reqs = append(s.reqs, req) + if s.err != nil { + return nil, s.err + } + return s.resps[0].(*firestorepb.ListCollectionIdsResponse), nil +} + +// clientOpt is the option tests should use to connect to the test server. +// It is initialized by TestMain. +var clientOpt option.ClientOption + +var ( + mockFirestore mockFirestoreServer +) + +func TestMain(m *testing.M) { + flag.Parse() + + serv := grpc.NewServer() + firestorepb.RegisterFirestoreServer(serv, &mockFirestore) + + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + log.Fatal(err) + } + go serv.Serve(lis) + + conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure()) + if err != nil { + log.Fatal(err) + } + clientOpt = option.WithGRPCConn(conn) + + os.Exit(m.Run()) +} + +func TestFirestoreGetDocument(t *testing.T) { + var name2 string = "name2-1052831874" + var expectedResponse = &firestorepb.Document{ + Name: name2, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedName string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.GetDocumentRequest{ + Name: formattedName, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.GetDocument(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreGetDocumentError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedName string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.GetDocumentRequest{ + Name: formattedName, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.GetDocument(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreListDocuments(t *testing.T) { + var nextPageToken string = "" + var documentsElement *firestorepb.Document = &firestorepb.Document{} + var documents = []*firestorepb.Document{documentsElement} + var expectedResponse = &firestorepb.ListDocumentsResponse{ + NextPageToken: nextPageToken, + Documents: documents, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var collectionId string = "collectionId-821242276" + var request = &firestorepb.ListDocumentsRequest{ + Parent: formattedParent, + CollectionId: collectionId, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.ListDocuments(context.Background(), request).Next() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + want := (interface{})(expectedResponse.Documents[0]) + got := (interface{})(resp) + var ok bool + + switch want := (want).(type) { + case proto.Message: + ok = proto.Equal(want, got.(proto.Message)) + default: + ok = want == got + } + if !ok { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreListDocumentsError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var collectionId string = "collectionId-821242276" + var request = &firestorepb.ListDocumentsRequest{ + Parent: formattedParent, + CollectionId: collectionId, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.ListDocuments(context.Background(), request).Next() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreCreateDocument(t *testing.T) { + var name string = "name3373707" + var expectedResponse = &firestorepb.Document{ + Name: name, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var collectionId string = "collectionId-821242276" + var documentId string = "documentId506676927" + var document *firestorepb.Document = &firestorepb.Document{} + var request = &firestorepb.CreateDocumentRequest{ + Parent: formattedParent, + CollectionId: collectionId, + DocumentId: documentId, + Document: document, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.CreateDocument(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreCreateDocumentError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var collectionId string = "collectionId-821242276" + var documentId string = "documentId506676927" + var document *firestorepb.Document = &firestorepb.Document{} + var request = &firestorepb.CreateDocumentRequest{ + Parent: formattedParent, + CollectionId: collectionId, + DocumentId: documentId, + Document: document, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.CreateDocument(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreUpdateDocument(t *testing.T) { + var name string = "name3373707" + var expectedResponse = &firestorepb.Document{ + Name: name, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var document *firestorepb.Document = &firestorepb.Document{} + var updateMask *firestorepb.DocumentMask = &firestorepb.DocumentMask{} + var request = &firestorepb.UpdateDocumentRequest{ + Document: document, + UpdateMask: updateMask, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.UpdateDocument(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreUpdateDocumentError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var document *firestorepb.Document = &firestorepb.Document{} + var updateMask *firestorepb.DocumentMask = &firestorepb.DocumentMask{} + var request = &firestorepb.UpdateDocumentRequest{ + Document: document, + UpdateMask: updateMask, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.UpdateDocument(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreDeleteDocument(t *testing.T) { + var expectedResponse *emptypb.Empty = &emptypb.Empty{} + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedName string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.DeleteDocumentRequest{ + Name: formattedName, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + err = c.DeleteDocument(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + +} + +func TestFirestoreDeleteDocumentError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedName string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.DeleteDocumentRequest{ + Name: formattedName, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + err = c.DeleteDocument(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } +} +func TestFirestoreBatchGetDocuments(t *testing.T) { + var missing string = "missing1069449574" + var transaction []byte = []byte("-34") + var expectedResponse = &firestorepb.BatchGetDocumentsResponse{ + Result: &firestorepb.BatchGetDocumentsResponse_Missing{ + Missing: missing, + }, + Transaction: transaction, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var documents []string = nil + var request = &firestorepb.BatchGetDocumentsRequest{ + Database: formattedDatabase, + Documents: documents, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.BatchGetDocuments(context.Background(), request) + if err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreBatchGetDocumentsError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var documents []string = nil + var request = &firestorepb.BatchGetDocumentsRequest{ + Database: formattedDatabase, + Documents: documents, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.BatchGetDocuments(context.Background(), request) + if err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreBeginTransaction(t *testing.T) { + var transaction []byte = []byte("-34") + var expectedResponse = &firestorepb.BeginTransactionResponse{ + Transaction: transaction, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.BeginTransactionRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.BeginTransaction(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreBeginTransactionError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.BeginTransactionRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.BeginTransaction(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreCommit(t *testing.T) { + var expectedResponse *firestorepb.CommitResponse = &firestorepb.CommitResponse{} + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var writes []*firestorepb.Write = nil + var request = &firestorepb.CommitRequest{ + Database: formattedDatabase, + Writes: writes, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.Commit(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreCommitError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var writes []*firestorepb.Write = nil + var request = &firestorepb.CommitRequest{ + Database: formattedDatabase, + Writes: writes, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.Commit(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreRollback(t *testing.T) { + var expectedResponse *emptypb.Empty = &emptypb.Empty{} + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var transaction []byte = []byte("-34") + var request = &firestorepb.RollbackRequest{ + Database: formattedDatabase, + Transaction: transaction, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + err = c.Rollback(context.Background(), request) + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + +} + +func TestFirestoreRollbackError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var transaction []byte = []byte("-34") + var request = &firestorepb.RollbackRequest{ + Database: formattedDatabase, + Transaction: transaction, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + err = c.Rollback(context.Background(), request) + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } +} +func TestFirestoreRunQuery(t *testing.T) { + var transaction []byte = []byte("-34") + var skippedResults int32 = 880286183 + var expectedResponse = &firestorepb.RunQueryResponse{ + Transaction: transaction, + SkippedResults: skippedResults, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.RunQueryRequest{ + Parent: formattedParent, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.RunQuery(context.Background(), request) + if err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreRunQueryError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.RunQueryRequest{ + Parent: formattedParent, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.RunQuery(context.Background(), request) + if err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreWrite(t *testing.T) { + var streamId string = "streamId-315624902" + var streamToken []byte = []byte("122") + var expectedResponse = &firestorepb.WriteResponse{ + StreamId: streamId, + StreamToken: streamToken, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.WriteRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.Write(context.Background()) + if err != nil { + t.Fatal(err) + } + if err := stream.Send(request); err != nil { + t.Fatal(err) + } + if err := stream.CloseSend(); err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreWriteError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.WriteRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.Write(context.Background()) + if err != nil { + t.Fatal(err) + } + if err := stream.Send(request); err != nil { + t.Fatal(err) + } + if err := stream.CloseSend(); err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreListen(t *testing.T) { + var expectedResponse *firestorepb.ListenResponse = &firestorepb.ListenResponse{} + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.ListenRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.Listen(context.Background()) + if err != nil { + t.Fatal(err) + } + if err := stream.Send(request); err != nil { + t.Fatal(err) + } + if err := stream.CloseSend(); err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + if want, got := expectedResponse, resp; !proto.Equal(want, got) { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreListenError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedDatabase string = DatabaseRootPath("[PROJECT]", "[DATABASE]") + var request = &firestorepb.ListenRequest{ + Database: formattedDatabase, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + stream, err := c.Listen(context.Background()) + if err != nil { + t.Fatal(err) + } + if err := stream.Send(request); err != nil { + t.Fatal(err) + } + if err := stream.CloseSend(); err != nil { + t.Fatal(err) + } + resp, err := stream.Recv() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} +func TestFirestoreListCollectionIds(t *testing.T) { + var nextPageToken string = "" + var collectionIdsElement string = "collectionIdsElement1368994900" + var collectionIds = []string{collectionIdsElement} + var expectedResponse = &firestorepb.ListCollectionIdsResponse{ + NextPageToken: nextPageToken, + CollectionIds: collectionIds, + } + + mockFirestore.err = nil + mockFirestore.reqs = nil + + mockFirestore.resps = append(mockFirestore.resps[:0], expectedResponse) + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.ListCollectionIdsRequest{ + Parent: formattedParent, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.ListCollectionIds(context.Background(), request).Next() + + if err != nil { + t.Fatal(err) + } + + if want, got := request, mockFirestore.reqs[0]; !proto.Equal(want, got) { + t.Errorf("wrong request %q, want %q", got, want) + } + + want := (interface{})(expectedResponse.CollectionIds[0]) + got := (interface{})(resp) + var ok bool + + switch want := (want).(type) { + case proto.Message: + ok = proto.Equal(want, got.(proto.Message)) + default: + ok = want == got + } + if !ok { + t.Errorf("wrong response %q, want %q)", got, want) + } +} + +func TestFirestoreListCollectionIdsError(t *testing.T) { + errCode := codes.PermissionDenied + mockFirestore.err = gstatus.Error(errCode, "test error") + + var formattedParent string = AnyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]") + var request = &firestorepb.ListCollectionIdsRequest{ + Parent: formattedParent, + } + + c, err := NewClient(context.Background(), clientOpt) + if err != nil { + t.Fatal(err) + } + + resp, err := c.ListCollectionIds(context.Background(), request).Next() + + if st, ok := gstatus.FromError(err); !ok { + t.Errorf("got error %v, expected grpc error", err) + } else if c := st.Code(); c != errCode { + t.Errorf("got error code %q, want %q", c, errCode) + } + _ = resp +} diff --git a/vendor/cloud.google.com/go/firestore/client.go b/vendor/cloud.google.com/go/firestore/client.go new file mode 100644 index 000000000..c7436c1fc --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/client.go @@ -0,0 +1,245 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "io" + "strings" + "time" + + "google.golang.org/api/iterator" + + vkit "cloud.google.com/go/firestore/apiv1beta1" + + "cloud.google.com/go/internal/version" + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes" + "golang.org/x/net/context" + "google.golang.org/api/option" + "google.golang.org/grpc/metadata" +) + +// resourcePrefixHeader is the name of the metadata header used to indicate +// the resource being operated on. +const resourcePrefixHeader = "google-cloud-resource-prefix" + +// A Client provides access to the Firestore service. +type Client struct { + c *vkit.Client + projectID string + databaseID string // A client is tied to a single database. +} + +// NewClient creates a new Firestore client that uses the given project. +func NewClient(ctx context.Context, projectID string, opts ...option.ClientOption) (*Client, error) { + vc, err := vkit.NewClient(ctx, opts...) + if err != nil { + return nil, err + } + vc.SetGoogleClientInfo("gccl", version.Repo) + c := &Client{ + c: vc, + projectID: projectID, + databaseID: "(default)", // always "(default)", for now + } + return c, nil + +} + +// Close closes any resources held by the client. +// +// Close need not be called at program exit. +func (c *Client) Close() error { + return c.c.Close() +} + +func (c *Client) path() string { + return fmt.Sprintf("projects/%s/databases/%s", c.projectID, c.databaseID) +} + +func withResourceHeader(ctx context.Context, resource string) context.Context { + md, _ := metadata.FromOutgoingContext(ctx) + md = md.Copy() + md[resourcePrefixHeader] = []string{resource} + return metadata.NewOutgoingContext(ctx, md) +} + +// Collection creates a reference to a collection with the given path. +// A path is a sequence of IDs separated by slashes. +// +// Collection returns nil if path contains an even number of IDs or any ID is empty. +func (c *Client) Collection(path string) *CollectionRef { + coll, _ := c.idsToRef(strings.Split(path, "/"), c.path()) + return coll +} + +// Doc creates a reference to a document with the given path. +// A path is a sequence of IDs separated by slashes. +// +// Doc returns nil if path contains an odd number of IDs or any ID is empty. +func (c *Client) Doc(path string) *DocumentRef { + _, doc := c.idsToRef(strings.Split(path, "/"), c.path()) + return doc +} + +func (c *Client) idsToRef(IDs []string, dbPath string) (*CollectionRef, *DocumentRef) { + if len(IDs) == 0 { + return nil, nil + } + for _, id := range IDs { + if id == "" { + return nil, nil + } + } + coll := newTopLevelCollRef(c, dbPath, IDs[0]) + i := 1 + for i < len(IDs) { + doc := newDocRef(coll, IDs[i]) + i++ + if i == len(IDs) { + return nil, doc + } + coll = newCollRefWithParent(c, doc, IDs[i]) + i++ + } + return coll, nil +} + +// GetAll retrieves multiple documents with a single call. The DocumentSnapshots are +// returned in the order of the given DocumentRefs. +// +// If a document is not present, the corresponding DocumentSnapshot will be nil. +func (c *Client) GetAll(ctx context.Context, docRefs []*DocumentRef) ([]*DocumentSnapshot, error) { + if err := checkTransaction(ctx); err != nil { + return nil, err + } + var docNames []string + for _, dr := range docRefs { + if dr == nil { + return nil, errNilDocRef + } + docNames = append(docNames, dr.Path) + } + req := &pb.BatchGetDocumentsRequest{ + Database: c.path(), + Documents: docNames, + } + streamClient, err := c.c.BatchGetDocuments(withResourceHeader(ctx, req.Database), req) + if err != nil { + return nil, err + } + + // Read results from the stream and add them to a map. + docMap := map[string]*pb.Document{} + for { + res, err := streamClient.Recv() + if err == io.EOF { + break + } + if err != nil { + return nil, err + } + switch x := res.Result.(type) { + case *pb.BatchGetDocumentsResponse_Found: + docMap[x.Found.Name] = x.Found + + case *pb.BatchGetDocumentsResponse_Missing: + if docMap[x.Missing] != nil { + return nil, fmt.Errorf("firestore: %q both missing and present", x.Missing) + } + docMap[x.Missing] = nil + default: + return nil, errors.New("firestore: unknown BatchGetDocumentsResponse result type") + } + } + + // Put the documents we've gathered in the same order as the requesting slice of + // DocumentRefs. + docs := make([]*DocumentSnapshot, len(docNames)) + for i, name := range docNames { + pbDoc, ok := docMap[name] + if !ok { + return nil, fmt.Errorf("firestore: passed %q to BatchGetDocuments but never saw response", name) + } + if pbDoc != nil { + doc, err := newDocumentSnapshot(docRefs[i], pbDoc, c) + if err != nil { + return nil, err + } + docs[i] = doc + } + } + return docs, nil +} + +// Collections returns an interator over the top-level collections. +func (c *Client) Collections(ctx context.Context) *CollectionIterator { + it := &CollectionIterator{ + err: checkTransaction(ctx), + client: c, + it: c.c.ListCollectionIds( + withResourceHeader(ctx, c.path()), + &pb.ListCollectionIdsRequest{Parent: c.path()}), + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.items) }, + func() interface{} { b := it.items; it.items = nil; return b }) + return it +} + +// Batch returns a WriteBatch. +func (c *Client) Batch() *WriteBatch { + return &WriteBatch{c: c} +} + +// commit calls the Commit RPC outside of a transaction. +func (c *Client) commit(ctx context.Context, ws []*pb.Write) (*WriteResult, error) { + if err := checkTransaction(ctx); err != nil { + return nil, err + } + req := &pb.CommitRequest{ + Database: c.path(), + Writes: ws, + } + res, err := c.c.Commit(withResourceHeader(ctx, req.Database), req) + if err != nil { + return nil, err + } + if len(res.WriteResults) == 0 { + return nil, errors.New("firestore: missing WriteResult") + } + return writeResultFromProto(res.WriteResults[0]) +} + +// A WriteResult is returned by methods that write documents. +type WriteResult struct { + // The time at which the document was updated, or created if it did not + // previously exist. Writes that do not actually change the document do + // not change the update time. + UpdateTime time.Time +} + +func writeResultFromProto(wr *pb.WriteResult) (*WriteResult, error) { + t, err := ptypes.Timestamp(wr.UpdateTime) + if err != nil { + t = time.Time{} + // TODO(jba): Follow up if Delete is supposed to return a nil timestamp. + } + return &WriteResult{UpdateTime: t}, nil +} diff --git a/vendor/cloud.google.com/go/firestore/client_test.go b/vendor/cloud.google.com/go/firestore/client_test.go new file mode 100644 index 000000000..70e347ae6 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/client_test.go @@ -0,0 +1,221 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "testing" + + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + + "cloud.google.com/go/internal/pretty" + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "golang.org/x/net/context" +) + +var testClient = &Client{ + projectID: "projectID", + databaseID: "(default)", +} + +func TestClientCollectionAndDoc(t *testing.T) { + coll1 := testClient.Collection("X") + db := "projects/projectID/databases/(default)" + wantc1 := &CollectionRef{ + c: testClient, + parentPath: db, + Parent: nil, + ID: "X", + Path: "projects/projectID/databases/(default)/documents/X", + Query: Query{c: testClient, collectionID: "X", parentPath: db}, + } + if !testEqual(coll1, wantc1) { + t.Fatalf("got\n%+v\nwant\n%+v", coll1, wantc1) + } + doc1 := testClient.Doc("X/a") + wantd1 := &DocumentRef{ + Parent: coll1, + ID: "a", + Path: "projects/projectID/databases/(default)/documents/X/a", + } + + if !testEqual(doc1, wantd1) { + t.Fatalf("got %+v, want %+v", doc1, wantd1) + } + coll2 := testClient.Collection("X/a/Y") + parentPath := "projects/projectID/databases/(default)/documents/X/a" + wantc2 := &CollectionRef{ + c: testClient, + parentPath: parentPath, + Parent: doc1, + ID: "Y", + Path: "projects/projectID/databases/(default)/documents/X/a/Y", + Query: Query{c: testClient, collectionID: "Y", parentPath: parentPath}, + } + if !testEqual(coll2, wantc2) { + t.Fatalf("\ngot %+v\nwant %+v", coll2, wantc2) + } + doc2 := testClient.Doc("X/a/Y/b") + wantd2 := &DocumentRef{ + Parent: coll2, + ID: "b", + Path: "projects/projectID/databases/(default)/documents/X/a/Y/b", + } + if !testEqual(doc2, wantd2) { + t.Fatalf("got %+v, want %+v", doc2, wantd2) + } +} + +func TestClientCollDocErrors(t *testing.T) { + for _, badColl := range []string{"", "/", "/a/", "/a/b", "a/b/", "a//b"} { + coll := testClient.Collection(badColl) + if coll != nil { + t.Errorf("coll path %q: got %+v, want nil", badColl, coll) + } + } + for _, badDoc := range []string{"", "a", "/", "/a", "a/", "a/b/c", "a//b/c"} { + doc := testClient.Doc(badDoc) + if doc != nil { + t.Errorf("doc path %q: got %+v, want nil", badDoc, doc) + } + } +} + +func TestGetAll(t *testing.T) { + ctx := context.Background() + const dbPath = "projects/projectID/databases/(default)" + c, srv := newMock(t) + defer c.Close() + wantPBDocs := []*pb.Document{ + { + Name: dbPath + "/documents/C/a", + CreateTime: aTimestamp, + UpdateTime: aTimestamp, + Fields: map[string]*pb.Value{"f": intval(2)}, + }, + nil, + { + Name: dbPath + "/documents/C/c", + CreateTime: aTimestamp, + UpdateTime: aTimestamp, + Fields: map[string]*pb.Value{"f": intval(1)}, + }, + } + srv.addRPC( + &pb.BatchGetDocumentsRequest{ + Database: dbPath, + Documents: []string{ + dbPath + "/documents/C/a", + dbPath + "/documents/C/b", + dbPath + "/documents/C/c", + }, + }, + []interface{}{ + // deliberately put these out of order + &pb.BatchGetDocumentsResponse{ + Result: &pb.BatchGetDocumentsResponse_Found{wantPBDocs[2]}, + }, + &pb.BatchGetDocumentsResponse{ + Result: &pb.BatchGetDocumentsResponse_Found{wantPBDocs[0]}, + }, + &pb.BatchGetDocumentsResponse{ + Result: &pb.BatchGetDocumentsResponse_Missing{dbPath + "/documents/C/b"}, + }, + }, + ) + coll := c.Collection("C") + var docRefs []*DocumentRef + for _, name := range []string{"a", "b", "c"} { + docRefs = append(docRefs, coll.Doc(name)) + } + docs, err := c.GetAll(ctx, docRefs) + if err != nil { + t.Fatal(err) + } + if got, want := len(docs), len(wantPBDocs); got != want { + t.Errorf("got %d docs, wanted %d", got, want) + } + for i, got := range docs { + var want *DocumentSnapshot + if wantPBDocs[i] != nil { + want, err = newDocumentSnapshot(docRefs[i], wantPBDocs[i], c) + if err != nil { + t.Fatal(err) + } + } + if !testEqual(got, want) { + got.c = nil + want.c = nil + t.Errorf("#%d: got %+v, want %+v", i, pretty.Value(got), pretty.Value(want)) + } + } +} + +func TestGetAllErrors(t *testing.T) { + ctx := context.Background() + const ( + dbPath = "projects/projectID/databases/(default)" + docPath = dbPath + "/documents/C/a" + ) + c, srv := newMock(t) + if _, err := c.GetAll(ctx, []*DocumentRef{nil}); err != errNilDocRef { + t.Errorf("got %v, want errNilDocRef", err) + } + + // Internal server error. + srv.addRPC( + &pb.BatchGetDocumentsRequest{ + Database: dbPath, + Documents: []string{docPath}, + }, + []interface{}{grpc.Errorf(codes.Internal, "")}, + ) + _, err := c.GetAll(ctx, []*DocumentRef{c.Doc("C/a")}) + codeEq(t, "GetAll #1", codes.Internal, err) + + // Doc appears as both found and missing (server bug). + srv.reset() + srv.addRPC( + &pb.BatchGetDocumentsRequest{ + Database: dbPath, + Documents: []string{docPath}, + }, + []interface{}{ + &pb.BatchGetDocumentsResponse{ + Result: &pb.BatchGetDocumentsResponse_Found{&pb.Document{Name: docPath}}, + }, + &pb.BatchGetDocumentsResponse{ + Result: &pb.BatchGetDocumentsResponse_Missing{docPath}, + }, + }, + ) + if _, err := c.GetAll(ctx, []*DocumentRef{c.Doc("C/a")}); err == nil { + t.Error("got nil, want error") + } + + // Doc never appears (server bug). + srv.reset() + srv.addRPC( + &pb.BatchGetDocumentsRequest{ + Database: dbPath, + Documents: []string{docPath}, + }, + []interface{}{}, + ) + if _, err := c.GetAll(ctx, []*DocumentRef{c.Doc("C/a")}); err == nil { + t.Error("got nil, want error") + } +} diff --git a/vendor/cloud.google.com/go/firestore/collref.go b/vendor/cloud.google.com/go/firestore/collref.go new file mode 100644 index 000000000..eaf83bcd3 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/collref.go @@ -0,0 +1,124 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "math/rand" + "os" + "reflect" + "sync" + "time" + + "golang.org/x/net/context" +) + +// A CollectionRef is a reference to Firestore collection. +type CollectionRef struct { + c *Client + + // Typically Parent.Path, or c.path if Parent is nil. + // May be different if this CollectionRef was created from a stored reference + // to a different project/DB. + parentPath string + + // Parent is the document of which this collection is a part. It is + // nil for top-level collections. + Parent *DocumentRef + + // The full resource path of the collection: "projects/P/databases/D/documents..." + Path string + + // ID is the collection identifier. + ID string + + // Use the methods of Query on a CollectionRef to create and run queries. + Query +} + +func (c1 *CollectionRef) equal(c2 *CollectionRef) bool { + return c1.c == c2.c && + c1.parentPath == c2.parentPath && + c1.Parent.equal(c2.Parent) && + c1.Path == c2.Path && + c1.ID == c2.ID && + reflect.DeepEqual(c1.Query, c2.Query) +} + +func newTopLevelCollRef(c *Client, dbPath, id string) *CollectionRef { + return &CollectionRef{ + c: c, + ID: id, + parentPath: dbPath, + Path: dbPath + "/documents/" + id, + Query: Query{c: c, collectionID: id, parentPath: dbPath}, + } +} + +func newCollRefWithParent(c *Client, parent *DocumentRef, id string) *CollectionRef { + return &CollectionRef{ + c: c, + Parent: parent, + ID: id, + parentPath: parent.Path, + Path: parent.Path + "/" + id, + Query: Query{c: c, collectionID: id, parentPath: parent.Path}, + } +} + +// Doc returns a DocumentRef that refers to the document in the collection with the +// given identifier. +func (c *CollectionRef) Doc(id string) *DocumentRef { + if c == nil { + return nil + } + return newDocRef(c, id) +} + +// NewDoc returns a DocumentRef with a uniquely generated ID. +func (c *CollectionRef) NewDoc() *DocumentRef { + return c.Doc(uniqueID()) +} + +// Add generates a DocumentRef with a unique ID. It then creates the document +// with the given data, which can be a map[string]interface{}, a struct or a +// pointer to a struct. +// +// Add returns an error in the unlikely event that a document with the same ID +// already exists. +func (c *CollectionRef) Add(ctx context.Context, data interface{}) (*DocumentRef, *WriteResult, error) { + d := c.NewDoc() + wr, err := d.Create(ctx, data) + if err != nil { + return nil, nil, err + } + return d, wr, nil +} + +const alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + +var ( + rngMu sync.Mutex + rng = rand.New(rand.NewSource(time.Now().UnixNano() ^ int64(os.Getpid()))) +) + +func uniqueID() string { + var b [20]byte + rngMu.Lock() + for i := 0; i < len(b); i++ { + b[i] = alphanum[rng.Intn(len(alphanum))] + } + rngMu.Unlock() + return string(b[:]) +} diff --git a/vendor/cloud.google.com/go/firestore/collref_test.go b/vendor/cloud.google.com/go/firestore/collref_test.go new file mode 100644 index 000000000..3d82be58c --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/collref_test.go @@ -0,0 +1,97 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "testing" + + "github.com/golang/protobuf/proto" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "golang.org/x/net/context" +) + +func TestDoc(t *testing.T) { + coll := testClient.Collection("C") + got := coll.Doc("d") + want := &DocumentRef{ + Parent: coll, + ID: "d", + Path: "projects/projectID/databases/(default)/documents/C/d", + } + if !testEqual(got, want) { + t.Errorf("got %+v, want %+v", got, want) + } +} + +func TestNewDoc(t *testing.T) { + c := &Client{} + coll := c.Collection("C") + got := coll.NewDoc() + if got.Parent != coll { + t.Errorf("got %v, want %v", got.Parent, coll) + } + if len(got.ID) != 20 { + t.Errorf("got %d-char ID, wanted 20", len(got.ID)) + } + + got2 := coll.NewDoc() + if got.ID == got2.ID { + t.Error("got same ID") + } +} + +func TestAdd(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + wantReq := commitRequestForSet() + w := wantReq.Writes[0] + w.CurrentDocument = &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{false}, + } + srv.addRPCAdjust(wantReq, commitResponseForSet, func(gotReq proto.Message) { + // We can't know the doc ID before Add is called, so we take it from + // the request. + w.Operation.(*pb.Write_Update).Update.Name = gotReq.(*pb.CommitRequest).Writes[0].Operation.(*pb.Write_Update).Update.Name + }) + _, wr, err := c.Collection("C").Add(ctx, testData) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("got %v, want %v", wr, writeResultForSet) + } +} + +func TestNilErrors(t *testing.T) { + ctx := context.Background() + c, _ := newMock(t) + // Test that a nil CollectionRef results in a nil DocumentRef and errors + // where possible. + coll := c.Collection("a/b") // nil because "a/b" denotes a doc. + if coll != nil { + t.Fatal("collection not nil") + } + if got := coll.Doc("d"); got != nil { + t.Fatalf("got %v, want nil", got) + } + if got := coll.NewDoc(); got != nil { + t.Fatalf("got %v, want nil", got) + } + if _, _, err := coll.Add(ctx, testData); err != errNilDocRef { + t.Fatalf("got <%v>, want <%v>", err, errNilDocRef) + } +} diff --git a/vendor/cloud.google.com/go/firestore/doc.go b/vendor/cloud.google.com/go/firestore/doc.go new file mode 100644 index 000000000..f493202c2 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/doc.go @@ -0,0 +1,220 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// DO NOT EDIT doc.go. Modify internal/doc.template, then run make -C internal. + +/* +Package firestore provides a client for reading and writing to a Cloud Firestore +database. + +See https://cloud.google.com/firestore/docs for an introduction +to Cloud Firestore and additional help on using the Firestore API. + +Creating a Client + +To start working with this package, create a client with a project ID: + + ctx := context.Background() + client, err := firestore.NewClient(ctx, "projectID") + if err != nil { + // TODO: Handle error. + } + +CollectionRefs and DocumentRefs + +In Firestore, documents are sets of key-value pairs, and collections are groups of +documents. A Firestore database consists of a hierarchy of alternating collections +and documents, referred to by slash-separated paths like +"States/California/Cities/SanFrancisco". + +This client is built around references to collections and documents. CollectionRefs +and DocumentRefs are lightweight values that refer to the corresponding database +entities. Creating a ref does not involve any network traffic. + + states := client.Collection("States") + ny := states.Doc("NewYork") + // Or, in a single call: + ny = client.Doc("States/NewYork") + +Reading + +Use DocumentRef.Get to read a document. The result is a DocumentSnapshot. +Call its Data method to obtain the entire document contents as a map. + + docsnap, err := ny.Get(ctx) + if err != nil { + // TODO: Handle error. + } + dataMap := docsnap.Data() + fmt.Println(dataMap) + +You can also obtain a single field with DataAt, or extract the data into a struct +with DataTo. With the type definition + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + +we can extract the document's data into a value of type State: + + var nyData State + if err := docsnap.DataTo(&nyData); err != nil { + // TODO: Handle error. + } + +Note that this client supports struct tags beginning with "firestore:" that work like +the tags of the encoding/json package, letting you rename fields, ignore them, or +omit their values when empty. + +To retrieve multiple documents from their references in a single call, use +Client.GetAll. + + docsnaps, err := client.GetAll(ctx, []*firestore.DocumentRef{ + states.Doc("Wisconsin"), states.Doc("Ohio"), + }) + if err != nil { + // TODO: Handle error. + } + for _, ds := range docsnaps { + _ = ds // TODO: Use ds. + } + + +Writing + +For writing individual documents, use the methods on DocumentReference. +Create creates a new document. + + wr, err := ny.Create(ctx, State{ + Capital: "Albany", + Population: 19.8, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr) + +The first return value is a WriteResult, which contains the time +at which the document was updated. + +Create fails if the document exists. Another method, Set, either replaces an existing +document or creates a new one. + + ca := states.Doc("California") + _, err = ca.Set(ctx, State{ + Capital: "Sacramento", + Population: 39.14, + }) + +To update some fields of an existing document, use UpdateMap, UpdateStruct or +UpdatePaths. For UpdateMap, the keys of the map specify which fields to change. The +others are untouched. + + _, err = ca.UpdateMap(ctx, map[string]interface{}{"pop": 39.2}) + +For UpdateStruct, you must explicitly provide the fields to update. The field names +must match exactly. + + _, err = ca.UpdateStruct(ctx, []string{"pop"}, State{Population: 39.2}) + +Use DocumentRef.Delete to delete a document. + + _, err = ny.Delete(ctx) + +Preconditions + +You can condition Deletes or Updates on when a document was last changed. Specify +these preconditions as an option to a Delete or Update method. The check and the +write happen atomically with a single RPC. + + docsnap, err = ca.Get(ctx) + if err != nil { + // TODO: Handle error. + } + _, err = ca.UpdateStruct(ctx, []string{"capital"}, State{Capital: "Sacramento"}, + firestore.LastUpdateTime(docsnap.UpdateTime)) + +Here we update a doc only if it hasn't changed since we read it. +You could also do this with a transaction. + +To perform multiple writes at once, use a WriteBatch. Its methods chain +for convenience. + +WriteBatch.Commit sends the collected writes to the server, where they happen +atomically. + + writeResults, err := client.Batch(). + Create(ny, State{Capital: "Albany"}). + UpdateStruct(ca, []string{"capital"}, State{Capital: "Sacramento"}). + Delete(client.Doc("States/WestDakota")). + Commit(ctx) + +Queries + +You can use SQL to select documents from a collection. Begin with the collection, and +build up a query using Select, Where and other methods of Query. + + q := states.Where("pop", ">", 10).OrderBy("pop", firestore.Desc) + +Call the Query's Documents method to get an iterator, and use it like +the other Google Cloud Client iterators. + + iter := q.Documents(ctx) + for { + doc, err := iter.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(doc.Data()) + } + +To get all the documents in a collection, you can use the collection itself +as a query. + + iter = client.Collection("States").Documents(ctx) + +Transactions + +Use a transaction to execute reads and writes atomically. All reads must happen +before any writes. Transaction creation, commit, rollback and retry are handled for +you by the Client.RunTransaction method; just provide a function and use the +read and write methods of the Transaction passed to it. + + ny := client.Doc("States/NewYork") + err := client.RunTransaction(ctx, func(ctx context.Context, tx *firestore.Transaction) error { + doc, err := tx.Get(ny) // tx.Get, NOT ny.Get! + if err != nil { + return err + } + pop, err := doc.DataAt("pop") + if err != nil { + return err + } + return tx.UpdateStruct(ny, []string{"pop"}, + State{Population: pop.(float64) + 0.2}) + }) + if err != nil { + // TODO: Handle error. + } + +Authentication + +See examples of authorization and authentication at +https://godoc.org/cloud.google.com/go#pkg-examples. +*/ +package firestore diff --git a/vendor/cloud.google.com/go/firestore/docref.go b/vendor/cloud.google.com/go/firestore/docref.go new file mode 100644 index 000000000..a4f0cf594 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/docref.go @@ -0,0 +1,599 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "reflect" + "sort" + + "golang.org/x/net/context" + "google.golang.org/api/iterator" + + vkit "cloud.google.com/go/firestore/apiv1beta1" + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" +) + +var errNilDocRef = errors.New("firestore: nil DocumentRef") + +// A DocumentRef is a reference to a Firestore document. +type DocumentRef struct { + // The CollectionRef that this document is a part of. Never nil. + Parent *CollectionRef + + // The full resource path of the document: "projects/P/databases/D/documents..." + Path string + + // The ID of the document: the last component of the resource path. + ID string +} + +func newDocRef(parent *CollectionRef, id string) *DocumentRef { + return &DocumentRef{ + Parent: parent, + ID: id, + Path: parent.Path + "/" + id, + } +} + +func (d1 *DocumentRef) equal(d2 *DocumentRef) bool { + if d1 == nil || d2 == nil { + return d1 == d2 + } + return d1.Parent.equal(d2.Parent) && d1.Path == d2.Path && d1.ID == d2.ID +} + +// Collection returns a reference to sub-collection of this document. +func (d *DocumentRef) Collection(id string) *CollectionRef { + return newCollRefWithParent(d.Parent.c, d, id) +} + +// Get retrieves the document. It returns an error if the document does not exist. +func (d *DocumentRef) Get(ctx context.Context) (*DocumentSnapshot, error) { + if err := checkTransaction(ctx); err != nil { + return nil, err + } + if d == nil { + return nil, errNilDocRef + } + doc, err := d.Parent.c.c.GetDocument(withResourceHeader(ctx, d.Parent.c.path()), + &pb.GetDocumentRequest{Name: d.Path}) + // TODO(jba): verify that GetDocument returns NOT_FOUND. + if err != nil { + return nil, err + } + return newDocumentSnapshot(d, doc, d.Parent.c) +} + +// Create creates the document with the given data. +// It returns an error if a document with the same ID already exists. +// +// The data argument can be a map with string keys, a struct, or a pointer to a +// struct. The map keys or exported struct fields become the fields of the firestore +// document. +// The values of data are converted to Firestore values as follows: +// +// - bool converts to Bool. +// - string converts to String. +// - int, int8, int16, int32 and int64 convert to Integer. +// - uint8, uint16 and uint32 convert to Integer. uint64 is disallowed, +// because it can represent values that cannot be represented in an int64, which +// is the underlying type of a Integer. +// - float32 and float64 convert to Double. +// - []byte converts to Bytes. +// - time.Time converts to Timestamp. +// - latlng.LatLng converts to GeoPoint. latlng is the package +// "google.golang.org/genproto/googleapis/type/latlng". +// - Slices convert to Array. +// - Maps and structs convert to Map. +// - nils of any type convert to Null. +// +// Pointers and interface{} are also permitted, and their elements processed +// recursively. +// +// Struct fields can have tags like those used by the encoding/json package. Tags +// begin with "firestore:" and are followed by "-", meaning "ignore this field," or +// an alternative name for the field. Following the name, these comma-separated +// options may be provided: +// +// - omitempty: Do not encode this field if it is empty. A value is empty +// if it is a zero value, or an array, slice or map of length zero. +// - serverTimestamp: The field must be of type time.Time. When writing, if +// the field has the zero value, the server will populate the stored document with +// the time that the request is processed. +func (d *DocumentRef) Create(ctx context.Context, data interface{}) (*WriteResult, error) { + ws, err := d.newReplaceWrites(data, nil, Exists(false)) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +// Set creates or overwrites the document with the given data. See DocumentRef.Create +// for the acceptable values of data. Without options, Set overwrites the document +// completely. Specify one of the Merge options to preserve an existing document's +// fields. +func (d *DocumentRef) Set(ctx context.Context, data interface{}, opts ...SetOption) (*WriteResult, error) { + ws, err := d.newReplaceWrites(data, opts, nil) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +// Delete deletes the document. If the document doesn't exist, it does nothing +// and returns no error. +func (d *DocumentRef) Delete(ctx context.Context, preconds ...Precondition) (*WriteResult, error) { + ws, err := d.newDeleteWrites(preconds) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +func (d *DocumentRef) newReplaceWrites(data interface{}, opts []SetOption, p Precondition) ([]*pb.Write, error) { + if d == nil { + return nil, errNilDocRef + } + origFieldPaths, allPaths, err := processSetOptions(opts) + isMerge := len(origFieldPaths) > 0 || allPaths // was some Merge option specified? + if err != nil { + return nil, err + } + doc, serverTimestampPaths, err := toProtoDocument(data) + if err != nil { + return nil, err + } + if len(origFieldPaths) > 0 { + // Keep only data fields corresponding to the given field paths. + doc.Fields = applyFieldPaths(doc.Fields, origFieldPaths, nil) + } + doc.Name = d.Path + + var fieldPaths []FieldPath + if allPaths { + // MergeAll was passed. Check that the data is a map, and extract its field paths. + v := reflect.ValueOf(data) + if v.Kind() != reflect.Map { + return nil, errors.New("firestore: MergeAll can only be specified with map data") + } + fieldPaths = fieldPathsFromMap(v, nil) + } else if len(origFieldPaths) > 0 { + // Remove server timestamp paths that are not in the list of paths to merge. + // Note: this is technically O(n^2), but it is unlikely that there is more + // than one server timestamp path. + serverTimestampPaths = removePathsIf(serverTimestampPaths, func(fp FieldPath) bool { + return !fp.in(origFieldPaths) + }) + // Remove server timestamp fields from fieldPaths. Those fields were removed + // from the document by toProtoDocument, so they should not be in the update + // mask. + // Note: this is technically O(n^2), but it is unlikely that there is + // more than one server timestamp path. + fieldPaths = removePathsIf(origFieldPaths, func(fp FieldPath) bool { + return fp.in(serverTimestampPaths) + }) + // Check that all the remaining field paths in the merge option are in the document. + for _, fp := range fieldPaths { + if _, err := valueAtPath(fp, doc.Fields); err != nil { + return nil, err + } + } + } + var pc *pb.Precondition + if p != nil { + pc, err = p.preconditionProto() + if err != nil { + return nil, err + } + } + var w *pb.Write + switch { + case len(fieldPaths) > 0: + // There are field paths, so we need an update mask. + sfps := toServiceFieldPaths(fieldPaths) + sort.Strings(sfps) // TODO(jba): make tests pass without this + w = &pb.Write{ + Operation: &pb.Write_Update{doc}, + UpdateMask: &pb.DocumentMask{FieldPaths: sfps}, + CurrentDocument: pc, + } + case isMerge && pc != nil: + // There were field paths, but they all got removed. + // The write does nothing but enforce the precondition. + w = &pb.Write{CurrentDocument: pc} + case !isMerge: + // Set without merge, so no update mask. + w = &pb.Write{ + Operation: &pb.Write_Update{doc}, + CurrentDocument: pc, + } + } + return d.writeWithTransform(w, serverTimestampPaths), nil +} + +// Create a new map that contains only the field paths in fps. +func applyFieldPaths(fields map[string]*pb.Value, fps []FieldPath, root FieldPath) map[string]*pb.Value { + r := map[string]*pb.Value{} + for k, v := range fields { + kpath := root.with(k) + if kpath.in(fps) { + r[k] = v + } else if mv := v.GetMapValue(); mv != nil { + if m2 := applyFieldPaths(mv.Fields, fps, kpath); m2 != nil { + r[k] = &pb.Value{&pb.Value_MapValue{&pb.MapValue{m2}}} + } + } + } + if len(r) == 0 { + return nil + } + return r +} + +func fieldPathsFromMap(vmap reflect.Value, prefix FieldPath) []FieldPath { + // vmap is a map and its keys are strings. + // Each map key denotes a field; no splitting or escaping. + var fps []FieldPath + for _, k := range vmap.MapKeys() { + v := vmap.MapIndex(k) + fp := prefix.with(k.String()) + if vm := extractMap(v); vm.IsValid() { + fps = append(fps, fieldPathsFromMap(vm, fp)...) + } else if v.Interface() != ServerTimestamp { + // ServerTimestamp fields do not go into the update mask. + fps = append(fps, fp) + } + } + return fps +} + +func extractMap(v reflect.Value) reflect.Value { + switch v.Kind() { + case reflect.Map: + return v + case reflect.Interface: + return extractMap(v.Elem()) + default: + return reflect.Value{} + } +} + +// removePathsIf creates a new slice of FieldPaths that contains +// exactly those elements of fps for which pred returns false. +func removePathsIf(fps []FieldPath, pred func(FieldPath) bool) []FieldPath { + var result []FieldPath + for _, fp := range fps { + if !pred(fp) { + result = append(result, fp) + } + } + return result +} + +func (d *DocumentRef) newDeleteWrites(preconds []Precondition) ([]*pb.Write, error) { + if d == nil { + return nil, errNilDocRef + } + pc, err := processPreconditionsForDelete(preconds) + if err != nil { + return nil, err + } + return []*pb.Write{{ + Operation: &pb.Write_Delete{d.Path}, + CurrentDocument: pc, + }}, nil +} + +func (d *DocumentRef) newUpdateMapWrites(data map[string]interface{}, preconds []Precondition) ([]*pb.Write, error) { + // Collect all the (top-level) keys map; they will comprise the update mask. + // Also, translate the map into a sequence of FieldPathUpdates. + var fps []FieldPath + var fpus []FieldPathUpdate + for k, v := range data { + fp, err := parseDotSeparatedString(k) + if err != nil { + return nil, err + } + fps = append(fps, fp) + fpus = append(fpus, FieldPathUpdate{Path: fp, Value: v}) + } + // Check that there are no duplicate field paths, and that no field + // path is a prefix of another. + if err := checkNoDupOrPrefix(fps); err != nil { + return nil, err + } + // Re-create the map from the field paths and their corresponding values. A field path + // with a Delete value will not appear in the map but it will appear in the + // update mask, which will cause it to be deleted. + m := createMapFromFieldPathUpdates(fpus) + return d.newUpdateWrites(m, fps, preconds) +} + +func (d *DocumentRef) newUpdateStructWrites(fieldPaths []string, data interface{}, preconds []Precondition) ([]*pb.Write, error) { + if !isStructOrStructPtr(data) { + return nil, errors.New("firestore: data is not struct or struct pointer") + } + fps, err := parseDotSeparatedStrings(fieldPaths) + if err != nil { + return nil, err + } + if err := checkNoDupOrPrefix(fps); err != nil { + return nil, err + } + return d.newUpdateWrites(data, fps, preconds) +} + +func (d *DocumentRef) newUpdatePathWrites(data []FieldPathUpdate, preconds []Precondition) ([]*pb.Write, error) { + var fps []FieldPath + for _, fpu := range data { + if err := fpu.Path.validate(); err != nil { + return nil, err + } + fps = append(fps, fpu.Path) + } + if err := checkNoDupOrPrefix(fps); err != nil { + return nil, err + } + m := createMapFromFieldPathUpdates(data) + return d.newUpdateWrites(m, fps, preconds) +} + +// newUpdateWrites creates Write operations for an update. +func (d *DocumentRef) newUpdateWrites(data interface{}, fieldPaths []FieldPath, preconds []Precondition) ([]*pb.Write, error) { + if len(fieldPaths) == 0 { + return nil, errors.New("firestore: no paths to update") + } + if d == nil { + return nil, errNilDocRef + } + pc, err := processPreconditionsForUpdate(preconds) + if err != nil { + return nil, err + } + doc, serverTimestampPaths, err := toProtoDocument(data) + if err != nil { + return nil, err + } + sfps := toServiceFieldPaths(fieldPaths) + doc.Name = d.Path + return d.writeWithTransform(&pb.Write{ + Operation: &pb.Write_Update{doc}, + UpdateMask: &pb.DocumentMask{FieldPaths: sfps}, + CurrentDocument: pc, + }, serverTimestampPaths), nil +} + +var requestTimeTransform = &pb.DocumentTransform_FieldTransform_SetToServerValue{ + pb.DocumentTransform_FieldTransform_REQUEST_TIME, +} + +func (d *DocumentRef) writeWithTransform(w *pb.Write, serverTimestampFieldPaths []FieldPath) []*pb.Write { + var ws []*pb.Write + if w != nil { + ws = append(ws, w) + } + if len(serverTimestampFieldPaths) > 0 { + ws = append(ws, d.newTransform(serverTimestampFieldPaths)) + } + return ws +} + +func (d *DocumentRef) newTransform(serverTimestampFieldPaths []FieldPath) *pb.Write { + sort.Sort(byPath(serverTimestampFieldPaths)) // TODO(jba): make tests pass without this + var fts []*pb.DocumentTransform_FieldTransform + for _, p := range serverTimestampFieldPaths { + fts = append(fts, &pb.DocumentTransform_FieldTransform{ + FieldPath: p.toServiceFieldPath(), + TransformType: requestTimeTransform, + }) + } + return &pb.Write{ + Operation: &pb.Write_Transform{ + &pb.DocumentTransform{ + Document: d.Path, + FieldTransforms: fts, + // TODO(jba): should the transform have the same preconditions as the write? + }, + }, + } +} + +var ( + // Delete is used as a value in a call to UpdateMap to indicate that the + // corresponding key should be deleted. + Delete = new(int) + // Not new(struct{}), because addresses of zero-sized values + // may not be unique. + + // ServerTimestamp is used as a value in a call to UpdateMap to indicate that the + // key's value should be set to the time at which the server processed + // the request. + ServerTimestamp = new(int) +) + +// UpdateMap updates the document using the given data. Map keys replace the stored +// values, but other fields of the stored document are untouched. +// See DocumentRef.Create for acceptable map values. +// +// If a map key is a multi-element field path, like "a.b", then only key "b" of +// the map value at "a" is changed; the rest of the map is preserved. +// For example, if the stored data is +// {"a": {"b": 1, "c": 2}} +// then +// UpdateMap({"a": {"b": 3}}) => {"a": {"b": 3}} +// while +// UpdateMap({"a.b": 3}) => {"a": {"b": 3, "c": 2}} +// +// To delete a key, specify it in the input with a value of firestore.Delete. +// +// Field paths expressed as map keys must not contain any of the runes "˜*/[]". +// Use UpdatePaths instead for such paths. +// +// UpdateMap returns an error if the document does not exist. +func (d *DocumentRef) UpdateMap(ctx context.Context, data map[string]interface{}, preconds ...Precondition) (*WriteResult, error) { + ws, err := d.newUpdateMapWrites(data, preconds) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +func isStructOrStructPtr(x interface{}) bool { + v := reflect.ValueOf(x) + if v.Kind() == reflect.Struct { + return true + } + if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Struct { + return true + } + return false +} + +// UpdateStruct updates the given field paths of the stored document from the fields +// of data, which must be a struct or a pointer to a struct. Other fields of the +// stored document are untouched. +// See DocumentRef.Create for the acceptable values of the struct's fields. +// +// Each element of fieldPaths is a single field or a dot-separated sequence of +// fields, none of which contain the runes "˜*/[]". +// +// If an element of fieldPaths does not have a corresponding field in the struct, +// that key is deleted from the stored document. +// +// UpdateStruct returns an error if the document does not exist. +func (d *DocumentRef) UpdateStruct(ctx context.Context, fieldPaths []string, data interface{}, preconds ...Precondition) (*WriteResult, error) { + ws, err := d.newUpdateStructWrites(fieldPaths, data, preconds) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +// A FieldPathUpdate describes an update to a value referred to by a FieldPath. +// See DocumentRef.Create for acceptable values. +// To delete a field, specify firestore.Delete as the value. +type FieldPathUpdate struct { + Path FieldPath + Value interface{} +} + +// UpdatePaths updates the document using the given data. The values at the given +// field paths are replaced, but other fields of the stored document are untouched. +func (d *DocumentRef) UpdatePaths(ctx context.Context, data []FieldPathUpdate, preconds ...Precondition) (*WriteResult, error) { + ws, err := d.newUpdatePathWrites(data, preconds) + if err != nil { + return nil, err + } + return d.Parent.c.commit(ctx, ws) +} + +// Collections returns an interator over the immediate sub-collections of the document. +func (d *DocumentRef) Collections(ctx context.Context) *CollectionIterator { + client := d.Parent.c + it := &CollectionIterator{ + err: checkTransaction(ctx), + client: client, + parent: d, + it: client.c.ListCollectionIds( + withResourceHeader(ctx, client.path()), + &pb.ListCollectionIdsRequest{Parent: d.Path}), + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.items) }, + func() interface{} { b := it.items; it.items = nil; return b }) + return it +} + +// CollectionIterator is an iterator over sub-collections of a document. +type CollectionIterator struct { + client *Client + parent *DocumentRef + it *vkit.StringIterator + pageInfo *iterator.PageInfo + nextFunc func() error + items []*CollectionRef + err error +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *CollectionIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// Next returns the next result. Its second return value is iterator.Done if there +// are no more results. Once Next returns Done, all subsequent calls will return +// Done. +func (it *CollectionIterator) Next() (*CollectionRef, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + item := it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *CollectionIterator) fetch(pageSize int, pageToken string) (string, error) { + if it.err != nil { + return "", it.err + } + return iterFetch(pageSize, pageToken, it.it.PageInfo(), func() error { + id, err := it.it.Next() + if err != nil { + return err + } + var cr *CollectionRef + if it.parent == nil { + cr = newTopLevelCollRef(it.client, it.client.path(), id) + } else { + cr = newCollRefWithParent(it.client, it.parent, id) + } + it.items = append(it.items, cr) + return nil + }) +} + +// GetAll returns all the collections remaining from the iterator. +func (it *CollectionIterator) GetAll() ([]*CollectionRef, error) { + var crs []*CollectionRef + for { + cr, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + return nil, err + } + crs = append(crs, cr) + } + return crs, nil +} + +// Common fetch code for iterators that are backed by vkit iterators. +// TODO(jba): dedup with same function in logging/logadmin. +func iterFetch(pageSize int, pageToken string, pi *iterator.PageInfo, next func() error) (string, error) { + pi.MaxSize = pageSize + pi.Token = pageToken + // Get one item, which will fill the buffer. + if err := next(); err != nil { + return "", err + } + // Collect the rest of the buffer. + for pi.Remaining() > 0 { + if err := next(); err != nil { + return "", err + } + } + return pi.Token, nil +} diff --git a/vendor/cloud.google.com/go/firestore/docref_test.go b/vendor/cloud.google.com/go/firestore/docref_test.go new file mode 100644 index 000000000..f77106af9 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/docref_test.go @@ -0,0 +1,733 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "reflect" + "sort" + "testing" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "google.golang.org/genproto/googleapis/type/latlng" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +var ( + writeResultForSet = &WriteResult{UpdateTime: aTime} + commitResponseForSet = &pb.CommitResponse{ + WriteResults: []*pb.WriteResult{{UpdateTime: aTimestamp}}, + } +) + +func TestDocGet(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + path := "projects/projectID/databases/(default)/documents/C/a" + pdoc := &pb.Document{ + Name: path, + CreateTime: aTimestamp, + UpdateTime: aTimestamp, + Fields: map[string]*pb.Value{"f": intval(1)}, + } + srv.addRPC(&pb.GetDocumentRequest{Name: path}, pdoc) + ref := c.Collection("C").Doc("a") + gotDoc, err := ref.Get(ctx) + if err != nil { + t.Fatal(err) + } + wantDoc := &DocumentSnapshot{ + Ref: ref, + CreateTime: aTime, + UpdateTime: aTime, + proto: pdoc, + c: c, + } + if !testEqual(gotDoc, wantDoc) { + t.Fatalf("\ngot %+v\nwant %+v", gotDoc, wantDoc) + } + + srv.addRPC( + &pb.GetDocumentRequest{ + Name: "projects/projectID/databases/(default)/documents/C/b", + }, + grpc.Errorf(codes.NotFound, "not found"), + ) + _, err = c.Collection("C").Doc("b").Get(ctx) + if grpc.Code(err) != codes.NotFound { + t.Errorf("got %v, want NotFound", err) + } +} + +func TestDocSet(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + for _, test := range []struct { + desc string + data interface{} + opt SetOption + write map[string]*pb.Value + mask []string + transform []string + isErr bool + }{ + { + desc: "Set with no options", + data: map[string]interface{}{"a": 1}, + write: map[string]*pb.Value{"a": intval(1)}, + }, + { + desc: "Merge with a field", + data: map[string]interface{}{"a": 1, "b": 2}, + opt: Merge("a"), + write: map[string]*pb.Value{"a": intval(1)}, + mask: []string{"a"}, + }, + { + desc: "Merge field is not a leaf", + data: map[string]interface{}{ + "a": map[string]interface{}{"b": 1, "c": 2}, + "d": 3, + }, + opt: Merge("a"), + write: map[string]*pb.Value{"a": mapval(map[string]*pb.Value{ + "b": intval(1), + "c": intval(2), + })}, + mask: []string{"a"}, + }, + { + desc: "MergeAll", + data: map[string]interface{}{"a": 1, "b": 2}, + opt: MergeAll, + write: map[string]*pb.Value{"a": intval(1), "b": intval(2)}, + mask: []string{"a", "b"}, + }, + { + desc: "MergeAll with nested fields", + data: map[string]interface{}{ + "a": 1, + "b": map[string]interface{}{"c": 2}, + }, + opt: MergeAll, + write: map[string]*pb.Value{ + "a": intval(1), + "b": mapval(map[string]*pb.Value{"c": intval(2)}), + }, + mask: []string{"a", "b.c"}, + }, + { + desc: "Merge with FieldPaths", + data: map[string]interface{}{"*": map[string]interface{}{"~": true}}, + opt: MergePaths([]string{"*", "~"}), + write: map[string]*pb.Value{ + "*": mapval(map[string]*pb.Value{ + "~": boolval(true), + }), + }, + mask: []string{"`*`.`~`"}, + }, + { + desc: "Merge with a struct and FieldPaths", + data: struct { + A map[string]bool `firestore:"*"` + }{A: map[string]bool{"~": true}}, + opt: MergePaths([]string{"*", "~"}), + write: map[string]*pb.Value{ + "*": mapval(map[string]*pb.Value{ + "~": boolval(true), + }), + }, + mask: []string{"`*`.`~`"}, + }, + { + desc: "a ServerTimestamp field becomes a transform", + data: map[string]interface{}{"a": 1, "b": ServerTimestamp}, + write: map[string]*pb.Value{"a": intval(1)}, + transform: []string{"b"}, + }, + { + desc: "nested ServerTimestamp field", + data: map[string]interface{}{ + "a": 1, + "b": map[string]interface{}{"c": ServerTimestamp}, + }, + // TODO(jba): make this be map[string]*pb.Value{"a": intval(1)}, + write: map[string]*pb.Value{"a": intval(1), "b": mapval(map[string]*pb.Value{})}, + transform: []string{"b.c"}, + }, + { + desc: "multiple ServerTimestamp fields", + data: map[string]interface{}{ + "a": 1, + "b": ServerTimestamp, + "c": map[string]interface{}{"d": ServerTimestamp}, + }, + // TODO(jba): make this be map[string]*pb.Value{"a": intval(1)}, + write: map[string]*pb.Value{"a": intval(1), + "c": mapval(map[string]*pb.Value{})}, + transform: []string{"b", "c.d"}, + }, + { + desc: "ServerTimestamp with MergeAll", + data: map[string]interface{}{"a": 1, "b": ServerTimestamp}, + opt: MergeAll, + write: map[string]*pb.Value{"a": intval(1)}, + mask: []string{"a"}, + transform: []string{"b"}, + }, + { + desc: "ServerTimestamp with Merge of both fields", + data: map[string]interface{}{"a": 1, "b": ServerTimestamp}, + opt: Merge("a", "b"), + write: map[string]*pb.Value{"a": intval(1)}, + mask: []string{"a"}, + transform: []string{"b"}, + }, + { + desc: "If is ServerTimestamp not in Merge, no transform", + data: map[string]interface{}{"a": 1, "b": ServerTimestamp}, + opt: Merge("a"), + write: map[string]*pb.Value{"a": intval(1)}, + mask: []string{"a"}, + }, + { + desc: "If no ordinary values in Merge, no write", + data: map[string]interface{}{"a": 1, "b": ServerTimestamp}, + opt: Merge("b"), + transform: []string{"b"}, + }, + { + desc: "Merge fields must all be present in data.", + data: map[string]interface{}{"a": 1}, + opt: Merge("b", "a"), + isErr: true, + }, + { + desc: "MergeAll cannot be used with structs", + data: struct{ A int }{A: 1}, + opt: MergeAll, + isErr: true, + }, + { + desc: "Delete cannot appear in data", + data: map[string]interface{}{"a": 1, "b": Delete}, + isErr: true, + }, + { + desc: "Delete cannot even appear in an unmerged field (allow?)", + data: map[string]interface{}{"a": 1, "b": Delete}, + opt: Merge("a"), + isErr: true, + }, + } { + srv.reset() + if !test.isErr { + var writes []*pb.Write + if test.write != nil || test.mask != nil { + w := &pb.Write{} + if test.write != nil { + w.Operation = &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: test.write, + }, + } + } + if test.mask != nil { + w.UpdateMask = &pb.DocumentMask{FieldPaths: test.mask} + } + writes = append(writes, w) + } + if test.transform != nil { + var fts []*pb.DocumentTransform_FieldTransform + for _, p := range test.transform { + fts = append(fts, &pb.DocumentTransform_FieldTransform{ + FieldPath: p, + TransformType: requestTimeTransform, + }) + } + writes = append(writes, &pb.Write{ + Operation: &pb.Write_Transform{ + &pb.DocumentTransform{ + Document: "projects/projectID/databases/(default)/documents/C/d", + FieldTransforms: fts, + }, + }, + }) + } + + srv.addRPC(&pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: writes, + }, commitResponseForSet) + } + var opts []SetOption + if test.opt != nil { + opts = []SetOption{test.opt} + } + wr, err := c.Collection("C").Doc("d").Set(ctx, test.data, opts...) + if test.isErr && err == nil { + t.Errorf("%s: got nil, want error") + continue + } + if !test.isErr && err != nil { + t.Errorf("%s: %v", test.desc, err) + continue + } + if err == nil && !testEqual(wr, writeResultForSet) { + t.Errorf("%s: got %v, want %v", test.desc, wr, writeResultForSet) + } + } +} + +func TestDocCreate(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + wantReq := commitRequestForSet() + wantReq.Writes[0].CurrentDocument = &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{false}, + } + srv.addRPC(wantReq, commitResponseForSet) + wr, err := c.Collection("C").Doc("d").Create(ctx, testData) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("got %v, want %v", wr, writeResultForSet) + } + + // Verify creation with structs. In particular, make sure zero values + // are handled well. + type create struct { + Time time.Time + Bytes []byte + Geo *latlng.LatLng + } + srv.addRPC( + &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{ + { + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: map[string]*pb.Value{ + "Time": tsval(time.Time{}), + "Bytes": bytesval(nil), + "Geo": nullValue, + }, + }, + }, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{false}, + }, + }, + }, + }, + commitResponseForSet, + ) + _, err = c.Collection("C").Doc("d").Create(ctx, &create{}) + if err != nil { + t.Fatal(err) + } +} + +func TestDocDelete(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + srv.addRPC( + &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{ + {Operation: &pb.Write_Delete{"projects/projectID/databases/(default)/documents/C/d"}}, + }, + }, + &pb.CommitResponse{ + WriteResults: []*pb.WriteResult{{}}, + }) + wr, err := c.Collection("C").Doc("d").Delete(ctx) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, &WriteResult{}) { + t.Errorf("got %+v, want %+v", wr, writeResultForSet) + } +} + +func TestDocDeleteLastUpdateTime(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + wantReq := &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{ + { + Operation: &pb.Write_Delete{"projects/projectID/databases/(default)/documents/C/d"}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_UpdateTime{aTimestamp2}, + }, + }}, + } + srv.addRPC(wantReq, commitResponseForSet) + wr, err := c.Collection("C").Doc("d").Delete(ctx, LastUpdateTime(aTime2)) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("got %+v, want %+v", wr, writeResultForSet) + } +} + +var ( + testData = map[string]interface{}{"a": 1} + testFields = map[string]*pb.Value{"a": intval(1)} +) + +func TestUpdateMap(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + for _, test := range []struct { + data map[string]interface{} + wantFields map[string]*pb.Value + wantPaths []string + }{ + { + data: map[string]interface{}{"a.b": 1}, + wantFields: map[string]*pb.Value{ + "a": mapval(map[string]*pb.Value{"b": intval(1)}), + }, + wantPaths: []string{"a.b"}, + }, + { + data: map[string]interface{}{ + "a": 1, + "b": Delete, + }, + wantFields: map[string]*pb.Value{"a": intval(1)}, + wantPaths: []string{"a", "b"}, + }, + } { + srv.reset() + wantReq := &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{{ + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: test.wantFields, + }}, + UpdateMask: &pb.DocumentMask{FieldPaths: test.wantPaths}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }}, + } + // Sort update masks, because map iteration order is random. + sort.Strings(wantReq.Writes[0].UpdateMask.FieldPaths) + srv.addRPCAdjust(wantReq, commitResponseForSet, func(gotReq proto.Message) { + sort.Strings(gotReq.(*pb.CommitRequest).Writes[0].UpdateMask.FieldPaths) + }) + wr, err := c.Collection("C").Doc("d").UpdateMap(ctx, test.data) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("%v:\ngot %+v, want %+v", test.data, wr, writeResultForSet) + } + } +} + +func TestUpdateMapLastUpdateTime(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + + wantReq := &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{{ + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: map[string]*pb.Value{"a": intval(1)}, + }}, + UpdateMask: &pb.DocumentMask{FieldPaths: []string{"a"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_UpdateTime{aTimestamp2}, + }, + }}, + } + srv.addRPC(wantReq, commitResponseForSet) + wr, err := c.Collection("C").Doc("d").UpdateMap(ctx, map[string]interface{}{"a": 1}, LastUpdateTime(aTime2)) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("got %v, want %v", wr, writeResultForSet) + } +} + +func TestUpdateMapErrors(t *testing.T) { + ctx := context.Background() + c, _ := newMock(t) + for _, in := range []map[string]interface{}{ + nil, // no paths + map[string]interface{}{"a~b": 1}, // invalid character + map[string]interface{}{"a..b": 1}, // empty path component + map[string]interface{}{"a.b": 1, "a": 2}, // prefix + } { + _, err := c.Collection("C").Doc("d").UpdateMap(ctx, in) + if err == nil { + t.Errorf("%v: got nil, want error", in) + } + } +} + +func TestUpdateStruct(t *testing.T) { + type update struct{ A int } + c, srv := newMock(t) + wantReq := &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{{ + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: map[string]*pb.Value{"A": intval(2)}, + }, + }, + UpdateMask: &pb.DocumentMask{FieldPaths: []string{"A", "b.c"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }}, + } + srv.addRPC(wantReq, commitResponseForSet) + wr, err := c.Collection("C").Doc("d"). + UpdateStruct(context.Background(), []string{"A", "b.c"}, &update{A: 2}) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("got %+v, want %+v", wr, writeResultForSet) + } +} + +func TestUpdateStructErrors(t *testing.T) { + type update struct{ A int } + + ctx := context.Background() + c, _ := newMock(t) + doc := c.Collection("C").Doc("d") + for _, test := range []struct { + desc string + fields []string + data interface{} + }{ + { + desc: "data is not a struct or *struct", + data: map[string]interface{}{"a": 1}, + }, + { + desc: "no paths", + fields: nil, + data: update{}, + }, + { + desc: "empty", + fields: []string{""}, + data: update{}, + }, + { + desc: "empty component", + fields: []string{"a.b..c"}, + data: update{}, + }, + { + desc: "duplicate field", + fields: []string{"a", "b", "c", "a"}, + data: update{}, + }, + { + desc: "invalid character", + fields: []string{"a", "b]"}, + data: update{}, + }, + { + desc: "prefix", + fields: []string{"a", "b", "c", "b.c"}, + data: update{}, + }, + } { + _, err := doc.UpdateStruct(ctx, test.fields, test.data) + if err == nil { + t.Errorf("%s: got nil, want error", test.desc) + } + } +} + +func TestUpdatePaths(t *testing.T) { + ctx := context.Background() + c, srv := newMock(t) + for _, test := range []struct { + data []FieldPathUpdate + wantFields map[string]*pb.Value + wantPaths []string + }{ + { + data: []FieldPathUpdate{ + {Path: []string{"*", "~"}, Value: 1}, + {Path: []string{"*", "/"}, Value: 2}, + }, + wantFields: map[string]*pb.Value{ + "*": mapval(map[string]*pb.Value{ + "~": intval(1), + "/": intval(2), + }), + }, + wantPaths: []string{"`*`.`~`", "`*`.`/`"}, + }, + { + data: []FieldPathUpdate{ + {Path: []string{"*"}, Value: 1}, + {Path: []string{"]"}, Value: Delete}, + }, + wantFields: map[string]*pb.Value{"*": intval(1)}, + wantPaths: []string{"`*`", "`]`"}, + }, + } { + srv.reset() + wantReq := &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{{ + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: test.wantFields, + }}, + UpdateMask: &pb.DocumentMask{FieldPaths: test.wantPaths}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }}, + } + // Sort update masks, because map iteration order is random. + sort.Strings(wantReq.Writes[0].UpdateMask.FieldPaths) + srv.addRPCAdjust(wantReq, commitResponseForSet, func(gotReq proto.Message) { + sort.Strings(gotReq.(*pb.CommitRequest).Writes[0].UpdateMask.FieldPaths) + }) + wr, err := c.Collection("C").Doc("d").UpdatePaths(ctx, test.data) + if err != nil { + t.Fatal(err) + } + if !testEqual(wr, writeResultForSet) { + t.Errorf("%v:\ngot %+v, want %+v", test.data, wr, writeResultForSet) + } + } +} + +func TestUpdatePathsErrors(t *testing.T) { + fpu := func(s ...string) FieldPathUpdate { return FieldPathUpdate{Path: s} } + + ctx := context.Background() + c, _ := newMock(t) + doc := c.Collection("C").Doc("d") + for _, test := range []struct { + desc string + data []FieldPathUpdate + }{ + {"no updates", nil}, + {"empty", []FieldPathUpdate{fpu("")}}, + {"empty component", []FieldPathUpdate{fpu("*", "")}}, + {"duplicate field", []FieldPathUpdate{fpu("~"), fpu("*"), fpu("~")}}, + {"prefix", []FieldPathUpdate{fpu("*", "a"), fpu("b"), fpu("*", "a", "b")}}, + } { + _, err := doc.UpdatePaths(ctx, test.data) + if err == nil { + t.Errorf("%s: got nil, want error", test.desc) + } + } +} + +func TestApplyFieldPaths(t *testing.T) { + submap := mapval(map[string]*pb.Value{ + "b": intval(1), + "c": intval(2), + }) + fields := map[string]*pb.Value{ + "a": submap, + "d": intval(3), + } + for _, test := range []struct { + fps []FieldPath + want map[string]*pb.Value + }{ + {nil, nil}, + {[]FieldPath{[]string{"z"}}, nil}, + {[]FieldPath{[]string{"a"}}, map[string]*pb.Value{"a": submap}}, + {[]FieldPath{[]string{"a", "b", "c"}}, nil}, + {[]FieldPath{[]string{"d"}}, map[string]*pb.Value{"d": intval(3)}}, + { + []FieldPath{[]string{"d"}, []string{"a", "c"}}, + map[string]*pb.Value{ + "a": mapval(map[string]*pb.Value{"c": intval(2)}), + "d": intval(3), + }, + }, + } { + got := applyFieldPaths(fields, test.fps, nil) + if !testEqual(got, test.want) { + t.Errorf("%v:\ngot %v\nwant \n%v", test.fps, got, test.want) + } + } +} + +func TestFieldPathsFromMap(t *testing.T) { + for _, test := range []struct { + in map[string]interface{} + want []string + }{ + {nil, nil}, + {map[string]interface{}{"a": 1}, []string{"a"}}, + {map[string]interface{}{ + "a": 1, + "b": map[string]interface{}{"c": 2}, + }, []string{"a", "b.c"}}, + } { + fps := fieldPathsFromMap(reflect.ValueOf(test.in), nil) + got := toServiceFieldPaths(fps) + sort.Strings(got) + if !testEqual(got, test.want) { + t.Errorf("%+v: got %v, want %v", test.in, got, test.want) + } + } +} + +func commitRequestForSet() *pb.CommitRequest { + return &pb.CommitRequest{ + Database: "projects/projectID/databases/(default)", + Writes: []*pb.Write{ + { + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/d", + Fields: testFields, + }, + }, + }, + }, + } +} diff --git a/vendor/cloud.google.com/go/firestore/document.go b/vendor/cloud.google.com/go/firestore/document.go new file mode 100644 index 000000000..538ef5615 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/document.go @@ -0,0 +1,266 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "reflect" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" +) + +// A DocumentSnapshot contains document data and metadata. +type DocumentSnapshot struct { + // The DocumentRef for this document. + Ref *DocumentRef + + // Read-only. The time at which the document was created. + // Increases monotonically when a document is deleted then + // recreated. It can also be compared to values from other documents and + // the read time of a query. + CreateTime time.Time + + // Read-only. The time at which the document was last changed. This value + // is initally set to CreateTime then increases monotonically with each + // change to the document. It can also be compared to values from other + // documents and the read time of a query. + UpdateTime time.Time + + c *Client + proto *pb.Document +} + +func (d1 *DocumentSnapshot) equal(d2 *DocumentSnapshot) bool { + if d1 == nil || d2 == nil { + return d1 == d2 + } + return d1.Ref.equal(d2.Ref) && + d1.CreateTime.Equal(d2.CreateTime) && + d1.UpdateTime.Equal(d2.UpdateTime) && + d1.c == d2.c && + proto.Equal(d1.proto, d2.proto) +} + +// Data returns the DocumentSnapshot's fields as a map. +// It is equivalent to +// var m map[string]interface{} +// d.DataTo(&m) +func (d *DocumentSnapshot) Data() map[string]interface{} { + m, err := createMapFromValueMap(d.proto.Fields, d.c) + // Any error here is a bug in the client. + if err != nil { + panic(fmt.Sprintf("firestore: %v", err)) + } + return m +} + +// DataTo uses the document's fields to populate p, which can be a pointer to a +// map[string]interface{} or a pointer to a struct. +// +// Firestore field values are converted to Go values as follows: +// - Null converts to nil. +// - Bool converts to bool. +// - String converts to string. +// - Integer converts int64. When setting a struct field, any signed or unsigned +// integer type is permitted except uint64. Overflow is detected and results in +// an error. +// - Double converts to float64. When setting a struct field, float32 is permitted. +// Overflow is detected and results in an error. +// - Bytes is converted to []byte. +// - Timestamp converts to time.Time. +// - GeoPoint converts to latlng.LatLng, where latlng is the package +// "google.golang.org/genproto/googleapis/type/latlng". +// - Arrays convert to []interface{}. When setting a struct field, the field +// may be a slice or array of any type and is populated recursively. +// Slices are resized to the incoming value's size, while arrays that are too +// long have excess elements filled with zero values. If the array is too short, +// excess incoming values will be dropped. +// - Maps convert to map[string]interface{}. When setting a struct field, +// maps of key type string and any value type are permitted, and are populated +// recursively. +// - References are converted to DocumentRefs. +// +// Field names given by struct field tags are observed, as described in +// DocumentRef.Create. +func (d *DocumentSnapshot) DataTo(p interface{}) error { + return setFromProtoValue(p, &pb.Value{&pb.Value_MapValue{&pb.MapValue{d.proto.Fields}}}, d.c) +} + +// DataAt returns the data value denoted by fieldPath. +// +// The fieldPath argument can be a single field or a dot-separated sequence of +// fields, and must not contain any of the runes "˜*/[]". Use DataAtPath instead for +// such a path. +// +// See DocumentSnapshot.DataTo for how Firestore values are converted to Go values. +func (d *DocumentSnapshot) DataAt(fieldPath string) (interface{}, error) { + fp, err := parseDotSeparatedString(fieldPath) + if err != nil { + return nil, err + } + return d.DataAtPath(fp) +} + +// DataAtPath returns the data value denoted by the FieldPath fp. +func (d *DocumentSnapshot) DataAtPath(fp FieldPath) (interface{}, error) { + v, err := valueAtPath(fp, d.proto.Fields) + if err != nil { + return nil, err + } + return createFromProtoValue(v, d.c) +} + +// valueAtPath returns the value of m referred to by fp. +func valueAtPath(fp FieldPath, m map[string]*pb.Value) (*pb.Value, error) { + for _, k := range fp[:len(fp)-1] { + v := m[k] + if v == nil { + return nil, fmt.Errorf("firestore: no field %q", k) + } + mv := v.GetMapValue() + if mv == nil { + return nil, fmt.Errorf("firestore: value for field %q is not a map", k) + } + m = mv.Fields + } + k := fp[len(fp)-1] + v := m[k] + if v == nil { + return nil, fmt.Errorf("firestore: no field %q", k) + } + return v, nil +} + +// toProtoDocument converts a Go value to a Document proto. +// Valid values are: map[string]T, struct, or pointer to a valid value. +// It also returns a list of field paths for DocumentTransform (server timestamp). +func toProtoDocument(x interface{}) (*pb.Document, []FieldPath, error) { + if x == nil { + return nil, nil, errors.New("firestore: nil document contents") + } + v := reflect.ValueOf(x) + pv, err := toProtoValue(v) + if err != nil { + return nil, nil, err + } + fieldPaths, err := extractTransformPaths(v, nil) + if err != nil { + return nil, nil, err + } + m := pv.GetMapValue() + if m == nil { + return nil, nil, fmt.Errorf("firestore: cannot covert value of type %T into a map", x) + } + return &pb.Document{Fields: m.Fields}, fieldPaths, nil +} + +func extractTransformPaths(v reflect.Value, prefix FieldPath) ([]FieldPath, error) { + switch v.Kind() { + case reflect.Map: + return extractTransformPathsFromMap(v, prefix) + case reflect.Struct: + return extractTransformPathsFromStruct(v, prefix) + case reflect.Ptr: + if v.IsNil() { + return nil, nil + } + return extractTransformPaths(v.Elem(), prefix) + case reflect.Interface: + if v.NumMethod() == 0 { // empty interface: recurse on its contents + return extractTransformPaths(v.Elem(), prefix) + } + return nil, nil + default: + return nil, nil + } +} + +func extractTransformPathsFromMap(v reflect.Value, prefix FieldPath) ([]FieldPath, error) { + var paths []FieldPath + for _, k := range v.MapKeys() { + sk := k.Interface().(string) // assume keys are strings; checked in toProtoValue + path := prefix.with(sk) + mi := v.MapIndex(k) + if mi.Interface() == ServerTimestamp { + paths = append(paths, path) + } else { + ps, err := extractTransformPaths(mi, path) + if err != nil { + return nil, err + } + paths = append(paths, ps...) + } + } + return paths, nil +} + +func extractTransformPathsFromStruct(v reflect.Value, prefix FieldPath) ([]FieldPath, error) { + var paths []FieldPath + fields, err := fieldCache.Fields(v.Type()) + if err != nil { + return nil, err + } + for _, f := range fields { + fv := v.FieldByIndex(f.Index) + path := prefix.with(f.Name) + opts := f.ParsedTag.(tagOptions) + if opts.serverTimestamp { + var isZero bool + switch f.Type { + case typeOfGoTime: + isZero = fv.Interface().(time.Time).IsZero() + case reflect.PtrTo(typeOfGoTime): + isZero = fv.IsNil() || fv.Elem().Interface().(time.Time).IsZero() + default: + return nil, fmt.Errorf("firestore: field %s of struct %s with serverTimestamp tag must be of type time.Time or *time.Time", + f.Name, v.Type()) + } + if isZero { + paths = append(paths, path) + } + } else { + ps, err := extractTransformPaths(fv, path) + if err != nil { + return nil, err + } + paths = append(paths, ps...) + } + } + return paths, nil +} + +func newDocumentSnapshot(ref *DocumentRef, proto *pb.Document, c *Client) (*DocumentSnapshot, error) { + d := &DocumentSnapshot{ + Ref: ref, + c: c, + proto: proto, + } + ts, err := ptypes.Timestamp(proto.CreateTime) + if err != nil { + return nil, err + } + d.CreateTime = ts + ts, err = ptypes.Timestamp(proto.UpdateTime) + if err != nil { + return nil, err + } + d.UpdateTime = ts + return d, nil +} diff --git a/vendor/cloud.google.com/go/firestore/document_test.go b/vendor/cloud.google.com/go/firestore/document_test.go new file mode 100644 index 000000000..df3ffda07 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/document_test.go @@ -0,0 +1,238 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "reflect" + "sort" + "testing" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + tspb "github.com/golang/protobuf/ptypes/timestamp" +) + +func TestToProtoDocument(t *testing.T) { + type s struct{ I int } + + for _, test := range []struct { + in interface{} + want *pb.Document + wantErr bool + }{ + {nil, nil, true}, + {[]int{1}, nil, true}, + {map[string]int{"a": 1}, + &pb.Document{Fields: map[string]*pb.Value{"a": intval(1)}}, + false}, + {s{2}, &pb.Document{Fields: map[string]*pb.Value{"I": intval(2)}}, false}, + {&s{3}, &pb.Document{Fields: map[string]*pb.Value{"I": intval(3)}}, false}, + } { + got, _, gotErr := toProtoDocument(test.in) + if (gotErr != nil) != test.wantErr { + t.Errorf("%v: got error %v, want %t", test.in, gotErr, test.wantErr) + } + if gotErr != nil { + continue + } + if !testEqual(got, test.want) { + t.Errorf("%v: got %v, want %v", test.in, got, test.want) + } + } +} + +func TestNewDocumentSnapshot(t *testing.T) { + c := &Client{ + projectID: "projID", + databaseID: "(database)", + } + docRef := c.Doc("C/a") + in := &pb.Document{ + CreateTime: &tspb.Timestamp{Seconds: 10}, + UpdateTime: &tspb.Timestamp{Seconds: 20}, + Fields: map[string]*pb.Value{"a": intval(1)}, + } + want := &DocumentSnapshot{ + Ref: docRef, + CreateTime: time.Unix(10, 0).UTC(), + UpdateTime: time.Unix(20, 0).UTC(), + proto: in, + c: c, + } + got, err := newDocumentSnapshot(docRef, in, c) + if err != nil { + t.Fatal(err) + } + if !testEqual(got, want) { + t.Errorf("got %+v\nwant %+v", got, want) + } +} + +func TestData(t *testing.T) { + doc := &DocumentSnapshot{ + proto: &pb.Document{ + Fields: map[string]*pb.Value{"a": intval(1), "b": strval("x")}, + }, + } + got := doc.Data() + want := map[string]interface{}{"a": int64(1), "b": "x"} + if !testEqual(got, want) { + t.Errorf("got %#v\nwant %#v", got, want) + } + var got2 map[string]interface{} + if err := doc.DataTo(&got2); err != nil { + t.Fatal(err) + } + if !testEqual(got2, want) { + t.Errorf("got %#v\nwant %#v", got2, want) + } + + type s struct { + A int + B string + } + var got3 s + if err := doc.DataTo(&got3); err != nil { + t.Fatal(err) + } + want2 := s{A: 1, B: "x"} + if !testEqual(got3, want2) { + t.Errorf("got %#v\nwant %#v", got3, want2) + } +} + +var testDoc = &DocumentSnapshot{ + proto: &pb.Document{ + Fields: map[string]*pb.Value{ + "a": intval(1), + "b": mapval(map[string]*pb.Value{ + "`": intval(2), + "~": mapval(map[string]*pb.Value{ + "x": intval(3), + }), + }), + }, + }, +} + +func TestDataAt(t *testing.T) { + for _, test := range []struct { + fieldPath string + want interface{} + }{ + {"a", int64(1)}, + {"b.`", int64(2)}, + } { + got, err := testDoc.DataAt(test.fieldPath) + if err != nil { + t.Errorf("%q: %v", test.fieldPath, err) + continue + } + if !testEqual(got, test.want) { + t.Errorf("%q: got %v, want %v", test.fieldPath, got, test.want) + } + } + + for _, bad := range []string{ + "c.~.x", // bad field path + "a.b", // "a" isn't a map + "z.b", // bad non-final key + "b.z", // bad final key + } { + _, err := testDoc.DataAt(bad) + if err == nil { + t.Errorf("%q: got nil, want error", bad) + } + } +} + +func TestDataAtPath(t *testing.T) { + for _, test := range []struct { + fieldPath FieldPath + want interface{} + }{ + {[]string{"a"}, int64(1)}, + {[]string{"b", "`"}, int64(2)}, + {[]string{"b", "~"}, map[string]interface{}{"x": int64(3)}}, + {[]string{"b", "~", "x"}, int64(3)}, + } { + got, err := testDoc.DataAtPath(test.fieldPath) + if err != nil { + t.Errorf("%v: %v", test.fieldPath, err) + continue + } + if !testEqual(got, test.want) { + t.Errorf("%v: got %v, want %v", test.fieldPath, got, test.want) + } + } + + for _, bad := range []FieldPath{ + []string{"c", "", "x"}, // bad field path + []string{"a", "b"}, // "a" isn't a map + []string{"z", "~"}, // bad non-final key + []string{"b", "z"}, // bad final key + } { + _, err := testDoc.DataAtPath(bad) + if err == nil { + t.Errorf("%v: got nil, want error", bad) + } + } +} + +func TestExtractTransformPaths(t *testing.T) { + type S struct { + A time.Time `firestore:",serverTimestamp"` + B time.Time `firestore:",serverTimestamp"` + C *time.Time `firestore:",serverTimestamp"` + D *time.Time `firestore:"d.d,serverTimestamp"` + E *time.Time `firestore:",serverTimestamp"` + F time.Time + G int + } + + m := map[string]interface{}{ + "x": 1, + "y": &S{ + // A is a zero time: included + B: aTime, // not a zero time: excluded + // C is nil: included + D: &time.Time{}, // pointer to a zero time: included + E: &aTime, // pointer to a non-zero time: excluded + // F is a zero time, but does not have the right tag: excluded + G: 15, // not a time.Time + }, + "z": map[string]interface{}{"w": ServerTimestamp}, + } + got, err := extractTransformPaths(reflect.ValueOf(m), nil) + if err != nil { + t.Fatal(err) + } + sort.Sort(byPath(got)) + want := []FieldPath{{"y", "A"}, {"y", "C"}, {"y", "d.d"}, {"z", "w"}} + if !testEqual(got, want) { + t.Errorf("got %#v, want %#v", got, want) + } +} + +func TestExtractTransformPathsErrors(t *testing.T) { + type S struct { + A int `firestore:",serverTimestamp"` + } + _, err := extractTransformPaths(reflect.ValueOf(S{}), nil) + if err == nil { + t.Error("got nil, want error") + } +} diff --git a/vendor/cloud.google.com/go/firestore/examples_test.go b/vendor/cloud.google.com/go/firestore/examples_test.go new file mode 100644 index 000000000..7dcf8a6ce --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/examples_test.go @@ -0,0 +1,552 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// TODO(jba): add Output comments to examples when feasible. + +package firestore_test + +import ( + "fmt" + + "cloud.google.com/go/firestore" + "golang.org/x/net/context" + + "google.golang.org/api/iterator" +) + +func ExampleNewClient() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() // Close client when done. + _ = client // TODO: Use client. +} + +func ExampleClient_Collection() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + coll1 := client.Collection("States") + coll2 := client.Collection("States/NewYork/Cities") + fmt.Println(coll1, coll2) +} + +func ExampleClient_Doc() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + doc1 := client.Doc("States/NewYork") + doc2 := client.Doc("States/NewYork/Cities/Albany") + fmt.Println(doc1, doc2) +} + +func ExampleClient_GetAll() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + docs, err := client.GetAll(ctx, []*firestore.DocumentRef{ + client.Doc("States/NorthCarolina"), + client.Doc("States/SouthCarolina"), + client.Doc("States/WestCarolina"), + client.Doc("States/EastCarolina"), + }) + if err != nil { + // TODO: Handle error. + } + // docs is a slice with four DocumentSnapshots, but the last two are + // nil because there is no West or East Carolina. + fmt.Println(docs) +} + +func ExampleClient_Batch() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + b := client.Batch() + _ = b // TODO: Use batch. +} + +func ExampleWriteBatch_Commit() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + + ny := client.Doc("States/NewYork") + ca := client.Doc("States/California") + + writeResults, err := client.Batch(). + Create(ny, State{Capital: "Albany", Population: 19.8}). + Set(ca, State{Capital: "Sacramento", Population: 39.14}). + Delete(client.Doc("States/WestDakota")). + Commit(ctx) + if err != nil { + // TODO: Handle error. + } + fmt.Println(writeResults) +} + +func ExampleCollectionRef_Add() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + doc, wr, err := client.Collection("Users").Add(ctx, map[string]interface{}{ + "name": "Alice", + "email": "aj@example.com", + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(doc, wr) +} + +func ExampleCollectionRef_Doc() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + fl := client.Collection("States").Doc("Florida") + ta := client.Collection("States").Doc("Florida/Cities/Tampa") + + fmt.Println(fl, ta) +} + +func ExampleCollectionRef_NewDoc() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + doc := client.Collection("Users").NewDoc() + + fmt.Println(doc) +} + +func ExampleDocumentRef_Collection() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + mi := client.Collection("States").Doc("Michigan") + cities := mi.Collection("Cities") + + fmt.Println(cities) +} + +func ExampleDocumentRef_Create_map() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + wr, err := client.Doc("States/Colorado").Create(ctx, map[string]interface{}{ + "capital": "Denver", + "pop": 5.5, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_Create_struct() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + + wr, err := client.Doc("States/Colorado").Create(ctx, State{ + Capital: "Denver", + Population: 5.5, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_Set() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + // Overwrite the document with the given data. Any other fields currently + // in the document will be removed. + wr, err := client.Doc("States/Alabama").Set(ctx, map[string]interface{}{ + "capital": "Montgomery", + "pop": 4.9, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_Set_merge() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + // Overwrite only the fields in the map; preserve all others. + _, err = client.Doc("States/Alabama").Set(ctx, map[string]interface{}{ + "pop": 5.2, + }, firestore.MergeAll) + if err != nil { + // TODO: Handle error. + } + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + + // To do a merging Set with struct data, specify the exact fields to overwrite. + // MergeAll is disallowed here, because it would probably be a mistake: the "capital" + // field would be overwritten with the empty string. + _, err = client.Doc("States/Alabama").Set(ctx, State{Population: 5.2}, firestore.Merge("pop")) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDocumentRef_UpdateMap() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + tenn := client.Doc("States/Tennessee") + wr, err := tenn.UpdateMap(ctx, map[string]interface{}{"pop": 6.6}) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_UpdateStruct() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + + tenn := client.Doc("States/Tennessee") + wr, err := tenn.UpdateStruct(ctx, []string{"pop"}, State{ + Capital: "does not matter", + Population: 6.6, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_UpdatePaths() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + tenn := client.Doc("States/Tennessee") + wr, err := tenn.UpdatePaths(ctx, []firestore.FieldPathUpdate{ + {Path: []string{"pop"}, Value: 6.6}, + // This odd field path cannot be expressed using the dot-separated form: + {Path: []string{".", "*", "/"}, Value: "odd"}, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr.UpdateTime) +} + +func ExampleDocumentRef_Delete() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + // Oops, Ontario is a Canadian province... + if _, err = client.Doc("States/Ontario").Delete(ctx); err != nil { + // TODO: Handle error. + } +} + +func ExampleDocumentRef_Get() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + docsnap, err := client.Doc("States/Ohio").Get(ctx) + if err != nil { + // TODO: Handle error. + } + _ = docsnap // TODO: Use DocumentSnapshot. +} + +func ExampleDocumentSnapshot_Data() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + docsnap, err := client.Doc("States/Ohio").Get(ctx) + if err != nil { + // TODO: Handle error. + } + ohioMap := docsnap.Data() + fmt.Println(ohioMap["capital"]) +} + +func ExampleDocumentSnapshot_DataAt() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + docsnap, err := client.Doc("States/Ohio").Get(ctx) + if err != nil { + // TODO: Handle error. + } + cap, err := docsnap.DataAt("capital") + if err != nil { + // TODO: Handle error. + } + fmt.Println(cap) +} + +func ExampleDocumentSnapshot_DataAtPath() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + docsnap, err := client.Doc("States/Ohio").Get(ctx) + if err != nil { + // TODO: Handle error. + } + pop, err := docsnap.DataAtPath([]string{"capital", "population"}) + if err != nil { + // TODO: Handle error. + } + fmt.Println(pop) +} + +func ExampleDocumentSnapshot_DataTo() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + docsnap, err := client.Doc("States/Ohio").Get(ctx) + if err != nil { + // TODO: Handle error. + } + + type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions + } + + var s State + if err := docsnap.DataTo(&s); err != nil { + // TODO: Handle error. + } + fmt.Println(s) +} + +func ExampleQuery_Documents() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + q := client.Collection("States").Select("pop"). + Where("pop", ">", 10). + OrderBy("pop", firestore.Desc). + Limit(10) + iter1 := q.Documents(ctx) + _ = iter1 // TODO: Use iter1. + + // You can call Documents directly on a CollectionRef as well. + iter2 := client.Collection("States").Documents(ctx) + _ = iter2 // TODO: Use iter2. +} + +// This example is just like the one above, but illustrates +// how to use the XXXPath methods of Query for field paths +// that can't be expressed as a dot-separated string. +func ExampleQuery_Documents_path_methods() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + q := client.Collection("Unusual").SelectPaths([]string{"*"}, []string{"[~]"}). + WherePath([]string{"/"}, ">", 10). + OrderByPath([]string{"/"}, firestore.Desc). + Limit(10) + iter1 := q.Documents(ctx) + _ = iter1 // TODO: Use iter1. + + // You can call Documents directly on a CollectionRef as well. + iter2 := client.Collection("States").Documents(ctx) + _ = iter2 // TODO: Use iter2. +} + +func ExampleDocumentIterator_Next() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + q := client.Collection("States"). + Where("pop", ">", 10). + OrderBy("pop", firestore.Desc) + iter := q.Documents(ctx) + for { + doc, err := iter.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(doc.Data()) + } +} + +func ExampleDocumentIterator_GetAll() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + q := client.Collection("States"). + Where("pop", ">", 10). + OrderBy("pop", firestore.Desc). + Limit(10) // a good idea with GetAll, to avoid filling memory + docs, err := q.Documents(ctx).GetAll() + if err != nil { + // TODO: Handle error. + } + for _, doc := range docs { + fmt.Println(doc.Data()) + } +} + +func ExampleClient_RunTransaction() { + ctx := context.Background() + client, err := firestore.NewClient(ctx, "project-id") + if err != nil { + // TODO: Handle error. + } + defer client.Close() + + nm := client.Doc("States/NewMexico") + err = client.RunTransaction(ctx, func(ctx context.Context, tx *firestore.Transaction) error { + doc, err := tx.Get(nm) // tx.Get, NOT nm.Get! + if err != nil { + return err + } + pop, err := doc.DataAt("pop") + if err != nil { + return err + } + return tx.UpdateMap(nm, map[string]interface{}{ + "pop": pop.(float64) + 0.2, + }) + }) + if err != nil { + // TODO: Handle error. + } +} diff --git a/vendor/cloud.google.com/go/firestore/fieldpath.go b/vendor/cloud.google.com/go/firestore/fieldpath.go new file mode 100644 index 000000000..3bef97b49 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/fieldpath.go @@ -0,0 +1,222 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "bytes" + "errors" + "fmt" + "regexp" + "sort" + "strings" +) + +// A FieldPath is a non-empty sequence of non-empty fields that reference a value. +// +// A FieldPath value should only be necessary if one of the field names contains +// one of the runes ".˜*/[]". Most methods accept a simpler form of field path +// as a string in which the individual fields are separated by dots. +// For example, +// []string{"a", "b"} +// is equivalent to the string form +// "a.b" +// but +// []string{"*"} +// has no equivalent string form. +type FieldPath []string + +// parseDotSeparatedString constructs a FieldPath from a string that separates +// path components with dots. Other than splitting at dots and checking for invalid +// characters, it ignores everything else about the string, +// including attempts to quote field path compontents. So "a.`b.c`.d" is parsed into +// four parts, "a", "`b", "c`" and "d". +func parseDotSeparatedString(s string) (FieldPath, error) { + const invalidRunes = "~*/[]" + if strings.ContainsAny(s, invalidRunes) { + return nil, fmt.Errorf("firestore: %q contains an invalid rune (one of %s)", s, invalidRunes) + } + fp := FieldPath(strings.Split(s, ".")) + if err := fp.validate(); err != nil { + return nil, err + } + return fp, nil +} + +func parseDotSeparatedStrings(strs []string) ([]FieldPath, error) { + var fps []FieldPath + for _, s := range strs { + fp, err := parseDotSeparatedString(s) + if err != nil { + return nil, err + } + fps = append(fps, fp) + } + return fps, nil +} + +func (fp1 FieldPath) equal(fp2 FieldPath) bool { + if len(fp1) != len(fp2) { + return false + } + for i, c1 := range fp1 { + if c1 != fp2[i] { + return false + } + } + return true +} + +func (fp1 FieldPath) prefixOf(fp2 FieldPath) bool { + return len(fp1) <= len(fp2) && fp1.equal(fp2[:len(fp1)]) +} + +// Lexicographic ordering. +func (fp1 FieldPath) less(fp2 FieldPath) bool { + for i := range fp1 { + switch { + case i >= len(fp2): + return false + case fp1[i] < fp2[i]: + return true + case fp1[i] > fp2[i]: + return false + } + } + // fp1 and fp2 are equal up to len(fp1). + return len(fp1) < len(fp2) +} + +// validate checks the validity of fp and returns an error if it is invalid. +func (fp FieldPath) validate() error { + if len(fp) == 0 { + return errors.New("firestore: empty field path") + } + for _, c := range fp { + if len(c) == 0 { + return errors.New("firestore: empty component in field path") + } + } + return nil +} + +// with creates a new FieldPath consisting of fp followed by k. +func (fp FieldPath) with(k string) FieldPath { + r := make(FieldPath, len(fp), len(fp)+1) + copy(r, fp) + return append(r, k) +} + +// in reports whether fp is equal to one of the fps. +func (fp FieldPath) in(fps []FieldPath) bool { + for _, e := range fps { + if fp.equal(e) { + return true + } + } + return false +} + +// checkNoDupOrPrefix checks whether any FieldPath is a prefix of (or equal to) +// another. +// It modifies the order of FieldPaths in its argument (via sorting). +func checkNoDupOrPrefix(fps []FieldPath) error { + // Sort fps lexicographically. + sort.Sort(byPath(fps)) + // Check adjacent pairs for prefix. + for i := 1; i < len(fps); i++ { + if fps[i-1].prefixOf(fps[i]) { + return fmt.Errorf("field path %v cannot be used in the same update as %v", fps[i-1], fps[i]) + } + } + return nil +} + +type byPath []FieldPath + +func (b byPath) Len() int { return len(b) } +func (b byPath) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b byPath) Less(i, j int) bool { return b[i].less(b[j]) } + +// createMapFromFieldPathUpdates uses fpus to construct a valid Firestore data value +// in the form of a map. It assumes the FieldPaths in fpus have already been +// validated and checked for prefixes. If any field path is associated with the +// Delete value, it is not stored in the map. +func createMapFromFieldPathUpdates(fpus []FieldPathUpdate) map[string]interface{} { + m := map[string]interface{}{} + for _, fpu := range fpus { + if fpu.Value != Delete { + setAtPath(m, fpu.Path, fpu.Value) + } + } + return m +} + +// setAtPath sets val at the location in m specified by fp, creating sub-maps as +// needed. m must not be nil. fp is assumed to be valid. +func setAtPath(m map[string]interface{}, fp FieldPath, val interface{}) { + if len(fp) == 1 { + m[fp[0]] = val + } else { + v, ok := m[fp[0]] + if !ok { + v = map[string]interface{}{} + m[fp[0]] = v + } + // The type assertion below cannot fail, because setAtPath is only called + // with either an empty map or one filled by setAtPath itself, and the + // set of FieldPaths it is called with has been checked to make sure that + // no path is the prefix of any other. + setAtPath(v.(map[string]interface{}), fp[1:], val) + } +} + +// toServiceFieldPath converts fp the form required by the Firestore service. +// It assumes fp has been validated. +func (fp FieldPath) toServiceFieldPath() string { + cs := make([]string, len(fp)) + for i, c := range fp { + cs[i] = toServiceFieldPathComponent(c) + } + return strings.Join(cs, ".") +} + +func toServiceFieldPaths(fps []FieldPath) []string { + var sfps []string + for _, fp := range fps { + sfps = append(sfps, fp.toServiceFieldPath()) + } + return sfps +} + +// Google SQL syntax for an unquoted field. +var unquotedFieldRegexp = regexp.MustCompile("^[A-Za-z_][A-Za-z_0-9]*$") + +// toServiceFieldPathComponent returns a string that represents key and is a valid +// field path component. +func toServiceFieldPathComponent(key string) string { + if unquotedFieldRegexp.MatchString(key) { + return key + } + var buf bytes.Buffer + buf.WriteRune('`') + for _, r := range key { + if r == '`' || r == '\\' { + buf.WriteRune('\\') + } + buf.WriteRune(r) + } + buf.WriteRune('`') + return buf.String() +} diff --git a/vendor/cloud.google.com/go/firestore/fieldpath_test.go b/vendor/cloud.google.com/go/firestore/fieldpath_test.go new file mode 100644 index 000000000..1df7a8af6 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/fieldpath_test.go @@ -0,0 +1,152 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "strings" + "testing" +) + +func TestFieldPathValidate(t *testing.T) { + for _, in := range [][]string{nil, []string{}, []string{"a", "", "b"}} { + if err := FieldPath(in).validate(); err == nil { + t.Errorf("%v: want error, got nil", in) + } + } +} + +func TestFieldPathLess(t *testing.T) { + for _, test := range []struct { + in1, in2 string + want bool + }{ + {"a b", "a b", false}, + {"a", "b", true}, + {"b", "a", false}, + {"a", "a b", true}, + {"a b", "a", false}, + {"a b c", "a b d", true}, + {"a b d", "a b c", false}, + } { + fp1 := FieldPath(strings.Fields(test.in1)) + fp2 := FieldPath(strings.Fields(test.in2)) + got := fp1.less(fp2) + if got != test.want { + t.Errorf("%q.less(%q): got %t, want %t", test.in1, test.in2, got, test.want) + } + } +} + +func TestCheckForPrefix(t *testing.T) { + for _, test := range []struct { + in []string // field paths as space-separated strings + wantErr bool + }{ + {in: []string{"a", "b", "c"}, wantErr: false}, + {in: []string{"a b", "b", "c d"}, wantErr: false}, + {in: []string{"a b", "a c", "a d"}, wantErr: false}, + {in: []string{"a b", "b", "b d"}, wantErr: true}, + {in: []string{"a b", "b", "b d"}, wantErr: true}, + {in: []string{"b c d", "c d", "b c"}, wantErr: true}, + } { + var fps []FieldPath + for _, s := range test.in { + fps = append(fps, strings.Fields(s)) + } + err := checkNoDupOrPrefix(fps) + if got, want := (err != nil), test.wantErr; got != want { + t.Errorf("%#v: got '%v', want %t", test.in, err, want) + } + } +} + +// Convenience function for creating a FieldPathUpdate. +func fpu(val int, fields ...string) FieldPathUpdate { + return FieldPathUpdate{Path: fields, Value: val} +} + +func TestCreateMapFromFieldPathUpdates(t *testing.T) { + type M map[string]interface{} + + for _, test := range []struct { + in []FieldPathUpdate + want M + }{ + { + in: nil, + want: M{}, + }, + { + in: []FieldPathUpdate{fpu(1, "a"), fpu(2, "b")}, + want: M{"a": 1, "b": 2}, + }, + { + in: []FieldPathUpdate{fpu(1, "a", "b"), fpu(2, "c")}, + want: M{"a": map[string]interface{}{"b": 1}, "c": 2}, + }, + { + in: []FieldPathUpdate{fpu(1, "a", "b"), fpu(2, "c", "d")}, + want: M{ + "a": map[string]interface{}{"b": 1}, + "c": map[string]interface{}{"d": 2}, + }, + }, + { + in: []FieldPathUpdate{fpu(1, "a", "b"), fpu(2, "a", "c")}, + want: M{"a": map[string]interface{}{"b": 1, "c": 2}}, + }, + } { + gotm := createMapFromFieldPathUpdates(test.in) + got := M(gotm) + if !testEqual(got, test.want) { + t.Errorf("%v: got %#v, want %#v", test.in, got, test.want) + } + } +} + +func TestToServiceFieldPath(t *testing.T) { + for _, test := range []struct { + in FieldPath + want string + }{ + {[]string{"a"}, "a"}, + {[]string{"a", "b"}, "a.b"}, + {[]string{"a.", "[b*", "c2"}, "`a.`.`[b*`.c2"}, + {[]string{"`a", `b\`}, "`\\`a`.`b\\\\`"}, + } { + got := test.in.toServiceFieldPath() + if got != test.want { + t.Errorf("%v: got %s, want %s", test.in, got, test.want) + } + } +} + +func TestToServiceFieldPathComponent(t *testing.T) { + for _, test := range []struct { + in, want string + }{ + {"", "``"}, + {"clam_chowder23", "clam_chowder23"}, + {"23skidoo", "`23skidoo`"}, + {"bak`tik", "`bak\\`tik`"}, + {"a\\b", "`a\\\\b`"}, + {"dots.are.confusing", "`dots.are.confusing`"}, + } { + got := toServiceFieldPathComponent(test.in) + if got != test.want { + t.Errorf("%q: got %q, want %q", test.in, got, test.want) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/from_value.go b/vendor/cloud.google.com/go/firestore/from_value.go new file mode 100644 index 000000000..2e2854144 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/from_value.go @@ -0,0 +1,400 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "reflect" + "strings" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes" +) + +func setFromProtoValue(x interface{}, vproto *pb.Value, c *Client) error { + v := reflect.ValueOf(x) + if v.Kind() != reflect.Ptr || v.IsNil() { + return errors.New("firestore: nil or not a pointer") + } + return setReflectFromProtoValue(v.Elem(), vproto, c) +} + +// setReflectFromProtoValue sets v from a Firestore Value. +// v must be a settable value. +func setReflectFromProtoValue(v reflect.Value, vproto *pb.Value, c *Client) error { + typeErr := func() error { + return fmt.Errorf("firestore: cannot set type %s to %s", v.Type(), typeString(vproto)) + } + + val := vproto.ValueType + // A Null value sets anything nullable to nil, and has no effect + // on anything else. + if _, ok := val.(*pb.Value_NullValue); ok { + switch v.Kind() { + case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: + v.Set(reflect.Zero(v.Type())) + } + return nil + } + + // Handle special types first. + switch v.Type() { + case typeOfByteSlice: + x, ok := val.(*pb.Value_BytesValue) + if !ok { + return typeErr() + } + v.SetBytes(x.BytesValue) + return nil + + case typeOfGoTime: + x, ok := val.(*pb.Value_TimestampValue) + if !ok { + return typeErr() + } + t, err := ptypes.Timestamp(x.TimestampValue) + if err != nil { + return err + } + v.Set(reflect.ValueOf(t)) + return nil + + case typeOfLatLng: + x, ok := val.(*pb.Value_GeoPointValue) + if !ok { + return typeErr() + } + v.Set(reflect.ValueOf(x.GeoPointValue)) + return nil + + case typeOfDocumentRef: + x, ok := val.(*pb.Value_ReferenceValue) + if !ok { + return typeErr() + } + dr, err := pathToDoc(x.ReferenceValue, c) + if err != nil { + return err + } + v.Set(reflect.ValueOf(dr)) + return nil + } + + switch v.Kind() { + case reflect.Bool: + x, ok := val.(*pb.Value_BooleanValue) + if !ok { + return typeErr() + } + v.SetBool(x.BooleanValue) + + case reflect.String: + x, ok := val.(*pb.Value_StringValue) + if !ok { + return typeErr() + } + v.SetString(x.StringValue) + + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + x, ok := val.(*pb.Value_IntegerValue) + if !ok { + return typeErr() + } + i := x.IntegerValue + if v.OverflowInt(i) { + return overflowErr(v, i) + } + v.SetInt(i) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32: + x, ok := val.(*pb.Value_IntegerValue) + if !ok { + return typeErr() + } + u := uint64(x.IntegerValue) + if v.OverflowUint(u) { + return overflowErr(v, u) + } + v.SetUint(u) + + case reflect.Float32, reflect.Float64: + x, ok := val.(*pb.Value_DoubleValue) + if !ok { + return typeErr() + } + f := x.DoubleValue + if v.OverflowFloat(f) { + return overflowErr(v, f) + } + v.SetFloat(f) + + case reflect.Slice: + x, ok := val.(*pb.Value_ArrayValue) + if !ok { + return typeErr() + } + vals := x.ArrayValue.Values + vlen := v.Len() + xlen := len(vals) + // Make a slice of the right size, avoiding allocation if possible. + switch { + case vlen < xlen: + v.Set(reflect.MakeSlice(v.Type(), xlen, xlen)) + case vlen > xlen: + v.SetLen(xlen) + } + return populateRepeated(v, vals, xlen, c) + + case reflect.Array: + x, ok := val.(*pb.Value_ArrayValue) + if !ok { + return typeErr() + } + vals := x.ArrayValue.Values + xlen := len(vals) + vlen := v.Len() + minlen := vlen + // Set extra elements to their zero value. + if vlen > xlen { + z := reflect.Zero(v.Type().Elem()) + for i := xlen; i < vlen; i++ { + v.Index(i).Set(z) + } + minlen = xlen + } + return populateRepeated(v, vals, minlen, c) + + case reflect.Map: + x, ok := val.(*pb.Value_MapValue) + if !ok { + return typeErr() + } + return populateMap(v, x.MapValue.Fields, c) + + case reflect.Ptr: + // If the pointer is nil, set it to a zero value. + if v.IsNil() { + v.Set(reflect.New(v.Type().Elem())) + } + return setReflectFromProtoValue(v.Elem(), vproto, c) + + case reflect.Struct: + x, ok := val.(*pb.Value_MapValue) + if !ok { + return typeErr() + } + return populateStruct(v, x.MapValue.Fields, c) + + case reflect.Interface: + if v.NumMethod() == 0 { // empty interface + // If v holds a pointer, set the pointer. + if !v.IsNil() && v.Elem().Kind() == reflect.Ptr { + return setReflectFromProtoValue(v.Elem(), vproto, c) + } + // Otherwise, create a fresh value. + x, err := createFromProtoValue(vproto, c) + if err != nil { + return err + } + v.Set(reflect.ValueOf(x)) + return nil + } + // Any other kind of interface is an error. + fallthrough + + default: + return fmt.Errorf("firestore: cannot set type %s", v.Type()) + } + return nil +} + +// populateRepeated sets the first n elements of vr, which must be a slice or +// array, to the corresponding elements of vals. +func populateRepeated(vr reflect.Value, vals []*pb.Value, n int, c *Client) error { + for i := 0; i < n; i++ { + if err := setReflectFromProtoValue(vr.Index(i), vals[i], c); err != nil { + return err + } + } + return nil +} + +// populateMap sets the elements of vm, which must be a map, from the +// corresponding elements of pm. +// +// Since a map value is not settable, this function always creates a new +// element for each corresponding map key. Existing values of vm are +// overwritten. This happens even if the map value is something like a pointer +// to a struct, where we could in theory populate the existing struct value +// instead of discarding it. This behavior matches encoding/json. +func populateMap(vm reflect.Value, pm map[string]*pb.Value, c *Client) error { + t := vm.Type() + if t.Key().Kind() != reflect.String { + return errors.New("firestore: map key type is not string") + } + if vm.IsNil() { + vm.Set(reflect.MakeMap(t)) + } + et := t.Elem() + for k, vproto := range pm { + el := reflect.New(et).Elem() + if err := setReflectFromProtoValue(el, vproto, c); err != nil { + return err + } + vm.SetMapIndex(reflect.ValueOf(k), el) + } + return nil +} + +// createMapFromValueMap creates a fresh map and populates it with pm. +func createMapFromValueMap(pm map[string]*pb.Value, c *Client) (map[string]interface{}, error) { + m := map[string]interface{}{} + for k, pv := range pm { + v, err := createFromProtoValue(pv, c) + if err != nil { + return nil, err + } + m[k] = v + } + return m, nil +} + +// populateStruct sets the fields of vs, which must be a struct, from +// the matching elements of pm. +func populateStruct(vs reflect.Value, pm map[string]*pb.Value, c *Client) error { + fields, err := fieldCache.Fields(vs.Type()) + if err != nil { + return err + } + for k, vproto := range pm { + f := fields.Match(k) + if f == nil { + continue + } + if err := setReflectFromProtoValue(vs.FieldByIndex(f.Index), vproto, c); err != nil { + return fmt.Errorf("%s.%s: %v", vs.Type(), f.Name, err) + } + } + return nil +} + +func createFromProtoValue(vproto *pb.Value, c *Client) (interface{}, error) { + switch v := vproto.ValueType.(type) { + case *pb.Value_NullValue: + return nil, nil + case *pb.Value_BooleanValue: + return v.BooleanValue, nil + case *pb.Value_IntegerValue: + return v.IntegerValue, nil + case *pb.Value_DoubleValue: + return v.DoubleValue, nil + case *pb.Value_TimestampValue: + return ptypes.Timestamp(v.TimestampValue) + case *pb.Value_StringValue: + return v.StringValue, nil + case *pb.Value_BytesValue: + return v.BytesValue, nil + case *pb.Value_ReferenceValue: + return pathToDoc(v.ReferenceValue, c) + case *pb.Value_GeoPointValue: + return v.GeoPointValue, nil + + case *pb.Value_ArrayValue: + vals := v.ArrayValue.Values + ret := make([]interface{}, len(vals)) + for i, v := range vals { + r, err := createFromProtoValue(v, c) + if err != nil { + return nil, err + } + ret[i] = r + } + return ret, nil + + case *pb.Value_MapValue: + fields := v.MapValue.Fields + ret := make(map[string]interface{}, len(fields)) + for k, v := range fields { + r, err := createFromProtoValue(v, c) + if err != nil { + return nil, err + } + ret[k] = r + } + return ret, nil + + default: + return nil, fmt.Errorf("firestore: unknown value type %T", v) + } +} + +// Convert a document path to a DocumentRef. +func pathToDoc(docPath string, c *Client) (*DocumentRef, error) { + projID, dbID, docIDs, err := parseDocumentPath(docPath) + if err != nil { + return nil, err + } + parentResourceName := fmt.Sprintf("projects/%s/databases/%s", projID, dbID) + _, doc := c.idsToRef(docIDs, parentResourceName) + return doc, nil +} + +// A document path should be of the form "projects/P/databases/D/documents/coll1/doc1/coll2/doc2/...". +func parseDocumentPath(path string) (projectID, databaseID string, docPath []string, err error) { + parts := strings.Split(path, "/") + if len(parts) < 6 || parts[0] != "projects" || parts[2] != "databases" || parts[4] != "documents" { + return "", "", nil, fmt.Errorf("firestore: malformed document path %q", path) + } + docp := parts[5:] + if len(docp)%2 != 0 { + return "", "", nil, fmt.Errorf("firestore: path %q refers to collection, not document", path) + } + return parts[1], parts[3], docp, nil +} + +func typeString(vproto *pb.Value) string { + switch vproto.ValueType.(type) { + case *pb.Value_NullValue: + return "null" + case *pb.Value_BooleanValue: + return "bool" + case *pb.Value_IntegerValue: + return "int" + case *pb.Value_DoubleValue: + return "float" + case *pb.Value_TimestampValue: + return "timestamp" + case *pb.Value_StringValue: + return "string" + case *pb.Value_BytesValue: + return "bytes" + case *pb.Value_ReferenceValue: + return "reference" + case *pb.Value_GeoPointValue: + return "GeoPoint" + case *pb.Value_MapValue: + return "map" + case *pb.Value_ArrayValue: + return "array" + default: + return "" + } +} + +func overflowErr(v reflect.Value, x interface{}) error { + return fmt.Errorf("firestore: value %v overflows type %s", x, v.Type()) +} diff --git a/vendor/cloud.google.com/go/firestore/from_value_test.go b/vendor/cloud.google.com/go/firestore/from_value_test.go new file mode 100644 index 000000000..2911603f0 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/from_value_test.go @@ -0,0 +1,541 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "encoding/json" + "fmt" + "io" + "math" + "reflect" + "strings" + "testing" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "google.golang.org/genproto/googleapis/type/latlng" +) + +var ( + tm = time.Date(2016, 12, 25, 0, 0, 0, 123456789, time.UTC) + ll = &latlng.LatLng{Latitude: 20, Longitude: 30} +) + +func TestCreateFromProtoValue(t *testing.T) { + for _, test := range []struct { + in *pb.Value + want interface{} + }{ + {in: nullValue, want: nil}, + {in: boolval(true), want: true}, + {in: intval(3), want: int64(3)}, + {in: floatval(1.5), want: 1.5}, + {in: strval("str"), want: "str"}, + {in: tsval(tm), want: tm}, + { + in: bytesval([]byte{1, 2}), + want: []byte{1, 2}, + }, + { + in: &pb.Value{&pb.Value_GeoPointValue{ll}}, + want: ll, + }, + { + in: arrayval(intval(1), intval(2)), + want: []interface{}{int64(1), int64(2)}, + }, + { + in: arrayval(), + want: []interface{}{}, + }, + { + in: mapval(map[string]*pb.Value{"a": intval(1), "b": intval(2)}), + want: map[string]interface{}{"a": int64(1), "b": int64(2)}, + }, + { + in: mapval(map[string]*pb.Value{}), + want: map[string]interface{}{}, + }, + { + in: refval("projects/P/databases/D/documents/c/d"), + want: &DocumentRef{ + ID: "d", + Parent: &CollectionRef{ + ID: "c", + parentPath: "projects/P/databases/D", + Path: "projects/P/databases/D/documents/c", + Query: Query{collectionID: "c", parentPath: "projects/P/databases/D"}, + }, + Path: "projects/P/databases/D/documents/c/d", + }, + }, + } { + got, err := createFromProtoValue(test.in, nil) + if err != nil { + t.Errorf("%v: %v", test.in, err) + continue + } + if !testEqual(got, test.want) { + t.Errorf("%+v:\ngot\n%#v\nwant\n%#v", test.in, got, test.want) + } + } +} + +func TestSetFromProtoValue(t *testing.T) { + testSetFromProtoValue(t, "json", jsonTester{}) + testSetFromProtoValue(t, "firestore", protoTester{}) +} + +func testSetFromProtoValue(t *testing.T, prefix string, r tester) { + pi := newfloat(7) + s := []float64{7, 8} + ar1 := [1]float64{7} + ar2 := [2]float64{7, 8} + ar3 := [3]float64{7, 8, 9} + mf := map[string]float64{"a": 7} + + type T struct { + I **float64 + J float64 + } + + one := newfloat(1) + six := newfloat(6) + st := []*T{&T{I: &six}, nil, &T{I: &six, J: 7}} + vs := interface{}(T{J: 1}) + vm := interface{}(map[string]float64{"i": 1}) + var ( + i int + i8 int8 + i16 int16 + i32 int32 + i64 int64 + u8 uint8 + u16 uint16 + u32 uint32 + b bool + ll *latlng.LatLng + mi map[string]interface{} + ms map[string]T + ) + + for i, test := range []struct { + in interface{} + val interface{} + want interface{} + }{ + {&pi, r.Null(), (*float64)(nil)}, + {pi, r.Float(1), 1.0}, + {&s, r.Null(), ([]float64)(nil)}, + {&s, r.Array(r.Float(1), r.Float(2)), []float64{1, 2}}, + {&ar1, r.Array(r.Float(1), r.Float(2)), [1]float64{1}}, + {&ar2, r.Array(r.Float(1), r.Float(2)), [2]float64{1, 2}}, + {&ar3, r.Array(r.Float(1), r.Float(2)), [3]float64{1, 2, 0}}, + {&mf, r.Null(), (map[string]float64)(nil)}, + {&mf, r.Map("a", r.Float(1), "b", r.Float(2)), map[string]float64{"a": 1, "b": 2}}, + {&st, r.Array( + r.Null(), // overwrites st[0] with nil + r.Map("i", r.Float(1)), // sets st[1] to a new struct + r.Map("i", r.Float(2)), // modifies st[2] + ), + []*T{nil, &T{I: &one}, &T{I: &six, J: 7}}}, + {&mi, r.Map("a", r.Float(1), "b", r.Float(2)), map[string]interface{}{"a": 1.0, "b": 2.0}}, + {&ms, r.Map("a", r.Map("j", r.Float(1))), map[string]T{"a": T{J: 1}}}, + {&vs, r.Map("i", r.Float(2)), map[string]interface{}{"i": 2.0}}, + {&vm, r.Map("i", r.Float(2)), map[string]interface{}{"i": 2.0}}, + {&ll, r.Null(), (*latlng.LatLng)(nil)}, + {&i, r.Int(1), int(1)}, + {&i8, r.Int(1), int8(1)}, + {&i16, r.Int(1), int16(1)}, + {&i32, r.Int(1), int32(1)}, + {&i64, r.Int(1), int64(1)}, + {&u8, r.Int(1), uint8(1)}, + {&u16, r.Int(1), uint16(1)}, + {&u32, r.Int(1), uint32(1)}, + {&b, r.Bool(true), true}, + } { + if err := r.Set(test.in, test.val); err != nil { + t.Errorf("%s: #%d: got error %v", prefix, i, err) + continue + } + got := reflect.ValueOf(test.in).Elem().Interface() + if !testEqual(got, test.want) { + t.Errorf("%s: #%d, %v:\ngot\n%+v (%T)\nwant\n%+v (%T)", + prefix, i, test.val, got, got, test.want, test.want) + } + } +} + +func TestSetFromProtoValueNoJSON(t *testing.T) { + // Test code paths that we cannot compare to JSON. + var ( + bs []byte + tmi time.Time + lli *latlng.LatLng + ) + bytes := []byte{1, 2, 3} + + for i, test := range []struct { + in interface{} + val *pb.Value + want interface{} + }{ + {&bs, bytesval(bytes), bytes}, + {&tmi, tsval(tm), tm}, + {&lli, geoval(ll), ll}, + } { + if err := setFromProtoValue(test.in, test.val, &Client{}); err != nil { + t.Errorf("#%d: got error %v", i, err) + continue + } + got := reflect.ValueOf(test.in).Elem().Interface() + if !testEqual(got, test.want) { + t.Errorf("#%d, %v:\ngot\n%+v (%T)\nwant\n%+v (%T)", + i, test.val, got, got, test.want, test.want) + } + } +} + +func TestSetFromProtoValueErrors(t *testing.T) { + c := &Client{} + ival := intval(3) + for _, test := range []struct { + in interface{} + val *pb.Value + }{ + {3, ival}, // not a pointer + {new(int8), intval(128)}, // int overflow + {new(uint8), intval(256)}, // uint overflow + {new(float32), floatval(2 * math.MaxFloat32)}, // float overflow + {new(uint), ival}, // cannot set type + {new(uint64), ival}, // cannot set type + {new(io.Reader), ival}, // cannot set type + {new(map[int]int), + mapval(map[string]*pb.Value{"x": ival})}, // map key type is not string + // the rest are all type mismatches + {new(bool), ival}, + {new(*latlng.LatLng), ival}, + {new(time.Time), ival}, + {new(string), ival}, + {new(float64), ival}, + {new([]byte), ival}, + {new([]int), ival}, + {new([1]int), ival}, + {new(map[string]int), ival}, + {new(*bool), ival}, + {new(struct{}), ival}, + {new(int), floatval(3)}, + {new(uint16), floatval(3)}, + } { + err := setFromProtoValue(test.in, test.val, c) + if err == nil { + t.Errorf("%v, %v: got nil, want error", test.in, test.val) + } + } +} + +func TestSetFromProtoValuePointers(t *testing.T) { + // Verify that pointers are set, instead of being replaced. + // Confirm that the behavior matches encoding/json. + testSetPointer(t, "json", jsonTester{}) + testSetPointer(t, "firestore", protoTester{&Client{}}) +} + +func testSetPointer(t *testing.T, prefix string, r tester) { + // If an interface{} holds a pointer, the pointer is set. + + set := func(x, val interface{}) { + if err := r.Set(x, val); err != nil { + t.Fatalf("%s: set(%v, %v): %v", prefix, x, val, err) + } + } + p := new(float64) + var st struct { + I interface{} + } + + // A pointer in a slice of interface{} is set. + s := []interface{}{p} + set(&s, r.Array(r.Float(1))) + if s[0] != p { + t.Errorf("%s: pointers not identical", prefix) + } + if *p != 1 { + t.Errorf("%s: got %f, want 1", prefix, *p) + } + // Setting a null will set the pointer to nil. + set(&s, r.Array(r.Null())) + if got := s[0]; got != nil { + t.Errorf("%s: got %v, want null", prefix, got) + } + + // It doesn't matter how deep the pointers nest. + p = new(float64) + p2 := &p + p3 := &p2 + s = []interface{}{p3} + set(&s, r.Array(r.Float(1))) + if s[0] != p3 { + t.Errorf("%s: pointers not identical", prefix) + } + if *p != 1 { + t.Errorf("%s: got %f, want 1", prefix, *p) + } + + // A pointer in an interface{} field is set. + p = new(float64) + st.I = p + set(&st, r.Map("i", r.Float(1))) + if st.I != p { + t.Errorf("%s: pointers not identical", prefix) + } + if *p != 1 { + t.Errorf("%s: got %f, want 1", prefix, *p) + } + // Setting a null will set the pointer to nil. + set(&st, r.Map("i", r.Null())) + if got := st.I; got != nil { + t.Errorf("%s: got %v, want null", prefix, got) + } + + // A pointer to a slice (instead of to float64) is set. + psi := &[]float64{7, 8, 9} + st.I = psi + set(&st, r.Map("i", r.Array(r.Float(1)))) + if st.I != psi { + t.Errorf("%s: pointers not identical", prefix) + } + // The slice itself should be truncated and filled, not replaced. + if got, want := cap(*psi), 3; got != want { + t.Errorf("cap: got %d, want %d", got, want) + } + if want := &[]float64{1}; !testEqual(st.I, want) { + t.Errorf("got %+v, want %+v", st.I, want) + } + + // A pointer to a map is set. + pmf := &map[string]float64{"a": 7, "b": 8} + st.I = pmf + set(&st, r.Map("i", r.Map("a", r.Float(1)))) + if st.I != pmf { + t.Errorf("%s: pointers not identical", prefix) + } + if want := map[string]float64{"a": 1, "b": 8}; !testEqual(*pmf, want) { + t.Errorf("%s: got %+v, want %+v", prefix, *pmf, want) + } + + // Maps are different: since the map values aren't addressable, they + // are always discarded, even if the map element type is not interface{}. + + // A map's values are discarded if the value type is a pointer type. + p = new(float64) + m := map[string]*float64{"i": p} + set(&m, r.Map("i", r.Float(1))) + if m["i"] == p { + t.Errorf("%s: pointers are identical", prefix) + } + if got, want := *m["i"], 1.0; got != want { + t.Errorf("%s: got %v, want %v", prefix, got, want) + } + // A map's values are discarded if the value type is interface{}. + p = new(float64) + m2 := map[string]interface{}{"i": p} + set(&m2, r.Map("i", r.Float(1))) + if m2["i"] == p { + t.Errorf("%s: pointers are identical", prefix) + } + if got, want := m2["i"].(float64), 1.0; got != want { + t.Errorf("%s: got %f, want %f", prefix, got, want) + } +} + +// An interface for setting and building values, to facilitate comparing firestore deserialization +// with encoding/json. +type tester interface { + Set(x, val interface{}) error + Null() interface{} + Int(int) interface{} + Float(float64) interface{} + Bool(bool) interface{} + Array(...interface{}) interface{} + Map(keysvals ...interface{}) interface{} +} + +type protoTester struct { + c *Client +} + +func (p protoTester) Set(x, val interface{}) error { return setFromProtoValue(x, val.(*pb.Value), p.c) } +func (protoTester) Null() interface{} { return nullValue } +func (protoTester) Int(i int) interface{} { return intval(i) } +func (protoTester) Float(f float64) interface{} { return floatval(f) } +func (protoTester) Bool(b bool) interface{} { return boolval(b) } + +func (protoTester) Array(els ...interface{}) interface{} { + var s []*pb.Value + for _, el := range els { + s = append(s, el.(*pb.Value)) + } + return arrayval(s...) +} + +func (protoTester) Map(keysvals ...interface{}) interface{} { + m := map[string]*pb.Value{} + for i := 0; i < len(keysvals); i += 2 { + m[keysvals[i].(string)] = keysvals[i+1].(*pb.Value) + } + return mapval(m) +} + +type jsonTester struct{} + +func (jsonTester) Set(x, val interface{}) error { return json.Unmarshal([]byte(val.(string)), x) } +func (jsonTester) Null() interface{} { return "null" } +func (jsonTester) Int(i int) interface{} { return fmt.Sprint(i) } +func (jsonTester) Float(f float64) interface{} { return fmt.Sprint(f) } + +func (jsonTester) Bool(b bool) interface{} { + if b { + return "true" + } + return "false" +} + +func (jsonTester) Array(els ...interface{}) interface{} { + var s []string + for _, el := range els { + s = append(s, el.(string)) + } + return "[" + strings.Join(s, ", ") + "]" +} + +func (jsonTester) Map(keysvals ...interface{}) interface{} { + var s []string + for i := 0; i < len(keysvals); i += 2 { + s = append(s, fmt.Sprintf("%q: %v", keysvals[i], keysvals[i+1])) + } + return "{" + strings.Join(s, ", ") + "}" +} + +func newfloat(f float64) *float64 { + p := new(float64) + *p = f + return p +} + +func TestParseDocumentPath(t *testing.T) { + for _, test := range []struct { + in string + pid, dbid string + dpath []string + }{ + {"projects/foo-bar/databases/db2/documents/c1/d1", + "foo-bar", "db2", []string{"c1", "d1"}}, + {"projects/P/databases/D/documents/c1/d1/c2/d2", + "P", "D", []string{"c1", "d1", "c2", "d2"}}, + } { + gotPid, gotDbid, gotDpath, err := parseDocumentPath(test.in) + if err != nil { + t.Fatal(err) + } + if got, want := gotPid, test.pid; got != want { + t.Errorf("project ID: got %q, want %q", got, want) + } + if got, want := gotDbid, test.dbid; got != want { + t.Errorf("db ID: got %q, want %q", got, want) + } + if got, want := gotDpath, test.dpath; !testEqual(got, want) { + t.Errorf("doc path: got %q, want %q", got, want) + } + } +} + +func TestParseDocumentPathErrors(t *testing.T) { + for _, badPath := range []string{ + "projects/P/databases/D/documents/c", // collection path + "/projects/P/databases/D/documents/c/d", // initial slash + "projects/P/databases/D/c/d", // missing "documents" + "project/P/database/D/document/c/d", + } { + // Every prefix of a bad path is also bad. + for i := 0; i <= len(badPath); i++ { + in := badPath[:i] + _, _, _, err := parseDocumentPath(in) + if err == nil { + t.Errorf("%q: got nil, want error", in) + } + } + } +} + +func TestPathToDoc(t *testing.T) { + c := &Client{} + path := "projects/P/databases/D/documents/c1/d1/c2/d2" + got, err := pathToDoc(path, c) + if err != nil { + t.Fatal(err) + } + want := &DocumentRef{ + ID: "d2", + Path: "projects/P/databases/D/documents/c1/d1/c2/d2", + Parent: &CollectionRef{ + ID: "c2", + parentPath: "projects/P/databases/D/documents/c1/d1", + Path: "projects/P/databases/D/documents/c1/d1/c2", + c: c, + Query: Query{c: c, collectionID: "c2", parentPath: "projects/P/databases/D/documents/c1/d1"}, + Parent: &DocumentRef{ + ID: "d1", + Path: "projects/P/databases/D/documents/c1/d1", + Parent: &CollectionRef{ + ID: "c1", + c: c, + parentPath: "projects/P/databases/D", + Path: "projects/P/databases/D/documents/c1", + Parent: nil, + Query: Query{c: c, collectionID: "c1", parentPath: "projects/P/databases/D"}, + }, + }, + }, + } + if !testEqual(got, want) { + t.Errorf("\ngot %+v\nwant %+v", got, want) + } +} + +func TestTypeString(t *testing.T) { + for _, test := range []struct { + in *pb.Value + want string + }{ + {nullValue, "null"}, + {intval(1), "int"}, + {floatval(1), "float"}, + {boolval(true), "bool"}, + {strval(""), "string"}, + {tsval(tm), "timestamp"}, + {geoval(ll), "GeoPoint"}, + {bytesval(nil), "bytes"}, + {refval(""), "reference"}, + {arrayval(nil), "array"}, + {mapval(nil), "map"}, + } { + got := typeString(test.in) + if got != test.want { + t.Errorf("%+v: got %q, want %q", test.in, got, test.want) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/integration_test.go b/vendor/cloud.google.com/go/firestore/integration_test.go new file mode 100644 index 000000000..0ebe3beb1 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/integration_test.go @@ -0,0 +1,954 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "flag" + "fmt" + "log" + "os" + "sort" + "testing" + "time" + + "cloud.google.com/go/internal/pretty" + "cloud.google.com/go/internal/testutil" + + "golang.org/x/net/context" + "google.golang.org/api/option" + "google.golang.org/genproto/googleapis/type/latlng" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" +) + +func TestMain(m *testing.M) { + initIntegrationTest() + status := m.Run() + cleanupIntegrationTest() + os.Exit(status) +} + +const ( + envProjID = "GCLOUD_TESTS_GOLANG_FIRESTORE_PROJECT_ID" + envPrivateKey = "GCLOUD_TESTS_GOLANG_FIRESTORE_KEY" +) + +var ( + iClient *Client + iColl *CollectionRef + collectionIDs = testutil.NewUIDSpace("go-integration-test") +) + +func initIntegrationTest() { + flag.Parse() // needed for testing.Short() + if testing.Short() { + return + } + ctx := context.Background() + testProjectID := os.Getenv(envProjID) + if testProjectID == "" { + log.Println("Integration tests skipped. See CONTRIBUTING.md for details") + return + } + ts := testutil.TokenSourceEnv(ctx, envPrivateKey, + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore") + if ts == nil { + log.Fatal("The project key must be set. See CONTRIBUTING.md for details") + } + ti := &testInterceptor{dbPath: "projects/" + testProjectID + "/databases/(default)"} + c, err := NewClient(ctx, testProjectID, + option.WithTokenSource(ts), + option.WithGRPCDialOption(grpc.WithUnaryInterceptor(ti.interceptUnary)), + option.WithGRPCDialOption(grpc.WithStreamInterceptor(ti.interceptStream)), + ) + if err != nil { + log.Fatalf("NewClient: %v", err) + } + iClient = c + iColl = c.Collection(collectionIDs.New()) + refDoc := iColl.NewDoc() + integrationTestMap["ref"] = refDoc + wantIntegrationTestMap["ref"] = refDoc + integrationTestStruct.Ref = refDoc +} + +type testInterceptor struct { + dbPath string +} + +func (ti *testInterceptor) interceptUnary(ctx context.Context, method string, req, res interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { + ti.checkMetadata(ctx, method) + return invoker(ctx, method, req, res, cc, opts...) +} + +func (ti *testInterceptor) interceptStream(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) { + ti.checkMetadata(ctx, method) + return streamer(ctx, desc, cc, method, opts...) +} + +func (ti *testInterceptor) checkMetadata(ctx context.Context, method string) { + md, ok := metadata.FromOutgoingContext(ctx) + if !ok { + log.Fatalf("method %s: bad metadata", method) + } + for _, h := range []string{"google-cloud-resource-prefix", "x-goog-api-client"} { + v, ok := md[h] + if !ok { + log.Fatalf("method %s, header %s missing", method, h) + } + if len(v) != 1 { + log.Fatalf("method %s, header %s: bad value %v", method, h, v) + } + } + v := md["google-cloud-resource-prefix"][0] + if v != ti.dbPath { + log.Fatalf("method %s: bad resource prefix header: %q", method, v) + } +} + +func cleanupIntegrationTest() { + if iClient == nil { + return + } + // TODO(jba): delete everything in integrationColl. + iClient.Close() +} + +// integrationClient should be called by integration tests to get a valid client. It will never +// return nil. If integrationClient returns, an integration test can proceed without +// further checks. +func integrationClient(t *testing.T) *Client { + if testing.Short() { + t.Skip("Integration tests skipped in short mode") + } + if iClient == nil { + t.SkipNow() // log message printed in initIntegrationTest + } + return iClient +} + +func integrationColl(t *testing.T) *CollectionRef { + _ = integrationClient(t) + return iColl +} + +type integrationTestStructType struct { + Int int + Str string + Bool bool + Float float32 + Null interface{} + Bytes []byte + Time time.Time + Geo, NilGeo *latlng.LatLng + Ref *DocumentRef +} + +var ( + integrationTime = time.Date(2017, 3, 20, 1, 2, 3, 456789, time.UTC) + // Firestore times are accurate only to microseconds. + wantIntegrationTime = time.Date(2017, 3, 20, 1, 2, 3, 456000, time.UTC) + + integrationGeo = &latlng.LatLng{Latitude: 30, Longitude: 70} + + // Use this when writing a doc. + integrationTestMap = map[string]interface{}{ + "int": 1, + "str": "two", + "bool": true, + "float": 3.14, + "null": nil, + "bytes": []byte("bytes"), + "*": map[string]interface{}{"`": 4}, + "time": integrationTime, + "geo": integrationGeo, + "ref": nil, // populated by initIntegrationTest + } + + // The returned data is slightly different. + wantIntegrationTestMap = map[string]interface{}{ + "int": int64(1), + "str": "two", + "bool": true, + "float": 3.14, + "null": nil, + "bytes": []byte("bytes"), + "*": map[string]interface{}{"`": int64(4)}, + "time": wantIntegrationTime, + "geo": integrationGeo, + "ref": nil, // populated by initIntegrationTest + } + + integrationTestStruct = integrationTestStructType{ + Int: 1, + Str: "two", + Bool: true, + Float: 3.14, + Null: nil, + Bytes: []byte("bytes"), + Time: integrationTime, + Geo: integrationGeo, + NilGeo: nil, + Ref: nil, // populated by initIntegrationTest + } +) + +func TestIntegration_Create(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + start := time.Now() + wr := mustCreate("Create #1", t, doc, integrationTestMap) + end := time.Now() + checkTimeBetween(t, wr.UpdateTime, start, end) + _, err := doc.Create(ctx, integrationTestMap) + codeEq(t, "Create on a present doc", codes.AlreadyExists, err) +} + +func TestIntegration_Get(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + mustCreate("Get #1", t, doc, integrationTestMap) + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + if ds.CreateTime != ds.UpdateTime { + t.Errorf("create time %s != update time %s", ds.CreateTime, ds.UpdateTime) + } + got := ds.Data() + if want := wantIntegrationTestMap; !testEqual(got, want) { + t.Errorf("got\n%v\nwant\n%v", pretty.Value(got), pretty.Value(want)) + } + + // + _, err = integrationColl(t).NewDoc().Get(ctx) + codeEq(t, "Get on a missing doc", codes.NotFound, err) +} + +func TestIntegration_GetAll(t *testing.T) { + type getAll struct{ N int } + + coll := integrationColl(t) + ctx := context.Background() + var docRefs []*DocumentRef + for i := 0; i < 5; i++ { + doc := coll.NewDoc() + docRefs = append(docRefs, doc) + mustCreate("GetAll #1", t, doc, getAll{N: i}) + } + docSnapshots, err := iClient.GetAll(ctx, docRefs) + if err != nil { + t.Fatal(err) + } + if got, want := len(docSnapshots), len(docRefs); got != want { + t.Fatalf("got %d snapshots, want %d", got, want) + } + for i, ds := range docSnapshots { + var got getAll + if err := ds.DataTo(&got); err != nil { + t.Fatal(err) + } + want := getAll{N: i} + if got != want { + t.Errorf("%d: got %+v, want %+v", i, got, want) + } + } +} + +func TestIntegration_Add(t *testing.T) { + start := time.Now() + _, wr, err := integrationColl(t).Add(context.Background(), integrationTestMap) + if err != nil { + t.Fatal(err) + } + end := time.Now() + checkTimeBetween(t, wr.UpdateTime, start, end) +} + +func TestIntegration_Set(t *testing.T) { + coll := integrationColl(t) + ctx := context.Background() + + // Set Should be able to create a new doc. + doc := coll.NewDoc() + wr1, err := doc.Set(ctx, integrationTestMap) + if err != nil { + t.Fatal(err) + } + // Calling Set on the doc completely replaces the contents. + // The update time should increase. + newData := map[string]interface{}{ + "str": "change", + "x": "1", + } + wr2, err := doc.Set(ctx, newData) + if err != nil { + t.Fatal(err) + } + if !wr1.UpdateTime.Before(wr2.UpdateTime) { + t.Errorf("update time did not increase: old=%s, new=%s", wr1.UpdateTime, wr2.UpdateTime) + } + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + got := ds.Data() + if !testEqual(got, newData) { + t.Errorf("got %v, want %v", got, newData) + } + + newData = map[string]interface{}{ + "str": "1", + "x": "2", + "y": "3", + } + // SetOptions: + // Only fields mentioned in the Merge option will be changed. + // In this case, "str" will not be changed to "1". + wr3, err := doc.Set(ctx, newData, Merge("x", "y")) + if err != nil { + t.Fatal(err) + } + ds, err = doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + got = ds.Data() + want := map[string]interface{}{ + "str": "change", + "x": "2", + "y": "3", + } + if !testEqual(got, want) { + t.Errorf("got %v, want %v", got, want) + } + if !wr2.UpdateTime.Before(wr3.UpdateTime) { + t.Errorf("update time did not increase: old=%s, new=%s", wr2.UpdateTime, wr3.UpdateTime) + } + + // Another way to change only x and y is to pass a map with only + // those keys, and use MergeAll. + wr4, err := doc.Set(ctx, map[string]interface{}{"x": "4", "y": "5"}, MergeAll) + if err != nil { + t.Fatal(err) + } + ds, err = doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + got = ds.Data() + want = map[string]interface{}{ + "str": "change", + "x": "4", + "y": "5", + } + if !testEqual(got, want) { + t.Errorf("got %v, want %v", got, want) + } + if !wr3.UpdateTime.Before(wr4.UpdateTime) { + t.Errorf("update time did not increase: old=%s, new=%s", wr3.UpdateTime, wr4.UpdateTime) + } +} + +func TestIntegration_Delete(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + mustCreate("Delete #1", t, doc, integrationTestMap) + wr, err := doc.Delete(ctx) + if err != nil { + t.Fatal(err) + } + // Confirm that doc doesn't exist. + if _, err := doc.Get(ctx); grpc.Code(err) != codes.NotFound { + t.Fatalf("got error <%v>, want NotFound", err) + } + + er := func(_ *WriteResult, err error) error { return err } + + codeEq(t, "Delete on a missing doc", codes.OK, + er(doc.Delete(ctx))) + // TODO(jba): confirm that the server should return InvalidArgument instead of + // FailedPrecondition. + wr = mustCreate("Delete #2", t, doc, integrationTestMap) + codeEq(t, "Delete with wrong LastUpdateTime", codes.FailedPrecondition, + er(doc.Delete(ctx, LastUpdateTime(wr.UpdateTime.Add(-time.Millisecond))))) + codeEq(t, "Delete with right LastUpdateTime", codes.OK, + er(doc.Delete(ctx, LastUpdateTime(wr.UpdateTime)))) +} + +func TestIntegration_UpdateMap(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + mustCreate("UpdateMap", t, doc, integrationTestMap) + um := map[string]interface{}{ + "bool": false, + "time": 17, + "null": Delete, + "noSuchField": Delete, // deleting a non-existent field is a no-op + } + wr, err := doc.UpdateMap(ctx, um) + if err != nil { + t.Fatal(err) + } + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + got := ds.Data() + want := copyMap(wantIntegrationTestMap) + want["bool"] = false + want["time"] = int64(17) + delete(want, "null") + if !testEqual(got, want) { + t.Errorf("got\n%#v\nwant\n%#v", got, want) + } + + er := func(_ *WriteResult, err error) error { return err } + codeEq(t, "UpdateMap on missing doc", codes.NotFound, + er(integrationColl(t).NewDoc().UpdateMap(ctx, um))) + codeEq(t, "UpdateMap with wrong LastUpdateTime", codes.FailedPrecondition, + er(doc.UpdateMap(ctx, um, LastUpdateTime(wr.UpdateTime.Add(-time.Millisecond))))) + codeEq(t, "UpdateMap with right LastUpdateTime", codes.OK, + er(doc.UpdateMap(ctx, um, LastUpdateTime(wr.UpdateTime)))) +} + +func TestIntegration_UpdateStruct(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + mustCreate("UpdateStruct", t, doc, integrationTestStruct) + fields := []string{"Bool", "Time", "Null", "noSuchField"} + wr, err := doc.UpdateStruct(ctx, fields, + integrationTestStructType{ + Bool: false, + Time: aTime2, + }) + if err != nil { + t.Fatal(err) + } + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + var got integrationTestStructType + if err := ds.DataTo(&got); err != nil { + t.Fatal(err) + } + want := integrationTestStruct + want.Bool = false + want.Time = aTime2 + if !testEqual(got, want) { + t.Errorf("got\n%#v\nwant\n%#v", got, want) + } + + er := func(_ *WriteResult, err error) error { return err } + codeEq(t, "UpdateStruct on missing doc", codes.NotFound, + er(integrationColl(t).NewDoc().UpdateStruct(ctx, fields, integrationTestStruct))) + codeEq(t, "UpdateStruct with wrong LastUpdateTime", codes.FailedPrecondition, + er(doc.UpdateStruct(ctx, fields, integrationTestStruct, LastUpdateTime(wr.UpdateTime.Add(-time.Millisecond))))) + codeEq(t, "UpdateStruct with right LastUpdateTime", codes.OK, + er(doc.UpdateStruct(ctx, fields, integrationTestStruct, LastUpdateTime(wr.UpdateTime)))) +} + +func TestIntegration_UpdatePaths(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + mustCreate("UpdatePaths", t, doc, integrationTestMap) + fpus := []FieldPathUpdate{ + {Path: []string{"bool"}, Value: false}, + {Path: []string{"time"}, Value: 17}, + {Path: []string{"*", "`"}, Value: 18}, + {Path: []string{"null"}, Value: Delete}, + {Path: []string{"noSuchField"}, Value: Delete}, // deleting a non-existent field is a no-op + } + wr, err := doc.UpdatePaths(ctx, fpus) + if err != nil { + t.Fatal(err) + } + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + got := ds.Data() + want := copyMap(wantIntegrationTestMap) + want["bool"] = false + want["time"] = int64(17) + want["*"] = map[string]interface{}{"`": int64(18)} + delete(want, "null") + if !testEqual(got, want) { + t.Errorf("got\n%#v\nwant\n%#v", got, want) + } + + er := func(_ *WriteResult, err error) error { return err } + + codeEq(t, "UpdatePaths on missing doc", codes.NotFound, + er(integrationColl(t).NewDoc().UpdatePaths(ctx, fpus))) + codeEq(t, "UpdatePaths with wrong LastUpdateTime", codes.FailedPrecondition, + er(doc.UpdatePaths(ctx, fpus, LastUpdateTime(wr.UpdateTime.Add(-time.Millisecond))))) + codeEq(t, "UpdatePaths with right LastUpdateTime", codes.OK, + er(doc.UpdatePaths(ctx, fpus, LastUpdateTime(wr.UpdateTime)))) +} + +func TestIntegration_Collections(t *testing.T) { + ctx := context.Background() + c := integrationClient(t) + got, err := c.Collections(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + // There should be at least one collection. + if len(got) == 0 { + t.Error("got 0 top-level collections, want at least one") + } + + doc := integrationColl(t).NewDoc() + got, err = doc.Collections(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + if len(got) != 0 { + t.Errorf("got %d collections, want 0", len(got)) + } + var want []*CollectionRef + for i := 0; i < 3; i++ { + id := collectionIDs.New() + cr := doc.Collection(id) + want = append(want, cr) + mustCreate("Collections", t, cr.NewDoc(), integrationTestMap) + } + got, err = doc.Collections(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + if !testEqual(got, want) { + t.Errorf("got\n%#v\nwant\n%#v", got, want) + } +} + +func TestIntegration_ServerTimestamp(t *testing.T) { + type S struct { + A int + B time.Time + C time.Time `firestore:"C.C,serverTimestamp"` + D map[string]interface{} + E time.Time `firestore:",omitempty,serverTimestamp"` + } + data := S{ + A: 1, + B: aTime, + // C is unset, so will get the server timestamp. + D: map[string]interface{}{"x": ServerTimestamp}, + // E is unset, so will get the server timestamp. + } + ctx := context.Background() + doc := integrationColl(t).NewDoc() + // Bound times of the RPC, with some slack for clock skew. + start := time.Now() + mustCreate("ServerTimestamp", t, doc, data) + end := time.Now() + ds, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + var got S + if err := ds.DataTo(&got); err != nil { + t.Fatal(err) + } + if !testEqual(got.B, aTime) { + t.Errorf("B: got %s, want %s", got.B, aTime) + } + checkTimeBetween(t, got.C, start, end) + if g, w := got.D["x"], got.C; !testEqual(g, w) { + t.Errorf(`D["x"] = %s, want equal to C (%s)`, g, w) + } + if g, w := got.E, got.C; !testEqual(g, w) { + t.Errorf(`E = %s, want equal to C (%s)`, g, w) + } +} + +func TestIntegration_MergeServerTimestamp(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + + // Create a doc with an ordinary field "a" and a ServerTimestamp field "b". + _, err := doc.Set(ctx, map[string]interface{}{ + "a": 1, + "b": ServerTimestamp}) + if err != nil { + t.Fatal(err) + } + docSnap, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + data1 := docSnap.Data() + // Merge with a document with a different value of "a". However, + // specify only "b" in the list of merge fields. + _, err = doc.Set(ctx, + map[string]interface{}{"a": 2, "b": ServerTimestamp}, + Merge("b")) + if err != nil { + t.Fatal(err) + } + // The result should leave "a" unchanged, while "b" is updated. + docSnap, err = doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + data2 := docSnap.Data() + if got, want := data2["a"], data1["a"]; got != want { + t.Errorf("got %v, want %v", got, want) + } + t1 := data1["b"].(time.Time) + t2 := data2["b"].(time.Time) + if !t1.Before(t2) { + t.Errorf("got t1=%s, t2=%s; want t1 before t2", t1, t2) + } +} + +func TestIntegration_MergeNestedServerTimestamp(t *testing.T) { + ctx := context.Background() + doc := integrationColl(t).NewDoc() + + // Create a doc with an ordinary field "a" a ServerTimestamp field "b", + // and a second ServerTimestamp field "c.d". + _, err := doc.Set(ctx, map[string]interface{}{ + "a": 1, + "b": ServerTimestamp, + "c": map[string]interface{}{"d": ServerTimestamp}, + }) + if err != nil { + t.Fatal(err) + } + docSnap, err := doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + data1 := docSnap.Data() + // Merge with a document with a different value of "a". However, + // specify only "c.d" in the list of merge fields. + _, err = doc.Set(ctx, + map[string]interface{}{ + "a": 2, + "b": ServerTimestamp, + "c": map[string]interface{}{"d": ServerTimestamp}, + }, + Merge("c.d")) + if err != nil { + t.Fatal(err) + } + // The result should leave "a" and "b" unchanged, while "c.d" is updated. + docSnap, err = doc.Get(ctx) + if err != nil { + t.Fatal(err) + } + data2 := docSnap.Data() + if got, want := data2["a"], data1["a"]; got != want { + t.Errorf("a: got %v, want %v", got, want) + } + want := data1["b"].(time.Time) + got := data2["b"].(time.Time) + if !got.Equal(want) { + t.Errorf("b: got %s, want %s", got, want) + } + t1 := data1["c"].(map[string]interface{})["d"].(time.Time) + t2 := data2["c"].(map[string]interface{})["d"].(time.Time) + if !t1.Before(t2) { + t.Errorf("got t1=%s, t2=%s; want t1 before t2", t1, t2) + } +} + +func TestIntegration_WriteBatch(t *testing.T) { + ctx := context.Background() + b := integrationClient(t).Batch() + doc1 := iColl.NewDoc() + doc2 := iColl.NewDoc() + b.Create(doc1, integrationTestMap) + b.Set(doc2, integrationTestMap) + b.UpdateMap(doc1, map[string]interface{}{"bool": false}) + b.UpdateMap(doc1, map[string]interface{}{"str": Delete}) + + wrs, err := b.Commit(ctx) + if err != nil { + t.Fatal(err) + } + if got, want := len(wrs), 4; got != want { + t.Fatalf("got %d WriteResults, want %d", got, want) + } + ds, err := doc1.Get(ctx) + if err != nil { + t.Fatal(err) + } + got1 := ds.Data() + want := copyMap(wantIntegrationTestMap) + want["bool"] = false + delete(want, "str") + if !testEqual(got1, want) { + t.Errorf("got\n%#v\nwant\n%#v", got1, want) + } + ds, err = doc2.Get(ctx) + if err != nil { + t.Fatal(err) + } + got2 := ds.Data() + if !testEqual(got2, wantIntegrationTestMap) { + t.Errorf("got\n%#v\nwant\n%#v", got2, wantIntegrationTestMap) + } + // TODO(jba): test two updates to the same document when it is supported. + // TODO(jba): test verify when it is supported. +} + +func TestIntegration_Query(t *testing.T) { + ctx := context.Background() + coll := integrationColl(t) + var docs []*DocumentRef + var wants []map[string]interface{} + for i := 0; i < 3; i++ { + doc := coll.NewDoc() + docs = append(docs, doc) + // To support running this test in parallel with the others, use a field name + // that we don't use anywhere else. + mustCreate(fmt.Sprintf("Query #%d", i), t, doc, + map[string]interface{}{ + "q": i, + "x": 1, + }) + wants = append(wants, map[string]interface{}{"q": int64(i)}) + } + q := coll.Select("q").OrderBy("q", Asc) + for i, test := range []struct { + q Query + want []map[string]interface{} + }{ + {q, wants}, + {q.Where("q", ">", 1), wants[2:]}, + {q.WherePath([]string{"q"}, ">", 1), wants[2:]}, + {q.Offset(1).Limit(1), wants[1:2]}, + {q.StartAt(1), wants[1:]}, + {q.StartAfter(1), wants[2:]}, + {q.EndAt(1), wants[:2]}, + {q.EndBefore(1), wants[:1]}, + } { + gotDocs, err := test.q.Documents(ctx).GetAll() + if err != nil { + t.Errorf("#%d: %+v: %v", i, test.q, err) + continue + } + if len(gotDocs) != len(test.want) { + t.Errorf("#%d: %+v: got %d docs, want %d", i, test.q, len(gotDocs), len(test.want)) + continue + } + for j, g := range gotDocs { + if got, want := g.Data(), test.want[j]; !testEqual(got, want) { + t.Errorf("#%d: %+v, #%d: got\n%+v\nwant\n%+v", i, test.q, j, got, want) + } + } + } + _, err := coll.Select("q").Where("x", "==", 1).OrderBy("q", Asc).Documents(ctx).GetAll() + codeEq(t, "Where and OrderBy on different fields without an index", codes.FailedPrecondition, err) + + // Using the collection itself as the query should return the full documents. + allDocs, err := coll.Documents(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + seen := map[int64]bool{} // "q" values we see + for _, d := range allDocs { + data := d.Data() + q, ok := data["q"] + if !ok { + // A document from another test. + continue + } + if seen[q.(int64)] { + t.Errorf("%v: duplicate doc", data) + } + seen[q.(int64)] = true + if data["x"] != int64(1) { + t.Errorf("%v: wrong or missing 'x'", data) + } + if len(data) != 2 { + t.Errorf("%v: want two keys", data) + } + } + if got, want := len(seen), len(wants); got != want { + t.Errorf("got %d docs with 'q', want %d", len(seen), len(wants)) + } +} + +// Test the special DocumentID field in queries. +func TestIntegration_QueryName(t *testing.T) { + ctx := context.Background() + + checkIDs := func(q Query, wantIDs []string) { + gots, err := q.Documents(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + if len(gots) != len(wantIDs) { + t.Fatalf("got %d, want %d", len(gots), len(wantIDs)) + } + for i, g := range gots { + if got, want := g.Ref.ID, wantIDs[i]; got != want { + t.Errorf("#%d: got %s, want %s", i, got, want) + } + } + } + + coll := integrationColl(t) + var wantIDs []string + for i := 0; i < 3; i++ { + doc := coll.NewDoc() + mustCreate(fmt.Sprintf("Query #%d", i), t, doc, map[string]interface{}{"nm": 1}) + wantIDs = append(wantIDs, doc.ID) + } + sort.Strings(wantIDs) + q := coll.Where("nm", "==", 1).OrderBy(DocumentID, Asc) + checkIDs(q, wantIDs) + + // Empty Select. + q = coll.Select().Where("nm", "==", 1).OrderBy(DocumentID, Asc) + checkIDs(q, wantIDs) + + // Test cursors with __name__. + checkIDs(q.StartAt(wantIDs[1]), wantIDs[1:]) + checkIDs(q.EndAt(wantIDs[1]), wantIDs[:2]) +} + +func TestIntegration_QueryNested(t *testing.T) { + ctx := context.Background() + coll1 := integrationColl(t) + doc1 := coll1.NewDoc() + coll2 := doc1.Collection(collectionIDs.New()) + doc2 := coll2.NewDoc() + wantData := map[string]interface{}{"x": int64(1)} + mustCreate("QueryNested", t, doc2, wantData) + q := coll2.Select("x") + got, err := q.Documents(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + if len(got) != 1 { + t.Fatalf("got %d docs, want 1", len(got)) + } + if gotData := got[0].Data(); !testEqual(gotData, wantData) { + t.Errorf("got\n%+v\nwant\n%+v", gotData, wantData) + } +} + +func TestIntegration_RunTransaction(t *testing.T) { + ctx := context.Background() + type Player struct { + Name string + Score int + Star bool `firestore:"*"` + } + pat := Player{Name: "Pat", Score: 3, Star: false} + client := integrationClient(t) + patDoc := iColl.Doc("pat") + var anError error + incPat := func(_ context.Context, tx *Transaction) error { + doc, err := tx.Get(patDoc) + if err != nil { + return err + } + score, err := doc.DataAt("Score") + if err != nil { + return err + } + // Since the Star field is called "*", we must use DataAtPath to get it. + star, err := doc.DataAtPath([]string{"*"}) + if err != nil { + return err + } + err = tx.UpdateStruct(patDoc, []string{"Score"}, + Player{Score: int(score.(int64) + 7)}) + if err != nil { + return err + } + // Since the Star field is called "*", we must use UpdatePaths to change it. + err = tx.UpdatePaths(patDoc, + []FieldPathUpdate{{Path: []string{"*"}, Value: !star.(bool)}}) + if err != nil { + return err + } + return anError + } + mustCreate("RunTransaction", t, patDoc, pat) + err := client.RunTransaction(ctx, incPat) + if err != nil { + t.Fatal(err) + } + ds, err := patDoc.Get(ctx) + if err != nil { + t.Fatal(err) + } + var got Player + if err := ds.DataTo(&got); err != nil { + t.Fatal(err) + } + want := Player{Name: "Pat", Score: 10, Star: true} + if got != want { + t.Errorf("got %+v, want %+v", got, want) + } + + // Function returns error, so transaction is rolled back and no writes happen. + anError = errors.New("bad") + err = client.RunTransaction(ctx, incPat) + if err != anError { + t.Fatalf("got %v, want %v", err, anError) + } + if err := ds.DataTo(&got); err != nil { + t.Fatal(err) + } + // want is same as before. + if got != want { + t.Errorf("got %+v, want %+v", got, want) + } +} + +func codeEq(t *testing.T, msg string, code codes.Code, err error) { + if grpc.Code(err) != code { + t.Fatalf("%s:\ngot <%v>\nwant code %s", msg, err, code) + } +} + +func mustCreate(msg string, t *testing.T, doc *DocumentRef, data interface{}) *WriteResult { + wr, err := doc.Create(context.Background(), data) + if err != nil { + t.Fatalf("%s: creating: %v", msg, err) + } + return wr +} + +func copyMap(m map[string]interface{}) map[string]interface{} { + c := map[string]interface{}{} + for k, v := range m { + c[k] = v + } + return c +} + +func checkTimeBetween(t *testing.T, got, low, high time.Time) { + // Allow slack for clock skew. + const slack = 1 * time.Second + low = low.Add(-slack) + high = high.Add(slack) + if got.Before(low) || got.After(high) { + t.Fatalf("got %s, not in [%s, %s]", got, low, high) + } +} diff --git a/vendor/cloud.google.com/go/firestore/internal/Makefile b/vendor/cloud.google.com/go/firestore/internal/Makefile new file mode 100644 index 000000000..4cbab29a1 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/internal/Makefile @@ -0,0 +1,10 @@ +# Build doc.go from template and snippets. + +SHELL=/bin/bash + +../doc.go: doc-snippets.go doc.template snipdoc.awk + @tmp=$$(mktemp) && \ + awk -f snipdoc.awk doc-snippets.go doc.template > $$tmp && \ + chmod +w ../doc.go && \ + mv $$tmp ../doc.go && \ + chmod -w ../doc.go diff --git a/vendor/cloud.google.com/go/firestore/internal/doc-snippets.go b/vendor/cloud.google.com/go/firestore/internal/doc-snippets.go new file mode 100644 index 000000000..4ba3650f4 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/internal/doc-snippets.go @@ -0,0 +1,164 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package internal + +import ( + "fmt" + + firestore "cloud.google.com/go/firestore" + + "golang.org/x/net/context" + "google.golang.org/api/iterator" +) + +const ELLIPSIS = 0 + +//[ structDef +type State struct { + Capital string `firestore:"capital"` + Population float64 `firestore:"pop"` // in millions +} + +//] + +func f1() { + //[ NewClient + ctx := context.Background() + client, err := firestore.NewClient(ctx, "projectID") + if err != nil { + // TODO: Handle error. + } + //] + //[ refs + states := client.Collection("States") + ny := states.Doc("NewYork") + // Or, in a single call: + ny = client.Doc("States/NewYork") + //] + //[ docref.Get + docsnap, err := ny.Get(ctx) + if err != nil { + // TODO: Handle error. + } + dataMap := docsnap.Data() + fmt.Println(dataMap) + //] + //[ DataTo + var nyData State + if err := docsnap.DataTo(&nyData); err != nil { + // TODO: Handle error. + } + //] + //[ GetAll + docsnaps, err := client.GetAll(ctx, []*firestore.DocumentRef{ + states.Doc("Wisconsin"), states.Doc("Ohio"), + }) + if err != nil { + // TODO: Handle error. + } + for _, ds := range docsnaps { + _ = ds // TODO: Use ds. + } + //[ docref.Create + wr, err := ny.Create(ctx, State{ + Capital: "Albany", + Population: 19.8, + }) + if err != nil { + // TODO: Handle error. + } + fmt.Println(wr) + //] + //[ docref.Set + ca := states.Doc("California") + _, err = ca.Set(ctx, State{ + Capital: "Sacramento", + Population: 39.14, + }) + //] + + //[ docref.Delete + _, err = ny.Delete(ctx) + //] + + //[ LUT-precond + docsnap, err = ca.Get(ctx) + if err != nil { + // TODO: Handle error. + } + _, err = ca.UpdateStruct(ctx, []string{"capital"}, State{Capital: "Sacramento"}, + firestore.LastUpdateTime(docsnap.UpdateTime)) + //] + + //[ docref.UpdateMap + _, err = ca.UpdateMap(ctx, map[string]interface{}{"pop": 39.2}) + //] + //[ docref.UpdateStruct + _, err = ca.UpdateStruct(ctx, []string{"pop"}, State{Population: 39.2}) + //] + + //[ WriteBatch + writeResults, err := client.Batch(). + Create(ny, State{Capital: "Albany"}). + UpdateStruct(ca, []string{"capital"}, State{Capital: "Sacramento"}). + Delete(client.Doc("States/WestDakota")). + Commit(ctx) + //] + _ = writeResults + + //[ Query + q := states.Where("pop", ">", 10).OrderBy("pop", firestore.Desc) + //] + //[ Documents + iter := q.Documents(ctx) + for { + doc, err := iter.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(doc.Data()) + } + //] + + //[ CollQuery + iter = client.Collection("States").Documents(ctx) + //] +} + +func txn() { + var ctx context.Context + var client *firestore.Client + //[ Transaction + ny := client.Doc("States/NewYork") + err := client.RunTransaction(ctx, func(ctx context.Context, tx *firestore.Transaction) error { + doc, err := tx.Get(ny) // tx.Get, NOT ny.Get! + if err != nil { + return err + } + pop, err := doc.DataAt("pop") + if err != nil { + return err + } + return tx.UpdateStruct(ny, []string{"pop"}, + State{Population: pop.(float64) + 0.2}) + }) + if err != nil { + // TODO: Handle error. + } + //] +} diff --git a/vendor/cloud.google.com/go/firestore/internal/doc.template b/vendor/cloud.google.com/go/firestore/internal/doc.template new file mode 100644 index 000000000..2bd241d57 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/internal/doc.template @@ -0,0 +1,148 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// DO NOT EDIT doc.go. Modify internal/doc.template, then run make -C internal. + +/* +Package firestore provides a client for reading and writing to a Cloud Firestore +database. + +See https://cloud.google.com/firestore/docs for an introduction +to Cloud Firestore and additional help on using the Firestore API. + +Creating a Client + +To start working with this package, create a client with a project ID: + +[NewClient] + +CollectionRefs and DocumentRefs + +In Firestore, documents are sets of key-value pairs, and collections are groups of +documents. A Firestore database consists of a hierarchy of alternating collections +and documents, referred to by slash-separated paths like +"States/California/Cities/SanFrancisco". + +This client is built around references to collections and documents. CollectionRefs +and DocumentRefs are lightweight values that refer to the corresponding database +entities. Creating a ref does not involve any network traffic. + +[refs] + +Reading + +Use DocumentRef.Get to read a document. The result is a DocumentSnapshot. +Call its Data method to obtain the entire document contents as a map. + +[docref.Get] + +You can also obtain a single field with DataAt, or extract the data into a struct +with DataTo. With the type definition + +[structDef] + +we can extract the document's data into a value of type State: + +[DataTo] + +Note that this client supports struct tags beginning with "firestore:" that work like +the tags of the encoding/json package, letting you rename fields, ignore them, or +omit their values when empty. + +To retrieve multiple documents from their references in a single call, use +Client.GetAll. + +[GetAll] + +Writing + +For writing individual documents, use the methods on DocumentReference. +Create creates a new document. + +[docref.Create] + +The first return value is a WriteResult, which contains the time +at which the document was updated. + +Create fails if the document exists. Another method, Set, either replaces an existing +document or creates a new one. + +[docref.Set] + +To update some fields of an existing document, use UpdateMap, UpdateStruct or +UpdatePaths. For UpdateMap, the keys of the map specify which fields to change. The +others are untouched. + +[docref.UpdateMap] + +For UpdateStruct, you must explicitly provide the fields to update. The field names +must match exactly. + +[docref.UpdateStruct] + +Use DocumentRef.Delete to delete a document. + +[docref.Delete] + +Preconditions + +You can condition Deletes or Updates on when a document was last changed. Specify +these preconditions as an option to a Delete or Update method. The check and the +write happen atomically with a single RPC. + +[LUT-precond] + +Here we update a doc only if it hasn't changed since we read it. +You could also do this with a transaction. + +To perform multiple writes at once, use a WriteBatch. Its methods chain +for convenience. + +WriteBatch.Commit sends the collected writes to the server, where they happen +atomically. + +[WriteBatch] + +Queries + +You can use SQL to select documents from a collection. Begin with the collection, and +build up a query using Select, Where and other methods of Query. + +[Query] + +Call the Query's Documents method to get an iterator, and use it like +the other Google Cloud Client iterators. + +[Documents] + +To get all the documents in a collection, you can use the collection itself +as a query. + +[CollQuery] + +Transactions + +Use a transaction to execute reads and writes atomically. All reads must happen +before any writes. Transaction creation, commit, rollback and retry are handled for +you by the Client.RunTransaction method; just provide a function and use the +read and write methods of the Transaction passed to it. + +[Transaction] + +Authentication + +See examples of authorization and authentication at +https://godoc.org/cloud.google.com/go#pkg-examples. +*/ +package firestore diff --git a/vendor/cloud.google.com/go/firestore/internal/snipdoc.awk b/vendor/cloud.google.com/go/firestore/internal/snipdoc.awk new file mode 100644 index 000000000..ebb7e2166 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/internal/snipdoc.awk @@ -0,0 +1,116 @@ +# Copyright 2017 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# snipdoc merges code snippets from Go source files into a template to +# produce another go file (typically doc.go). +# +# Call with one or more .go files and a template file. +# +# awk -f snipmd.awk foo.go bar.go doc.template +# +# In the Go files, start a snippet with +# //[ NAME +# and end it with +# //] +# +# In the template, write +# [NAME] +# on a line by itself to insert the snippet NAME on that line. +# +# The following transformations are made to the Go code: +# - Trailing blank lines are removed. +# - `ELLIPSIS` and `_ = ELLIPSIS` are replaced by `...` + + +/^[ \t]*\/\/\[/ { # start snippet in Go file + if (inGo()) { + if ($2 == "") { + die("missing snippet name") + } + curSnip = $2 + next + } +} + +/^[ \t]*\/\/]/ { # end snippet in Go file + if (inGo()) { + if (curSnip != "") { + # Remove all trailing newlines. + gsub(/[\t\n]+$/, "", snips[curSnip]) + curSnip = "" + next + } else { + die("//] without corresponding //[") + } + } +} + +ENDFILE { + if (curSnip != "") { + die("unclosed snippet: " curSnip) + } +} + +/^\[.*\]$/ { # Snippet marker in template file. + if (inTemplate()) { + name = substr($1, 2, length($1)-2) + if (snips[name] == "") { + die("no snippet named " name) + } + printf("%s\n", snips[name]) + afterSnip = 1 + next + } +} + +# Matches every line. +{ + if (curSnip != "") { + # If the first line in the snip has no indent, add the indent. + if (snips[curSnip] == "") { + if (index($0, "\t") == 1) { + extraIndent = "" + } else { + extraIndent = "\t" + } + } + + line = $0 + # Replace ELLIPSIS. + gsub(/_ = ELLIPSIS/, "...", line) + gsub(/ELLIPSIS/, "...", line) + + snips[curSnip] = snips[curSnip] extraIndent line "\n" + } else if (inTemplate()) { + afterSnip = 0 + # Copy to output. + print + } +} + + + +function inTemplate() { + return match(FILENAME, /\.template$/) +} + +function inGo() { + return match(FILENAME, /\.go$/) +} + + +function die(msg) { + printf("%s:%d: %s\n", FILENAME, FNR, msg) > "/dev/stderr" + exit 1 +} diff --git a/vendor/cloud.google.com/go/firestore/mock_test.go b/vendor/cloud.google.com/go/firestore/mock_test.go new file mode 100644 index 000000000..047d3458a --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/mock_test.go @@ -0,0 +1,175 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +// A simple mock server. + +import ( + "fmt" + + "cloud.google.com/go/internal/testutil" + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes/empty" + "golang.org/x/net/context" +) + +type mockServer struct { + pb.FirestoreServer + + Addr string + + reqItems []reqItem + resps []interface{} +} + +type reqItem struct { + wantReq proto.Message + adjust func(gotReq proto.Message) +} + +func newMockServer() (*mockServer, error) { + srv, err := testutil.NewServer() + if err != nil { + return nil, err + } + mock := &mockServer{Addr: srv.Addr} + pb.RegisterFirestoreServer(srv.Gsrv, mock) + srv.Start() + return mock, nil +} + +// addRPC adds a (request, response) pair to the server's list of expected +// interactions. The server will compare the incoming request with wantReq +// using proto.Equal. +// +// Passing nil for wantReq disables the request check. +func (s *mockServer) addRPC(wantReq proto.Message, resp interface{}) { + s.addRPCAdjust(wantReq, resp, nil) +} + +// addRPCAdjust is like addRPC, but accepts a function that can be used +// to tweak the requests before comparison, for example to adjust for +// randomness. +func (s *mockServer) addRPCAdjust(wantReq proto.Message, resp interface{}, adjust func(proto.Message)) { + s.reqItems = append(s.reqItems, reqItem{wantReq, adjust}) + s.resps = append(s.resps, resp) +} + +// popRPC compares the request with the next expected (request, response) pair. +// It returns the response, or an error if the request doesn't match what +// was expected or there are no expected rpcs. +func (s *mockServer) popRPC(gotReq proto.Message) (interface{}, error) { + if len(s.reqItems) == 0 { + panic("out of RPCs") + } + ri := s.reqItems[0] + s.reqItems = s.reqItems[1:] + if ri.wantReq != nil { + if ri.adjust != nil { + ri.adjust(gotReq) + } + if !proto.Equal(gotReq, ri.wantReq) { + return nil, fmt.Errorf("mockServer: bad request\ngot: %T\n%+v\nwant: %T\n%+v", + gotReq, gotReq, ri.wantReq, ri.wantReq) + } + } + resp := s.resps[0] + s.resps = s.resps[1:] + if err, ok := resp.(error); ok { + return nil, err + } + return resp, nil +} + +func (s *mockServer) reset() { + s.reqItems = nil + s.resps = nil +} + +func (s *mockServer) GetDocument(_ context.Context, req *pb.GetDocumentRequest) (*pb.Document, error) { + res, err := s.popRPC(req) + if err != nil { + return nil, err + } + return res.(*pb.Document), nil +} + +func (s *mockServer) Commit(_ context.Context, req *pb.CommitRequest) (*pb.CommitResponse, error) { + res, err := s.popRPC(req) + if err != nil { + return nil, err + } + return res.(*pb.CommitResponse), nil +} + +func (s *mockServer) BatchGetDocuments(req *pb.BatchGetDocumentsRequest, bs pb.Firestore_BatchGetDocumentsServer) error { + res, err := s.popRPC(req) + if err != nil { + return err + } + responses := res.([]interface{}) + for _, res := range responses { + switch res := res.(type) { + case *pb.BatchGetDocumentsResponse: + if err := bs.Send(res); err != nil { + return err + } + case error: + return res + default: + panic(fmt.Sprintf("bad response type in BatchGetDocuments: %+v", res)) + } + } + return nil +} + +func (s *mockServer) RunQuery(req *pb.RunQueryRequest, qs pb.Firestore_RunQueryServer) error { + res, err := s.popRPC(req) + if err != nil { + return err + } + responses := res.([]interface{}) + for _, res := range responses { + switch res := res.(type) { + case *pb.RunQueryResponse: + if err := qs.Send(res); err != nil { + return err + } + case error: + return res + default: + panic(fmt.Sprintf("bad response type in RunQuery: %+v", res)) + } + } + return nil +} + +func (s *mockServer) BeginTransaction(_ context.Context, req *pb.BeginTransactionRequest) (*pb.BeginTransactionResponse, error) { + res, err := s.popRPC(req) + if err != nil { + return nil, err + } + return res.(*pb.BeginTransactionResponse), nil +} + +func (s *mockServer) Rollback(_ context.Context, req *pb.RollbackRequest) (*empty.Empty, error) { + res, err := s.popRPC(req) + if err != nil { + return nil, err + } + return res.(*empty.Empty), nil +} diff --git a/vendor/cloud.google.com/go/firestore/options.go b/vendor/cloud.google.com/go/firestore/options.go new file mode 100644 index 000000000..f5e70a98f --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/options.go @@ -0,0 +1,182 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes" +) + +// A Precondition modifies a Firestore update or delete operation. +type Precondition interface { + // Returns the corresponding Precondition proto. + preconditionProto() (*pb.Precondition, error) +} + +// Exists returns a Precondition that checks for the existence or non-existence +// of a resource before writing to it. If the check fails, the write does not occur. +func Exists(b bool) Precondition { return exists(b) } + +type exists bool + +func (e exists) preconditionProto() (*pb.Precondition, error) { + return &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{bool(e)}, + }, nil +} + +func (e exists) String() string { return fmt.Sprintf("Exists(%t)", e) } + +// LastUpdateTime returns a Precondition that checks that a resource must exist and +// must have last been updated at the given time. If the check fails, the write +// does not occur. +func LastUpdateTime(t time.Time) Precondition { return lastUpdateTime(t) } + +type lastUpdateTime time.Time + +func (u lastUpdateTime) preconditionProto() (*pb.Precondition, error) { + ts, err := ptypes.TimestampProto(time.Time(u)) + if err != nil { + return nil, err + } + return &pb.Precondition{ + ConditionType: &pb.Precondition_UpdateTime{ts}, + }, nil +} + +func (u lastUpdateTime) String() string { return fmt.Sprintf("LastUpdateTime(%s)", time.Time(u)) } + +func processPreconditionsForDelete(preconds []Precondition) (*pb.Precondition, error) { + // At most one option permitted. + switch len(preconds) { + case 0: + return nil, nil + case 1: + return preconds[0].preconditionProto() + default: + return nil, fmt.Errorf("firestore: conflicting preconditions: %+v", preconds) + } +} + +func processPreconditionsForUpdate(preconds []Precondition) (*pb.Precondition, error) { + // At most one option permitted, and it cannot be Exists. + switch len(preconds) { + case 0: + // If the user doesn't provide any options, default to Exists(true). + return exists(true).preconditionProto() + case 1: + if _, ok := preconds[0].(exists); ok { + return nil, errors.New("Cannot use Exists with Update") + } + return preconds[0].preconditionProto() + default: + return nil, fmt.Errorf("firestore: conflicting preconditions: %+v", preconds) + } +} + +func processPreconditionsForVerify(preconds []Precondition) (*pb.Precondition, error) { + // At most one option permitted. + switch len(preconds) { + case 0: + return nil, nil + case 1: + return preconds[0].preconditionProto() + default: + return nil, fmt.Errorf("firestore: conflicting preconditions: %+v", preconds) + } +} + +// A SetOption modifies a Firestore set operation. +type SetOption interface { + fieldPaths() (fps []FieldPath, all bool, err error) +} + +// MergeAll is a SetOption that causes all the field paths given in the data argument +// to Set to be overwritten. It is not supported for struct data. +var MergeAll SetOption = merge{all: true} + +// Merge returns a SetOption that causes only the given field paths to be +// overwritten. Other fields on the existing document will be untouched. It is an +// error if a provided field path does not refer to a value in the data passed to +// Set. +// +// Each element of fieldPaths must be a single field or a dot-separated sequence of +// fields, none of which contain the runes "˜*/[]". Use MergePaths instead for such +// paths. +func Merge(fieldPaths ...string) SetOption { + fps, err := parseDotSeparatedStrings(fieldPaths) + if err != nil { + return merge{err: err} + } + return merge{paths: fps} +} + +// MergePaths returns a SetOption that causes only the given field paths to be +// overwritten. Other fields on the existing document will be untouched. It is an +// error if a provided field path does not refer to a value in the data passed to +// Set. +func MergePaths(fps ...FieldPath) SetOption { + for _, fp := range fps { + if err := fp.validate(); err != nil { + return merge{err: err} + } + } + return merge{paths: fps} +} + +type merge struct { + all bool + paths []FieldPath + err error +} + +func (m merge) String() string { + if m.err != nil { + return fmt.Sprintf("", m.err) + } + if m.all { + return "MergeAll" + } + return fmt.Sprintf("Merge(%+v)", m.paths) +} + +func (m merge) fieldPaths() (fps []FieldPath, all bool, err error) { + if m.err != nil { + return nil, false, m.err + } + if err := checkNoDupOrPrefix(m.paths); err != nil { + return nil, false, err + } + if m.all { + return nil, true, nil + } + return m.paths, false, nil +} + +func processSetOptions(opts []SetOption) (fps []FieldPath, all bool, err error) { + switch len(opts) { + case 0: + return nil, false, nil + case 1: + return opts[0].fieldPaths() + default: + return nil, false, fmt.Errorf("conflicting options: %+v", opts) + } +} diff --git a/vendor/cloud.google.com/go/firestore/options_test.go b/vendor/cloud.google.com/go/firestore/options_test.go new file mode 100644 index 000000000..1b055175b --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/options_test.go @@ -0,0 +1,155 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "testing" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" +) + +func TestProcessPreconditionsForVerify(t *testing.T) { + for _, test := range []struct { + in []Precondition + want *pb.Precondition + wantErr bool + }{ + { + in: nil, + want: nil, + }, + { + in: []Precondition{}, + want: nil, + }, + { + in: []Precondition{Exists(true)}, + want: &pb.Precondition{&pb.Precondition_Exists{true}}, + }, + { + in: []Precondition{LastUpdateTime(aTime)}, + want: &pb.Precondition{&pb.Precondition_UpdateTime{aTimestamp}}, + }, + { + in: []Precondition{Exists(true), LastUpdateTime(aTime)}, + wantErr: true, + }, + { + in: []Precondition{Exists(true), Exists(true)}, + wantErr: true, + }, + } { + got, err := processPreconditionsForVerify(test.in) + switch { + case test.wantErr && err == nil: + t.Errorf("%v: got nil, want error", test.in) + case !test.wantErr && err != nil: + t.Errorf("%v: got <%v>, want no error", test.in, err) + case !test.wantErr && err == nil && !testEqual(got, test.want): + t.Errorf("%v: got %+v, want %v", test.in, got, test.want) + } + } +} + +func TestProcessPreconditionsForDelete(t *testing.T) { + for _, test := range []struct { + in []Precondition + want *pb.Precondition + wantErr bool + }{ + { + in: nil, + want: nil, + }, + { + in: []Precondition{}, + want: nil, + }, + { + in: []Precondition{Exists(true)}, + want: &pb.Precondition{&pb.Precondition_Exists{true}}, + }, + { + in: []Precondition{LastUpdateTime(aTime)}, + want: &pb.Precondition{&pb.Precondition_UpdateTime{aTimestamp}}, + }, + { + in: []Precondition{Exists(true), LastUpdateTime(aTime)}, + wantErr: true, + }, + { + in: []Precondition{Exists(true), Exists(true)}, + wantErr: true, + }, + } { + got, err := processPreconditionsForDelete(test.in) + switch { + case test.wantErr && err == nil: + t.Errorf("%v: got nil, want error", test.in) + case !test.wantErr && err != nil: + t.Errorf("%v: got <%v>, want no error", test.in, err) + case !test.wantErr && err == nil && !testEqual(got, test.want): + t.Errorf("%v: got %+v, want %v", test.in, got, test.want) + } + } +} + +func TestProcessPreconditionsForUpdate(t *testing.T) { + for _, test := range []struct { + in []Precondition + want *pb.Precondition + wantErr bool + }{ + { + in: nil, + want: &pb.Precondition{&pb.Precondition_Exists{true}}, + }, + { + in: []Precondition{}, + want: &pb.Precondition{&pb.Precondition_Exists{true}}, + }, + + { + in: []Precondition{Exists(true)}, + wantErr: true, + }, + { + in: []Precondition{Exists(false)}, + wantErr: true, + }, + { + in: []Precondition{LastUpdateTime(aTime)}, + want: &pb.Precondition{&pb.Precondition_UpdateTime{aTimestamp}}, + }, + { + in: []Precondition{Exists(true), LastUpdateTime(aTime)}, + wantErr: true, + }, + { + in: []Precondition{Exists(true), Exists(true)}, + wantErr: true, + }, + } { + got, err := processPreconditionsForUpdate(test.in) + switch { + case test.wantErr && err == nil: + t.Errorf("%v: got nil, want error", test.in) + case !test.wantErr && err != nil: + t.Errorf("%v: got <%v>, want no error", test.in, err) + case !test.wantErr && err == nil && !testEqual(got, test.want): + t.Errorf("%v: got %+v, want %v", test.in, got, test.want) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/query.go b/vendor/cloud.google.com/go/firestore/query.go new file mode 100644 index 000000000..13b5cfb75 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/query.go @@ -0,0 +1,447 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "io" + "math" + "reflect" + + "golang.org/x/net/context" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes/wrappers" + "google.golang.org/api/iterator" +) + +// Query represents a Firestore query. +// +// Query values are immutable. Each Query method creates +// a new Query; it does not modify the old. +type Query struct { + c *Client + parentPath string // path of the collection's parent + collectionID string + selection []FieldPath + filters []filter + orders []order + offset int32 + limit *wrappers.Int32Value + startVals, endVals []interface{} + startBefore, endBefore bool + err error +} + +// DocumentID is the special field name representing the ID of a document +// in queries. +const DocumentID = "__name__" + +// Select returns a new Query that specifies the field paths +// to return from the result documents. +func (q Query) Select(fieldPaths ...string) Query { + var fps []FieldPath + for _, s := range fieldPaths { + fp, err := parseDotSeparatedString(s) + if err != nil { + q.err = err + return q + } + fps = append(fps, fp) + } + if fps == nil { + q.selection = []FieldPath{{DocumentID}} + } else { + q.selection = fps + } + return q +} + +// SelectPaths returns a new Query that specifies the field paths +// to return from the result documents. +func (q Query) SelectPaths(fieldPaths ...FieldPath) Query { + q.selection = fieldPaths + return q +} + +// Where returns a new Query that filters the set of results. +// A Query can have multiple filters. +func (q Query) Where(fieldPath, op string, value interface{}) Query { + fp, err := parseDotSeparatedString(fieldPath) + if err != nil { + q.err = err + return q + } + q.filters = append(append([]filter(nil), q.filters...), filter{fp, op, value}) + return q +} + +// WherePath returns a new Query that filters the set of results. +// A Query can have multiple filters. +func (q Query) WherePath(fp FieldPath, op string, value interface{}) Query { + q.filters = append(append([]filter(nil), q.filters...), filter{fp, op, value}) + return q +} + +// Direction is the sort direction for result ordering. +type Direction int32 + +const ( + // Asc sorts results from smallest to largest. + Asc Direction = Direction(pb.StructuredQuery_ASCENDING) + + // Desc sorts results from largest to smallest. + Desc Direction = Direction(pb.StructuredQuery_DESCENDING) +) + +// OrderBy returns a new Query that specifies the order in which results are +// returned. A Query can have multiple OrderBy/OrderByPath specifications. OrderBy +// appends the specification to the list of existing ones. +// +// To order by document name, use the special field path DocumentID. +func (q Query) OrderBy(fieldPath string, dir Direction) Query { + fp, err := parseDotSeparatedString(fieldPath) + if err != nil { + q.err = err + return q + } + q.orders = append(append([]order(nil), q.orders...), order{fp, dir}) + return q +} + +// OrderByPath returns a new Query that specifies the order in which results are +// returned. A Query can have multiple OrderBy/OrderByPath specifications. +// OrderByPath appends the specification to the list of existing ones. +func (q Query) OrderByPath(fp FieldPath, dir Direction) Query { + q.orders = append(append([]order(nil), q.orders...), order{fp, dir}) + return q +} + +// Offset returns a new Query that specifies the number of initial results to skip. +// It must not be negative. +func (q Query) Offset(n int) Query { + q.offset = trunc32(n) + return q +} + +// Limit returns a new Query that specifies the maximum number of results to return. +// It must not be negative. +func (q Query) Limit(n int) Query { + q.limit = &wrappers.Int32Value{trunc32(n)} + return q +} + +// StartAt returns a new Query that specifies that results should start at +// the document with the given field values. The field path corresponding to +// each value is taken from the corresponding OrderBy call. For example, in +// q.OrderBy("X", Asc).OrderBy("Y", Desc).StartAt(1, 2) +// results will begin at the first document where X = 1 and Y = 2. +// +// If an OrderBy call uses the special DocumentID field path, the corresponding value +// should be the document ID relative to the query's collection. For example, to +// start at the document "NewYork" in the "States" collection, write +// +// client.Collection("States").OrderBy(DocumentID, firestore.Asc).StartAt("NewYork") +// +// Calling StartAt overrides a previous call to StartAt or StartAfter. +func (q Query) StartAt(fieldValues ...interface{}) Query { + q.startVals, q.startBefore = fieldValues, true + return q +} + +// StartAfter returns a new Query that specifies that results should start just after +// the document with the given field values. See Query.StartAt for more information. +// +// Calling StartAfter overrides a previous call to StartAt or StartAfter. +func (q Query) StartAfter(fieldValues ...interface{}) Query { + q.startVals, q.startBefore = fieldValues, false + return q +} + +// EndAt returns a new Query that specifies that results should end at the +// document with the given field values. See Query.StartAt for more information. +// +// Calling EndAt overrides a previous call to EndAt or EndBefore. +func (q Query) EndAt(fieldValues ...interface{}) Query { + q.endVals, q.endBefore = fieldValues, false + return q +} + +// EndBefore returns a new Query that specifies that results should end just before +// the document with the given field values. See Query.StartAt for more information. +// +// Calling EndBefore overrides a previous call to EndAt or EndBefore. +func (q Query) EndBefore(fieldValues ...interface{}) Query { + q.endVals, q.endBefore = fieldValues, true + return q +} + +func (q Query) query() *Query { return &q } + +func (q Query) toProto() (*pb.StructuredQuery, error) { + if q.err != nil { + return nil, q.err + } + if q.collectionID == "" { + return nil, errors.New("firestore: query created without CollectionRef") + } + p := &pb.StructuredQuery{ + From: []*pb.StructuredQuery_CollectionSelector{{CollectionId: q.collectionID}}, + Offset: q.offset, + Limit: q.limit, + } + if len(q.selection) > 0 { + p.Select = &pb.StructuredQuery_Projection{} + for _, fp := range q.selection { + if err := fp.validate(); err != nil { + return nil, err + } + p.Select.Fields = append(p.Select.Fields, fref(fp)) + } + } + // If there is only filter, use it directly. Otherwise, construct + // a CompositeFilter. + if len(q.filters) == 1 { + pf, err := q.filters[0].toProto() + if err != nil { + return nil, err + } + p.Where = pf + } else if len(q.filters) > 1 { + cf := &pb.StructuredQuery_CompositeFilter{ + Op: pb.StructuredQuery_CompositeFilter_AND, + } + p.Where = &pb.StructuredQuery_Filter{ + FilterType: &pb.StructuredQuery_Filter_CompositeFilter{cf}, + } + for _, f := range q.filters { + pf, err := f.toProto() + if err != nil { + return nil, err + } + cf.Filters = append(cf.Filters, pf) + } + } + for _, ord := range q.orders { + po, err := ord.toProto() + if err != nil { + return nil, err + } + p.OrderBy = append(p.OrderBy, po) + } + // StartAt and EndAt must have values that correspond exactly to the explicit order-by fields. + if len(q.startVals) != 0 { + vals, err := q.toPositionValues(q.startVals) + if err != nil { + return nil, err + } + p.StartAt = &pb.Cursor{Values: vals, Before: q.startBefore} + } + if len(q.endVals) != 0 { + vals, err := q.toPositionValues(q.endVals) + if err != nil { + return nil, err + } + p.EndAt = &pb.Cursor{Values: vals, Before: q.endBefore} + } + return p, nil +} + +// toPositionValues converts the field values to protos. +func (q *Query) toPositionValues(fieldValues []interface{}) ([]*pb.Value, error) { + if len(fieldValues) != len(q.orders) { + return nil, errors.New("firestore: number of field values in StartAt/StartAfter/EndAt/EndBefore does not match number of OrderBy fields") + } + vals := make([]*pb.Value, len(fieldValues)) + var err error + for i, ord := range q.orders { + fval := fieldValues[i] + if len(ord.fieldPath) == 1 && ord.fieldPath[0] == DocumentID { + docID, ok := fval.(string) + if !ok { + return nil, fmt.Errorf("firestore: expected doc ID for DocumentID field, got %T", fval) + } + vals[i] = &pb.Value{&pb.Value_ReferenceValue{q.parentPath + "/documents/" + q.collectionID + "/" + docID}} + } else { + vals[i], err = toProtoValue(reflect.ValueOf(fval)) + if err != nil { + return nil, err + } + } + } + return vals, nil +} + +type filter struct { + fieldPath FieldPath + op string + value interface{} +} + +func (f filter) toProto() (*pb.StructuredQuery_Filter, error) { + if err := f.fieldPath.validate(); err != nil { + return nil, err + } + var op pb.StructuredQuery_FieldFilter_Operator + switch f.op { + case "<": + op = pb.StructuredQuery_FieldFilter_LESS_THAN + case "<=": + op = pb.StructuredQuery_FieldFilter_LESS_THAN_OR_EQUAL + case ">": + op = pb.StructuredQuery_FieldFilter_GREATER_THAN + case ">=": + op = pb.StructuredQuery_FieldFilter_GREATER_THAN_OR_EQUAL + case "==": + op = pb.StructuredQuery_FieldFilter_EQUAL + default: + return nil, fmt.Errorf("firestore: invalid operator %q", f.op) + } + val, err := toProtoValue(reflect.ValueOf(f.value)) + if err != nil { + return nil, err + } + return &pb.StructuredQuery_Filter{ + FilterType: &pb.StructuredQuery_Filter_FieldFilter{ + &pb.StructuredQuery_FieldFilter{ + Field: fref(f.fieldPath), + Op: op, + Value: val, + }, + }, + }, nil +} + +type order struct { + fieldPath FieldPath + dir Direction +} + +func (r order) toProto() (*pb.StructuredQuery_Order, error) { + if err := r.fieldPath.validate(); err != nil { + return nil, err + } + return &pb.StructuredQuery_Order{ + Field: fref(r.fieldPath), + Direction: pb.StructuredQuery_Direction(r.dir), + }, nil +} + +func fref(fp FieldPath) *pb.StructuredQuery_FieldReference { + return &pb.StructuredQuery_FieldReference{fp.toServiceFieldPath()} +} + +func trunc32(i int) int32 { + if i > math.MaxInt32 { + i = math.MaxInt32 + } + return int32(i) +} + +// Documents returns an iterator over the query's resulting documents. +func (q Query) Documents(ctx context.Context) *DocumentIterator { + return &DocumentIterator{ + ctx: withResourceHeader(ctx, q.c.path()), + q: &q, + err: checkTransaction(ctx), + } +} + +// DocumentIterator is an iterator over documents returned by a query. +type DocumentIterator struct { + ctx context.Context + q *Query + tid []byte // transaction ID, if any + streamClient pb.Firestore_RunQueryClient + err error +} + +// Next returns the next result. Its second return value is iterator.Done if there +// are no more results. Once Next returns Done, all subsequent calls will return +// Done. +func (it *DocumentIterator) Next() (*DocumentSnapshot, error) { + if it.err != nil { + return nil, it.err + } + client := it.q.c + if it.streamClient == nil { + sq, err := it.q.toProto() + if err != nil { + it.err = err + return nil, err + } + req := &pb.RunQueryRequest{ + Parent: it.q.parentPath, + QueryType: &pb.RunQueryRequest_StructuredQuery{sq}, + } + if it.tid != nil { + req.ConsistencySelector = &pb.RunQueryRequest_Transaction{it.tid} + } + it.streamClient, it.err = client.c.RunQuery(it.ctx, req) + if it.err != nil { + return nil, it.err + } + } + var res *pb.RunQueryResponse + var err error + for { + res, err = it.streamClient.Recv() + if err == io.EOF { + err = iterator.Done + } + if err != nil { + it.err = err + return nil, it.err + } + if res.Document != nil { + break + } + // No document => partial progress; keep receiving. + } + docRef, err := pathToDoc(res.Document.Name, client) + if err != nil { + it.err = err + return nil, err + } + doc, err := newDocumentSnapshot(docRef, res.Document, client) + if err != nil { + it.err = err + return nil, err + } + return doc, nil +} + +// GetAll returns all the documents remaining from the iterator. +func (it *DocumentIterator) GetAll() ([]*DocumentSnapshot, error) { + var docs []*DocumentSnapshot + for { + doc, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + return nil, err + } + docs = append(docs, doc) + } + return docs, nil +} + +// TODO(jba): Does the iterator need a Stop or Close method? I don't think so-- +// I don't think the client can terminate a streaming receive except perhaps +// by cancelling the context, and the user can do that themselves if they wish. +// Find out for sure. diff --git a/vendor/cloud.google.com/go/firestore/query_test.go b/vendor/cloud.google.com/go/firestore/query_test.go new file mode 100644 index 000000000..20f901fbe --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/query_test.go @@ -0,0 +1,381 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "testing" + + "golang.org/x/net/context" + + "cloud.google.com/go/internal/pretty" + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes/wrappers" +) + +func TestQueryToProto(t *testing.T) { + c := &Client{} + coll := c.Collection("C") + q := coll.Query + aFilter, err := filter{[]string{"a"}, ">", 5}.toProto() + if err != nil { + t.Fatal(err) + } + bFilter, err := filter{[]string{"b"}, "<", "foo"}.toProto() + if err != nil { + t.Fatal(err) + } + slashStarFilter, err := filter{[]string{"/", "*"}, ">", 5}.toProto() + if err != nil { + t.Fatal(err) + } + type S struct { + A int `firestore:"a"` + } + for _, test := range []struct { + in Query + want *pb.StructuredQuery + }{ + { + in: q.Select(), + want: &pb.StructuredQuery{ + Select: &pb.StructuredQuery_Projection{ + Fields: []*pb.StructuredQuery_FieldReference{fref1("__name__")}, + }, + }, + }, + { + in: q.Select("a", "b"), + want: &pb.StructuredQuery{ + Select: &pb.StructuredQuery_Projection{ + Fields: []*pb.StructuredQuery_FieldReference{fref1("a"), fref1("b")}, + }, + }, + }, + { + in: q.Select("a", "b").Select("c"), // last wins + want: &pb.StructuredQuery{ + Select: &pb.StructuredQuery_Projection{ + Fields: []*pb.StructuredQuery_FieldReference{fref1("c")}, + }, + }, + }, + { + in: q.SelectPaths([]string{"*"}, []string{"/"}), + want: &pb.StructuredQuery{ + Select: &pb.StructuredQuery_Projection{ + Fields: []*pb.StructuredQuery_FieldReference{fref1("*"), fref1("/")}, + }, + }, + }, + { + in: q.Where("a", ">", 5), + want: &pb.StructuredQuery{Where: aFilter}, + }, + { + in: q.Where("a", ">", 5).Where("b", "<", "foo"), + want: &pb.StructuredQuery{ + Where: &pb.StructuredQuery_Filter{ + &pb.StructuredQuery_Filter_CompositeFilter{ + &pb.StructuredQuery_CompositeFilter{ + Op: pb.StructuredQuery_CompositeFilter_AND, + Filters: []*pb.StructuredQuery_Filter{ + aFilter, bFilter, + }, + }, + }, + }, + }, + }, + { + in: q.WherePath([]string{"/", "*"}, ">", 5), + want: &pb.StructuredQuery{Where: slashStarFilter}, + }, + { + in: q.OrderBy("b", Asc).OrderBy("a", Desc).OrderByPath([]string{"~"}, Asc), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("b"), pb.StructuredQuery_ASCENDING}, + {fref1("a"), pb.StructuredQuery_DESCENDING}, + {fref1("~"), pb.StructuredQuery_ASCENDING}, + }, + }, + }, + { + in: q.Offset(2).Limit(3), + want: &pb.StructuredQuery{ + Offset: 2, + Limit: &wrappers.Int32Value{3}, + }, + }, + { + in: q.Offset(2).Limit(3).Limit(4).Offset(5), // last wins + want: &pb.StructuredQuery{ + Offset: 5, + Limit: &wrappers.Int32Value{4}, + }, + }, + { + in: q.OrderBy("a", Asc).StartAt(7).EndBefore(9), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("a"), pb.StructuredQuery_ASCENDING}, + }, + StartAt: &pb.Cursor{ + Values: []*pb.Value{intval(7)}, + Before: true, + }, + EndAt: &pb.Cursor{ + Values: []*pb.Value{intval(9)}, + Before: true, + }, + }, + }, + { + in: q.OrderBy("a", Asc).StartAt(7).EndBefore(9), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("a"), pb.StructuredQuery_ASCENDING}, + }, + StartAt: &pb.Cursor{ + Values: []*pb.Value{intval(7)}, + Before: true, + }, + EndAt: &pb.Cursor{ + Values: []*pb.Value{intval(9)}, + Before: true, + }, + }, + }, + { + in: q.OrderBy("a", Asc).StartAfter(7).EndAt(9), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("a"), pb.StructuredQuery_ASCENDING}, + }, + StartAt: &pb.Cursor{ + Values: []*pb.Value{intval(7)}, + Before: false, + }, + EndAt: &pb.Cursor{ + Values: []*pb.Value{intval(9)}, + Before: false, + }, + }, + }, + { + in: q.OrderBy("a", Asc).OrderBy("b", Desc).StartAfter(7, 8).EndAt(9, 10), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("a"), pb.StructuredQuery_ASCENDING}, + {fref1("b"), pb.StructuredQuery_DESCENDING}, + }, + StartAt: &pb.Cursor{ + Values: []*pb.Value{intval(7), intval(8)}, + Before: false, + }, + EndAt: &pb.Cursor{ + Values: []*pb.Value{intval(9), intval(10)}, + Before: false, + }, + }, + }, + { + // last of StartAt/After wins, same for End + in: q.OrderBy("a", Asc). + StartAfter(1).StartAt(2). + EndAt(3).EndBefore(4), + want: &pb.StructuredQuery{ + OrderBy: []*pb.StructuredQuery_Order{ + {fref1("a"), pb.StructuredQuery_ASCENDING}, + }, + StartAt: &pb.Cursor{ + Values: []*pb.Value{intval(2)}, + Before: true, + }, + EndAt: &pb.Cursor{ + Values: []*pb.Value{intval(4)}, + Before: true, + }, + }, + }, + } { + got, err := test.in.toProto() + if err != nil { + t.Fatalf("%+v: %v", test.in, err) + } + test.want.From = []*pb.StructuredQuery_CollectionSelector{{CollectionId: "C"}} + if !testEqual(got, test.want) { + t.Errorf("%+v: got\n%v\nwant\n%v", test.in, pretty.Value(got), pretty.Value(test.want)) + } + } +} + +func fref1(s string) *pb.StructuredQuery_FieldReference { + return fref([]string{s}) +} + +func TestQueryToProtoErrors(t *testing.T) { + q := (&Client{}).Collection("C").Query + for _, query := range []Query{ + Query{}, // no collection ID + q.Where("x", "!=", 1), // invalid operator + q.Where("~", ">", 1), // invalid path + q.WherePath([]string{"*", ""}, ">", 1), // invalid path + q.StartAt(1), // no OrderBy + q.StartAt(2).OrderBy("x", Asc).OrderBy("y", Desc), // wrong # OrderBy + q.Select("*"), // invalid path + q.SelectPaths([]string{"/", "", "~"}), // invalid path + q.OrderBy("[", Asc), // invalid path + q.OrderByPath([]string{""}, Desc), // invalid path + } { + _, err := query.toProto() + if err == nil { + t.Errorf("%+v: got nil, want error", query) + } + } +} + +func TestQueryMethodsDoNotModifyReceiver(t *testing.T) { + var empty Query + + q := Query{} + _ = q.Select("a", "b") + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + q1 := q.Where("a", ">", 3) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + // Extra check because Where appends to a slice. + q1before := q.Where("a", ">", 3) // same as q1 + _ = q1.Where("b", "<", "foo") + if !testEqual(q1, q1before) { + t.Errorf("got %+v, want %+v", q1, q1before) + } + + q = Query{} + q1 = q.OrderBy("a", Asc) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + // Extra check because Where appends to a slice. + q1before = q.OrderBy("a", Asc) // same as q1 + _ = q1.OrderBy("b", Desc) + if !testEqual(q1, q1before) { + t.Errorf("got %+v, want %+v", q1, q1before) + } + + q = Query{} + _ = q.Offset(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + _ = q.Limit(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + _ = q.StartAt(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + _ = q.StartAfter(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + _ = q.EndAt(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } + + q = Query{} + _ = q.EndBefore(5) + if !testEqual(q, empty) { + t.Errorf("got %+v, want empty", q) + } +} + +func TestQueryFromCollectionRef(t *testing.T) { + c := &Client{} + coll := c.Collection("C") + got := coll.Select("x").Offset(8) + want := Query{ + c: c, + parentPath: c.path(), + collectionID: "C", + selection: []FieldPath{{"x"}}, + offset: 8, + } + if !testEqual(got, want) { + t.Fatalf("got %+v, want %+v", got, want) + } +} + +func TestQueryGetAll(t *testing.T) { + // This implicitly tests DocumentIterator as well. + const dbPath = "projects/projectID/databases/(default)" + ctx := context.Background() + c, srv := newMock(t) + docNames := []string{"C/a", "C/b"} + wantPBDocs := []*pb.Document{ + { + Name: dbPath + "/documents/" + docNames[0], + CreateTime: aTimestamp, + UpdateTime: aTimestamp, + Fields: map[string]*pb.Value{"f": intval(2)}, + }, + { + Name: dbPath + "/documents/" + docNames[1], + CreateTime: aTimestamp2, + UpdateTime: aTimestamp3, + Fields: map[string]*pb.Value{"f": intval(1)}, + }, + } + + srv.addRPC(nil, []interface{}{ + &pb.RunQueryResponse{Document: wantPBDocs[0]}, + &pb.RunQueryResponse{Document: wantPBDocs[1]}, + }) + gotDocs, err := c.Collection("C").Documents(ctx).GetAll() + if err != nil { + t.Fatal(err) + } + if got, want := len(gotDocs), len(wantPBDocs); got != want { + t.Errorf("got %d docs, wanted %d", got, want) + } + for i, got := range gotDocs { + want, err := newDocumentSnapshot(c.Doc(docNames[i]), wantPBDocs[i], c) + if err != nil { + t.Fatal(err) + } + if !testEqual(got, want) { + // avoid writing a cycle + got.c = nil + want.c = nil + t.Errorf("#%d: got %+v, want %+v", i, pretty.Value(got), pretty.Value(want)) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/testdata/fieldpaths.json b/vendor/cloud.google.com/go/firestore/testdata/fieldpaths.json new file mode 100644 index 000000000..583827c5b --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/testdata/fieldpaths.json @@ -0,0 +1,23 @@ +{ + "comment": "Field path test suite. Backslash must be escaped in JSON strings.", + + "good": [ + ["a", "a"], + ["__x__", "__x__"], + ["aBc0_d1", "aBc0_d1"], + ["a.b", "a", "b"], + ["`a`", "a"], + ["`a`.b", "a", "b"], + ["`a`.`b`.c", "a", "b", "c"], + ["`a.b`.c", "a.b", "c"], + ["`..`.`...`", "..", "..."], + ["` `", " "], + ["`\t\t`.` x\t`", "\t\t", " x\t"], + ["`\b\f\r`", "\b\f\r"], + ["`a\\`b`.`c\\\\d`", "a`b", "c\\d"], + ["`\\\\`.`\\`\\``", "\\", "``"] + ], + "bad": ["", " ", "\t", "a.", ".a", "a.b.", "a..b", + "`", "``", "`a", "a`", "a`b", "`a`b", "a`b`", "`a`.b`c`", + "\\", "\\`"] +} diff --git a/vendor/cloud.google.com/go/firestore/to_value.go b/vendor/cloud.google.com/go/firestore/to_value.go new file mode 100644 index 000000000..ea106fc6c --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/to_value.go @@ -0,0 +1,256 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + "fmt" + "reflect" + "strings" + "time" + + "cloud.google.com/go/internal/fields" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes" + "google.golang.org/genproto/googleapis/type/latlng" +) + +var nullValue = &pb.Value{&pb.Value_NullValue{}} + +var ( + typeOfByteSlice = reflect.TypeOf([]byte{}) + typeOfGoTime = reflect.TypeOf(time.Time{}) + typeOfLatLng = reflect.TypeOf((*latlng.LatLng)(nil)) + typeOfDocumentRef = reflect.TypeOf((*DocumentRef)(nil)) +) + +// toProtoValue converts a Go value to a Firestore Value protobuf. +// Some corner cases: +// - All nils (nil interface, nil slice, nil map, nil pointer) are converted to +// a NullValue (not a nil *pb.Value). toProtoValue never returns (nil, nil). +// - An error is returned for uintptr, uint and uint64, because Firestore uses +// an int64 to represent integral values, and those types can't be properly +// represented in an int64. +// - An error is returned for the special Delete value. +func toProtoValue(v reflect.Value) (*pb.Value, error) { + if !v.IsValid() { + return nullValue, nil + } + vi := v.Interface() + if vi == Delete { + return nil, errors.New("firestore: cannot use Delete in value") + } + switch x := vi.(type) { + case []byte: + return &pb.Value{&pb.Value_BytesValue{x}}, nil + case time.Time: + ts, err := ptypes.TimestampProto(x) + if err != nil { + return nil, err + } + return &pb.Value{&pb.Value_TimestampValue{ts}}, nil + case *latlng.LatLng: + if x == nil { + // gRPC doesn't like nil oneofs. Use NullValue. + return nullValue, nil + } + return &pb.Value{&pb.Value_GeoPointValue{x}}, nil + case *DocumentRef: + if x == nil { + // gRPC doesn't like nil oneofs. Use NullValue. + return nullValue, nil + } + return &pb.Value{&pb.Value_ReferenceValue{x.Path}}, nil + // Do not add bool, string, int, etc. to this switch; leave them in the + // reflect-based switch below. Moving them here would drop support for + // types whose underlying types are those primitives. + // E.g. Given "type mybool bool", an ordinary type switch on bool will + // not catch a mybool, but the reflect.Kind of a mybool is reflect.Bool. + } + switch v.Kind() { + case reflect.Bool: + return &pb.Value{&pb.Value_BooleanValue{v.Bool()}}, nil + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return &pb.Value{&pb.Value_IntegerValue{v.Int()}}, nil + case reflect.Uint8, reflect.Uint16, reflect.Uint32: + return &pb.Value{&pb.Value_IntegerValue{int64(v.Uint())}}, nil + case reflect.Float32, reflect.Float64: + return &pb.Value{&pb.Value_DoubleValue{v.Float()}}, nil + case reflect.String: + return &pb.Value{&pb.Value_StringValue{v.String()}}, nil + case reflect.Slice: + return sliceToProtoValue(v) + case reflect.Map: + return mapToProtoValue(v) + case reflect.Struct: + return structToProtoValue(v) + case reflect.Ptr: + if v.IsNil() { + return nullValue, nil + } + return toProtoValue(v.Elem()) + case reflect.Interface: + if v.NumMethod() == 0 { // empty interface: recurse on its contents + return toProtoValue(v.Elem()) + } + fallthrough // any other interface value is an error + + default: + return nil, fmt.Errorf("firestore: cannot convert type %s to value", v.Type()) + } +} + +func sliceToProtoValue(v reflect.Value) (*pb.Value, error) { + // A nil slice is converted to a null value. + if v.IsNil() { + return nullValue, nil + } + vals := make([]*pb.Value, v.Len()) + for i := 0; i < v.Len(); i++ { + val, err := toProtoValue(v.Index(i)) + if err != nil { + return nil, err + } + vals[i] = val + } + return &pb.Value{&pb.Value_ArrayValue{&pb.ArrayValue{vals}}}, nil +} + +func mapToProtoValue(v reflect.Value) (*pb.Value, error) { + if v.Type().Key().Kind() != reflect.String { + return nil, errors.New("firestore: map key type must be string") + } + // A nil map is converted to a null value. + if v.IsNil() { + return nullValue, nil + } + m := map[string]*pb.Value{} + for _, k := range v.MapKeys() { + mi := v.MapIndex(k) + if mi.Interface() == ServerTimestamp { + continue + } + val, err := toProtoValue(mi) + if err != nil { + return nil, err + } + m[k.String()] = val + } + return &pb.Value{&pb.Value_MapValue{&pb.MapValue{m}}}, nil +} + +func structToProtoValue(v reflect.Value) (*pb.Value, error) { + m := map[string]*pb.Value{} + fields, err := fieldCache.Fields(v.Type()) + if err != nil { + return nil, err + } + for _, f := range fields { + fv := v.FieldByIndex(f.Index) + opts := f.ParsedTag.(tagOptions) + if opts.serverTimestamp { + continue + } + if opts.omitEmpty && isEmptyValue(fv) { + continue + } + val, err := toProtoValue(fv) + if err != nil { + return nil, err + } + m[f.Name] = val + } + return &pb.Value{&pb.Value_MapValue{&pb.MapValue{m}}}, nil +} + +type tagOptions struct { + omitEmpty bool // do not marshal value if empty + serverTimestamp bool // set time.Time to server timestamp on write +} + +// parseTag interprets firestore struct field tags. +func parseTag(t reflect.StructTag) (name string, keep bool, other interface{}, err error) { + name, keep, opts, err := parseStandardTag("firestore", t) + if err != nil { + return "", false, nil, fmt.Errorf("firestore: %v", err) + } + tagOpts := tagOptions{} + for _, opt := range opts { + switch opt { + case "omitempty": + tagOpts.omitEmpty = true + case "serverTimestamp": + tagOpts.serverTimestamp = true + default: + return "", false, nil, fmt.Errorf("firestore: unknown tag option: %q", opt) + } + } + return name, keep, tagOpts, nil +} + +// parseStandardTag extracts the sub-tag named by key, then parses it using the +// de facto standard format introduced in encoding/json: +// "-" means "ignore this tag". It must occur by itself. (parseStandardTag returns an error +// in this case, whereas encoding/json accepts the "-" even if it is not alone.) +// "" provides an alternative name for the field +// ",opt1,opt2,..." specifies options after the name. +// The options are returned as a []string. +// +// TODO(jba): move this into the fields package, and use it elsewhere, like bigquery. +func parseStandardTag(key string, t reflect.StructTag) (name string, keep bool, options []string, err error) { + s := t.Get(key) + parts := strings.Split(s, ",") + if parts[0] == "-" { + if len(parts) > 1 { + return "", false, nil, errors.New(`"-" field tag with options`) + } + return "", false, nil, nil + } + return parts[0], true, parts[1:], nil +} + +// isLeafType determines whether or not a type is a 'leaf type' +// and should not be recursed into, but considered one field. +func isLeafType(t reflect.Type) bool { + return t == typeOfGoTime || t == typeOfLatLng +} + +var fieldCache = fields.NewCache(parseTag, nil, isLeafType) + +// isEmptyValue is taken from the encoding/json package in the +// standard library. +// TODO(jba): move to the fields package +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + } + if v.Type() == typeOfGoTime { + return v.Interface().(time.Time).IsZero() + } + return false +} diff --git a/vendor/cloud.google.com/go/firestore/to_value_test.go b/vendor/cloud.google.com/go/firestore/to_value_test.go new file mode 100644 index 000000000..13ddd2c25 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/to_value_test.go @@ -0,0 +1,219 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "fmt" + "reflect" + "testing" + "time" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "google.golang.org/genproto/googleapis/type/latlng" +) + +type testStruct1 struct { + B bool + I int + U uint32 + F float64 + S string + Y []byte + T time.Time + G *latlng.LatLng + L []int + M map[string]int + P *int +} + +var ( + p = new(int) + + testVal1 = testStruct1{ + B: true, + I: 1, + U: 2, + F: 3.0, + S: "four", + Y: []byte{5}, + T: tm, + G: ll, + L: []int{6}, + M: map[string]int{"a": 7}, + P: p, + } + + mapVal1 = mapval(map[string]*pb.Value{ + "B": boolval(true), + "I": intval(1), + "U": intval(2), + "F": floatval(3), + "S": &pb.Value{&pb.Value_StringValue{"four"}}, + "Y": bytesval([]byte{5}), + "T": tsval(tm), + "G": geoval(ll), + "L": arrayval(intval(6)), + "M": mapval(map[string]*pb.Value{"a": intval(7)}), + "P": intval(8), + }) +) + +func TestToProtoValue(t *testing.T) { + *p = 8 + for _, test := range []struct { + in interface{} + want *pb.Value + }{ + {nil, nullValue}, + {[]int(nil), nullValue}, + {map[string]int(nil), nullValue}, + {(*testStruct1)(nil), nullValue}, + {(*latlng.LatLng)(nil), nullValue}, + {(*DocumentRef)(nil), nullValue}, + {true, boolval(true)}, + {3, intval(3)}, + {uint32(3), intval(3)}, + {1.5, floatval(1.5)}, + {"str", strval("str")}, + {[]byte{1, 2}, bytesval([]byte{1, 2})}, + {tm, tsval(tm)}, + {ll, geoval(ll)}, + {[]int{1, 2}, arrayval(intval(1), intval(2))}, + {&[]int{1, 2}, arrayval(intval(1), intval(2))}, + {[]int{}, arrayval()}, + {map[string]int{"a": 1, "b": 2}, + mapval(map[string]*pb.Value{"a": intval(1), "b": intval(2)})}, + {map[string]int{}, mapval(map[string]*pb.Value{})}, + {p, intval(8)}, + {&p, intval(8)}, + {map[string]interface{}{"a": 1, "p": p, "s": "str"}, + mapval(map[string]*pb.Value{"a": intval(1), "p": intval(8), "s": strval("str")})}, + {map[string]fmt.Stringer{"a": tm}, + mapval(map[string]*pb.Value{"a": tsval(tm)})}, + {testVal1, mapVal1}, + { + &DocumentRef{ + ID: "d", + Path: "projects/P/databases/D/documents/c/d", + Parent: &CollectionRef{ + ID: "c", + parentPath: "projects/P/databases/D", + Path: "projects/P/databases/D/documents/c", + Query: Query{collectionID: "c", parentPath: "projects/P/databases/D"}, + }, + }, + refval("projects/P/databases/D/documents/c/d"), + }, + } { + got, err := toProtoValue(reflect.ValueOf(test.in)) + if err != nil { + t.Errorf("%v (%T): %v", test.in, test.in, err) + continue + } + if !testEqual(got, test.want) { + t.Errorf("%+v (%T):\ngot\n%+v\nwant\n%+v", test.in, test.in, got, test.want) + } + } +} + +type stringy struct{} + +func (stringy) String() string { return "stringy" } + +func TestToProtoValueErrors(t *testing.T) { + for _, in := range []interface{}{ + uint64(0), // a bad fit for int64 + map[int]bool{}, // map key type is not string + make(chan int), // can't handle type + map[string]fmt.Stringer{"a": stringy{}}, // only empty interfaces + } { + _, err := toProtoValue(reflect.ValueOf(in)) + if err == nil { + t.Errorf("%v: got nil, want error", in) + } + } +} + +type testStruct2 struct { + Ignore int `firestore:"-"` + Rename int `firestore:"a"` + OmitEmpty int `firestore:",omitempty"` + OmitEmptyTime time.Time `firestore:",omitempty"` +} + +func TestToProtoValueTags(t *testing.T) { + in := &testStruct2{ + Ignore: 1, + Rename: 2, + OmitEmpty: 3, + OmitEmptyTime: aTime, + } + got, err := toProtoValue(reflect.ValueOf(in)) + if err != nil { + t.Fatal(err) + } + want := mapval(map[string]*pb.Value{ + "a": intval(2), + "OmitEmpty": intval(3), + "OmitEmptyTime": tsval(aTime), + }) + if !testEqual(got, want) { + t.Errorf("got %+v, want %+v", got, want) + } + + got, err = toProtoValue(reflect.ValueOf(testStruct2{})) + if err != nil { + t.Fatal(err) + } + want = mapval(map[string]*pb.Value{"a": intval(0)}) + if !testEqual(got, want) { + t.Errorf("got\n%+v\nwant\n%+v", got, want) + } +} + +func TestToProtoValueEmbedded(t *testing.T) { + // Embedded time.Time or LatLng should behave like non-embedded. + type embed struct { + time.Time + *latlng.LatLng + } + + got, err := toProtoValue(reflect.ValueOf(embed{tm, ll})) + if err != nil { + t.Fatal(err) + } + want := mapval(map[string]*pb.Value{ + "Time": tsval(tm), + "LatLng": geoval(ll), + }) + if !testEqual(got, want) { + t.Errorf("got %+v, want %+v", got, want) + } +} + +func TestIsEmpty(t *testing.T) { + for _, e := range []interface{}{int(0), float32(0), false, "", []int{}, []int(nil), (*int)(nil)} { + if !isEmptyValue(reflect.ValueOf(e)) { + t.Errorf("%v (%T): want true, got false", e, e) + } + } + i := 3 + for _, n := range []interface{}{int(1), float32(1), true, "x", []int{1}, &i} { + if isEmptyValue(reflect.ValueOf(n)) { + t.Errorf("%v (%T): want false, got true", n, n) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/transaction.go b/vendor/cloud.google.com/go/firestore/transaction.go new file mode 100644 index 000000000..505d2d2ba --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/transaction.go @@ -0,0 +1,279 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + gax "github.com/googleapis/gax-go" + "golang.org/x/net/context" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +// Transaction represents a Firestore transaction. +type Transaction struct { + c *Client + ctx context.Context + id []byte + writes []*pb.Write + maxAttempts int + readOnly bool + readAfterWrite bool +} + +// A TransactionOption is an option passed to Client.Transaction. +type TransactionOption interface { + config(t *Transaction) +} + +// MaxAttempts is a TransactionOption that configures the maximum number of times to +// try a transaction. In defaults to DefaultTransactionMaxAttempts. +func MaxAttempts(n int) maxAttempts { return maxAttempts(n) } + +type maxAttempts int + +func (m maxAttempts) config(t *Transaction) { t.maxAttempts = int(m) } + +// DefaultTransactionMaxAttempts is the default number of times to attempt a transaction. +const DefaultTransactionMaxAttempts = 5 + +// ReadOnly is a TransactionOption that makes the transaction read-only. Read-only +// transactions cannot issue write operations, but are more efficient. +var ReadOnly = ro{} + +type ro struct{} + +func (ro) config(t *Transaction) { t.readOnly = true } + +var ( + // ErrConcurrentTransaction is returned when a transaction is rolled back due + // to a conflict with a concurrent transaction. + ErrConcurrentTransaction = errors.New("firestore: concurrent transaction") + + // Defined here for testing. + errReadAfterWrite = errors.New("firestore: read after write in transaction") + errWriteReadOnly = errors.New("firestore: write in read-only transaction") + errNonTransactionalOp = errors.New("firestore: non-transactional operation inside a transaction") + errNestedTransaction = errors.New("firestore: nested transaction") +) + +type transactionInProgressKey struct{} + +func checkTransaction(ctx context.Context) error { + if ctx.Value(transactionInProgressKey{}) != nil { + return errNonTransactionalOp + } + return nil +} + +// RunTransaction runs f in a transaction. f should use the transaction it is given +// for all Firestore operations. For any operation requiring a context, f should use +// the context it is passed, not the first argument to RunTransaction. +// +// f must not call Commit or Rollback on the provided Transaction. +// +// If f returns nil, RunTransaction commits the transaction. If the commit fails due +// to a conflicting transaction, RunTransaction retries f. It gives up and returns +// ErrConcurrentTransaction after a number of attempts that can be configured with +// the MaxAttempts option. If the commit succeeds, RunTransaction returns a nil error. +// +// If f returns non-nil, then the transaction will be rolled back and +// this method will return the same error. The function f is not retried. +// +// Note that when f returns, the transaction is not committed. Calling code +// must not assume that any of f's changes have been committed until +// RunTransaction returns nil. +// +// Since f may be called more than once, f should usually be idempotent – that is, it +// should have the same result when called multiple times. +func (c *Client) RunTransaction(ctx context.Context, f func(context.Context, *Transaction) error, opts ...TransactionOption) error { + if ctx.Value(transactionInProgressKey{}) != nil { + return errNestedTransaction + } + db := c.path() + t := &Transaction{ + c: c, + ctx: withResourceHeader(ctx, db), + maxAttempts: DefaultTransactionMaxAttempts, + } + for _, opt := range opts { + opt.config(t) + } + var txOpts *pb.TransactionOptions + if t.readOnly { + txOpts = &pb.TransactionOptions{ + Mode: &pb.TransactionOptions_ReadOnly_{&pb.TransactionOptions_ReadOnly{}}, + } + } + var backoff gax.Backoff + // TODO(jba): use other than the standard backoff parameters? + // TODO(jba): get backoff time from gRPC trailer metadata? See extractRetryDelay in https://code.googlesource.com/gocloud/+/master/spanner/retry.go. + var err error + for i := 0; i < t.maxAttempts; i++ { + var res *pb.BeginTransactionResponse + res, err = t.c.c.BeginTransaction(t.ctx, &pb.BeginTransactionRequest{ + Database: db, + Options: txOpts, + }) + if err != nil { + return err + } + t.id = res.Transaction + err = f(context.WithValue(ctx, transactionInProgressKey{}, 1), t) + // Read after write can only be checked client-side, so we make sure to check + // even if the user does not. + if err == nil && t.readAfterWrite { + err = errReadAfterWrite + } + if err != nil { + t.rollback() + // Prefer f's returned error to rollback error. + return err + } + _, err = t.c.c.Commit(t.ctx, &pb.CommitRequest{ + Database: t.c.path(), + Writes: t.writes, + Transaction: t.id, + }) + // If a read-write transaction returns Aborted, retry. + // On success or other failures, return here. + if t.readOnly || grpc.Code(err) != codes.Aborted { + // According to the Firestore team, we should not roll back here + // if err != nil. But spanner does. + // See https://code.googlesource.com/gocloud/+/master/spanner/transaction.go#740. + return err + } + + if txOpts == nil { + // txOpts can only be nil if is the first retry of a read-write transaction. + // (It is only set here and in the body of "if t.readOnly" above.) + // Mention the transaction ID in BeginTransaction so the service + // knows it is a retry. + txOpts = &pb.TransactionOptions{ + Mode: &pb.TransactionOptions_ReadWrite_{ + &pb.TransactionOptions_ReadWrite{RetryTransaction: t.id}, + }, + } + } + // Use exponential backoff to avoid contention with other running + // transactions. + if cerr := gax.Sleep(ctx, backoff.Pause()); cerr != nil { + err = cerr + break + } + } + // If we run out of retries, return the last error we saw (which should + // be the Aborted from Commit, or a context error). + if err != nil { + t.rollback() + } + return err +} + +func (t *Transaction) rollback() { + _ = t.c.c.Rollback(t.ctx, &pb.RollbackRequest{ + Database: t.c.path(), + Transaction: t.id, + }) + // Ignore the rollback error. + // TODO(jba): Log it? + // Note: Rollback is idempotent so it will be retried by the gapic layer. +} + +// Get gets the document in the context of the transaction. +func (t *Transaction) Get(dr *DocumentRef) (*DocumentSnapshot, error) { + if len(t.writes) > 0 { + t.readAfterWrite = true + return nil, errReadAfterWrite + } + docProto, err := t.c.c.GetDocument(t.ctx, &pb.GetDocumentRequest{ + Name: dr.Path, + ConsistencySelector: &pb.GetDocumentRequest_Transaction{t.id}, + }) + if err != nil { + return nil, err + } + return newDocumentSnapshot(dr, docProto, t.c) +} + +// A Queryer is a Query or a CollectionRef. CollectionRefs act as queries whose +// results are all the documents in the collection. +type Queryer interface { + query() *Query +} + +// Documents returns a DocumentIterator based on given Query or CollectionRef. The +// results will be in the context of the transaction. +func (t *Transaction) Documents(q Queryer) *DocumentIterator { + if len(t.writes) > 0 { + t.readAfterWrite = true + return &DocumentIterator{err: errReadAfterWrite} + } + return &DocumentIterator{ + ctx: t.ctx, + q: q.query(), + tid: t.id, + } +} + +// Create adds a Create operation to the Transaction. +// See DocumentRef.Create for details. +func (t *Transaction) Create(dr *DocumentRef, data interface{}) error { + return t.addWrites(dr.newReplaceWrites(data, nil, Exists(false))) +} + +// Set adds a Set operation to the Transaction. +// See DocumentRef.Set for details. +func (t *Transaction) Set(dr *DocumentRef, data interface{}, opts ...SetOption) error { + return t.addWrites(dr.newReplaceWrites(data, opts, nil)) +} + +// Delete adds a Delete operation to the Transaction. +// See DocumentRef.Delete for details. +func (t *Transaction) Delete(dr *DocumentRef, opts ...Precondition) error { + return t.addWrites(dr.newDeleteWrites(opts)) +} + +// UpdateMap adds a new Update operation to the Transaction. +// See DocumentRef.UpdateMap for details. +func (t *Transaction) UpdateMap(dr *DocumentRef, data map[string]interface{}, opts ...Precondition) error { + return t.addWrites(dr.newUpdateMapWrites(data, opts)) +} + +// UpdateStruct adds a new Update operation to the Transaction. +// See DocumentRef.UpdateStruct for details. +func (t *Transaction) UpdateStruct(dr *DocumentRef, fieldPaths []string, data interface{}, opts ...Precondition) error { + return t.addWrites(dr.newUpdateStructWrites(fieldPaths, data, opts)) +} + +// UpdatePaths adds a new Update operation to the Transaction. +// See DocumentRef.UpdatePaths for details. +func (t *Transaction) UpdatePaths(dr *DocumentRef, data []FieldPathUpdate, opts ...Precondition) error { + return t.addWrites(dr.newUpdatePathWrites(data, opts)) +} + +func (t *Transaction) addWrites(ws []*pb.Write, err error) error { + if t.readOnly { + return errWriteReadOnly + } + if err != nil { + return err + } + t.writes = append(t.writes, ws...) + return nil +} diff --git a/vendor/cloud.google.com/go/firestore/transaction_test.go b/vendor/cloud.google.com/go/firestore/transaction_test.go new file mode 100644 index 000000000..ce11f911e --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/transaction_test.go @@ -0,0 +1,346 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "golang.org/x/net/context" + "testing" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/ptypes/empty" + "google.golang.org/api/iterator" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +func TestRunTransaction(t *testing.T) { + ctx := context.Background() + const db = "projects/projectID/databases/(default)" + tid := []byte{1} + c, srv := newMock(t) + beginReq := &pb.BeginTransactionRequest{Database: db} + beginRes := &pb.BeginTransactionResponse{Transaction: tid} + commitReq := &pb.CommitRequest{Database: db, Transaction: tid} + // Empty transaction. + srv.addRPC(beginReq, beginRes) + srv.addRPC(commitReq, &pb.CommitResponse{CommitTime: aTimestamp}) + err := c.RunTransaction(ctx, func(context.Context, *Transaction) error { return nil }) + if err != nil { + t.Fatal(err) + } + + // Transaction with read and write. + srv.reset() + srv.addRPC(beginReq, beginRes) + aDoc := &pb.Document{ + Name: db + "/documents/C/a", + CreateTime: aTimestamp, + UpdateTime: aTimestamp2, + Fields: map[string]*pb.Value{"count": intval(1)}, + } + srv.addRPC( + &pb.GetDocumentRequest{ + Name: db + "/documents/C/a", + ConsistencySelector: &pb.GetDocumentRequest_Transaction{tid}, + }, + aDoc, + ) + aDoc2 := &pb.Document{ + Name: aDoc.Name, + Fields: map[string]*pb.Value{"count": intval(2)}, + } + srv.addRPC( + &pb.CommitRequest{ + Database: db, + Transaction: tid, + Writes: []*pb.Write{{ + Operation: &pb.Write_Update{aDoc2}, + UpdateMask: &pb.DocumentMask{FieldPaths: []string{"count"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }}, + }, + &pb.CommitResponse{CommitTime: aTimestamp3}, + ) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + docref := c.Collection("C").Doc("a") + doc, err := tx.Get(docref) + if err != nil { + return err + } + count, err := doc.DataAt("count") + if err != nil { + return err + } + tx.UpdateMap(docref, map[string]interface{}{"count": count.(int64) + 1}) + return nil + }) + if err != nil { + t.Fatal(err) + } + + // Query + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC( + &pb.RunQueryRequest{ + Parent: db, + QueryType: &pb.RunQueryRequest_StructuredQuery{ + &pb.StructuredQuery{ + From: []*pb.StructuredQuery_CollectionSelector{{CollectionId: "C"}}, + }, + }, + ConsistencySelector: &pb.RunQueryRequest_Transaction{tid}, + }, + []interface{}{}, + ) + srv.addRPC(commitReq, &pb.CommitResponse{CommitTime: aTimestamp3}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + it := tx.Documents(c.Collection("C")) + _, err := it.Next() + if err != iterator.Done { + return err + } + return nil + }) + if err != nil { + t.Fatal(err) + } + + // Retry entire transaction. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(commitReq, grpc.Errorf(codes.Aborted, "")) + srv.addRPC( + &pb.BeginTransactionRequest{ + Database: db, + Options: &pb.TransactionOptions{ + Mode: &pb.TransactionOptions_ReadWrite_{ + &pb.TransactionOptions_ReadWrite{tid}, + }, + }, + }, + beginRes, + ) + srv.addRPC(commitReq, &pb.CommitResponse{CommitTime: aTimestamp}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { return nil }) + if err != nil { + t.Fatal(err) + } +} + +func TestTransactionErrors(t *testing.T) { + ctx := context.Background() + const db = "projects/projectID/databases/(default)" + c, srv := newMock(t) + var ( + tid = []byte{1} + internalErr = grpc.Errorf(codes.Internal, "so sad") + beginReq = &pb.BeginTransactionRequest{ + Database: db, + } + beginRes = &pb.BeginTransactionResponse{Transaction: tid} + getReq = &pb.GetDocumentRequest{ + Name: db + "/documents/C/a", + ConsistencySelector: &pb.GetDocumentRequest_Transaction{tid}, + } + rollbackReq = &pb.RollbackRequest{Database: db, Transaction: tid} + commitReq = &pb.CommitRequest{Database: db, Transaction: tid} + ) + + // BeginTransaction has a permanent error. + srv.addRPC(beginReq, internalErr) + err := c.RunTransaction(ctx, func(context.Context, *Transaction) error { return nil }) + if grpc.Code(err) != codes.Internal { + t.Errorf("got <%v>, want Internal", err) + } + + // Get has a permanent error. + get := func(_ context.Context, tx *Transaction) error { + _, err := tx.Get(c.Doc("C/a")) + return err + } + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(getReq, internalErr) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, get) + if grpc.Code(err) != codes.Internal { + t.Errorf("got <%v>, want Internal", err) + } + + // Get has a permanent error, but the rollback fails. We still + // return Get's error. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(getReq, internalErr) + srv.addRPC(rollbackReq, grpc.Errorf(codes.FailedPrecondition, "")) + err = c.RunTransaction(ctx, get) + if grpc.Code(err) != codes.Internal { + t.Errorf("got <%v>, want Internal", err) + } + + // Commit has a permanent error. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(getReq, &pb.Document{ + Name: "projects/projectID/databases/(default)/documents/C/a", + CreateTime: aTimestamp, + UpdateTime: aTimestamp2, + }) + srv.addRPC(commitReq, internalErr) + err = c.RunTransaction(ctx, get) + if grpc.Code(err) != codes.Internal { + t.Errorf("got <%v>, want Internal", err) + } + + // Read after write. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + tx.Delete(c.Doc("C/a")) + if _, err := tx.Get(c.Doc("C/a")); err != nil { + return err + } + return nil + }) + if err != errReadAfterWrite { + t.Errorf("got <%v>, want <%v>", err, errReadAfterWrite) + } + + // Read after write, with query. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + tx.Delete(c.Doc("C/a")) + it := tx.Documents(c.Collection("C").Select("x")) + if _, err := it.Next(); err != iterator.Done { + return err + } + return nil + }) + if err != errReadAfterWrite { + t.Errorf("got <%v>, want <%v>", err, errReadAfterWrite) + } + + // Read after write fails even if the user ignores the read's error. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + tx.Delete(c.Doc("C/a")) + tx.Get(c.Doc("C/a")) + return nil + }) + if err != errReadAfterWrite { + t.Errorf("got <%v>, want <%v>", err, errReadAfterWrite) + } + + // Write in read-only transaction. + srv.reset() + srv.addRPC( + &pb.BeginTransactionRequest{ + Database: db, + Options: &pb.TransactionOptions{ + Mode: &pb.TransactionOptions_ReadOnly_{&pb.TransactionOptions_ReadOnly{}}, + }, + }, + beginRes, + ) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(_ context.Context, tx *Transaction) error { + return tx.Delete(c.Doc("C/a")) + }, ReadOnly) + if err != errWriteReadOnly { + t.Errorf("got <%v>, want <%v>", err, errWriteReadOnly) + } + + // Too many retries. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(commitReq, grpc.Errorf(codes.Aborted, "")) + srv.addRPC( + &pb.BeginTransactionRequest{ + Database: db, + Options: &pb.TransactionOptions{ + Mode: &pb.TransactionOptions_ReadWrite_{ + &pb.TransactionOptions_ReadWrite{tid}, + }, + }, + }, + beginRes, + ) + srv.addRPC(commitReq, grpc.Errorf(codes.Aborted, "")) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(context.Context, *Transaction) error { return nil }, + MaxAttempts(2)) + if grpc.Code(err) != codes.Aborted { + t.Errorf("got <%v>, want Aborted", err) + } + + // Nested transaction. + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(ctx context.Context, tx *Transaction) error { + return c.RunTransaction(ctx, func(context.Context, *Transaction) error { return nil }) + }) + if got, want := err, errNestedTransaction; got != want { + t.Errorf("got <%v>, want <%V>", got, want) + } + + // Non-transactional operation. + dr := c.Doc("C/d") + + for i, op := range []func(ctx context.Context) error{ + func(ctx context.Context) error { _, err := c.GetAll(ctx, []*DocumentRef{dr}); return err }, + func(ctx context.Context) error { _, _, err := c.Collection("C").Add(ctx, testData); return err }, + func(ctx context.Context) error { _, err := dr.Get(ctx); return err }, + func(ctx context.Context) error { _, err := dr.Create(ctx, testData); return err }, + func(ctx context.Context) error { _, err := dr.Set(ctx, testData); return err }, + func(ctx context.Context) error { _, err := dr.Delete(ctx); return err }, + func(ctx context.Context) error { _, err := dr.UpdateMap(ctx, testData); return err }, + func(ctx context.Context) error { + _, err := dr.UpdateStruct(ctx, []string{"x"}, struct{}{}) + return err + }, + func(ctx context.Context) error { + _, err := dr.UpdatePaths(ctx, []FieldPathUpdate{{Path: []string{"*"}, Value: 1}}) + return err + }, + func(ctx context.Context) error { it := c.Collections(ctx); _, err := it.Next(); return err }, + func(ctx context.Context) error { it := dr.Collections(ctx); _, err := it.Next(); return err }, + func(ctx context.Context) error { _, err := c.Batch().Commit(ctx); return err }, + func(ctx context.Context) error { + it := c.Collection("C").Documents(ctx) + _, err := it.Next() + return err + }, + } { + srv.reset() + srv.addRPC(beginReq, beginRes) + srv.addRPC(rollbackReq, &empty.Empty{}) + err = c.RunTransaction(ctx, func(ctx context.Context, _ *Transaction) error { + return op(ctx) + }) + if got, want := err, errNonTransactionalOp; got != want { + t.Errorf("#%d: got <%v>, want <%v>", i, got, want) + } + } +} diff --git a/vendor/cloud.google.com/go/firestore/util_test.go b/vendor/cloud.google.com/go/firestore/util_test.go new file mode 100644 index 000000000..3be52ecab --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/util_test.go @@ -0,0 +1,147 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "fmt" + "reflect" + "testing" + "time" + + "golang.org/x/net/context" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + tspb "github.com/golang/protobuf/ptypes/timestamp" + "google.golang.org/api/option" + "google.golang.org/genproto/googleapis/type/latlng" + "google.golang.org/grpc" +) + +var ( + aTime = time.Date(2017, 1, 26, 0, 0, 0, 0, time.UTC) + aTime2 = time.Date(2017, 2, 5, 0, 0, 0, 0, time.UTC) + aTime3 = time.Date(2017, 3, 20, 0, 0, 0, 0, time.UTC) + aTimestamp = mustTimestampProto(aTime) + aTimestamp2 = mustTimestampProto(aTime2) + aTimestamp3 = mustTimestampProto(aTime3) +) + +func mustTimestampProto(t time.Time) *tspb.Timestamp { + ts, err := ptypes.TimestampProto(t) + if err != nil { + panic(err) + } + return ts +} + +// testEqual implements equality for Firestore tests. +func testEqual(a, b interface{}) bool { + switch a := a.(type) { + case time.Time: + return a.Equal(b.(time.Time)) + case proto.Message: + return proto.Equal(a, b.(proto.Message)) + case *DocumentSnapshot: + return a.equal(b.(*DocumentSnapshot)) + case *DocumentRef: + return a.equal(b.(*DocumentRef)) + case *CollectionRef: + return a.equal(b.(*CollectionRef)) + default: + return reflect.DeepEqual(a, b) + } +} + +func TestTestEqual(t *testing.T) { + for _, test := range []struct { + a, b interface{} + want bool + }{ + {nil, nil, true}, + {([]int)(nil), nil, false}, + {nil, ([]int)(nil), false}, + {([]int)(nil), ([]int)(nil), true}, + } { + if got := testEqual(test.a, test.b); got != test.want { + t.Errorf("testEqual(%#v, %#v) == %t, want %t", test.a, test.b, got, test.want) + } + } +} + +func newMock(t *testing.T) (*Client, *mockServer) { + srv, err := newMockServer() + if err != nil { + t.Fatal(err) + } + conn, err := grpc.Dial(srv.Addr, grpc.WithInsecure(), grpc.WithBlock()) + if err != nil { + t.Fatal(err) + } + client, err := NewClient(context.Background(), "projectID", option.WithGRPCConn(conn)) + if err != nil { + t.Fatal(err) + } + return client, srv +} + +func intval(i int) *pb.Value { + return &pb.Value{&pb.Value_IntegerValue{int64(i)}} +} + +func boolval(b bool) *pb.Value { + return &pb.Value{&pb.Value_BooleanValue{b}} +} + +func floatval(f float64) *pb.Value { + return &pb.Value{&pb.Value_DoubleValue{f}} +} + +func strval(s string) *pb.Value { + return &pb.Value{&pb.Value_StringValue{s}} +} + +func bytesval(b []byte) *pb.Value { + return &pb.Value{&pb.Value_BytesValue{b}} +} + +func tsval(t time.Time) *pb.Value { + ts, err := ptypes.TimestampProto(t) + if err != nil { + panic(fmt.Sprintf("bad time %s in test: %v", t, err)) + } + return &pb.Value{&pb.Value_TimestampValue{ts}} +} + +func geoval(ll *latlng.LatLng) *pb.Value { + return &pb.Value{&pb.Value_GeoPointValue{ll}} +} + +func arrayval(s ...*pb.Value) *pb.Value { + if s == nil { + s = []*pb.Value{} + } + return &pb.Value{&pb.Value_ArrayValue{&pb.ArrayValue{s}}} +} + +func mapval(m map[string]*pb.Value) *pb.Value { + return &pb.Value{&pb.Value_MapValue{&pb.MapValue{m}}} +} + +func refval(path string) *pb.Value { + return &pb.Value{&pb.Value_ReferenceValue{path}} +} diff --git a/vendor/cloud.google.com/go/firestore/writebatch.go b/vendor/cloud.google.com/go/firestore/writebatch.go new file mode 100644 index 000000000..385b7a397 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/writebatch.go @@ -0,0 +1,113 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "errors" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "golang.org/x/net/context" +) + +// A WriteBatch holds multiple database updates. Build a batch with the Create, Set, +// Update and Delete methods, then run it with the Commit method. Errors in Create, +// Set, Update or Delete are recorded instead of being returned immediately. The +// first such error is returned by Commit. +type WriteBatch struct { + c *Client + err error + writes []*pb.Write +} + +func (b *WriteBatch) add(ws []*pb.Write, err error) *WriteBatch { + if b.err != nil { + return b + } + if err != nil { + b.err = err + return b + } + b.writes = append(b.writes, ws...) + return b +} + +// Create adds a Create operation to the batch. +// See DocumentRef.Create for details. +func (b *WriteBatch) Create(dr *DocumentRef, data interface{}) *WriteBatch { + return b.add(dr.newReplaceWrites(data, nil, Exists(false))) +} + +// Set adds a Set operation to the batch. +// See DocumentRef.Set for details. +func (b *WriteBatch) Set(dr *DocumentRef, data interface{}, opts ...SetOption) *WriteBatch { + return b.add(dr.newReplaceWrites(data, opts, nil)) +} + +// Delete adds a Delete operation to the batch. +// See DocumentRef.Delete for details. +func (b *WriteBatch) Delete(dr *DocumentRef, opts ...Precondition) *WriteBatch { + return b.add(dr.newDeleteWrites(opts)) +} + +// UpdateMap adds an UpdateMap operation to the batch. +// See DocumentRef.UpdateMap for details. +func (b *WriteBatch) UpdateMap(dr *DocumentRef, data map[string]interface{}, opts ...Precondition) *WriteBatch { + return b.add(dr.newUpdateMapWrites(data, opts)) +} + +// UpdateStruct adds an UpdateStruct operation to the batch. +// See DocumentRef.UpdateStruct for details. +func (b *WriteBatch) UpdateStruct(dr *DocumentRef, fieldPaths []string, data interface{}, opts ...Precondition) *WriteBatch { + return b.add(dr.newUpdateStructWrites(fieldPaths, data, opts)) +} + +// UpdatePaths adds an UpdatePaths operation to the batch. +// See DocumentRef.UpdatePaths for details. +func (b *WriteBatch) UpdatePaths(dr *DocumentRef, data []FieldPathUpdate, opts ...Precondition) *WriteBatch { + return b.add(dr.newUpdatePathWrites(data, opts)) +} + +// Commit applies all the writes in the batch to the database atomically. Commit +// returns an error if there are no writes in the batch, if any errors occurred in +// constructing the writes, or if the Commmit operation fails. +func (b *WriteBatch) Commit(ctx context.Context) ([]*WriteResult, error) { + if err := checkTransaction(ctx); err != nil { + return nil, err + } + if b.err != nil { + return nil, b.err + } + if len(b.writes) == 0 { + return nil, errors.New("firestore: cannot commit empty WriteBatch") + } + db := b.c.path() + res, err := b.c.c.Commit(withResourceHeader(ctx, db), &pb.CommitRequest{ + Database: db, + Writes: b.writes, + }) + if err != nil { + return nil, err + } + var wrs []*WriteResult + for _, pwr := range res.WriteResults { + wr, err := writeResultFromProto(pwr) + if err != nil { + return nil, err + } + wrs = append(wrs, wr) + } + return wrs, nil +} diff --git a/vendor/cloud.google.com/go/firestore/writebatch_test.go b/vendor/cloud.google.com/go/firestore/writebatch_test.go new file mode 100644 index 000000000..11fc57bf1 --- /dev/null +++ b/vendor/cloud.google.com/go/firestore/writebatch_test.go @@ -0,0 +1,145 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "testing" + + pb "google.golang.org/genproto/googleapis/firestore/v1beta1" + + "golang.org/x/net/context" +) + +func TestWriteBatch(t *testing.T) { + type update struct{ A int } + + c, srv := newMock(t) + docPrefix := c.Collection("C").Path + "/" + srv.addRPC( + &pb.CommitRequest{ + Database: c.path(), + Writes: []*pb.Write{ + { // Create + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: docPrefix + "a", + Fields: testFields, + }, + }, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{false}, + }, + }, + { // Set + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: docPrefix + "b", + Fields: testFields, + }, + }, + }, + { // Delete + Operation: &pb.Write_Delete{ + Delete: docPrefix + "c", + }, + }, + { // UpdateMap + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: docPrefix + "d", + Fields: testFields, + }, + }, + UpdateMask: &pb.DocumentMask{[]string{"a"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }, + { // UpdateStruct + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: docPrefix + "e", + Fields: map[string]*pb.Value{"A": intval(3)}, + }, + }, + UpdateMask: &pb.DocumentMask{[]string{"A"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }, + { // UpdatePaths + Operation: &pb.Write_Update{ + Update: &pb.Document{ + Name: docPrefix + "f", + Fields: map[string]*pb.Value{"*": intval(3)}, + }, + }, + UpdateMask: &pb.DocumentMask{[]string{"`*`"}}, + CurrentDocument: &pb.Precondition{ + ConditionType: &pb.Precondition_Exists{true}, + }, + }, + }, + }, + &pb.CommitResponse{ + WriteResults: []*pb.WriteResult{ + {UpdateTime: aTimestamp}, + {UpdateTime: aTimestamp2}, + {UpdateTime: aTimestamp3}, + }, + }, + ) + gotWRs, err := c.Batch(). + Create(c.Doc("C/a"), testData). + Set(c.Doc("C/b"), testData). + Delete(c.Doc("C/c")). + UpdateMap(c.Doc("C/d"), testData). + UpdateStruct(c.Doc("C/e"), []string{"A"}, update{A: 3}). + UpdatePaths(c.Doc("C/f"), []FieldPathUpdate{{Path: []string{"*"}, Value: 3}}). + Commit(context.Background()) + if err != nil { + t.Fatal(err) + } + wantWRs := []*WriteResult{{aTime}, {aTime2}, {aTime3}} + if !testEqual(gotWRs, wantWRs) { + t.Errorf("got %+v\nwant %+v", gotWRs, wantWRs) + } +} + +func TestWriteBatchErrors(t *testing.T) { + ctx := context.Background() + c, _ := newMock(t) + for _, test := range []struct { + desc string + batch *WriteBatch + }{ + { + "empty batch", + c.Batch(), + }, + { + "bad doc reference", + c.Batch().Create(c.Doc("a"), testData), + }, + { + "bad data", + c.Batch().Create(c.Doc("a/b"), 3), + }, + } { + if _, err := test.batch.Commit(ctx); err == nil { + t.Errorf("%s: got nil, want error", test.desc) + } + } +} diff --git a/vendor/cloud.google.com/go/internal/testutil/context.go b/vendor/cloud.google.com/go/internal/testutil/context.go index cdb440ee3..a0e98fc55 100644 --- a/vendor/cloud.google.com/go/internal/testutil/context.go +++ b/vendor/cloud.google.com/go/internal/testutil/context.go @@ -33,20 +33,24 @@ const ( // ProjID returns the project ID to use in integration tests, or the empty // string if none is configured. func ProjID() string { - projID := os.Getenv(envProjID) - if projID == "" { - return "" - } - return projID + return os.Getenv(envProjID) } // TokenSource returns the OAuth2 token source to use in integration tests, -// or nil if none is configured. If the environment variable is unset, -// TokenSource will try to find 'Application Default Credentials'. Else, -// TokenSource will return nil. -// TokenSource will log.Fatal if the token source is specified but missing or invalid. +// or nil if none is configured. It uses the standard environment variable +// for tests in this repo. func TokenSource(ctx context.Context, scopes ...string) oauth2.TokenSource { - key := os.Getenv(envPrivateKey) + return TokenSourceEnv(ctx, envPrivateKey, scopes...) +} + +// TokenSourceEnv returns the OAuth2 token source to use in integration tests. or nil +// if none is configured. It tries to get credentials from the filename in the +// environment variable envVar. If the environment variable is unset, TokenSourceEnv +// will try to find 'Application Default Credentials'. Else, TokenSourceEnv will +// return nil. TokenSourceEnv will log.Fatal if the token source is specified but +// missing or invalid. +func TokenSourceEnv(ctx context.Context, envVar string, scopes ...string) oauth2.TokenSource { + key := os.Getenv(envVar) if key == "" { // Try for application default credentials. ts, err := google.DefaultTokenSource(ctx, scopes...) if err != nil { diff --git a/vendor/cloud.google.com/go/old-news.md b/vendor/cloud.google.com/go/old-news.md index 7b3ee4448..896980d96 100644 --- a/vendor/cloud.google.com/go/old-news.md +++ b/vendor/cloud.google.com/go/old-news.md @@ -1,3 +1,38 @@ +_July 31, 2017_ + +*v0.11.0* + +- Clients for spanner, pubsub and video are now in beta. + +- New client for DLP. + +- spanner: performance and testing improvements. + +- storage: requester-pays buckets are supported. + +- storage, profiler, bigtable, bigquery: bug fixes and other minor improvements. + +- pubsub: bug fixes and other minor improvements + +_June 17, 2017_ + + +*v0.10.0* + +- pubsub: Subscription.ModifyPushConfig replaced with Subscription.Update. + +- pubsub: Subscription.Receive now runs concurrently for higher throughput. + +- vision: cloud.google.com/go/vision is deprecated. Use +cloud.google.com/go/vision/apiv1 instead. + +- translation: now stable. + +- trace: several changes to the surface. See the link below. + +[Code changes required from v0.9.0.](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/MIGRATION.md) + + _March 17, 2017_ Breaking Pubsub changes. diff --git a/vendor/cloud.google.com/go/profiler/busybench/busybench.go b/vendor/cloud.google.com/go/profiler/busybench/busybench.go new file mode 100644 index 000000000..2bb61ebc3 --- /dev/null +++ b/vendor/cloud.google.com/go/profiler/busybench/busybench.go @@ -0,0 +1,79 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "bytes" + "cloud.google.com/go/profiler" + "compress/gzip" + "flag" + "log" + "math/rand" + "time" +) + +var service = flag.String("service", "", "service name") + +const duration = time.Minute * 10 + +// busywork continuously generates 1MiB of random data and compresses it +// throwing away the result. +func busywork() { + ticker := time.NewTicker(duration) + defer ticker.Stop() + for { + select { + case <-ticker.C: + return + default: + busyworkOnce() + } + } +} + +func busyworkOnce() { + data := make([]byte, 1024*1024) + rand.Read(data) + + var b bytes.Buffer + gz := gzip.NewWriter(&b) + if _, err := gz.Write(data); err != nil { + log.Printf("Failed to write to gzip stream: %v", err) + return + } + if err := gz.Flush(); err != nil { + log.Printf("Failed to flush to gzip stream: %v", err) + return + } + if err := gz.Close(); err != nil { + log.Printf("Failed to close gzip stream: %v", err) + } + // Throw away the result. +} + +func main() { + flag.Parse() + + if *service == "" { + log.Print("Service name must be configured using --service flag.") + } else if err := profiler.Start(profiler.Config{Service: *service, DebugLogging: true}); err != nil { + log.Printf("Failed to start the profiler: %v", err) + } else { + busywork() + } + + log.Printf("busybench finished profiling.") + select {} +} diff --git a/vendor/cloud.google.com/go/profiler/integration-test.sh b/vendor/cloud.google.com/go/profiler/integration-test.sh new file mode 100644 index 000000000..9a3c2c72f --- /dev/null +++ b/vendor/cloud.google.com/go/profiler/integration-test.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Fail on any error. +set -eo pipefail + +# Display commands being run. +set -x + +cd git/gocloud + +# Run test only if profiler directory is touched. +profiler_test=false +for f in $(git diff-tree --no-commit-id --name-only -r HEAD); do + if [[ "$(dirname $f)" == "profiler" ]]; then + profiler_test=true + fi +done + +if [[ "$profiler_test" = false ]]; then + exit 0 +fi + +COMMIT=$(git rev-parse HEAD) + +# Set $GOPATH +export GOPATH="$HOME/go" +GOCLOUD_HOME=$GOPATH/src/cloud.google.com/go +mkdir -p $GOCLOUD_HOME + +# Move code into $GOPATH and get dependencies +cp -R ./* $GOCLOUD_HOME +cd $GOCLOUD_HOME +go get -v ./... + +cd internal/kokoro +# Don't print out encryption keys, etc +set +x +key=$(cat "$KOKORO_ARTIFACTS_DIR/keystore/72523_encrypted_ba2d6f7723ed_key") +iv=$(cat "$KOKORO_ARTIFACTS_DIR/keystore/72523_encrypted_ba2d6f7723ed_iv") +pass=$(cat "$KOKORO_ARTIFACTS_DIR/keystore/72523_encrypted_ba2d6f7723ed_pass") + +openssl aes-256-cbc -K $key -iv $iv -pass pass:$pass -in kokoro-key.json.enc -out key.json -d +set -x + +export GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/key.json" +export GCLOUD_TESTS_GOLANG_PROJECT_ID="dulcet-port-762" +export GCLOUD_TESTS_GOLANG_ZONE="us-west1-a" +export GCLOUD_TESTS_GOLANG_BUCKET="dulcet-port-762-go-cloud-profiler-test" + +cd $GOCLOUD_HOME/profiler +go get -t -tags=integration . +go test -timeout=60m -parallel=5 -tags=integration -run TestAgentIntegration -commit="$COMMIT" diff --git a/vendor/cloud.google.com/go/profiler/integration_test.go b/vendor/cloud.google.com/go/profiler/integration_test.go new file mode 100644 index 000000000..a2351fe29 --- /dev/null +++ b/vendor/cloud.google.com/go/profiler/integration_test.go @@ -0,0 +1,690 @@ +// Copyright 2017 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build integration,go1.7 + +package profiler + +import ( + "archive/zip" + "bytes" + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "strings" + "testing" + "text/template" + "time" + + "cloud.google.com/go/storage" + "golang.org/x/build/kubernetes" + k8sapi "golang.org/x/build/kubernetes/api" + "golang.org/x/build/kubernetes/gke" + "golang.org/x/net/context" + "golang.org/x/oauth2/google" + cloudbuild "google.golang.org/api/cloudbuild/v1" + compute "google.golang.org/api/compute/v1" + container "google.golang.org/api/container/v1" + "google.golang.org/api/googleapi" +) + +var ( + commit = flag.String("commit", "", "git commit to test") + runID = time.Now().Unix() +) + +const ( + cloudScope = "https://www.googleapis.com/auth/cloud-platform" + monitorWriteScope = "https://www.googleapis.com/auth/monitoring.write" + storageReadScope = "https://www.googleapis.com/auth/devstorage.read_only" + // benchFinishString should keep in sync with the finish string in busybench. + benchFinishString = "busybench finished profiling" +) + +const startupTemplate = ` +#! /bin/bash + +# Fail on any error. +set -eo pipefail + +# Display commands being run. +set -x + +# Install git +sudo apt-get update +sudo apt-get -y -q install git-all + +# Install desired Go version +mkdir -p /tmp/bin +curl -sL -o /tmp/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme +chmod +x /tmp/bin/gimme +export PATH=$PATH:/tmp/bin + +eval "$(gimme {{.GoVersion}})" + +# Set $GOPATH +export GOPATH="$HOME/go" + +export GOCLOUD_HOME=$GOPATH/src/cloud.google.com/go +mkdir -p $GOCLOUD_HOME + +# Install agent +git clone https://code.googlesource.com/gocloud $GOCLOUD_HOME + +cd $GOCLOUD_HOME +git reset --hard {{.Commit}} +go get -v ./... + +# Run benchmark with agent +go run profiler/busybench/busybench.go --service="{{.Service}}" +` + +const dockerfileFmt = `FROM golang +RUN git clone https://code.googlesource.com/gocloud /go/src/cloud.google.com/go \ + && cd /go/src/cloud.google.com/go && git reset --hard %s \ + && go get -v cloud.google.com/go/... && go install -v cloud.google.com/go/profiler/busybench +CMD ["busybench", "--service", "%s"] + ` + +type testRunner struct { + client *http.Client + startupTemplate *template.Template + containerService *container.Service + computeService *compute.Service + storageClient *storage.Client +} + +type profileResponse struct { + Profile profileData `json:"profile"` + NumProfiles int32 `json:"numProfiles"` + Deployments []interface{} `json:"deployments"` +} + +type profileData struct { + Samples []int32 `json:"samples"` + SampleMetrics interface{} `json:"sampleMetrics"` + DefaultMetricType string `json:"defaultMetricType"` + TreeNodes interface{} `json:"treeNodes"` + Functions functionArray `json:"functions"` + SourceFiles interface{} `json:"sourceFiles"` +} + +type functionArray struct { + Name []string `json:"name"` + Sourcefile []int32 `json:"sourceFile"` +} + +func validateProfileData(rawData []byte, wantFunctionName string) error { + var pr profileResponse + if err := json.Unmarshal(rawData, &pr); err != nil { + return err + } + + if pr.NumProfiles == 0 { + return fmt.Errorf("profile response contains zero profiles: %v", pr) + } + + if len(pr.Deployments) == 0 { + return fmt.Errorf("profile response contains zero deployments: %v", pr) + } + + if len(pr.Profile.Functions.Name) == 0 { + return fmt.Errorf("profile does not have function data") + } + + for _, name := range pr.Profile.Functions.Name { + if strings.Contains(name, wantFunctionName) { + return nil + } + } + return fmt.Errorf("wanted function name %s not found in profile", wantFunctionName) +} + +type instanceConfig struct { + name string + service string + goVersion string +} + +func newInstanceConfigs() []instanceConfig { + return []instanceConfig{ + { + name: fmt.Sprintf("profiler-test-go19-%d", runID), + service: fmt.Sprintf("profiler-test-go19-%d-gce", runID), + goVersion: "1.9", + }, + { + name: fmt.Sprintf("profiler-test-go18-%d", runID), + service: fmt.Sprintf("profiler-test-go18-%d-gce", runID), + goVersion: "1.8", + }, + { + name: fmt.Sprintf("profiler-test-go17-%d", runID), + service: fmt.Sprintf("profiler-test-go17-%d-gce", runID), + goVersion: "1.7", + }, + { + name: fmt.Sprintf("profiler-test-go16-%d", runID), + service: fmt.Sprintf("profiler-test-go16-%d-gce", runID), + goVersion: "1.6", + }, + } +} + +type clusterConfig struct { + clusterName string + podName string + imageSourceName string + imageName string + service string +} + +func newClusterConfig(projectID string) clusterConfig { + return clusterConfig{ + clusterName: fmt.Sprintf("profiler-test-cluster-%d", runID), + podName: fmt.Sprintf("profiler-test-pod-%d", runID), + imageSourceName: fmt.Sprintf("profiler-test/%d/Dockerfile.zip", runID), + imageName: fmt.Sprintf("%s/profiler-test-%d", projectID, runID), + service: fmt.Sprintf("profiler-test-%d-gke", runID), + } +} + +func renderStartupScript(template *template.Template, inst instanceConfig) (string, error) { + var buf bytes.Buffer + err := template.Execute(&buf, + struct { + Service string + GoVersion string + Commit string + }{ + Service: inst.service, + GoVersion: inst.goVersion, + Commit: *commit, + }) + if err != nil { + return "", fmt.Errorf("failed to render startup script for %s: %v", inst.name, err) + } + + return buf.String(), nil +} + +func (tr *testRunner) startInstance(ctx context.Context, inst instanceConfig, projectID, zone string) error { + img, err := tr.computeService.Images.GetFromFamily("debian-cloud", "debian-9").Context(ctx).Do() + if err != nil { + return err + } + + startupScript, err := renderStartupScript(tr.startupTemplate, inst) + if err != nil { + return err + } + + _, err = tr.computeService.Instances.Insert(projectID, zone, &compute.Instance{ + MachineType: fmt.Sprintf("zones/%s/machineTypes/n1-standard-1", zone), + Name: inst.name, + Disks: []*compute.AttachedDisk{{ + AutoDelete: true, // delete the disk when the VM is deleted. + Boot: true, + Type: "PERSISTENT", + Mode: "READ_WRITE", + InitializeParams: &compute.AttachedDiskInitializeParams{ + SourceImage: img.SelfLink, + DiskType: fmt.Sprintf("https://www.googleapis.com/compute/v1/projects/%s/zones/%s/diskTypes/pd-standard", projectID, zone), + }, + }}, + NetworkInterfaces: []*compute.NetworkInterface{{ + Network: fmt.Sprintf("https://www.googleapis.com/compute/v1/projects/%s/global/networks/default", projectID), + AccessConfigs: []*compute.AccessConfig{{ + Name: "External NAT", + }}, + }}, + Metadata: &compute.Metadata{ + Items: []*compute.MetadataItems{{ + Key: "startup-script", + Value: googleapi.String(startupScript), + }}, + }, + ServiceAccounts: []*compute.ServiceAccount{{ + Email: "default", + Scopes: []string{ + monitorWriteScope, + }, + }}, + }).Do() + + return err +} + +func (tr *testRunner) pollForSerialOutput(ctx context.Context, projectID, zone, instanceName string) error { + var output string + defer func() { + log.Printf("Serial port output for %s:\n%s", instanceName, output) + }() + + for { + select { + case <-ctx.Done(): + return fmt.Errorf("timed out waiting for profiling finishing on instance %s", instanceName) + + case <-time.After(20 * time.Second): + resp, err := tr.computeService.Instances.GetSerialPortOutput(projectID, zone, instanceName).Context(ctx).Do() + if err != nil { + // Transient failure. + log.Printf("Transient error getting serial port output from instance %s (will retry): %v", instanceName, err) + continue + } + + if output = resp.Contents; strings.Contains(output, benchFinishString) { + return nil + } + } + } +} + +func (tr *testRunner) queryAndCheckProfile(service, startTime, endTime, profileType, projectID string) error { + queryURL := fmt.Sprintf("https://cloudprofiler.googleapis.com/v2/projects/%s/profiles:query", projectID) + const queryJsonFmt = `{"endTime": "%s", "profileType": "%s","startTime": "%s", "target": "%s"}` + + queryRequest := fmt.Sprintf(queryJsonFmt, endTime, profileType, startTime, service) + + resp, err := tr.client.Post(queryURL, "application/json", strings.NewReader(queryRequest)) + if err != nil { + return fmt.Errorf("failed to query API: %v", err) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return fmt.Errorf("failed to read response body: %v", err) + } + + if err := validateProfileData(body, "busywork"); err != nil { + return fmt.Errorf("failed to validate profile %v", err) + } + + return nil +} + +func (tr *testRunner) runTestOnGCE(ctx context.Context, t *testing.T, inst instanceConfig, projectID, zone string) { + if err := tr.startInstance(ctx, inst, projectID, zone); err != nil { + t.Fatalf("startInstance(%s) got error: %v", inst.name, err) + } + defer func() { + if _, err := tr.computeService.Instances.Delete(projectID, zone, inst.name).Context(ctx).Do(); err != nil { + t.Errorf("Instances.Delete(%s) got error: %v", inst.name, err) + } + }() + + timeoutCtx, cancel := context.WithTimeout(ctx, time.Minute*25) + defer cancel() + if err := tr.pollForSerialOutput(timeoutCtx, projectID, zone, inst.name); err != nil { + t.Fatalf("pollForSerialOutput(%s) got error: %v", inst.name, err) + } + + timeNow := time.Now() + endTime := timeNow.Format(time.RFC3339) + startTime := timeNow.Add(-1 * time.Hour).Format(time.RFC3339) + for _, pType := range []string{"CPU", "HEAP"} { + if err := tr.queryAndCheckProfile(inst.service, startTime, endTime, pType, projectID); err != nil { + t.Errorf("queryAndCheckProfile(%s, %s, %s, %s) got error: %v", inst.service, startTime, endTime, pType, err) + } + } +} + +// createAndPublishDockerImage creates a docker image from source code in a GCS +// bucket and pushes the image to Google Container Registry. +func (tr *testRunner) createAndPublishDockerImage(ctx context.Context, projectID, sourceBucket, sourceObject, imageName string) error { + cloudbuildService, err := cloudbuild.New(tr.client) + + build := &cloudbuild.Build{ + Source: &cloudbuild.Source{ + StorageSource: &cloudbuild.StorageSource{ + Bucket: sourceBucket, + Object: sourceObject, + }, + }, + Steps: []*cloudbuild.BuildStep{ + { + Name: "gcr.io/cloud-builders/docker", + Args: []string{"build", "-t", imageName, "."}, + }, + }, + Images: []string{imageName}, + } + + op, err := cloudbuildService.Projects.Builds.Create(projectID, build).Context(ctx).Do() + if err != nil { + return fmt.Errorf("failed to create image: %v", err) + } + opID := op.Name + + // Wait for creating image. + for { + select { + case <-ctx.Done(): + return fmt.Errorf("timed out waiting creating image") + + case <-time.After(10 * time.Second): + op, err := cloudbuildService.Operations.Get(opID).Context(ctx).Do() + if err != nil { + log.Printf("Transient error getting operation (will retry): %v", err) + break + } + if op.Done == true { + log.Printf("Published image %s to Google Container Registry.", imageName) + return nil + } + } + } +} + +type imageResponse struct { + Manifest map[string]interface{} `json:"manifest"` + Name string `json:"name"` + Tags []string `json:"tags"` +} + +// deleteDockerImage deletes a docker image from Google Container Registry. +func (tr *testRunner) deleteDockerImage(ctx context.Context, imageName string) []error { + queryImageURL := fmt.Sprintf("https://gcr.io/v2/%s/tags/list", imageName) + resp, err := tr.client.Get(queryImageURL) + if err != nil { + return []error{fmt.Errorf("failed to list tags: %v", err)} + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return []error{err} + } + var ir imageResponse + if err := json.Unmarshal(body, &ir); err != nil { + return []error{err} + } + + const deleteImageURLFmt = "https://gcr.io/v2/%s/manifests/%s" + var errs []error + for _, tag := range ir.Tags { + if err := deleteDockerImageResource(tr.client, fmt.Sprintf(deleteImageURLFmt, imageName, tag)); err != nil { + errs = append(errs, fmt.Errorf("failed to delete tag %s: %v", tag, err)) + } + } + + for manifest := range ir.Manifest { + if err := deleteDockerImageResource(tr.client, fmt.Sprintf(deleteImageURLFmt, imageName, manifest)); err != nil { + errs = append(errs, fmt.Errorf("failed to delete manifest %s: %v", manifest, err)) + } + } + return errs +} + +func deleteDockerImageResource(client *http.Client, url string) error { + req, err := http.NewRequest("DELETE", url, nil) + if err != nil { + return fmt.Errorf("failed to get request: %v", err) + } + resp, err := client.Do(req) + if err != nil { + return fmt.Errorf("failed to delete resource: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusAccepted { + return fmt.Errorf("failed to delete resource: status code = %d", resp.StatusCode) + } + return nil +} + +func (tr *testRunner) createCluster(ctx context.Context, client *http.Client, projectID, zone, clusterName string) error { + request := &container.CreateClusterRequest{Cluster: &container.Cluster{ + Name: clusterName, + InitialNodeCount: 3, + NodeConfig: &container.NodeConfig{ + OauthScopes: []string{ + storageReadScope, + }, + }, + }} + op, err := tr.containerService.Projects.Zones.Clusters.Create(projectID, zone, request).Context(ctx).Do() + if err != nil { + return fmt.Errorf("failed to create cluster %s: %v", clusterName, err) + } + opID := op.Name + + // Wait for creating cluster. + for { + select { + case <-ctx.Done(): + return fmt.Errorf("timed out waiting creating cluster") + + case <-time.After(10 * time.Second): + op, err := tr.containerService.Projects.Zones.Operations.Get(projectID, zone, opID).Context(ctx).Do() + if err != nil { + log.Printf("Transient error getting operation (will retry): %v", err) + break + } + if op.Status == "DONE" { + log.Printf("Created cluster %s.", clusterName) + return nil + } + if op.Status == "ABORTING" { + return fmt.Errorf("create cluster operation is aborted") + } + } + } +} + +func (tr *testRunner) deployContainer(ctx context.Context, kubernetesClient *kubernetes.Client, podName, imageName string) error { + pod := &k8sapi.Pod{ + ObjectMeta: k8sapi.ObjectMeta{ + Name: podName, + }, + Spec: k8sapi.PodSpec{ + Containers: []k8sapi.Container{ + { + Name: "profiler-test", + Image: fmt.Sprintf("gcr.io/%s:latest", imageName), + }, + }, + }, + } + if _, err := kubernetesClient.RunLongLivedPod(ctx, pod); err != nil { + return fmt.Errorf("failed to run pod %s: %v", podName, err) + } + return nil +} + +func (tr *testRunner) pollPodLog(ctx context.Context, kubernetesClient *kubernetes.Client, podName string) error { + var output string + defer func() { + log.Printf("Log for pod %s:\n%s", podName, output) + }() + + for { + select { + case <-ctx.Done(): + return fmt.Errorf("timed out waiting profiling finishing on container") + + case <-time.After(20 * time.Second): + var err error + output, err = kubernetesClient.PodLog(ctx, podName) + if err != nil { + // Transient failure. + log.Printf("Transient error getting log (will retry): %v", err) + continue + } + if strings.Contains(output, benchFinishString) { + return nil + } + } + } +} + +func (tr *testRunner) runTestOnGKE(ctx context.Context, t *testing.T, cfg clusterConfig, projectID, zone, bucket string) { + if err := tr.uploadImageSource(ctx, bucket, cfg.imageSourceName, *commit, cfg.service); err != nil { + t.Fatalf("uploadImageSource() got error: %v", err) + } + defer func() { + if err := tr.storageClient.Bucket(bucket).Object(cfg.imageSourceName).Delete(ctx); err != nil { + t.Errorf("Bucket(%s).Object(%s).Delete() got error: %v", bucket, cfg.imageSourceName, err) + } + }() + + createImageCtx, cancel := context.WithTimeout(ctx, 5*time.Minute) + defer cancel() + if err := tr.createAndPublishDockerImage(createImageCtx, projectID, bucket, cfg.imageSourceName, fmt.Sprintf("gcr.io/%s", cfg.imageName)); err != nil { + t.Fatalf("createAndPublishDockerImage(%s) got error: %v", cfg.imageName, err) + } + defer func() { + for _, err := range tr.deleteDockerImage(ctx, cfg.imageName) { + t.Errorf("deleteDockerImage(%s) got error: %v", cfg.imageName, err) + } + }() + + createClusterCtx, cancel := context.WithTimeout(ctx, 5*time.Minute) + defer cancel() + if err := tr.createCluster(createClusterCtx, tr.client, projectID, zone, cfg.clusterName); err != nil { + t.Fatalf("createCluster(%s) got error: %v", cfg.clusterName, err) + } + defer func() { + if _, err := tr.containerService.Projects.Zones.Clusters.Delete(projectID, zone, cfg.clusterName).Context(ctx).Do(); err != nil { + t.Errorf("Clusters.Delete(%s) got error: %v", cfg.clusterName, err) + } + }() + + kubernetesClient, err := gke.NewClient(ctx, cfg.clusterName, gke.OptZone(zone), gke.OptProject(projectID)) + if err != nil { + t.Fatalf("gke.NewClient() got error: %v", err) + } + + deployContainerCtx, cancel := context.WithTimeout(ctx, 5*time.Minute) + defer cancel() + if err := tr.deployContainer(deployContainerCtx, kubernetesClient, cfg.podName, cfg.imageName); err != nil { + t.Fatalf("deployContainer(%s, %s) got error: %v", cfg.podName, cfg.imageName, err) + } + + pollLogCtx, cancel := context.WithTimeout(ctx, 20*time.Minute) + defer cancel() + if err := tr.pollPodLog(pollLogCtx, kubernetesClient, cfg.podName); err != nil { + t.Fatalf("pollPodLog(%s) got error: %v", cfg.podName, err) + } + + timeNow := time.Now() + endTime := timeNow.Format(time.RFC3339) + startTime := timeNow.Add(-1 * time.Hour).Format(time.RFC3339) + for _, pType := range []string{"CPU", "HEAP"} { + if err := tr.queryAndCheckProfile(cfg.service, startTime, endTime, pType, projectID); err != nil { + t.Errorf("queryAndCheckProfile(%s, %s, %s, %s) got error: %v", cfg.service, startTime, endTime, pType, err) + } + } +} + +// uploadImageSource uploads source code for building docker image to GCS. +func (tr *testRunner) uploadImageSource(ctx context.Context, bucket, objectName, commit, service string) error { + zipBuf := new(bytes.Buffer) + z := zip.NewWriter(zipBuf) + f, err := z.Create("Dockerfile") + if err != nil { + return err + } + + dockerfile := fmt.Sprintf(dockerfileFmt, commit, service) + if _, err := f.Write([]byte(dockerfile)); err != nil { + return err + } + + if err := z.Close(); err != nil { + return err + } + wc := tr.storageClient.Bucket(bucket).Object(objectName).NewWriter(ctx) + wc.ContentType = "application/zip" + wc.ACL = []storage.ACLRule{{storage.AllUsers, storage.RoleReader}} + if _, err := wc.Write(zipBuf.Bytes()); err != nil { + return err + } + return wc.Close() +} + +func TestAgentIntegration(t *testing.T) { + projectID := os.Getenv("GCLOUD_TESTS_GOLANG_PROJECT_ID") + if projectID == "" { + t.Fatalf("Getenv(GCLOUD_TESTS_GOLANG_PROJECT_ID) got empty string") + } + + zone := os.Getenv("GCLOUD_TESTS_GOLANG_ZONE") + if zone == "" { + t.Fatalf("Getenv(GCLOUD_TESTS_GOLANG_ZONE) got empty string") + } + + bucket := os.Getenv("GCLOUD_TESTS_GOLANG_BUCKET") + if bucket == "" { + t.Fatalf("Getenv(GCLOUD_TESTS_GOLANG_BUCKET) got empty string") + } + + if *commit == "" { + t.Fatal("commit flag is not set") + } + + ctx := context.Background() + + client, err := google.DefaultClient(ctx, cloudScope) + if err != nil { + t.Fatalf("failed to get default client: %v", err) + } + + storageClient, err := storage.NewClient(ctx) + if err != nil { + t.Fatalf("storage.NewClient() error: %v", err) + } + + computeService, err := compute.New(client) + if err != nil { + t.Fatalf("failed to initialize compute service: %v", err) + } + + containerService, err := container.New(client) + if err != nil { + t.Fatalf("failed to create container client: %v", err) + } + + template, err := template.New("startupScript").Parse(startupTemplate) + if err != nil { + t.Fatalf("failed to parse startup script template: %v", err) + } + tr := testRunner{ + computeService: computeService, + client: client, + startupTemplate: template, + containerService: containerService, + storageClient: storageClient, + } + + cluster := newClusterConfig(projectID) + t.Run(cluster.service, func(t *testing.T) { + t.Parallel() + tr.runTestOnGKE(ctx, t, cluster, projectID, zone, bucket) + }) + + instances := newInstanceConfigs() + for _, instance := range instances { + inst := instance // capture range variable + t.Run(inst.service, func(t *testing.T) { + t.Parallel() + tr.runTestOnGCE(ctx, t, inst, projectID, zone) + }) + } +} diff --git a/vendor/cloud.google.com/go/profiler/profiler_test.go b/vendor/cloud.google.com/go/profiler/profiler_test.go index c18e28234..ec795a606 100644 --- a/vendor/cloud.google.com/go/profiler/profiler_test.go +++ b/vendor/cloud.google.com/go/profiler/profiler_test.go @@ -52,7 +52,6 @@ const ( testSvcVersion = "test-service-version" testProfileDuration = time.Second * 10 testServerTimeout = time.Second * 15 - wantFunctionName = "profilee" ) func createTestDeployment() *pb.Deployment { @@ -569,10 +568,9 @@ func TestInitializeConfig(t *testing.T) { type fakeProfilerServer struct { pb.ProfilerServiceServer - count int - gotCPUProfile []byte - gotHeapProfile []byte - done chan bool + count int + gotProfiles map[string][]byte + done chan bool } func (fs *fakeProfilerServer) CreateProfile(ctx context.Context, in *pb.CreateProfileRequest) (*pb.Profile, error) { @@ -590,9 +588,9 @@ func (fs *fakeProfilerServer) CreateProfile(ctx context.Context, in *pb.CreatePr func (fs *fakeProfilerServer) UpdateProfile(ctx context.Context, in *pb.UpdateProfileRequest) (*pb.Profile, error) { switch in.Profile.ProfileType { case pb.ProfileType_CPU: - fs.gotCPUProfile = in.Profile.ProfileBytes + fs.gotProfiles["CPU"] = in.Profile.ProfileBytes case pb.ProfileType_HEAP: - fs.gotHeapProfile = in.Profile.ProfileBytes + fs.gotProfiles["HEAP"] = in.Profile.ProfileBytes fs.done <- true } @@ -629,16 +627,7 @@ func profileeWork() { } } -func checkSymbolization(p *profile.Profile) error { - for _, l := range p.Location { - if len(l.Line) > 0 && l.Line[0].Function != nil && strings.Contains(l.Line[0].Function.Name, wantFunctionName) { - return nil - } - } - return fmt.Errorf("want function name %v not found in profile", wantFunctionName) -} - -func validateProfile(rawData []byte) error { +func validateProfile(rawData []byte, wantFunctionName string) error { p, err := profile.ParseData(rawData) if err != nil { return fmt.Errorf("ParseData failed: %v", err) @@ -656,10 +645,12 @@ func validateProfile(rawData []byte) error { return fmt.Errorf("profile contains zero functions: %v", p) } - if err := checkSymbolization(p); err != nil { - return fmt.Errorf("checkSymbolization failed: %v for %v", err, p) + for _, l := range p.Location { + if len(l.Line) > 0 && l.Line[0].Function != nil && strings.Contains(l.Line[0].Function.Name, wantFunctionName) { + return nil + } } - return nil + return fmt.Errorf("wanted function name %s not found in the profile", wantFunctionName) } func TestAgentWithServer(t *testing.T) { @@ -672,7 +663,7 @@ func TestAgentWithServer(t *testing.T) { if err != nil { t.Fatalf("testutil.NewServer(): %v", err) } - fakeServer := &fakeProfilerServer{done: make(chan bool)} + fakeServer := &fakeProfilerServer{gotProfiles: map[string][]byte{}, done: make(chan bool)} pb.RegisterProfilerServiceServer(srv.Gsrv, fakeServer) srv.Start() @@ -698,10 +689,11 @@ func TestAgentWithServer(t *testing.T) { } quitProfilee <- true - if err := validateProfile(fakeServer.gotCPUProfile); err != nil { - t.Errorf("validateProfile(gotCPUProfile): %v", err) - } - if err := validateProfile(fakeServer.gotHeapProfile); err != nil { - t.Errorf("validateProfile(gotHeapProfile): %v", err) + for _, pType := range []string{"CPU", "HEAP"} { + if profile, ok := fakeServer.gotProfiles[pType]; !ok { + t.Errorf("fakeServer.gotProfiles[%s] got no profile, want profile", pType) + } else if err := validateProfile(profile, "profilee"); err != nil { + t.Errorf("validateProfile(%s) got error: %v", pType, err) + } } } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/.travis.yml b/vendor/github.com/Azure/azure-sdk-for-go/.travis.yml index 33ec1e653..66ce20a87 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/.travis.yml +++ b/vendor/github.com/Azure/azure-sdk-for-go/.travis.yml @@ -2,6 +2,7 @@ sudo: false language: go go: + - 1.7 - 1.8 - 1.9 diff --git a/vendor/github.com/Azure/azure-sdk-for-go/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/CHANGELOG.md index f0753307c..f877f2912 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/CHANGELOG.md +++ b/vendor/github.com/Azure/azure-sdk-for-go/CHANGELOG.md @@ -1,5 +1,16 @@ # CHANGELOG +## `v11.1.0-beta` + +### ARM + +- trafficmanager and containerregistry SDKs now reflect the services faithfully +- trafficmanager also has a new operation group: user metrics. + +### Generated code notes +- [Azure REST API specs](https://github.com/Azure/azure-rest-api-specs) commit: c97a18ed775029207715b09c80761334724740b9 +- [AutoRest Go Generator](https://github.com/Azure/autorest.go) commit: 5d984152f2e9cff6878ea5060bed7e8d8a2ae1cc + ## `v11.0.0-beta` ### ARM diff --git a/vendor/github.com/Azure/azure-sdk-for-go/README.md b/vendor/github.com/Azure/azure-sdk-for-go/README.md index c2ac320eb..bd766bbee 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/README.md +++ b/vendor/github.com/Azure/azure-sdk-for-go/README.md @@ -23,17 +23,30 @@ for Go uses [glide](https://github.com/Masterminds/glide). # Versioning ## SDK Versions -The tags in this repository are based on, but do not conform to [SemVer.org's recommendations](http://semver.org/). +The entire SDK will +continue to be distributed as a single repository, and be labeled with version tags that are applicable to the whole +repository. The tags in this repository are based on, but do not conform to [SemVer.org's recommendations](http://semver.org/). For now, the "-beta" tag is an indicator that we are still in preview and still are planning on releasing some breaking changes. +While in beta, we will only accept contributions to the `dev` or `master` branches. Once the `beta` tag is removed, we'll +only contribute new features and Azure API surface space to the most recent major version of our SDK. However, pull requests +to older major versions will be evaluated and accepted as appropriate. Any critical bugs will be fixed in old versions as well. +To facilitate pull requests, a branch will be created for each of the major versions accepting support. For example, +should we have tags denoting the versions, `v11.1.0`, `v11.2.0`, and `v12.0.0`, a branch `v11` would be present for submission +of PRs. + ## Azure Versions -Azure services _mostly_ do not use SemVer based versions. Rather, they use profiles identified by dates. One will often -see this casually referred to as an "APIVersion". At the moment, our SDK only supports the most recent profiles. In -order to lock to an API version, one must also lock to an SDK version. However, as discussed in -[#517](https://github.com/Azure/azure-sdk-for-go/issues/517), our objective is to reorganize and publish independent -packages for each profile. In that way, we'll be able to have parallel support in a single SDK version for all -APIVersions supported by Azure. +Azure services _mostly_ do not use SemVer based versions. Rather, they stamp a set of REST endpoints with a date identifier. One will often +see these stamps casually referred to as "API Versions". At the moment, our SDK only supports the most recent stamp for each service. In +order to lock to an API version, one must also lock to an SDK version. However, as discussed in [#517](https://github.com/Azure/azure-sdk-for-go/issues/517), +our objective is to reorganize and publish an independent package for each stamped API version of each service. In that way, we'll be able to support all API Versions +in a single SDK Version. + +Knowing which API Versions of services are compatbile with one another, and finding which API Versions are available in which environments +has been a common source of frustration for users. Along with Azure Stack, these problems have led to the development of "Profiles" which are +aggregations of multiple services at particular API Versions. Using profiles with our SDK will be optional, and to opt-in you will need to be +running Go 1.9 or higher. # Documentation diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/models.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/models.go index b717f5708..fefd82b8d 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/models.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/models.go @@ -66,24 +66,28 @@ const ( type SkuName string const ( + // Basic specifies the basic state for sku name. + Basic SkuName = "Basic" // Classic specifies the classic state for sku name. Classic SkuName = "Classic" - // ManagedBasic specifies the managed basic state for sku name. - ManagedBasic SkuName = "Managed_Basic" - // ManagedPremium specifies the managed premium state for sku name. - ManagedPremium SkuName = "Managed_Premium" - // ManagedStandard specifies the managed standard state for sku name. - ManagedStandard SkuName = "Managed_Standard" + // Premium specifies the premium state for sku name. + Premium SkuName = "Premium" + // Standard specifies the standard state for sku name. + Standard SkuName = "Standard" ) // SkuTier enumerates the values for sku tier. type SkuTier string const ( + // SkuTierBasic specifies the sku tier basic state for sku tier. + SkuTierBasic SkuTier = "Basic" // SkuTierClassic specifies the sku tier classic state for sku tier. SkuTierClassic SkuTier = "Classic" - // SkuTierManaged specifies the sku tier managed state for sku tier. - SkuTierManaged SkuTier = "Managed" + // SkuTierPremium specifies the sku tier premium state for sku tier. + SkuTierPremium SkuTier = "Premium" + // SkuTierStandard specifies the sku tier standard state for sku tier. + SkuTierStandard SkuTier = "Standard" ) // WebhookAction enumerates the values for webhook action. diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/version.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/version.go index ab34e4801..6e3ee8638 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/version.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/version.go @@ -19,10 +19,10 @@ package containerregistry // UserAgent returns the UserAgent string to use when sending http.Requests. func UserAgent() string { - return "Azure-SDK-For-Go/v11.0.0-beta arm-containerregistry/2017-10-01" + return "Azure-SDK-For-Go/v11.1.0-beta arm-containerregistry/2017-10-01" } // Version returns the semantic version (see http://semver.org) of the client. func Version() string { - return "v11.0.0-beta" + return "v11.1.0-beta" } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/client.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/client.go index 247958697..e588450d8 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/client.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/client.go @@ -1,4 +1,4 @@ -// Package trafficmanager implements the Azure ARM Trafficmanager service API version 2017-09-01-preview. +// Package trafficmanager implements the Azure ARM Trafficmanager service API version . // // package trafficmanager diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/endpoints.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/endpoints.go index 2c4c33069..935c3f68d 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/endpoints.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/endpoints.go @@ -76,7 +76,7 @@ func (client EndpointsClient) CreateOrUpdatePreparer(resourceGroupName string, p "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -147,7 +147,7 @@ func (client EndpointsClient) DeletePreparer(resourceGroupName string, profileNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -216,7 +216,7 @@ func (client EndpointsClient) GetPreparer(resourceGroupName string, profileName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -286,7 +286,7 @@ func (client EndpointsClient) UpdatePreparer(resourceGroupName string, profileNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/geographichierarchies.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/geographichierarchies.go index 4ca5d0d8c..ba6e6c816 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/geographichierarchies.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/geographichierarchies.go @@ -63,7 +63,7 @@ func (client GeographicHierarchiesClient) GetDefault() (result GeographicHierarc // GetDefaultPreparer prepares the GetDefault request. func (client GeographicHierarchiesClient) GetDefaultPreparer() (*http.Request, error) { - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/models.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/models.go index 5c5bd2bf3..75b79fdcf 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/models.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/models.go @@ -288,3 +288,17 @@ type TrafficFlow struct { Longitude *float64 `json:"longitude,omitempty"` QueryExperiences *[]QueryExperience `json:"queryExperiences,omitempty"` } + +// UserMetricsKeyModel is class representing a Traffic Manager Real User Metrics key response. +type UserMetricsKeyModel struct { + autorest.Response `json:"-"` + ID *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Type *string `json:"type,omitempty"` + *UserMetricsKeyProperties `json:"properties,omitempty"` +} + +// UserMetricsKeyProperties is class representing the properties of a Real User Metrics key operation response. +type UserMetricsKeyProperties struct { + Key *string `json:"key,omitempty"` +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/profiles.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/profiles.go index b310a18ee..81f12321a 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/profiles.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/profiles.go @@ -65,7 +65,7 @@ func (client ProfilesClient) CheckTrafficManagerRelativeDNSNameAvailability(para // CheckTrafficManagerRelativeDNSNameAvailabilityPreparer prepares the CheckTrafficManagerRelativeDNSNameAvailability request. func (client ProfilesClient) CheckTrafficManagerRelativeDNSNameAvailabilityPreparer(parameters CheckTrafficManagerRelativeDNSNameAvailabilityParameters) (*http.Request, error) { - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -134,7 +134,7 @@ func (client ProfilesClient) CreateOrUpdatePreparer(resourceGroupName string, pr "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -202,7 +202,7 @@ func (client ProfilesClient) DeletePreparer(resourceGroupName string, profileNam "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -268,7 +268,7 @@ func (client ProfilesClient) GetPreparer(resourceGroupName string, profileName s "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -332,7 +332,7 @@ func (client ProfilesClient) ListByResourceGroupPreparer(resourceGroupName strin "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -393,7 +393,7 @@ func (client ProfilesClient) ListBySubscriptionPreparer() (*http.Request, error) "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -460,7 +460,7 @@ func (client ProfilesClient) UpdatePreparer(resourceGroupName string, profileNam "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2017-09-01-preview" + const APIVersion = "2017-05-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/usermetricskeys.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/usermetricskeys.go new file mode 100644 index 000000000..e77ca981b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/usermetricskeys.go @@ -0,0 +1,222 @@ +package trafficmanager + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "net/http" +) + +// UserMetricsKeysClient is the client for the UserMetricsKeys methods of the Trafficmanager service. +type UserMetricsKeysClient struct { + ManagementClient +} + +// NewUserMetricsKeysClient creates an instance of the UserMetricsKeysClient client. +func NewUserMetricsKeysClient(subscriptionID string) UserMetricsKeysClient { + return NewUserMetricsKeysClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewUserMetricsKeysClientWithBaseURI creates an instance of the UserMetricsKeysClient client. +func NewUserMetricsKeysClientWithBaseURI(baseURI string, subscriptionID string) UserMetricsKeysClient { + return UserMetricsKeysClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate create or update a subscription-level key used for Realtime User Metrics collection. +func (client UserMetricsKeysClient) CreateOrUpdate() (result UserMetricsKeyModel, err error) { + req, err := client.CreateOrUpdatePreparer() + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client UserMetricsKeysClient) CreateOrUpdatePreparer() (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-09-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Network/trafficManagerUserMetricsKeys/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare(&http.Request{}) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client UserMetricsKeysClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client UserMetricsKeysClient) CreateOrUpdateResponder(resp *http.Response) (result UserMetricsKeyModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a subscription-level key used for Realtime User Metrics collection. +func (client UserMetricsKeysClient) Delete() (result DeleteOperationResult, err error) { + req, err := client.DeletePreparer() + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client UserMetricsKeysClient) DeletePreparer() (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-09-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Network/trafficManagerUserMetricsKeys/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare(&http.Request{}) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client UserMetricsKeysClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client UserMetricsKeysClient) DeleteResponder(resp *http.Response) (result DeleteOperationResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDefault get the subscription-level key used for Realtime User Metrics collection. +func (client UserMetricsKeysClient) GetDefault() (result UserMetricsKeyModel, err error) { + req, err := client.GetDefaultPreparer() + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "GetDefault", nil, "Failure preparing request") + return + } + + resp, err := client.GetDefaultSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "GetDefault", resp, "Failure sending request") + return + } + + result, err = client.GetDefaultResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "trafficmanager.UserMetricsKeysClient", "GetDefault", resp, "Failure responding to request") + } + + return +} + +// GetDefaultPreparer prepares the GetDefault request. +func (client UserMetricsKeysClient) GetDefaultPreparer() (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-09-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Network/trafficManagerUserMetricsKeys/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare(&http.Request{}) +} + +// GetDefaultSender sends the GetDefault request. The method will close the +// http.Response Body if it receives an error. +func (client UserMetricsKeysClient) GetDefaultSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req) +} + +// GetDefaultResponder handles the response to the GetDefault request. The method always +// closes the http.Response Body. +func (client UserMetricsKeysClient) GetDefaultResponder(resp *http.Response) (result UserMetricsKeyModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/version.go b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/version.go index 2c13a8f84..f27c18719 100755 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/version.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/trafficmanager/version.go @@ -19,10 +19,10 @@ package trafficmanager // UserAgent returns the UserAgent string to use when sending http.Requests. func UserAgent() string { - return "Azure-SDK-For-Go/v11.0.0-beta arm-trafficmanager/2017-09-01-preview" + return "Azure-SDK-For-Go/v11.1.0-beta arm-trafficmanager/" } // Version returns the semantic version (see http://semver.org) of the client. func Version() string { - return "v11.0.0-beta" + return "v11.1.0-beta" } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/management/version.go b/vendor/github.com/Azure/azure-sdk-for-go/management/version.go index 650db8a84..6854c90c6 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/management/version.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/management/version.go @@ -17,5 +17,5 @@ package management // limitations under the License. var ( - sdkVersion = "v11.0.0-beta" + sdkVersion = "v11.1.0-beta" ) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/blob.go b/vendor/github.com/Azure/azure-sdk-for-go/storage/blob.go index 0e48f3894..a9d3cfccb 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/storage/blob.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/blob.go @@ -104,7 +104,7 @@ type BlobProperties struct { CacheControl string `xml:"Cache-Control" header:"x-ms-blob-cache-control"` ContentLanguage string `xml:"Cache-Language" header:"x-ms-blob-content-language"` ContentDisposition string `xml:"Content-Disposition" header:"x-ms-blob-content-disposition"` - BlobType BlobType `xml:"x-ms-blob-blob-type"` + BlobType BlobType `xml:"BlobType"` SequenceNumber int64 `xml:"x-ms-blob-sequence-number"` CopyID string `xml:"CopyId"` CopyStatus string `xml:"CopyStatus"` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/blob_test.go b/vendor/github.com/Azure/azure-sdk-for-go/storage/blob_test.go index cebb03eaa..fcdf3b356 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/storage/blob_test.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/blob_test.go @@ -522,6 +522,7 @@ func (b *Blob) putSingleBlockBlob(chunk []byte) error { uri := b.Container.bsc.client.getEndpoint(blobServiceName, b.buildPath(), nil) headers := b.Container.bsc.client.getStandardHeaders() + b.Properties.BlobType = BlobTypeBlock headers["x-ms-blob-type"] = string(BlobTypeBlock) headers["Content-Length"] = strconv.Itoa(len(chunk)) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/container_test.go b/vendor/github.com/Azure/azure-sdk-for-go/storage/container_test.go index 9d8fab2bd..9f5edd1d6 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/storage/container_test.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/container_test.go @@ -230,6 +230,7 @@ func (s *ContainerSuite) TestListBlobsPagination(c *chk.C) { c.Assert(err, chk.IsNil) blobs := []string{} + types := []BlobType{} const n = 5 const pageSize = 2 for i := 0; i < n; i++ { @@ -237,10 +238,11 @@ func (s *ContainerSuite) TestListBlobsPagination(c *chk.C) { b := cnt.GetBlobReference(name) c.Assert(b.putSingleBlockBlob([]byte("Hello, world!")), chk.IsNil) blobs = append(blobs, name) + types = append(types, b.Properties.BlobType) } sort.Strings(blobs) - listBlobsPagination(c, cnt, pageSize, blobs) + listBlobsPagination(c, cnt, pageSize, blobs, types) // Service SAS test sasuriOptions := ContainerSASOptions{} @@ -260,7 +262,7 @@ func (s *ContainerSuite) TestListBlobsPagination(c *chk.C) { c.Assert(err, chk.IsNil) cntServiceSAS.Client().HTTPClient = cli.client.HTTPClient - listBlobsPagination(c, cntServiceSAS, pageSize, blobs) + listBlobsPagination(c, cntServiceSAS, pageSize, blobs, types) // Account SAS test token, err := cli.client.GetAccountSASToken(accountSASOptions) @@ -270,12 +272,13 @@ func (s *ContainerSuite) TestListBlobsPagination(c *chk.C) { cntAccountSAS := SAScli.GetContainerReference(cnt.Name) cntAccountSAS.Client().HTTPClient = cli.client.HTTPClient - listBlobsPagination(c, cntAccountSAS, pageSize, blobs) + listBlobsPagination(c, cntAccountSAS, pageSize, blobs, types) } -func listBlobsPagination(c *chk.C, cnt *Container, pageSize uint, blobs []string) { +func listBlobsPagination(c *chk.C, cnt *Container, pageSize uint, blobs []string, types []BlobType) { // Paginate seen := []string{} + seenTypes := []BlobType{} marker := "" for { resp, err := cnt.ListBlobs(ListBlobsParameters{ @@ -285,6 +288,7 @@ func listBlobsPagination(c *chk.C, cnt *Container, pageSize uint, blobs []string for _, b := range resp.Blobs { seen = append(seen, b.Name) + seenTypes = append(seenTypes, b.Properties.BlobType) c.Assert(b.Container, chk.Equals, cnt) } @@ -296,6 +300,7 @@ func listBlobsPagination(c *chk.C, cnt *Container, pageSize uint, blobs []string // Compare c.Assert(seen, chk.DeepEquals, blobs) + c.Assert(seenTypes, chk.DeepEquals, types) } // listBlobsAsFiles is a helper function to list blobs as "folders" and "files". diff --git a/vendor/github.com/Azure/go-autorest/.travis.yml b/vendor/github.com/Azure/go-autorest/.travis.yml index 566850986..abfb2831d 100644 --- a/vendor/github.com/Azure/go-autorest/.travis.yml +++ b/vendor/github.com/Azure/go-autorest/.travis.yml @@ -3,6 +3,7 @@ sudo: false language: go go: + - 1.9 - 1.8 - 1.7 - 1.6 @@ -15,6 +16,7 @@ install: - glide install script: + - grep -L -r --include *.go --exclude-dir vendor -P "Copyright (\d{4}|\(c\)) Microsoft" ./ | tee /dev/stderr | test -z "$(< /dev/stdin)" - test -z "$(gofmt -s -l -w ./autorest/. | tee /dev/stderr)" - test -z "$(golint ./autorest/... | tee /dev/stderr)" - go vet ./autorest/... diff --git a/vendor/github.com/Azure/go-autorest/CHANGELOG.md b/vendor/github.com/Azure/go-autorest/CHANGELOG.md index 3a395ff95..6d2bf436c 100644 --- a/vendor/github.com/Azure/go-autorest/CHANGELOG.md +++ b/vendor/github.com/Azure/go-autorest/CHANGELOG.md @@ -1,5 +1,63 @@ # CHANGELOG + +## v9.1.1 + +- Fixes a bug regarding the cookie jar on `autorest.Client.Sender`. + +## v9.1.0 + +### New Features + +- In cases where there is a non-empty error from the service, attempt to unmarshal it instead of uniformly calling it an "Unknown" error. +- Support for loading Azure CLI Authentication files. +- Automatically register your subscription with the Azure Resource Provider if it hadn't been previously. + +### Bug Fixes + + - RetriableRequest can now tolerate a ReadSeekable body being read but not reset. + - Adding missing Apache Headers + +## v9.0.0 + +> **IMPORTANT:** This release was intially labeled incorrectly as `v8.4.0`. From the time it was released, it should have been marked `v9.0.0` because it contains breaking changes to the MSI packages. We appologize for any inconvenience this causes. + +Adding MSI Endpoint Support and CLI token rehydration. + +## v8.3.1 + +Pick up bug fix in adal for MSI support. + +## v8.3.0 + +Updates to Error string formats for clarity. Also, adding a copy of the http.Response to errors for an improved debugging experience. + +## v8.2.0 + +### New Features + +- Add support for bearer authentication callbacks +- Support 429 response codes that include "Retry-After" header +- Support validation constraint "Pattern" for map keys + +### Bug Fixes + +- Make RetriableRequest work with multiple versions of Go + +## v8.1.1 +Updates the RetriableRequest to take advantage of GetBody() added in Go 1.8. + +## v8.1.0 +Adds RetriableRequest type for more efficient handling of retrying HTTP requests. + +## v8.0.0 + +ADAL refactored into its own package. +Support for UNIX time. + +## v7.3.1 +- Version Testing now removed from production bits that are shipped with the library. + ## v7.3.0 - Exposing new `RespondDecorator`, `ByDiscardingBody`. This allows operations to acknowledge that they do not need either the entire or a trailing portion diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/cmd/adal.go b/vendor/github.com/Azure/go-autorest/autorest/adal/cmd/adal.go index baf4c17e7..56b7d20d9 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/cmd/adal.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/cmd/adal.go @@ -1,5 +1,19 @@ package main +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "flag" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/config.go b/vendor/github.com/Azure/go-autorest/autorest/adal/config.go index 12375e0e4..49e9214d5 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/config.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/config.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/url" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/config_test.go b/vendor/github.com/Azure/go-autorest/autorest/adal/config_test.go index e8a58809e..304280f66 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/config_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/config_test.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "testing" ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken.go b/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken.go index 6c511f8c8..b38f4c245 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + /* This file is largely based on rjw57/oauth2device's code, with the follow differences: * scope -> resource, and only allow a single one diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken_test.go b/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken_test.go index f7bf0a79d..6beee161f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/devicetoken_test.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/msi.go b/vendor/github.com/Azure/go-autorest/autorest/adal/msi.go index e87911e83..5e02d52ac 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/msi.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/msi.go @@ -2,5 +2,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // msiPath is the path to the MSI Extension settings file (to discover the endpoint) var msiPath = "/var/lib/waagent/ManagedIdentity-Settings" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/msi_windows.go b/vendor/github.com/Azure/go-autorest/autorest/adal/msi_windows.go index 80f800432..261b56882 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/msi_windows.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/msi_windows.go @@ -2,6 +2,20 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "os" "strings" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/persist.go b/vendor/github.com/Azure/go-autorest/autorest/adal/persist.go index 73711c667..9e15f2751 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/persist.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/persist.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/persist_test.go b/vendor/github.com/Azure/go-autorest/autorest/adal/persist_test.go index 12c7ecbbb..a9c287c6d 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/persist_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/persist_test.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "io/ioutil" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/sender.go b/vendor/github.com/Azure/go-autorest/autorest/adal/sender.go index 7928c971a..0e5ad14d3 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/sender.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/sender.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "net/http" ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/token.go b/vendor/github.com/Azure/go-autorest/autorest/adal/token.go index 2ac8c3c22..67dd97a18 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/token.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/token.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "crypto/rand" "crypto/rsa" diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/token_test.go b/vendor/github.com/Azure/go-autorest/autorest/adal/token_test.go index 0c60a6199..73c848ba0 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/token_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/token_test.go @@ -1,5 +1,19 @@ package adal +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "crypto/rand" "crypto/rsa" diff --git a/vendor/github.com/Azure/go-autorest/autorest/authorization.go b/vendor/github.com/Azure/go-autorest/autorest/authorization.go index 314ed7876..71e3ced2d 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/authorization.go +++ b/vendor/github.com/Azure/go-autorest/autorest/authorization.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/http" diff --git a/vendor/github.com/Azure/go-autorest/autorest/authorization_test.go b/vendor/github.com/Azure/go-autorest/autorest/authorization_test.go index 10db45aaf..635fcfd7f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/authorization_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/authorization_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/http" diff --git a/vendor/github.com/Azure/go-autorest/autorest/autorest.go b/vendor/github.com/Azure/go-autorest/autorest/autorest.go index 51f1c4bbc..37b907c77 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/autorest.go +++ b/vendor/github.com/Azure/go-autorest/autorest/autorest.go @@ -57,6 +57,20 @@ generated clients, see the Client described below. */ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "net/http" "time" diff --git a/vendor/github.com/Azure/go-autorest/autorest/autorest_test.go b/vendor/github.com/Azure/go-autorest/autorest/autorest_test.go index 58f650114..467ea438b 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/autorest_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/autorest_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "net/http" "testing" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/async.go b/vendor/github.com/Azure/go-autorest/autorest/azure/async.go index 332a8909d..ffbc8da28 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/async.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/async.go @@ -1,5 +1,19 @@ package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/async_test.go b/vendor/github.com/Azure/go-autorest/autorest/azure/async_test.go index 4c2c695fd..727c357e7 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/async_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/async_test.go @@ -1,5 +1,19 @@ package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "io/ioutil" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile.go b/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile.go new file mode 100644 index 000000000..0e59cc77a --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile.go @@ -0,0 +1,143 @@ +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package auth + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "os" + "strings" + "unicode/utf16" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/adal" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/dimchansky/utfbom" +) + +// ClientSetup includes authentication details and cloud specific +// parameters for ARM clients +type ClientSetup struct { + *autorest.BearerAuthorizer + File + BaseURI string +} + +// File represents the authentication file +type File struct { + ClientID string `json:"clientId,omitempty"` + ClientSecret string `json:"clientSecret,omitempty"` + SubscriptionID string `json:"subscriptionId,omitempty"` + TenantID string `json:"tenantId,omitempty"` + ActiveDirectoryEndpoint string `json:"activeDirectoryEndpointUrl,omitempty"` + ResourceManagerEndpoint string `json:"resourceManagerEndpointUrl,omitempty"` + GraphResourceID string `json:"activeDirectoryGraphResourceId,omitempty"` + SQLManagementEndpoint string `json:"sqlManagementEndpointUrl,omitempty"` + GalleryEndpoint string `json:"galleryEndpointUrl,omitempty"` + ManagementEndpoint string `json:"managementEndpointUrl,omitempty"` +} + +// GetClientSetup provides an authorizer, base URI, subscriptionID and +// tenantID parameters from an Azure CLI auth file +func GetClientSetup(baseURI string) (auth ClientSetup, err error) { + fileLocation := os.Getenv("AZURE_AUTH_LOCATION") + if fileLocation == "" { + return auth, errors.New("auth file not found. Environment variable AZURE_AUTH_LOCATION is not set") + } + + contents, err := ioutil.ReadFile(fileLocation) + if err != nil { + return + } + + // Auth file might be encoded + decoded, err := decode(contents) + if err != nil { + return + } + + err = json.Unmarshal(decoded, &auth.File) + if err != nil { + return + } + + resource, err := getResourceForToken(auth.File, baseURI) + if err != nil { + return + } + auth.BaseURI = resource + + config, err := adal.NewOAuthConfig(auth.ActiveDirectoryEndpoint, auth.TenantID) + if err != nil { + return + } + + spToken, err := adal.NewServicePrincipalToken(*config, auth.ClientID, auth.ClientSecret, resource) + if err != nil { + return + } + + auth.BearerAuthorizer = autorest.NewBearerAuthorizer(spToken) + return +} + +func decode(b []byte) ([]byte, error) { + reader, enc := utfbom.Skip(bytes.NewReader(b)) + + switch enc { + case utfbom.UTF16LittleEndian: + u16 := make([]uint16, (len(b)/2)-1) + err := binary.Read(reader, binary.LittleEndian, &u16) + if err != nil { + return nil, err + } + return []byte(string(utf16.Decode(u16))), nil + case utfbom.UTF16BigEndian: + u16 := make([]uint16, (len(b)/2)-1) + err := binary.Read(reader, binary.BigEndian, &u16) + if err != nil { + return nil, err + } + return []byte(string(utf16.Decode(u16))), nil + } + return ioutil.ReadAll(reader) +} + +func getResourceForToken(f File, baseURI string) (string, error) { + // Compare dafault base URI from the SDK to the endpoints from the public cloud + // Base URI and token resource are the same string. This func finds the authentication + // file field that matches the SDK base URI. The SDK defines the public cloud + // endpoint as its default base URI + if !strings.HasSuffix(baseURI, "/") { + baseURI += "/" + } + switch baseURI { + case azure.PublicCloud.ServiceManagementEndpoint: + return f.ManagementEndpoint, nil + case azure.PublicCloud.ResourceManagerEndpoint: + return f.ResourceManagerEndpoint, nil + case azure.PublicCloud.ActiveDirectoryEndpoint: + return f.ActiveDirectoryEndpoint, nil + case azure.PublicCloud.GalleryEndpoint: + return f.GalleryEndpoint, nil + case azure.PublicCloud.GraphEndpoint: + return f.GraphResourceID, nil + } + return "", fmt.Errorf("auth: base URI not found in endpoints") +} diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile_test.go b/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile_test.go new file mode 100644 index 000000000..c687cf03a --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/auth/authfile_test.go @@ -0,0 +1,111 @@ +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package auth + +import ( + "encoding/json" + "io/ioutil" + "os" + "path/filepath" + "reflect" + "testing" +) + +var ( + expectedFile = File{ + ClientID: "client-id-123", + ClientSecret: "client-secret-456", + SubscriptionID: "sub-id-789", + TenantID: "tenant-id-123", + ActiveDirectoryEndpoint: "https://login.microsoftonline.com", + ResourceManagerEndpoint: "https://management.azure.com/", + GraphResourceID: "https://graph.windows.net/", + SQLManagementEndpoint: "https://management.core.windows.net:8443/", + GalleryEndpoint: "https://gallery.azure.com/", + ManagementEndpoint: "https://management.core.windows.net/", + } +) + +func TestGetClientSetup(t *testing.T) { + os.Setenv("AZURE_AUTH_LOCATION", filepath.Join(getCredsPath(), "credsutf16le.json")) + setup, err := GetClientSetup("https://management.azure.com") + if err != nil { + t.Logf("GetClientSetup failed, got error %v", err) + t.Fail() + } + + if setup.BaseURI != "https://management.azure.com/" { + t.Logf("auth.BaseURI not set correctly, expected 'https://management.azure.com/', got '%s'", setup.BaseURI) + t.Fail() + } + + if !reflect.DeepEqual(expectedFile, setup.File) { + t.Logf("auth.File not set correctly, expected %v, got %v", expectedFile, setup.File) + t.Fail() + } + + if setup.BearerAuthorizer == nil { + t.Log("auth.Authorizer not set correctly, got nil") + t.Fail() + } +} + +func TestDecodeAndUnmarshal(t *testing.T) { + tests := []string{ + "credsutf8.json", + "credsutf16le.json", + "credsutf16be.json", + } + creds := getCredsPath() + for _, test := range tests { + b, err := ioutil.ReadFile(filepath.Join(creds, test)) + if err != nil { + t.Logf("error reading file '%s': %s", test, err) + t.Fail() + } + decoded, err := decode(b) + if err != nil { + t.Logf("error decoding file '%s': %s", test, err) + t.Fail() + } + var got File + err = json.Unmarshal(decoded, &got) + if err != nil { + t.Logf("error unmarshaling file '%s': %s", test, err) + t.Fail() + } + if !reflect.DeepEqual(expectedFile, got) { + t.Logf("unmarshaled map expected %v, got %v", expectedFile, got) + t.Fail() + } + } +} + +func getCredsPath() string { + gopath := os.Getenv("GOPATH") + return filepath.Join(gopath, "src", "github.com", "Azure", "go-autorest", "testdata") +} + +func areMapsEqual(a, b map[string]string) bool { + if len(a) != len(b) { + return false + } + for k := range a { + if a[k] != b[k] { + return false + } + } + return true +} diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go b/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go index 3f4d13421..fa1835647 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go @@ -5,6 +5,20 @@ See the included examples for more detail. */ package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" @@ -165,7 +179,13 @@ func WithErrorUnlessStatusCode(codes ...int) autorest.RespondDecorator { if decodeErr != nil { return fmt.Errorf("autorest/azure: error response cannot be parsed: %q error: %v", b.String(), decodeErr) } else if e.ServiceError == nil { - e.ServiceError = &ServiceError{Code: "Unknown", Message: "Unknown service error"} + // Check if error is unwrapped ServiceError + if err := json.Unmarshal(b.Bytes(), &e.ServiceError); err != nil || e.ServiceError.Message == "" { + e.ServiceError = &ServiceError{ + Code: "Unknown", + Message: "Unknown service error", + } + } } e.RequestID = ExtractRequestID(resp) diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/azure_test.go b/vendor/github.com/Azure/go-autorest/autorest/azure/azure_test.go index ff014b518..e8bddbbfd 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/azure_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/azure_test.go @@ -1,5 +1,19 @@ package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" @@ -333,6 +347,74 @@ func TestWithErrorUnlessStatusCode_NoAzureError(t *testing.T) { } +func TestWithErrorUnlessStatusCode_UnwrappedError(t *testing.T) { + j := `{ + "target": null, + "code": "InternalError", + "message": "Azure is having trouble right now.", + "details": [{"code": "conflict1", "message":"error message1"}, + {"code": "conflict2", "message":"error message2"}], + "innererror": [] +}` + uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6" + r := mocks.NewResponseWithContent(j) + mocks.SetResponseHeader(r, HeaderRequestID, uuid) + r.Request = mocks.NewRequest() + r.StatusCode = http.StatusInternalServerError + r.Status = http.StatusText(r.StatusCode) + + err := autorest.Respond(r, + WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + + if err == nil { + t.Fatal("azure: returned nil error for proper error response") + } + + azErr, ok := err.(*RequestError) + if !ok { + t.Fatalf("returned error is not azure.RequestError: %T", err) + } + + if expected := http.StatusInternalServerError; azErr.StatusCode != expected { + t.Logf("Incorrect StatusCode got: %v want: %d", azErr.StatusCode, expected) + t.Fail() + } + + if expected := "Azure is having trouble right now."; azErr.ServiceError.Message != expected { + t.Logf("Incorrect Message\n\tgot: %q\n\twant: %q", azErr.Message, expected) + t.Fail() + } + + if expected := uuid; azErr.RequestID != expected { + t.Logf("Incorrect request ID\n\tgot: %q\n\twant: %q", azErr.RequestID, expected) + t.Fail() + } + + expectedServiceErrorDetails := `[{"code":"conflict1","message":"error message1"},{"code":"conflict2","message":"error message2"}]` + if azErr.ServiceError == nil { + t.Logf("`ServiceError` was nil when it shouldn't have been.") + t.Fail() + } else if azErr.ServiceError.Details == nil { + t.Logf("`ServiceError.Details` was nil when it should have been %q", expectedServiceErrorDetails) + t.Fail() + } else if details, _ := json.Marshal(*azErr.ServiceError.Details); expectedServiceErrorDetails != string(details) { + t.Logf("Error detaisl was not unmarshaled properly.\n\tgot: %q\n\twant: %q", string(details), expectedServiceErrorDetails) + t.Fail() + } + + // the error body should still be there + defer r.Body.Close() + b, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Error(err) + } + if string(b) != j { + t.Fatalf("response body is wrong. got=%q expected=%q", string(b), j) + } + +} + func TestRequestErrorString_WithError(t *testing.T) { j := `{ "error": { diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/cli/profile.go b/vendor/github.com/Azure/go-autorest/autorest/azure/cli/profile.go index b5b897c7d..3e226fe9b 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/cli/profile.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/cli/profile.go @@ -1,5 +1,19 @@ package cli +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/cli/token.go b/vendor/github.com/Azure/go-autorest/autorest/azure/cli/token.go index a1f3af151..b80b8e3fa 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/cli/token.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/cli/token.go @@ -1,5 +1,19 @@ package cli +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go b/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go index 1cf55651f..30c4351a5 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go @@ -1,5 +1,19 @@ package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "strings" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/environments_test.go b/vendor/github.com/Azure/go-autorest/autorest/azure/environments_test.go index a36b34b40..2718149ad 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/environments_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/environments_test.go @@ -1,6 +1,20 @@ // test package azure +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "testing" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/example/main.go b/vendor/github.com/Azure/go-autorest/autorest/azure/example/main.go index f39b0a0df..f887097f6 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/example/main.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/example/main.go @@ -1,5 +1,19 @@ package main +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "crypto/rsa" "crypto/x509" diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/rp.go b/vendor/github.com/Azure/go-autorest/autorest/azure/rp.go new file mode 100644 index 000000000..6036d069a --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/rp.go @@ -0,0 +1,202 @@ +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package azure + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strings" + "time" + + "github.com/Azure/go-autorest/autorest" +) + +// DoRetryWithRegistration tries to register the resource provider in case it is unregistered. +// It also handles request retries +func DoRetryWithRegistration(client autorest.Client) autorest.SendDecorator { + return func(s autorest.Sender) autorest.Sender { + return autorest.SenderFunc(func(r *http.Request) (resp *http.Response, err error) { + rr := autorest.NewRetriableRequest(r) + for currentAttempt := 0; currentAttempt < client.RetryAttempts; currentAttempt++ { + err = rr.Prepare() + if err != nil { + return resp, err + } + + resp, err = autorest.SendWithSender(s, rr.Request(), + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...), + ) + if err != nil { + return resp, err + } + + if resp.StatusCode != http.StatusConflict { + return resp, err + } + var re RequestError + err = autorest.Respond( + resp, + autorest.ByUnmarshallingJSON(&re), + ) + if err != nil { + return resp, err + } + + if re.ServiceError != nil && re.ServiceError.Code == "MissingSubscriptionRegistration" { + err = register(client, r, re) + if err != nil { + return resp, fmt.Errorf("failed auto registering Resource Provider: %s", err) + } + } + } + return resp, errors.New("failed request and resource provider registration") + }) + } +} + +func getProvider(re RequestError) (string, error) { + if re.ServiceError != nil { + if re.ServiceError.Details != nil && len(*re.ServiceError.Details) > 0 { + detail := (*re.ServiceError.Details)[0].(map[string]interface{}) + return detail["target"].(string), nil + } + } + return "", errors.New("provider was not found in the response") +} + +func register(client autorest.Client, originalReq *http.Request, re RequestError) error { + subID := getSubscription(originalReq.URL.Path) + if subID == "" { + return errors.New("missing parameter subscriptionID to register resource provider") + } + providerName, err := getProvider(re) + if err != nil { + return fmt.Errorf("missing parameter provider to register resource provider: %s", err) + } + newURL := url.URL{ + Scheme: originalReq.URL.Scheme, + Host: originalReq.URL.Host, + } + + // taken from the resources SDK + // with almost identical code, this sections are easier to mantain + // It is also not a good idea to import the SDK here + // https://github.com/Azure/azure-sdk-for-go/blob/9f366792afa3e0ddaecdc860e793ba9d75e76c27/arm/resources/resources/providers.go#L252 + pathParameters := map[string]interface{}{ + "resourceProviderNamespace": autorest.Encode("path", providerName), + "subscriptionId": autorest.Encode("path", subID), + } + + const APIVersion = "2016-09-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(newURL.String()), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/register", pathParameters), + autorest.WithQueryParameters(queryParameters), + ) + + req, err := preparer.Prepare(&http.Request{}) + if err != nil { + return err + } + req.Cancel = originalReq.Cancel + + resp, err := autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...), + ) + if err != nil { + return err + } + + type Provider struct { + RegistrationState *string `json:"registrationState,omitempty"` + } + var provider Provider + + err = autorest.Respond( + resp, + WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&provider), + autorest.ByClosing(), + ) + if err != nil { + return err + } + + // poll for registered provisioning state + now := time.Now() + for err == nil && time.Since(now) < client.PollingDuration { + // taken from the resources SDK + // https://github.com/Azure/azure-sdk-for-go/blob/9f366792afa3e0ddaecdc860e793ba9d75e76c27/arm/resources/resources/providers.go#L45 + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(newURL.String()), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}", pathParameters), + autorest.WithQueryParameters(queryParameters), + ) + req, err = preparer.Prepare(&http.Request{}) + if err != nil { + return err + } + req.Cancel = originalReq.Cancel + + resp, err := autorest.SendWithSender(client.Sender, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...), + ) + if err != nil { + return err + } + + err = autorest.Respond( + resp, + WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&provider), + autorest.ByClosing(), + ) + if err != nil { + return err + } + + if provider.RegistrationState != nil && + *provider.RegistrationState == "Registered" { + break + } + + delayed := autorest.DelayWithRetryAfter(resp, originalReq.Cancel) + if !delayed { + autorest.DelayForBackoff(client.PollingDelay, 0, originalReq.Cancel) + } + } + if !(time.Since(now) < client.PollingDuration) { + return errors.New("polling for resource provider registration has exceeded the polling duration") + } + return err +} + +func getSubscription(path string) string { + parts := strings.Split(path, "/") + for i, v := range parts { + if v == "subscriptions" && (i+1) < len(parts) { + return parts[i+1] + } + } + return "" +} diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/rp_test.go b/vendor/github.com/Azure/go-autorest/autorest/azure/rp_test.go new file mode 100644 index 000000000..b06943057 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/rp_test.go @@ -0,0 +1,81 @@ +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package azure + +import ( + "net/http" + "testing" + "time" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/mocks" +) + +func TestDoRetryWithRegistration(t *testing.T) { + client := mocks.NewSender() + // first response, should retry because it is a transient error + client.AppendResponse(mocks.NewResponseWithStatus("Internal server error", http.StatusInternalServerError)) + // response indicates the resource provider has not been registered + client.AppendResponse(mocks.NewResponseWithBodyAndStatus(mocks.NewBody(`{ + "error":{ + "code":"MissingSubscriptionRegistration", + "message":"The subscription registration is in 'Unregistered' state. The subscription must be registered to use namespace 'Microsoft.EventGrid'. See https://aka.ms/rps-not-found for how to register subscriptions.", + "details":[ + { + "code":"MissingSubscriptionRegistration", + "target":"Microsoft.EventGrid", + "message":"The subscription registration is in 'Unregistered' state. The subscription must be registered to use namespace 'Microsoft.EventGrid'. See https://aka.ms/rps-not-found for how to register subscriptions." + } + ] + } +} +`), http.StatusConflict, "MissingSubscriptionRegistration")) + // first poll response, still not ready + client.AppendResponse(mocks.NewResponseWithBodyAndStatus(mocks.NewBody(`{ + "registrationState": "Registering" +} +`), http.StatusOK, "200 OK")) + // last poll response, respurce provider has been registered + client.AppendResponse(mocks.NewResponseWithBodyAndStatus(mocks.NewBody(`{ + "registrationState": "Registered" +} +`), http.StatusOK, "200 OK")) + // retry original request, response is successful + client.AppendResponse(mocks.NewResponseWithStatus("200 OK", http.StatusOK)) + + req := mocks.NewRequestForURL("https://lol/subscriptions/rofl") + req.Body = mocks.NewBody("lolol") + r, err := autorest.SendWithSender(client, req, + DoRetryWithRegistration(autorest.Client{ + PollingDelay: time.Second, + PollingDuration: time.Second * 10, + RetryAttempts: 5, + RetryDuration: time.Second, + Sender: client, + }), + ) + if err != nil { + t.Fatalf("got error: %v", err) + } + + autorest.Respond(r, + autorest.ByDiscardingBody(), + autorest.ByClosing(), + ) + + if r.StatusCode != http.StatusOK { + t.Fatalf("azure: Sender#DoRetryWithRegistration -- Got: StatusCode %v; Want: StatusCode 200 OK", r.StatusCode) + } +} diff --git a/vendor/github.com/Azure/go-autorest/autorest/client.go b/vendor/github.com/Azure/go-autorest/autorest/client.go index 5f1e72fbe..ce7a605f8 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/client.go +++ b/vendor/github.com/Azure/go-autorest/autorest/client.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "fmt" @@ -33,7 +47,8 @@ var ( Version(), ) - statusCodesForRetry = []int{ + // StatusCodesForRetry are a defined group of status code for which the client will retry + StatusCodesForRetry = []int{ http.StatusRequestTimeout, // 408 http.StatusTooManyRequests, // 429 http.StatusInternalServerError, // 500 @@ -160,6 +175,7 @@ func NewClientWithUserAgent(ua string) Client { RetryDuration: 30 * time.Second, UserAgent: defaultUserAgent, } + c.Sender = c.sender() c.AddToUserAgent(ua) return c } @@ -187,10 +203,9 @@ func (c Client) Do(r *http.Request) (*http.Response, error) { if err != nil { return nil, NewErrorWithError(err, "autorest/Client", "Do", nil, "Preparing request failed") } - resp, err := SendWithSender(c.sender(), r, - DoRetryForStatusCodes(c.RetryAttempts, c.RetryDuration, statusCodesForRetry...)) - Respond(resp, - c.ByInspecting()) + + resp, err := SendWithSender(c.sender(), r) + Respond(resp, c.ByInspecting()) return resp, err } diff --git a/vendor/github.com/Azure/go-autorest/autorest/client_test.go b/vendor/github.com/Azure/go-autorest/autorest/client_test.go index 78a8a59ba..151f8eedb 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/client_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/client_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "fmt" @@ -7,6 +21,7 @@ import ( "log" "math/rand" "net/http" + "net/http/httptest" "reflect" "testing" "time" @@ -331,6 +346,51 @@ func TestClientByInspectingSetsDefault(t *testing.T) { } } +func TestCookies(t *testing.T) { + second := "second" + expected := http.Cookie{ + Name: "tastes", + Value: "delicious", + } + + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + http.SetCookie(w, &expected) + b, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatalf("autorest: ioutil.ReadAll failed reading request body: %s", err) + } + if string(b) == second { + cookie, err := r.Cookie(expected.Name) + if err != nil { + t.Fatalf("autorest: r.Cookie could not get request cookie: %s", err) + } + if cookie == nil { + t.Fatalf("autorest: got nil cookie, expecting %v", expected) + } + if cookie.Value != expected.Value { + t.Fatalf("autorest: got cookie value '%s', expecting '%s'", cookie.Value, expected.Name) + } + } + })) + defer server.Close() + + client := NewClientWithUserAgent("") + _, err := SendWithSender(client, mocks.NewRequestForURL(server.URL)) + if err != nil { + t.Fatalf("autorest: first request failed: %s", err) + } + + r2, err := http.NewRequest(http.MethodGet, server.URL, mocks.NewBody(second)) + if err != nil { + t.Fatalf("autorest: failed creating second request: %s", err) + } + + _, err = SendWithSender(client, r2) + if err != nil { + t.Fatalf("autorest: second request failed: %s", err) + } +} + func randomString(n int) string { const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" r := rand.New(rand.NewSource(time.Now().UTC().UnixNano())) diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/date.go b/vendor/github.com/Azure/go-autorest/autorest/date/date.go index 80ca60e9b..c45710656 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/date.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/date.go @@ -5,6 +5,20 @@ time.Time types. And both convert to time.Time through a ToTime method. */ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "time" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/date_test.go b/vendor/github.com/Azure/go-autorest/autorest/date/date_test.go index 622f1f7ef..4a40bbc3e 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/date_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/date_test.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/time.go b/vendor/github.com/Azure/go-autorest/autorest/date/time.go index c1af62963..b453fad04 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/time.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/time.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "regexp" "time" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/time_test.go b/vendor/github.com/Azure/go-autorest/autorest/date/time_test.go index 0a7dd9eb6..d8c811707 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/time_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/time_test.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123.go b/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123.go index 11995fb9f..48fb39ba9 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "errors" "time" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123_test.go b/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123_test.go index 28f3ce213..dfd640513 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/timerfc1123_test.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "encoding/json" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/unixtime.go b/vendor/github.com/Azure/go-autorest/autorest/date/unixtime.go index e085c77ee..7073959b2 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/unixtime.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/unixtime.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/binary" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/unixtime_test.go b/vendor/github.com/Azure/go-autorest/autorest/date/unixtime_test.go index 8156a1c01..3fa347c00 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/unixtime_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/unixtime_test.go @@ -2,6 +2,20 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/binary" diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/utility.go b/vendor/github.com/Azure/go-autorest/autorest/date/utility.go index 207b1a240..12addf0eb 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/utility.go +++ b/vendor/github.com/Azure/go-autorest/autorest/date/utility.go @@ -1,5 +1,19 @@ package date +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "strings" "time" diff --git a/vendor/github.com/Azure/go-autorest/autorest/error.go b/vendor/github.com/Azure/go-autorest/autorest/error.go index aaef2ac8e..f724f3332 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/error.go +++ b/vendor/github.com/Azure/go-autorest/autorest/error.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/http" diff --git a/vendor/github.com/Azure/go-autorest/autorest/error_test.go b/vendor/github.com/Azure/go-autorest/autorest/error_test.go index 1975155ad..f4f5d75ef 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/error_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/error_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/http" diff --git a/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers.go b/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers.go index add894605..7b1f00d3f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers.go +++ b/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers.go @@ -1,5 +1,19 @@ package mocks +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "net/http" diff --git a/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers_test.go b/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers_test.go deleted file mode 100644 index f726b26e5..000000000 --- a/vendor/github.com/Azure/go-autorest/autorest/mocks/helpers_test.go +++ /dev/null @@ -1 +0,0 @@ -package mocks diff --git a/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks.go b/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks.go index dc3dd3b93..85a049763 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks.go +++ b/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks.go @@ -3,6 +3,20 @@ Package mocks provides mocks and helpers used in testing. */ package mocks +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "io" diff --git a/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks_test.go b/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks_test.go deleted file mode 100644 index f726b26e5..000000000 --- a/vendor/github.com/Azure/go-autorest/autorest/mocks/mocks_test.go +++ /dev/null @@ -1 +0,0 @@ -package mocks diff --git a/vendor/github.com/Azure/go-autorest/autorest/preparer.go b/vendor/github.com/Azure/go-autorest/autorest/preparer.go index afd114821..2290c4010 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/preparer.go +++ b/vendor/github.com/Azure/go-autorest/autorest/preparer.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/preparer_test.go b/vendor/github.com/Azure/go-autorest/autorest/preparer_test.go index 1f715f9b2..9ba608a8f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/preparer_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/preparer_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "io/ioutil" diff --git a/vendor/github.com/Azure/go-autorest/autorest/responder.go b/vendor/github.com/Azure/go-autorest/autorest/responder.go index 87f71e585..a908a0adb 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/responder.go +++ b/vendor/github.com/Azure/go-autorest/autorest/responder.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/responder_test.go b/vendor/github.com/Azure/go-autorest/autorest/responder_test.go index 99b858b98..4a57b1e3b 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/responder_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/responder_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest.go b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest.go index 0ab1eb300..fa11dbed7 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest.go +++ b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "io" diff --git a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.7.go b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.7.go index e28eb2cbd..7143cc61b 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.7.go +++ b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.7.go @@ -1,17 +1,31 @@ // +build !go1.8 +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package autorest import ( "bytes" + "io/ioutil" "net/http" ) // RetriableRequest provides facilities for retrying an HTTP request. type RetriableRequest struct { - req *http.Request - br *bytes.Reader - reset bool + req *http.Request + br *bytes.Reader } // Prepare signals that the request is about to be sent. @@ -19,21 +33,17 @@ func (rr *RetriableRequest) Prepare() (err error) { // preserve the request body; this is to support retry logic as // the underlying transport will always close the reqeust body if rr.req.Body != nil { - if rr.reset { - if rr.br != nil { - _, err = rr.br.Seek(0, 0 /*io.SeekStart*/) - } - rr.reset = false - if err != nil { - return err - } + if rr.br != nil { + _, err = rr.br.Seek(0, 0 /*io.SeekStart*/) + rr.req.Body = ioutil.NopCloser(rr.br) + } + if err != nil { + return err } if rr.br == nil { // fall back to making a copy (only do this once) err = rr.prepareFromByteReader() } - // indicates that the request body needs to be reset - rr.reset = true } return err } diff --git a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.8.go b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.8.go index 8c1d1aec8..ae15c6bf9 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.8.go +++ b/vendor/github.com/Azure/go-autorest/autorest/retriablerequest_1.8.go @@ -1,19 +1,33 @@ // +build go1.8 +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package autorest import ( "bytes" "io" + "io/ioutil" "net/http" ) // RetriableRequest provides facilities for retrying an HTTP request. type RetriableRequest struct { - req *http.Request - rc io.ReadCloser - br *bytes.Reader - reset bool + req *http.Request + rc io.ReadCloser + br *bytes.Reader } // Prepare signals that the request is about to be sent. @@ -21,16 +35,14 @@ func (rr *RetriableRequest) Prepare() (err error) { // preserve the request body; this is to support retry logic as // the underlying transport will always close the reqeust body if rr.req.Body != nil { - if rr.reset { - if rr.rc != nil { - rr.req.Body = rr.rc - } else if rr.br != nil { - _, err = rr.br.Seek(0, io.SeekStart) - } - rr.reset = false - if err != nil { - return err - } + if rr.rc != nil { + rr.req.Body = rr.rc + } else if rr.br != nil { + _, err = rr.br.Seek(0, io.SeekStart) + rr.req.Body = ioutil.NopCloser(rr.br) + } + if err != nil { + return err } if rr.req.GetBody != nil { // this will allow us to preserve the body without having to @@ -43,8 +55,6 @@ func (rr *RetriableRequest) Prepare() (err error) { // fall back to making a copy (only do this once) err = rr.prepareFromByteReader() } - // indicates that the request body needs to be reset - rr.reset = true } return err } diff --git a/vendor/github.com/Azure/go-autorest/autorest/sender.go b/vendor/github.com/Azure/go-autorest/autorest/sender.go index 94b029847..7264c32f2 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/sender.go +++ b/vendor/github.com/Azure/go-autorest/autorest/sender.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "log" diff --git a/vendor/github.com/Azure/go-autorest/autorest/sender_test.go b/vendor/github.com/Azure/go-autorest/autorest/sender_test.go index bc90cbfaa..a72731d41 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/sender_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/sender_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/autorest/to/convert.go b/vendor/github.com/Azure/go-autorest/autorest/to/convert.go index 7b180b866..fdda2ce1a 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/to/convert.go +++ b/vendor/github.com/Azure/go-autorest/autorest/to/convert.go @@ -3,6 +3,20 @@ Package to provides helpers to ease working with pointer values of marshalled st */ package to +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // String returns a string value for the passed string pointer. It returns the empty string if the // pointer is nil. func String(s *string) string { diff --git a/vendor/github.com/Azure/go-autorest/autorest/to/convert_test.go b/vendor/github.com/Azure/go-autorest/autorest/to/convert_test.go index 8c9835392..f8177a163 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/to/convert_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/to/convert_test.go @@ -1,5 +1,19 @@ package to +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "reflect" "testing" diff --git a/vendor/github.com/Azure/go-autorest/autorest/utility.go b/vendor/github.com/Azure/go-autorest/autorest/utility.go index 78067148b..dfdc6efdf 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/utility.go +++ b/vendor/github.com/Azure/go-autorest/autorest/utility.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/utility_test.go b/vendor/github.com/Azure/go-autorest/autorest/utility_test.go index 99c16c97c..1cda8758f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/utility_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/utility_test.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "encoding/json" diff --git a/vendor/github.com/Azure/go-autorest/autorest/utils/auth.go b/vendor/github.com/Azure/go-autorest/autorest/utils/auth.go index 5c09dbb2b..6dc2c3b07 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/utils/auth.go +++ b/vendor/github.com/Azure/go-autorest/autorest/utils/auth.go @@ -1,5 +1,19 @@ package utils +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "os" diff --git a/vendor/github.com/Azure/go-autorest/autorest/utils/commit.go b/vendor/github.com/Azure/go-autorest/autorest/utils/commit.go index 9c05f14a8..9bc4e3e04 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/utils/commit.go +++ b/vendor/github.com/Azure/go-autorest/autorest/utils/commit.go @@ -1,5 +1,19 @@ package utils +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "os/exec" diff --git a/vendor/github.com/Azure/go-autorest/autorest/validation/validation.go b/vendor/github.com/Azure/go-autorest/autorest/validation/validation.go index 38f0074d0..3fe62c930 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/validation/validation.go +++ b/vendor/github.com/Azure/go-autorest/autorest/validation/validation.go @@ -3,6 +3,20 @@ Package validation provides methods for validating parameter value using reflect */ package validation +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "reflect" @@ -91,15 +105,12 @@ func validateStruct(x reflect.Value, v Constraint, name ...string) error { return createError(x, v, fmt.Sprintf("field %q doesn't exist", v.Target)) } - if err := Validate([]Validation{ + return Validate([]Validation{ { TargetValue: getInterfaceValue(f), Constraints: []Constraint{v}, }, - }); err != nil { - return err - } - return nil + }) } func validatePtr(x reflect.Value, v Constraint) error { diff --git a/vendor/github.com/Azure/go-autorest/autorest/validation/validation_test.go b/vendor/github.com/Azure/go-autorest/autorest/validation/validation_test.go index 59051494d..c86649d8f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/validation/validation_test.go +++ b/vendor/github.com/Azure/go-autorest/autorest/validation/validation_test.go @@ -1,5 +1,19 @@ package validation +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "fmt" "reflect" diff --git a/vendor/github.com/Azure/go-autorest/autorest/version.go b/vendor/github.com/Azure/go-autorest/autorest/version.go index a222e8efa..f588807db 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/version.go +++ b/vendor/github.com/Azure/go-autorest/autorest/version.go @@ -1,5 +1,19 @@ package autorest +// Copyright 2017 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import ( "bytes" "fmt" diff --git a/vendor/github.com/Azure/go-autorest/testdata/credsutf16be.json b/vendor/github.com/Azure/go-autorest/testdata/credsutf16be.json new file mode 100644 index 0000000000000000000000000000000000000000..7fa689d55600e947340329f9aa2519fd5640b5ac GIT binary patch literal 1094 zcmchX-Acni5QWdR;5&%dCPiESdaZ~T-Y7mmOxiS%A2q2(#aCCqSxHTkMl6U7Y?j%X zv*(;y^8TS$ZEH(A#I8c6N;FZfN|%brj5~Rcib$UJb)X>?dp-R(;DmZ)t$J|EMun%5 z4t3PRD>c`hN{5r^9;8GC?3&!ZYHC);I?-thrE-dbj;dz9?q8=W;C{RL37j*&rpYn| zyJww)8^NvM#C*FYn=Td4$W)w`I5{9v>S9;vE8}Yp6`U5DI>g*fAm;|3vx1schwW~w zp3@hyzmn++z?_iTj7!$&&FDAwKDif%{>@;};_$N{7w`yBJkxcHYjbLCU*ct#uZ8m` zLgfOjKD_J=wON#Uz^kVITEkzsVBVY8eQd_Ovk@`u@QP8N5;l)bU&m_iZ)UM>hX0}8 LreXh$H(NgeK7_Ug literal 0 HcmV?d00001 diff --git a/vendor/github.com/Azure/go-autorest/testdata/credsutf16le.json b/vendor/github.com/Azure/go-autorest/testdata/credsutf16le.json new file mode 100644 index 0000000000000000000000000000000000000000..7951923e38cccd668f5e67bffcec615ba778439d GIT binary patch literal 1094 zcmchX-Acni5QWdR;5&%dCPiESdaZ~T-Y7mmOxiS%A2q2(#aCCqSxHTkMl6U7Y?j%X zv*(;y^6~zvZEb0X*j1=hi6+Wb=~5AyaVPIl5y{iO4m6} zp^jR3rRKU*>2MO=gOsR%U6b2aP0i|9CpvARR8CRQQPs@X{p(Z(+;2BOfpf;!G+Cx# z_pEbpBe)fum~Xda)1~4WnTpdACkI4IUF<4-Wqi${g404%hnTwwsezZnc#9DerW0v-X1XS!~2ZBDK2OT6szwQ&AK zs9d1chnKyfHj7dZc-7QjYxoNn%zN{?kIk5OHX?={UNP!Z!sfB*>samm%`Dc<@IUn1 KH0;0e=GIU0jkX2= literal 0 HcmV?d00001 diff --git a/vendor/github.com/Azure/go-autorest/testdata/credsutf8.json b/vendor/github.com/Azure/go-autorest/testdata/credsutf8.json new file mode 100644 index 000000000..7d96bcfcb --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/testdata/credsutf8.json @@ -0,0 +1,12 @@ +{ + "clientId": "client-id-123", + "clientSecret": "client-secret-456", + "subscriptionId": "sub-id-789", + "tenantId": "tenant-id-123", + "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", + "resourceManagerEndpointUrl": "https://management.azure.com/", + "activeDirectoryGraphResourceId": "https://graph.windows.net/", + "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", + "galleryEndpointUrl": "https://gallery.azure.com/", + "managementEndpointUrl": "https://management.core.windows.net/" +} diff --git a/vendor/github.com/dgrijalva/jwt-go/.travis.yml b/vendor/github.com/dgrijalva/jwt-go/.travis.yml index bde823d8a..1027f56cd 100644 --- a/vendor/github.com/dgrijalva/jwt-go/.travis.yml +++ b/vendor/github.com/dgrijalva/jwt-go/.travis.yml @@ -1,8 +1,13 @@ language: go +script: + - go vet ./... + - go test -v ./... + go: - 1.3 - 1.4 - 1.5 - 1.6 + - 1.7 - tip diff --git a/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md b/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md index fd62e9490..7fc1f793c 100644 --- a/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md +++ b/vendor/github.com/dgrijalva/jwt-go/MIGRATION_GUIDE.md @@ -56,8 +56,9 @@ This simple parsing example: is directly mapped to: ```go - if token, err := request.ParseFromRequest(tokenString, request.OAuth2Extractor, req, keyLookupFunc); err == nil { - fmt.Printf("Token for user %v expires %v", token.Claims["user"], token.Claims["exp"]) + if token, err := request.ParseFromRequest(req, request.OAuth2Extractor, keyLookupFunc); err == nil { + claims := token.Claims.(jwt.MapClaims) + fmt.Printf("Token for user %v expires %v", claims["user"], claims["exp"]) } ``` diff --git a/vendor/github.com/dgrijalva/jwt-go/README.md b/vendor/github.com/dgrijalva/jwt-go/README.md index 00f613672..25aec486c 100644 --- a/vendor/github.com/dgrijalva/jwt-go/README.md +++ b/vendor/github.com/dgrijalva/jwt-go/README.md @@ -4,7 +4,7 @@ A [go](http://www.golang.org) (or 'golang' for search engine friendliness) imple **BREAKING CHANGES:*** Version 3.0.0 is here. It includes _a lot_ of changes including a few that break the API. We've tried to break as few things as possible, so there should just be a few type signature changes. A full list of breaking changes is available in `VERSION_HISTORY.md`. See `MIGRATION_GUIDE.md` for more information on updating your code. -**NOTICE:** A vulnerability in JWT was [recently published](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/). As this library doesn't force users to validate the `alg` is what they expected, it's possible your usage is effected. There will be an update soon to remedy this, and it will likey require backwards-incompatible changes to the API. In the short term, please make sure your implementation verifies the `alg` is what you expect. +**NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided. ## What the heck is a JWT? @@ -25,8 +25,8 @@ This library supports the parsing and verification as well as the generation and See [the project documentation](https://godoc.org/github.com/dgrijalva/jwt-go) for examples of usage: -* [Simple example of parsing and validating a token](https://godoc.org/github.com/dgrijalva/jwt-go#example_Parse_hmac) -* [Simple example of building and signing a token](https://godoc.org/github.com/dgrijalva/jwt-go#example_New_hmac) +* [Simple example of parsing and validating a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-Parse--Hmac) +* [Simple example of building and signing a token](https://godoc.org/github.com/dgrijalva/jwt-go#example-New--Hmac) * [Directory of Examples](https://godoc.org/github.com/dgrijalva/jwt-go#pkg-examples) ## Extensions @@ -74,7 +74,7 @@ It's worth mentioning that OAuth and JWT are not the same thing. A JWT token is Without going too far down the rabbit hole, here's a description of the interaction of these technologies: -* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth. +* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth. * OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token. * Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL. @@ -82,4 +82,4 @@ Without going too far down the rabbit hole, here's a description of the interact Documentation can be found [on godoc.org](http://godoc.org/github.com/dgrijalva/jwt-go). -The command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in to documentation. +The command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in the documentation. diff --git a/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md b/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md index b605b4509..c21551f6b 100644 --- a/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md +++ b/vendor/github.com/dgrijalva/jwt-go/VERSION_HISTORY.md @@ -1,5 +1,11 @@ ## `jwt-go` Version History +#### 3.1.0 + +* Improvements to `jwt` command line tool +* Added `SkipClaimsValidation` option to `Parser` +* Documentation updates + #### 3.0.0 * **Compatibility Breaking Changes**: See MIGRATION_GUIDE.md for tips on updating your code diff --git a/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/README.md b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/README.md index 4a68ba40a..c05150e33 100644 --- a/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/README.md +++ b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/README.md @@ -6,8 +6,8 @@ the command line. The following will create and sign a token, then verify it and output the original claims: - echo {\"foo\":\"bar\"} | bin/jwt -key test/sample_key -alg RS256 -sign - | bin/jwt -key test/sample_key.pub -verify - + echo {\"foo\":\"bar\"} | ./jwt -key ../../test/sample_key -alg RS256 -sign - | ./jwt -key ../../test/sample_key.pub -alg RS256 -verify - To simply display a token, use: - echo $JWT | jwt -show - + echo $JWT | ./jwt -show - diff --git a/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/app.go b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/app.go index c03711474..727182a98 100644 --- a/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/app.go +++ b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/app.go @@ -25,14 +25,20 @@ var ( flagKey = flag.String("key", "", "path to key file or '-' to read from stdin") flagCompact = flag.Bool("compact", false, "output compact JSON") flagDebug = flag.Bool("debug", false, "print out all kinds of debug data") + flagClaims = make(ArgList) + flagHead = make(ArgList) // Modes - exactly one of these is required - flagSign = flag.String("sign", "", "path to claims object to sign or '-' to read from stdin") + flagSign = flag.String("sign", "", "path to claims object to sign, '-' to read from stdin, or '+' to use only -claim args") flagVerify = flag.String("verify", "", "path to JWT token to verify or '-' to read from stdin") flagShow = flag.String("show", "", "path to JWT file or '-' to read from stdin") ) func main() { + // Plug in Var flags + flag.Var(flagClaims, "claim", "add additional claims. may be used more than once") + flag.Var(flagHead, "header", "add additional header params. may be used more than once") + // Usage message if you ask for -help or if you mess up inputs. flag.Usage = func() { fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) @@ -74,6 +80,8 @@ func loadData(p string) ([]byte, error) { var rdr io.Reader if p == "-" { rdr = os.Stdin + } else if p == "+" { + return []byte("{}"), nil } else { if f, err := os.Open(p); err == nil { rdr = f @@ -126,6 +134,8 @@ func verifyToken() error { } if isEs() { return jwt.ParseECPublicKeyFromPEM(data) + } else if isRs() { + return jwt.ParseRSAPublicKeyFromPEM(data) } return data, nil }) @@ -171,6 +181,13 @@ func signToken() error { return fmt.Errorf("Couldn't parse claims JSON: %v", err) } + // add command line claims + if len(flagClaims) > 0 { + for k, v := range flagClaims { + claims[k] = v + } + } + // get the key var key interface{} key, err = loadData(*flagKey) @@ -187,6 +204,13 @@ func signToken() error { // create a new token token := jwt.NewWithClaims(alg, claims) + // add command line headers + if len(flagHead) > 0 { + for k, v := range flagHead { + token.Header[k] = v + } + } + if isEs() { if k, ok := key.([]byte); !ok { return fmt.Errorf("Couldn't convert key data to key") @@ -196,6 +220,15 @@ func signToken() error { return err } } + } else if isRs() { + if k, ok := key.([]byte); !ok { + return fmt.Errorf("Couldn't convert key data to key") + } else { + key, err = jwt.ParseRSAPrivateKeyFromPEM(k) + if err != nil { + return err + } + } } if out, err := token.SignedString(key); err == nil { @@ -243,3 +276,7 @@ func showToken() error { func isEs() bool { return strings.HasPrefix(*flagAlg, "ES") } + +func isRs() bool { + return strings.HasPrefix(*flagAlg, "RS") +} diff --git a/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/args.go b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/args.go new file mode 100644 index 000000000..a5bba5b10 --- /dev/null +++ b/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/args.go @@ -0,0 +1,23 @@ +package main + +import ( + "encoding/json" + "fmt" + "strings" +) + +type ArgList map[string]string + +func (l ArgList) String() string { + data, _ := json.Marshal(l) + return string(data) +} + +func (l ArgList) Set(arg string) error { + parts := strings.SplitN(arg, "=", 2) + if len(parts) != 2 { + return fmt.Errorf("Invalid argument '%v'. Must use format 'key=value'. %v", arg, parts) + } + l[parts[0]] = parts[1] + return nil +} diff --git a/vendor/github.com/dgrijalva/jwt-go/errors.go b/vendor/github.com/dgrijalva/jwt-go/errors.go index 662df19d4..1c93024aa 100644 --- a/vendor/github.com/dgrijalva/jwt-go/errors.go +++ b/vendor/github.com/dgrijalva/jwt-go/errors.go @@ -51,13 +51,9 @@ func (e ValidationError) Error() string { } else { return "token is invalid" } - return e.Inner.Error() } // No errors func (e *ValidationError) valid() bool { - if e.Errors > 0 { - return false - } - return true + return e.Errors == 0 } diff --git a/vendor/github.com/dgrijalva/jwt-go/hmac_example_test.go b/vendor/github.com/dgrijalva/jwt-go/hmac_example_test.go index 8fb567820..002783147 100644 --- a/vendor/github.com/dgrijalva/jwt-go/hmac_example_test.go +++ b/vendor/github.com/dgrijalva/jwt-go/hmac_example_test.go @@ -51,6 +51,8 @@ func ExampleParse_hmac() { if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) } + + // hmacSampleSecret is a []byte containing your secret, e.g. []byte("my_secret_key") return hmacSampleSecret, nil }) diff --git a/vendor/github.com/dgrijalva/jwt-go/parser.go b/vendor/github.com/dgrijalva/jwt-go/parser.go index 7020c52a1..7bf1c4ea0 100644 --- a/vendor/github.com/dgrijalva/jwt-go/parser.go +++ b/vendor/github.com/dgrijalva/jwt-go/parser.go @@ -8,8 +8,9 @@ import ( ) type Parser struct { - ValidMethods []string // If populated, only these methods will be considered valid - UseJSONNumber bool // Use JSON Number format in JSON decoder + ValidMethods []string // If populated, only these methods will be considered valid + UseJSONNumber bool // Use JSON Number format in JSON decoder + SkipClaimsValidation bool // Skip claims validation during token parsing } // Parse, validate, and return a token. @@ -101,14 +102,16 @@ func (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyf vErr := &ValidationError{} // Validate Claims - if err := token.Claims.Valid(); err != nil { + if !p.SkipClaimsValidation { + if err := token.Claims.Valid(); err != nil { - // If the Claims Valid returned an error, check if it is a validation error, - // If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set - if e, ok := err.(*ValidationError); !ok { - vErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid} - } else { - vErr = e + // If the Claims Valid returned an error, check if it is a validation error, + // If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set + if e, ok := err.(*ValidationError); !ok { + vErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid} + } else { + vErr = e + } } } diff --git a/vendor/github.com/dgrijalva/jwt-go/parser_test.go b/vendor/github.com/dgrijalva/jwt-go/parser_test.go index 0c86801b9..f8ad6f908 100644 --- a/vendor/github.com/dgrijalva/jwt-go/parser_test.go +++ b/vendor/github.com/dgrijalva/jwt-go/parser_test.go @@ -172,6 +172,15 @@ var jwtTestData = []struct { jwt.ValidationErrorNotValidYet | jwt.ValidationErrorExpired, &jwt.Parser{UseJSONNumber: true}, }, + { + "SkipClaimsValidation during token parsing", + "", // autogen + defaultKeyFunc, + jwt.MapClaims{"foo": "bar", "nbf": json.Number(fmt.Sprintf("%v", time.Now().Unix()+100))}, + true, + 0, + &jwt.Parser{UseJSONNumber: true, SkipClaimsValidation: true}, + }, } func TestParser_Parse(t *testing.T) { @@ -213,7 +222,7 @@ func TestParser_Parse(t *testing.T) { } if (err == nil && !token.Valid) || (err != nil && token.Valid) { - t.Errorf("[%v] Inconsistent behavior between returned error and token.Valid") + t.Errorf("[%v] Inconsistent behavior between returned error and token.Valid", data.name) } if data.errors != 0 { diff --git a/vendor/github.com/dustin/go-humanize/.gitignore b/vendor/github.com/dustin/go-humanize/.gitignore deleted file mode 100644 index 05b40514a..000000000 --- a/vendor/github.com/dustin/go-humanize/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -#* -*.[568] -*.a -*~ -[568].out -_* diff --git a/vendor/github.com/go-ini/ini/.github/ISSUE_TEMPLATE.md b/vendor/github.com/go-ini/ini/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..849f69f4b --- /dev/null +++ b/vendor/github.com/go-ini/ini/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,5 @@ +### Please give general description of the problem + +### Please provide code snippets to reproduce the problem described above + +### Do you have any suggestion to fix the problem? \ No newline at end of file diff --git a/vendor/github.com/go-ini/ini/.github/PULL_REQUEST_TEMPLATE.md b/vendor/github.com/go-ini/ini/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..b4565aeb5 --- /dev/null +++ b/vendor/github.com/go-ini/ini/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,3 @@ +### What problem should be fixed? + +### Have you added test cases to catch the problem? diff --git a/vendor/github.com/go-ini/ini/.gitignore b/vendor/github.com/go-ini/ini/.gitignore index c5203bf6e..12411127b 100644 --- a/vendor/github.com/go-ini/ini/.gitignore +++ b/vendor/github.com/go-ini/ini/.gitignore @@ -3,3 +3,4 @@ ini.sublime-project ini.sublime-workspace testdata/conf_reflect.ini .idea +/.vscode diff --git a/vendor/github.com/go-ini/ini/.travis.yml b/vendor/github.com/go-ini/ini/.travis.yml index fbfaee213..9787d4dba 100644 --- a/vendor/github.com/go-ini/ini/.travis.yml +++ b/vendor/github.com/go-ini/ini/.travis.yml @@ -1,12 +1,11 @@ sudo: false language: go go: - - 1.4.x - 1.5.x - 1.6.x - 1.7.x - 1.8.x - - master + - 1.9.x script: - go get golang.org/x/tools/cmd/cover diff --git a/vendor/github.com/go-ini/ini/LICENSE b/vendor/github.com/go-ini/ini/LICENSE index 37ec93a14..d361bbcdf 100644 --- a/vendor/github.com/go-ini/ini/LICENSE +++ b/vendor/github.com/go-ini/ini/LICENSE @@ -176,7 +176,7 @@ recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2014 Unknwon Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/github.com/go-ini/ini/README.md b/vendor/github.com/go-ini/ini/README.md index e67d51f32..f4ff27cd3 100644 --- a/vendor/github.com/go-ini/ini/README.md +++ b/vendor/github.com/go-ini/ini/README.md @@ -101,7 +101,7 @@ skip-name-resolve By default, this is considered as missing value. But if you know you're going to deal with those cases, you can assign advanced load options: ```go -cfg, err := LoadSources(LoadOptions{AllowBooleanKeys: true}, "my.cnf")) +cfg, err := ini.LoadSources(ini.LoadOptions{AllowBooleanKeys: true}, "my.cnf")) ``` The value of those keys are always `true`, and when you save to a file, it will keep in the same foramt as you read. @@ -125,7 +125,7 @@ If you want to save a value with `#` or `;`, please quote them with ``` ` ``` or Alternatively, you can use following `LoadOptions` to completely ignore inline comments: ```go -cfg, err := LoadSources(LoadOptions{IgnoreInlineComment: true}, "app.ini")) +cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, "app.ini")) ``` ### Working with sections @@ -329,6 +329,20 @@ foo = "some value" // foo: some value bar = 'some value' // bar: some value ``` +Sometimes you downloaded file from [Crowdin](https://crowdin.com/) has values like the following (value is surrounded by double quotes and quotes in the value are escaped): + +```ini +create_repo="created repository %s" +``` + +How do you transform this to regular format automatically? + +```go +cfg, err := ini.LoadSources(ini.LoadOptions{UnescapeValueDoubleQuotes: true}, "en-US.ini")) +cfg.Section("").Key("create_repo").String() +// You got: created repository %s +``` + That's all? Hmm, no. #### Helper methods of working with values @@ -480,7 +494,7 @@ cfg.Section("package.sub").ParentKeys() // ["CLONE_URL"] Sometimes, you have sections that do not contain key-value pairs but raw content, to handle such case, you can use `LoadOptions.UnparsableSections`: ```go -cfg, err := LoadSources(LoadOptions{UnparseableSections: []string{"COMMENTS"}}, `[COMMENTS] +cfg, err := ini.LoadSources(ini.LoadOptions{UnparseableSections: []string{"COMMENTS"}}, `[COMMENTS] <1> This slide has the fuel listed in the wrong units `)) body := cfg.Section("COMMENTS").Body() @@ -573,7 +587,7 @@ Why not? ```go type Embeded struct { - Dates []time.Time `delim:"|"` + Dates []time.Time `delim:"|" comment:"Time data"` Places []string `ini:"places,omitempty"` None []int `ini:",omitempty"` } @@ -581,10 +595,10 @@ type Embeded struct { type Author struct { Name string `ini:"NAME"` Male bool - Age int + Age int `comment:"Author's age"` GPA float64 NeverMind string `ini:"-"` - *Embeded + *Embeded `comment:"Embeded section"` } func main() { @@ -605,10 +619,13 @@ So, what do I get? ```ini NAME = Unknwon Male = true +; Author's age Age = 21 GPA = 2.8 +; Embeded section [Embeded] +; Time data Dates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00 places = HangZhou,Boston ``` diff --git a/vendor/github.com/go-ini/ini/README_ZH.md b/vendor/github.com/go-ini/ini/README_ZH.md index 0cf419449..69aefef12 100644 --- a/vendor/github.com/go-ini/ini/README_ZH.md +++ b/vendor/github.com/go-ini/ini/README_ZH.md @@ -94,7 +94,7 @@ skip-name-resolve 默认情况下这被认为是缺失值而无法完成解析,但可以通过高级的加载选项对它们进行处理: ```go -cfg, err := LoadSources(LoadOptions{AllowBooleanKeys: true}, "my.cnf")) +cfg, err := ini.LoadSources(ini.LoadOptions{AllowBooleanKeys: true}, "my.cnf")) ``` 这些键的值永远为 `true`,且在保存到文件时也只会输出键名。 @@ -118,7 +118,7 @@ key, err := sec.NewBooleanKey("skip-host-cache") 除此之外,您还可以通过 `LoadOptions` 完全忽略行内注释: ```go -cfg, err := LoadSources(LoadOptions{IgnoreInlineComment: true}, "app.ini")) +cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, "app.ini")) ``` ### 操作分区(Section) @@ -322,6 +322,20 @@ foo = "some value" // foo: some value bar = 'some value' // bar: some value ``` +有时您会获得像从 [Crowdin](https://crowdin.com/) 网站下载的文件那样具有特殊格式的值(值使用双引号括起来,内部的双引号被转义): + +```ini +create_repo="创建了仓库 %s" +``` + +那么,怎么自动地将这类值进行处理呢? + +```go +cfg, err := ini.LoadSources(ini.LoadOptions{UnescapeValueDoubleQuotes: true}, "en-US.ini")) +cfg.Section("").Key("create_repo").String() +// You got: 创建了仓库 %s +``` + 这就是全部了?哈哈,当然不是。 #### 操作键值的辅助方法 @@ -473,7 +487,7 @@ cfg.Section("package.sub").ParentKeys() // ["CLONE_URL"] 如果遇到一些比较特殊的分区,它们不包含常见的键值对,而是没有固定格式的纯文本,则可以使用 `LoadOptions.UnparsableSections` 进行处理: ```go -cfg, err := LoadSources(LoadOptions{UnparseableSections: []string{"COMMENTS"}}, `[COMMENTS] +cfg, err := LoadSources(ini.LoadOptions{UnparseableSections: []string{"COMMENTS"}}, `[COMMENTS] <1> This slide has the fuel listed in the wrong units `)) body := cfg.Section("COMMENTS").Body() @@ -564,7 +578,7 @@ p := &Person{ ```go type Embeded struct { - Dates []time.Time `delim:"|"` + Dates []time.Time `delim:"|" comment:"Time data"` Places []string `ini:"places,omitempty"` None []int `ini:",omitempty"` } @@ -572,10 +586,10 @@ type Embeded struct { type Author struct { Name string `ini:"NAME"` Male bool - Age int + Age int `comment:"Author's age"` GPA float64 NeverMind string `ini:"-"` - *Embeded + *Embeded `comment:"Embeded section"` } func main() { @@ -596,10 +610,13 @@ func main() { ```ini NAME = Unknwon Male = true +; Author's age Age = 21 GPA = 2.8 +; Embeded section [Embeded] +; Time data Dates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00 places = HangZhou,Boston ``` diff --git a/vendor/github.com/go-ini/ini/ini.go b/vendor/github.com/go-ini/ini/ini.go index 7f3c4d1ed..07dc62c50 100644 --- a/vendor/github.com/go-ini/ini/ini.go +++ b/vendor/github.com/go-ini/ini/ini.go @@ -35,7 +35,7 @@ const ( // Maximum allowed depth when recursively substituing variable names. _DEPTH_VALUES = 99 - _VERSION = "1.28.2" + _VERSION = "1.30.0" ) // Version returns current package version literal. @@ -181,6 +181,8 @@ type LoadOptions struct { AllowBooleanKeys bool // AllowShadows indicates whether to keep track of keys with same name under same section. AllowShadows bool + // UnescapeValueDoubleQuotes indicates whether to unescape double quotes inside value to regular format when value is surrounded by double quotes, e.g. key="a \"value\"" => key=a "value" + UnescapeValueDoubleQuotes bool // Some INI formats allow group blocks that store a block of raw content that doesn't otherwise // conform to key/value pairs. Specify the names of those blocks here. UnparseableSections []string @@ -409,6 +411,8 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { if len(sec.Comment) > 0 { if sec.Comment[0] != '#' && sec.Comment[0] != ';' { sec.Comment = "; " + sec.Comment + } else { + sec.Comment = sec.Comment[:1] + " " + strings.TrimSpace(sec.Comment[1:]) } if _, err := buf.WriteString(sec.Comment + LineBreak); err != nil { return nil, err @@ -463,6 +467,8 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { } if key.Comment[0] != '#' && key.Comment[0] != ';' { key.Comment = "; " + key.Comment + } else { + key.Comment = key.Comment[:1] + " " + strings.TrimSpace(key.Comment[1:]) } if _, err := buf.WriteString(key.Comment + LineBreak); err != nil { return nil, err diff --git a/vendor/github.com/go-ini/ini/ini_test.go b/vendor/github.com/go-ini/ini/ini_test.go index b3dd217c6..c20ff3dd4 100644 --- a/vendor/github.com/go-ini/ini/ini_test.go +++ b/vendor/github.com/go-ini/ini/ini_test.go @@ -87,6 +87,14 @@ key = "value" key2 = "value2" ; This is a comment for key2 key3 = "one", "two", "three" +[string escapes] +key1 = value1, value2, value3 +key2 = value1\, value2 +key3 = val\ue1, value2 +key4 = value1\\, value\\\\2 +key5 = value1\,, value2 +key6 = aaa bbb\ and\ space ccc + [advance] value with quotes = "some value" value quote2 again = 'some value' @@ -241,7 +249,7 @@ key5`)) // there is always a trailing \n at the end of the section So(buf.String(), ShouldEqual, `key1 = hello key2 -#key3 +# key3 key4 key5 `) @@ -294,6 +302,17 @@ func Test_LooseLoad(t *testing.T) { } +func Test_LoadOptions_UnescapeValueDoubleQuotes(t *testing.T) { + Convey("Load with option UnescapeValueDoubleQuotes enabled", t, func() { + cfg, err := LoadSources(LoadOptions{UnescapeValueDoubleQuotes: true}, + []byte(`create_repo="创建了仓库 %s"`)) + So(err, ShouldBeNil) + So(cfg, ShouldNotBeNil) + + So(cfg.Section("").Key("create_repo").String(), ShouldEqual, `创建了仓库 %s`) + }) +} + func Test_File_Append(t *testing.T) { Convey("Append data sources", t, func() { cfg, err := Load([]byte("")) @@ -397,6 +416,14 @@ Good man. key2 = value2 key3 = "one", "two", "three" +[string escapes] + key1 = value1, value2, value3 + key2 = value1\, value2 + key3 = val\ue1, value2 + key4 = value1\\, value\\\\2 + key5 = value1\,, value2 + key6 = aaa bbb\ and\ space ccc + [advance] value with quotes = some value value quote2 again = some value diff --git a/vendor/github.com/go-ini/ini/key.go b/vendor/github.com/go-ini/ini/key.go index 838356af0..0a2aa30e9 100644 --- a/vendor/github.com/go-ini/ini/key.go +++ b/vendor/github.com/go-ini/ini/key.go @@ -15,6 +15,7 @@ package ini import ( + "bytes" "errors" "fmt" "strconv" @@ -444,11 +445,39 @@ func (k *Key) Strings(delim string) []string { return []string{} } - vals := strings.Split(str, delim) - for i := range vals { - // vals[i] = k.transformValue(strings.TrimSpace(vals[i])) - vals[i] = strings.TrimSpace(vals[i]) + runes := []rune(str) + vals := make([]string, 0, 2) + var buf bytes.Buffer + escape := false + idx := 0 + for { + if escape { + escape = false + if runes[idx] != '\\' && !strings.HasPrefix(string(runes[idx:]), delim) { + buf.WriteRune('\\') + } + buf.WriteRune(runes[idx]) + } else { + if runes[idx] == '\\' { + escape = true + } else if strings.HasPrefix(string(runes[idx:]), delim) { + idx += len(delim) - 1 + vals = append(vals, strings.TrimSpace(buf.String())) + buf.Reset() + } else { + buf.WriteRune(runes[idx]) + } + } + idx += 1 + if idx == len(runes) { + break + } } + + if buf.Len() > 0 { + vals = append(vals, strings.TrimSpace(buf.String())) + } + return vals } diff --git a/vendor/github.com/go-ini/ini/key_test.go b/vendor/github.com/go-ini/ini/key_test.go index 1281d5bf0..a70ee64ce 100644 --- a/vendor/github.com/go-ini/ini/key_test.go +++ b/vendor/github.com/go-ini/ini/key_test.go @@ -73,7 +73,7 @@ func Test_Key(t *testing.T) { Convey("Get sections", func() { sections := cfg.Sections() - for i, name := range []string{DEFAULT_SECTION, "author", "package", "package.sub", "features", "types", "array", "note", "comments", "advance"} { + for i, name := range []string{DEFAULT_SECTION, "author", "package", "package.sub", "features", "types", "array", "note", "comments", "string escapes", "advance"} { So(sections[i].Name(), ShouldEqual, name) } }) @@ -243,6 +243,16 @@ func Test_Key(t *testing.T) { timesEqual(vals6, t, t, t) }) + Convey("Test string slice escapes", func() { + sec := cfg.Section("string escapes") + So(sec.Key("key1").Strings(","), ShouldResemble, []string{"value1", "value2", "value3"}) + So(sec.Key("key2").Strings(","), ShouldResemble, []string{"value1, value2"}) + So(sec.Key("key3").Strings(","), ShouldResemble, []string{`val\ue1`, "value2"}) + So(sec.Key("key4").Strings(","), ShouldResemble, []string{`value1\`, `value\\2`}) + So(sec.Key("key5").Strings(",,"), ShouldResemble, []string{"value1,, value2"}) + So(sec.Key("key6").Strings(" "), ShouldResemble, []string{"aaa", "bbb and space", "ccc"}) + }) + Convey("Get valid values into slice", func() { sec := cfg.Section("array") vals1 := sec.Key("FLOAT64S").ValidFloat64s(",") diff --git a/vendor/github.com/go-ini/ini/parser.go b/vendor/github.com/go-ini/ini/parser.go index 69d547627..861e366e8 100644 --- a/vendor/github.com/go-ini/ini/parser.go +++ b/vendor/github.com/go-ini/ini/parser.go @@ -193,7 +193,7 @@ func hasSurroundedQuote(in string, quote byte) bool { strings.IndexByte(in[1:], quote) == len(in)-2 } -func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment bool) (string, error) { +func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment, unescapeValueDoubleQuotes bool) (string, error) { line := strings.TrimLeftFunc(string(in), unicode.IsSpace) if len(line) == 0 { return "", nil @@ -204,6 +204,8 @@ func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment bo valQuote = `"""` } else if line[0] == '`' { valQuote = "`" + } else if unescapeValueDoubleQuotes && line[0] == '"' { + valQuote = `"` } if len(valQuote) > 0 { @@ -214,6 +216,9 @@ func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment bo return p.readMultilines(line, line[startIdx:], valQuote) } + if unescapeValueDoubleQuotes && valQuote == `"` { + return strings.Replace(line[startIdx:pos+startIdx], `\"`, `"`, -1), nil + } return line[startIdx : pos+startIdx], nil } @@ -234,7 +239,7 @@ func (p *parser) readValue(in []byte, ignoreContinuation, ignoreInlineComment bo } } - // Trim single quotes + // Trim single and double quotes if hasSurroundedQuote(line, '\'') || hasSurroundedQuote(line, '"') { line = line[1 : len(line)-1] @@ -321,7 +326,10 @@ func (f *File) parse(reader io.Reader) (err error) { if err != nil { // Treat as boolean key when desired, and whole line is key name. if IsErrDelimiterNotFound(err) && f.options.AllowBooleanKeys { - kname, err := p.readValue(line, f.options.IgnoreContinuation, f.options.IgnoreInlineComment) + kname, err := p.readValue(line, + f.options.IgnoreContinuation, + f.options.IgnoreInlineComment, + f.options.UnescapeValueDoubleQuotes) if err != nil { return err } @@ -344,7 +352,10 @@ func (f *File) parse(reader io.Reader) (err error) { p.count++ } - value, err := p.readValue(line[offset:], f.options.IgnoreContinuation, f.options.IgnoreInlineComment) + value, err := p.readValue(line[offset:], + f.options.IgnoreContinuation, + f.options.IgnoreInlineComment, + f.options.UnescapeValueDoubleQuotes) if err != nil { return err } diff --git a/vendor/github.com/go-ini/ini/section_test.go b/vendor/github.com/go-ini/ini/section_test.go index 80282c197..f1ea671f0 100644 --- a/vendor/github.com/go-ini/ini/section_test.go +++ b/vendor/github.com/go-ini/ini/section_test.go @@ -28,7 +28,7 @@ func Test_Section(t *testing.T) { So(cfg, ShouldNotBeNil) Convey("Get section strings", func() { - So(strings.Join(cfg.SectionStrings(), ","), ShouldEqual, "DEFAULT,author,package,package.sub,features,types,array,note,comments,advance") + So(strings.Join(cfg.SectionStrings(), ","), ShouldEqual, "DEFAULT,author,package,package.sub,features,types,array,note,comments,string escapes,advance") }) Convey("Delete a section", func() { @@ -50,7 +50,7 @@ func Test_SectionRaw(t *testing.T) { Convey("Test section raw string", t, func() { cfg, err := LoadSources( LoadOptions{ - Insensitive: true, + Insensitive: true, UnparseableSections: []string{"core_lesson", "comments"}, }, "testdata/aicc.ini") @@ -72,4 +72,4 @@ func Test_SectionRaw(t *testing.T) { 111111111111111111100000000000111000000000 – end my lesson state data`) }) }) -} \ No newline at end of file +} diff --git a/vendor/github.com/go-ini/ini/struct.go b/vendor/github.com/go-ini/ini/struct.go index eeb8dabaa..e0bff67eb 100644 --- a/vendor/github.com/go-ini/ini/struct.go +++ b/vendor/github.com/go-ini/ini/struct.go @@ -113,7 +113,7 @@ func setSliceWithProperType(key *Key, field reflect.Value, delim string, allowSh default: return fmt.Errorf("unsupported type '[]%s'", sliceOf) } - if isStrict { + if err != nil && isStrict { return err } @@ -450,6 +450,12 @@ func (s *Section) reflectFrom(val reflect.Value) error { // Note: fieldName can never be empty here, ignore error. sec, _ = s.f.NewSection(fieldName) } + + // Add comment from comment tag + if len(sec.Comment) == 0 { + sec.Comment = tpField.Tag.Get("comment") + } + if err = sec.reflectFrom(field); err != nil { return fmt.Errorf("error reflecting field (%s): %v", fieldName, err) } @@ -461,6 +467,12 @@ func (s *Section) reflectFrom(val reflect.Value) error { if err != nil { key, _ = s.NewKey(fieldName, "") } + + // Add comment from comment tag + if len(key.Comment) == 0 { + key.Comment = tpField.Tag.Get("comment") + } + if err = reflectWithProperType(tpField.Type, key, field, parseDelim(tpField.Tag.Get("delim"))); err != nil { return fmt.Errorf("error reflecting field (%s): %v", fieldName, err) } diff --git a/vendor/github.com/go-ini/ini/struct_test.go b/vendor/github.com/go-ini/ini/struct_test.go index b8ba25293..86bb9de1f 100644 --- a/vendor/github.com/go-ini/ini/struct_test.go +++ b/vendor/github.com/go-ini/ini/struct_test.go @@ -244,9 +244,23 @@ age=a30`)) So(cfg.Section("").StrictMapTo(s), ShouldNotBeNil) }) + Convey("Map slice in strict mode", t, func() { + cfg, err := Load([]byte(` +names=alice, bruce`)) + So(err, ShouldBeNil) + + type Strict struct { + Names []string `ini:"names"` + } + s := new(Strict) + + So(cfg.Section("").StrictMapTo(s), ShouldBeNil) + So(fmt.Sprint(s.Names), ShouldEqual, "[alice bruce]") + }) + Convey("Reflect from struct", t, func() { type Embeded struct { - Dates []time.Time `delim:"|"` + Dates []time.Time `delim:"|" comment:"Time data"` Places []string Years []int Numbers []int64 @@ -258,12 +272,12 @@ age=a30`)) type Author struct { Name string `ini:"NAME"` Male bool - Age int + Age int `comment:"Author's age"` Height uint GPA float64 Date time.Time NeverMind string `ini:"-"` - *Embeded `ini:"infos"` + *Embeded `ini:"infos" comment:"Embeded section"` } t, err := time.Parse(time.RFC3339, "1993-10-07T20:17:05Z") @@ -287,12 +301,15 @@ age=a30`)) So(err, ShouldBeNil) So(buf.String(), ShouldEqual, `NAME = Unknwon Male = true +; Author's age Age = 21 Height = 100 GPA = 2.8 Date = 1993-10-07T20:17:05Z +; Embeded section [infos] +; Time data Dates = 1993-10-07T20:17:05Z|1993-10-07T20:17:05Z Places = HangZhou,Boston Years = 1993,1994 diff --git a/vendor/github.com/golang/protobuf/README.md b/vendor/github.com/golang/protobuf/README.md index 207eb6b48..9c4c815c0 100644 --- a/vendor/github.com/golang/protobuf/README.md +++ b/vendor/github.com/golang/protobuf/README.md @@ -1,6 +1,7 @@ # Go support for Protocol Buffers [![Build Status](https://travis-ci.org/golang/protobuf.svg?branch=master)](https://travis-ci.org/golang/protobuf) +[![GoDoc](https://godoc.org/github.com/golang/protobuf?status.svg)](https://godoc.org/github.com/golang/protobuf) Google's data interchange format. Copyright 2010 The Go Authors. diff --git a/vendor/github.com/ncw/swift/largeobjects.go b/vendor/github.com/ncw/swift/largeobjects.go index 48594a723..bec640b00 100644 --- a/vendor/github.com/ncw/swift/largeobjects.go +++ b/vendor/github.com/ncw/swift/largeobjects.go @@ -276,8 +276,9 @@ func (file *largeObjectCreateFile) Size() int64 { } func withLORetry(expectedSize int64, fn func() (Headers, int64, error)) (err error) { + endTimer := time.NewTimer(readAfterWriteTimeout) + defer endTimer.Stop() waitingTime := readAfterWriteWait - endTimer := time.After(readAfterWriteTimeout) for { var headers Headers var sz int64 @@ -288,11 +289,13 @@ func withLORetry(expectedSize int64, fn func() (Headers, int64, error)) (err err } else { return } + waitTimer := time.NewTimer(waitingTime) select { - case <-endTimer: + case <-endTimer.C: + waitTimer.Stop() err = fmt.Errorf("Timeout expired while waiting for object to have size == %d, got: %d", expectedSize, sz) return - case <-time.After(waitingTime): + case <-waitTimer.C: waitingTime *= 2 } } diff --git a/vendor/github.com/ncw/swift/swift.go b/vendor/github.com/ncw/swift/swift.go index 1e8589c7b..38e696532 100644 --- a/vendor/github.com/ncw/swift/swift.go +++ b/vendor/github.com/ncw/swift/swift.go @@ -471,6 +471,7 @@ again: } if req != nil { timer := time.NewTimer(c.ConnectTimeout) + defer timer.Stop() var resp *http.Response resp, err = c.doTimeoutRequest(timer, req) if err != nil { @@ -691,6 +692,7 @@ func (c *Connection) Call(targetUrl string, p RequestOpts) (resp *http.Response, URL.RawQuery = p.Parameters.Encode() } timer := time.NewTimer(c.ConnectTimeout) + defer timer.Stop() reader := p.Body if reader != nil { reader = newWatchdogReader(reader, c.Timeout, timer) diff --git a/vendor/github.com/ncw/swift/timeout_reader.go b/vendor/github.com/ncw/swift/timeout_reader.go index 3839e9ea0..88ae73328 100644 --- a/vendor/github.com/ncw/swift/timeout_reader.go +++ b/vendor/github.com/ncw/swift/timeout_reader.go @@ -38,10 +38,12 @@ func (t *timeoutReader) Read(p []byte) (int, error) { done <- result{n, err} }() // Wait for the read or the timeout + timer := time.NewTimer(t.timeout) + defer timer.Stop() select { case r := <-done: return r.n, r.err - case <-time.After(t.timeout): + case <-timer.C: t.cancel() return 0, TimeoutError } diff --git a/vendor/github.com/pkg/sftp/sftp.go b/vendor/github.com/pkg/sftp/sftp.go index 3cdb14df8..22184afe0 100644 --- a/vendor/github.com/pkg/sftp/sftp.go +++ b/vendor/github.com/pkg/sftp/sftp.go @@ -1,5 +1,5 @@ // Package sftp implements the SSH File Transfer Protocol as described in -// https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 +// https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt package sftp import ( diff --git a/vendor/github.com/restic/chunker/.travis.yml b/vendor/github.com/restic/chunker/.travis.yml index 756eb10d2..ed9a235c7 100644 --- a/vendor/github.com/restic/chunker/.travis.yml +++ b/vendor/github.com/restic/chunker/.travis.yml @@ -2,8 +2,9 @@ language: go sudo: false go: - - 1.5.4 - - 1.6.2 + - 1.6.4 + - 1.7.4 + - tip os: - linux diff --git a/vendor/github.com/restic/chunker/chunker.go b/vendor/github.com/restic/chunker/chunker.go index 58e87ea6b..911c8bc8f 100644 --- a/vendor/github.com/restic/chunker/chunker.go +++ b/vendor/github.com/restic/chunker/chunker.go @@ -13,16 +13,11 @@ const ( // WindowSize is the size of the sliding window. windowSize = 64 - // aim to create chunks of 20 bits or about 1MiB on average. - averageBits = 20 - // MinSize is the default minimal size of a chunk. MinSize = 512 * kiB // MaxSize is the default maximal size of a chunk. MaxSize = 8 * miB - splitmask = (1 << averageBits) - 1 - chunkerBufSize = 512 * kiB ) @@ -74,6 +69,7 @@ type chunkerConfig struct { polShift uint tables tables tablesInitialized bool + splitmask uint64 rd io.Reader closed bool @@ -85,17 +81,31 @@ type Chunker struct { chunkerState } +// SetAverageBits allows to control the frequency of chunk discovery: +// the lower averageBits, the higher amount of chunks will be identified. +// The default value is 20 bits, so chunks will be of 1MiB size on average. +func (c *Chunker) SetAverageBits(averageBits int) { + c.splitmask = (1 << uint64(averageBits)) - 1 +} + // New returns a new Chunker based on polynomial p that reads from rd. func New(rd io.Reader, pol Pol) *Chunker { + return NewWithBoundaries(rd, pol, MinSize, MaxSize) +} + +// NewWithBoundaries returns a new Chunker based on polynomial p that reads from +// rd and custom min and max size boundaries. +func NewWithBoundaries(rd io.Reader, pol Pol, min, max uint) *Chunker { c := &Chunker{ chunkerState: chunkerState{ buf: make([]byte, chunkerBufSize), }, chunkerConfig: chunkerConfig{ - pol: pol, - rd: rd, - MinSize: MinSize, - MaxSize: MaxSize, + pol: pol, + rd: rd, + MinSize: min, + MaxSize: max, + splitmask: (1 << 20) - 1, // aim to create chunks of 20 bits or about 1MiB on average. }, } @@ -106,15 +116,22 @@ func New(rd io.Reader, pol Pol) *Chunker { // Reset reinitializes the chunker with a new reader and polynomial. func (c *Chunker) Reset(rd io.Reader, pol Pol) { + c.ResetWithBoundaries(rd, pol, MinSize, MaxSize) +} + +// ResetWithBoundaries reinitializes the chunker with a new reader, polynomial +// and custom min and max size boundaries. +func (c *Chunker) ResetWithBoundaries(rd io.Reader, pol Pol, min, max uint) { *c = Chunker{ chunkerState: chunkerState{ buf: c.buf, }, chunkerConfig: chunkerConfig{ - pol: pol, - rd: rd, - MinSize: MinSize, - MaxSize: MaxSize, + pol: pol, + rd: rd, + MinSize: min, + MaxSize: max, + splitmask: (1 << 20) - 1, }, } @@ -292,7 +309,7 @@ func (c *Chunker) Next(data []byte) (Chunk, error) { continue } - if (digest&splitmask) == 0 || add >= maxSize { + if (digest&c.splitmask) == 0 || add >= maxSize { i := add - c.count - 1 data = append(data, c.buf[c.bpos:c.bpos+uint(i)+1]...) c.count = add diff --git a/vendor/github.com/restic/chunker/chunker_test.go b/vendor/github.com/restic/chunker/chunker_test.go index 9ef7fd27d..0c9535715 100644 --- a/vendor/github.com/restic/chunker/chunker_test.go +++ b/vendor/github.com/restic/chunker/chunker_test.go @@ -68,6 +68,41 @@ var chunks2 = []chunk{ chunk{MinSize, 0, parseDigest("07854d2fef297a06ba81685e660c332de36d5d18d546927d30daad6d7fda1541")}, } +// the same as chunks1, but avg chunksize is 1<<19 +var chunks3 = []chunk{ + chunk{1491586, 0x00023e586ea80000, parseDigest("4c008237df602048039287427171cef568a6cb965d1b5ca28dc80504a24bb061")}, + chunk{671874, 0x000b98d4cdf00000, parseDigest("fa8a42321b90c3d4ce9dd850562b2fd0c0fe4bdd26cf01a24f22046a224225d3")}, + chunk{643703, 0x000d4e8364d00000, parseDigest("5727a63c0964f365ab8ed2ccf604912f2ea7be29759a2b53ede4d6841e397407")}, + chunk{1284146, 0x0012b527e4780000, parseDigest("16d04cafecbeae9eaedd49da14c7ad7cdc2b1cc8569e5c16c32c9fb045aa899a")}, + chunk{823366, 0x000d1d6752180000, parseDigest("48662c118514817825ad4761e8e2e5f28f9bd8281b07e95dcafc6d02e0aa45c3")}, + chunk{810134, 0x0016071b6e180000, parseDigest("f629581aa05562f97f2c359890734c8574c5575da32f9289c5ba70bfd05f3f46")}, + chunk{567118, 0x00102a8242e00000, parseDigest("d4f0797c56c60d01bac33bfd49957a4816b6c067fc155b026de8a214cab4d70a")}, + chunk{821315, 0x001b3e42c8180000, parseDigest("8ebd0fd5db0293bd19140da936eb8b1bbd3cd6ffbec487385b956790014751ca")}, + chunk{1401057, 0x00045da878000000, parseDigest("001360af59adf4871ef138cfa2bb49007e86edaf5ac2d6f0b3d3014510991848")}, + chunk{2311122, 0x0005cbd885380000, parseDigest("8276d489b566086d9da95dc5c5fe6fc7d72646dd3308ced6b5b6ddb8595f0aa1")}, + chunk{608723, 0x001cfcd86f280000, parseDigest("518db33ba6a79d4f3720946f3785c05b9611082586d47ea58390fc2f6de9449e")}, + chunk{980456, 0x0013edb7a7f80000, parseDigest("0121b1690738395e15fecba1410cd0bf13fde02225160cad148829f77e7b6c99")}, + chunk{1140278, 0x0001f9f017e80000, parseDigest("28ca7c74804b5075d4f5eeb11f0845d99f62e8ea3a42b9a05c7bd5f2fca619dd")}, + chunk{2015542, 0x00097bf5d8180000, parseDigest("6fe8291f427d48650a5f0f944305d3a2dbc649bd401d2655fc0bdd42e890ca5a")}, + chunk{904752, 0x000e1863eff80000, parseDigest("62af1f1eb3f588d18aff28473303cc4731fc3cafcc52ce818fee3c4c2820854d")}, + chunk{713072, 0x001f3bb1b9b80000, parseDigest("4bda9dc2e3031d004d87a5cc93fe5207c4b0843186481b8f31597dc6ffa1496c")}, + chunk{675937, 0x001fec043c700000, parseDigest("5299c8c5acec1b90bb020cd75718aab5e12abb9bf66291465fd10e6a823a8b4a")}, + chunk{1525894, 0x000b1574b1500000, parseDigest("2f238180e4ca1f7520a05f3d6059233926341090f9236ce677690c1823eccab3")}, + chunk{1352720, 0x00018965f2e00000, parseDigest("afd12f13286a3901430de816e62b85cc62468c059295ce5888b76b3af9028d84")}, + chunk{811884, 0x00155628aa100000, parseDigest("42d0cdb1ee7c48e552705d18e061abb70ae7957027db8ae8db37ec756472a70a")}, + chunk{1282314, 0x001909a0a1400000, parseDigest("819721c2457426eb4f4c7565050c44c32076a56fa9b4515a1c7796441730eb58")}, + chunk{1093738, 0x0017f5d048880000, parseDigest("5dddfa7a241b68f65d267744bdb082ee865f3c2f0d8b946ea0ee47868a01bbff")}, + chunk{962003, 0x000b921f7ef80000, parseDigest("0cb5c9ebba196b441c715c8d805f6e7143a81cd5b0d2c65c6aacf59ca9124af9")}, + chunk{856384, 0x00030ce2d9400000, parseDigest("7734b206d46f3f387e8661e81edf5b1a91ea681867beb5831c18aaa86632d7fb")}, + chunk{533758, 0x0004435c53c00000, parseDigest("4da778a25b72a9a0d53529eccfe2e5865a789116cb1800f470d8df685a8ab05d")}, + chunk{1128303, 0x0000c48517800000, parseDigest("08c6b0b38095b348d80300f0be4c5184d2744a17147c2cba5cc4315abf4c048f")}, + chunk{800374, 0x000968473f900000, parseDigest("820284d2c8fd243429674c996d8eb8d3450cbc32421f43113e980f516282c7bf")}, + chunk{2453512, 0x001e197c92600000, parseDigest("5fa870ed107c67704258e5e50abe67509fb73562caf77caa843b5f243425d853")}, + chunk{665901, 0x00118c842cb80000, parseDigest("deceec26163842fdef6560311c69bf8a9871a56e16d719e2c4b7e4d668ceb61f")}, + chunk{1986074, 0x000ae6c868000000, parseDigest("64cd64bf3c3bc389eb20df8310f0427d1c36ab2eaaf09e346bfa7f0453fc1a18")}, + chunk{237392, 0x0000000000000001, parseDigest("fcd567f5d866357a8e299fd5b2359bb2c8157c30395229c4e9b0a353944a7978")}, +} + func testWithData(t *testing.T, chnker *Chunker, testChunks []chunk, checkDigest bool) []Chunk { chunks := []Chunk{} @@ -108,16 +143,20 @@ func testWithData(t *testing.T, chnker *Chunker, testChunks []chunk, checkDigest _, err := chnker.Next(nil) if err != io.EOF { - t.Fatal("wrong error returned after last chunk") + t.Fatal("Wrong error returned after last chunk") + } + + if len(chunks) != len(testChunks) { + t.Fatal("Amounts of test and resulting chunks do not match") } return chunks } -func getRandom(seed, count int) []byte { +func getRandom(seed int64, count int) []byte { buf := make([]byte, count) - rnd := rand.New(rand.NewSource(23)) + rnd := rand.New(rand.NewSource(seed)) for i := 0; i < count; i += 4 { r := rnd.Uint32() buf[i] = byte(r) @@ -148,6 +187,15 @@ func TestChunker(t *testing.T) { testWithData(t, ch, chunks2, true) } +func TestChunkerWithCustomAverageBits(t *testing.T) { + buf := getRandom(23, 32*1024*1024) + ch := New(bytes.NewReader(buf), testPol) + + // sligthly decrease averageBits to get more chunks + ch.SetAverageBits(19) + testWithData(t, ch, chunks3, true) +} + func TestChunkerReset(t *testing.T) { buf := getRandom(23, 32*1024*1024) ch := New(bytes.NewReader(buf), testPol) diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index da9aa881e..373a056ba 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -19,13 +19,33 @@ Many of the most widely used Go projects are built using Cobra including: * [GiantSwarm's swarm](https://github.com/giantswarm/cli) * [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) * [rclone](http://rclone.org/) - +* [nehm](https://github.com/bogem/nehm) [![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra) [![CircleCI status](https://circleci.com/gh/spf13/cobra.png?circle-token=:circle-token "CircleCI status")](https://circleci.com/gh/spf13/cobra) [![GoDoc](https://godoc.org/github.com/spf13/cobra?status.svg)](https://godoc.org/github.com/spf13/cobra) -![cobra](https://cloud.githubusercontent.com/assets/173412/10911369/84832a8e-8212-11e5-9f82-cc96660a4794.gif) +# Table of Contents + +- [Overview](#overview) +- [Concepts](#concepts) + * [Commands](#commands) + * [Flags](#flags) +- [Installing](#installing) +- [Getting Started](#getting-started) + * [Using the Cobra Generator](#using-the-cobra-generator) + * [Using the Cobra Library](#using-the-cobra-library) + * [Working with Flags](#working-with-flags) + * [Positional and Custom Arguments](#positional-and-custom-arguments) + * [Example](#example) + * [Help Command](#help-command) + * [Usage Message](#usage-message) + * [PreRun and PostRun Hooks](#prerun-and-postrun-hooks) + * [Suggestions when "unknown command" happens](#suggestions-when-unknown-command-happens) + * [Generating documentation for your command](#generating-documentation-for-your-command) + * [Generating bash completions](#generating-bash-completions) +- [Contributing](#contributing) +- [License](#license) # Overview @@ -43,7 +63,6 @@ Cobra provides: * Easy generation of applications & commands with `cobra init appname` & `cobra add cmdname` * Intelligent suggestions (`app srver`... did you mean `app server`?) * Automatic help generation for commands and flags -* Automatic detailed help for `app help [command]` * Automatic help flag recognition of `-h`, `--help`, etc. * Automatically generated bash autocomplete for your application * Automatically generated man pages for your application @@ -51,16 +70,6 @@ Cobra provides: * The flexibility to define your own help, usage, etc. * Optional tight integration with [viper](http://github.com/spf13/viper) for 12-factor apps -Cobra has an exceptionally clean interface and simple design without needless -constructors or initialization methods. - -Applications built with Cobra commands are designed to be as user-friendly as -possible. Flags can be placed before or after the command (as long as a -confusing space isn’t provided). Both short and long flags can be used. A -command need not even be fully typed. Help is automatically generated and -available for the application or for a specific command using either the help -command or the `--help` flag. - # Concepts Cobra is built on a structure of commands, arguments & flags. @@ -93,20 +102,11 @@ have children commands and optionally run an action. In the example above, 'server' is the command. -A Command has the following structure: - -```go -type Command struct { - Use string // The one-line usage message. - Short string // The short description shown in the 'help' output. - Long string // The long message shown in the 'help ' output. - Run func(cmd *Command, args []string) // Run runs the command. -} -``` +[More about cobra.Command](https://godoc.org/github.com/spf13/cobra#Command) ## Flags -A Flag is a way to modify the behavior of a command. Cobra supports +A flag is a way to modify the behavior of a command. Cobra supports fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/). A Cobra command can define flags that persist through to children commands and flags that are only available to that command. @@ -170,106 +170,14 @@ func main() { Cobra provides its own program that will create your application and add any commands you want. It's the easiest way to incorporate Cobra into your application. -In order to use the cobra command, compile it using the following command: +[Here](https://github.com/spf13/cobra/blob/master/cobra/README.md) you can find more information about it. - go get github.com/spf13/cobra/cobra - -This will create the cobra executable under your `$GOPATH/bin` directory. - -### cobra init - -The `cobra init [yourApp]` command will create your initial application code -for you. It is a very powerful application that will populate your program with -the right structure so you can immediately enjoy all the benefits of Cobra. It -will also automatically apply the license you specify to your application. - -Cobra init is pretty smart. You can provide it a full path, or simply a path -similar to what is expected in the import. - -``` -cobra init github.com/spf13/newAppName -``` - -### cobra add - -Once an application is initialized Cobra can create additional commands for you. -Let's say you created an app and you wanted the following commands for it: - -* app serve -* app config -* app config create - -In your project directory (where your main.go file is) you would run the following: - -``` -cobra add serve -cobra add config -cobra add create -p 'configCmd' -``` - -*Note: Use camelCase (not snake_case/snake-case) for command names. -Otherwise, you will encounter errors. -For example, `cobra add add-user` is incorrect, but `cobra add addUser` is valid.* - -Once you have run these three commands you would have an app structure similar to -the following: - -``` - ▾ app/ - ▾ cmd/ - serve.go - config.go - create.go - main.go -``` - -At this point you can run `go run main.go` and it would run your app. `go run -main.go serve`, `go run main.go config`, `go run main.go config create` along -with `go run main.go help serve`, etc. would all work. - -Obviously you haven't added your own code to these yet. The commands are ready -for you to give them their tasks. Have fun! - -### Configuring the cobra generator - -The Cobra generator will be easier to use if you provide a simple configuration -file which will help you eliminate providing a bunch of repeated information in -flags over and over. - -An example ~/.cobra.yaml file: - -```yaml -author: Steve Francia -license: MIT -``` - -You can specify no license by setting `license` to `none` or you can specify -a custom license: - -```yaml -license: - header: This file is part of {{ .appName }}. - text: | - {{ .copyright }} - - This is my license. There are many like it, but this one is mine. - My license is my best friend. It is my life. I must master it as I must - master my life. -``` - -You can also use built-in licenses. For example, **GPLv2**, **GPLv3**, **LGPL**, -**AGPL**, **MIT**, **2-Clause BSD** or **3-Clause BSD**. - -## Manually implementing Cobra +## Using the Cobra Library To manually implement Cobra you need to create a bare main.go file and a RootCmd file. You will optionally provide additional commands as you see fit. -### Create the root command - -The root command represents your binary itself. - -#### Manually create rootCmd +### Create rootCmd Cobra doesn't require any special constructors. Simply create your commands. @@ -400,17 +308,6 @@ var versionCmd = &cobra.Command{ } ``` -### Attach command to its parent - - -If you notice in the above example we attach the command to its parent. In -this case the parent is the rootCmd. In this example we are attaching it to the -root, but commands can be attached at any level. - -```go -RootCmd.AddCommand(versionCmd) -``` - ## Working with Flags Flags provide modifiers to control how the action command operates. @@ -446,6 +343,19 @@ A flag can also be assigned locally which will only apply to that specific comma RootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") ``` +### Local Flag on Parent Commands + +By default Cobra only parses local flags on the target command, any local flags on +parent commands are ignored. By enabling `Command.TraverseChildren` Cobra will +parse local flags on each command before executing the target command. + +```go +command := cobra.Command{ + Use: "print [OPTIONS] [COMMANDS]", + TraverseChildren: true, +} +``` + ### Bind Flags with Config You can also bind your flags with [viper](https://github.com/spf13/viper): @@ -569,7 +479,7 @@ a count and a string.`, For a more complete example of a larger application, please checkout [Hugo](http://gohugo.io/). -## The Help Command +## Help Command Cobra automatically adds a help command to your application when you have subcommands. This will be called when a user runs 'app help'. Additionally, help will also @@ -582,60 +492,28 @@ create' is called. Every command will automatically have the '--help' flag adde The following output is automatically generated by Cobra. Nothing beyond the command and flag definitions are needed. - > hugo help + $ cobra help - hugo is the main command, used to build your Hugo site. - - Hugo is a Fast and Flexible Static Site Generator - built with love by spf13 and friends in Go. - - Complete documentation is available at http://gohugo.io/. + Cobra is a CLI library for Go that empowers applications. + This application is a tool to generate the needed files + to quickly create a Cobra application. Usage: - hugo [flags] - hugo [command] + cobra [command] Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. + add Add a command to a Cobra Application + help Help about any command + init Initialize a Cobra Application Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed + -a, --author string author name for copyright attribution (default "YOUR NAME") + --config string config file (default is $HOME/.cobra.yaml) + -h, --help help for cobra + -l, --license string name of license for the project + --viper use Viper for configuration (default true) - Use "hugo [command] --help" for more information about a command. + Use "cobra [command] --help" for more information about a command. Help is just a command like any other. There is no special logic or behavior @@ -643,36 +521,18 @@ around it. In fact, you can provide your own if you want. ### Defining your own help -You can provide your own Help command or your own template for the default command to use. - -The default help command is +You can provide your own Help command or your own template for the default command to use +with followind functions: ```go -func (c *Command) initHelp() { - if c.helpCommand == nil { - c.helpCommand = &Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. - Simply type ` + c.Name() + ` help [path to command] for full details.`, - Run: c.HelpFunc(), - } - } - c.AddCommand(c.helpCommand) -} -``` - -You can provide your own command, function or template through the following methods: - -```go -command.SetHelpCommand(cmd *Command) -command.SetHelpFunc(f func(*Command, []string)) -command.SetHelpTemplate(s string) +cmd.SetHelpCommand(cmd *Command) +cmd.SetHelpFunc(f func(*Command, []string)) +cmd.SetHelpTemplate(s string) ``` The latter two will also apply to any children commands. -## Usage +## Usage Message When the user provides an invalid flag or invalid command, Cobra responds by showing the user the 'usage'. @@ -681,71 +541,35 @@ showing the user the 'usage'. You may recognize this from the help above. That's because the default help embeds the usage as part of its output. + $ cobra --invalid + Error: unknown flag: --invalid Usage: - hugo [flags] - hugo [command] + cobra [command] Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. + add Add a command to a Cobra Application + help Help about any command + init Initialize a Cobra Application Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed + -a, --author string author name for copyright attribution (default "YOUR NAME") + --config string config file (default is $HOME/.cobra.yaml) + -h, --help help for cobra + -l, --license string name of license for the project + --viper use Viper for configuration (default true) + + Use "cobra [command] --help" for more information about a command. ### Defining your own usage You can provide your own usage function or template for Cobra to use. - -The default usage function is: - -```go -return func(c *Command) error { - err := tmpl(c.Out(), c.UsageTemplate(), c) - return err -} -``` - Like help, the function and template are overridable through public methods: ```go -command.SetUsageFunc(f func(*Command) error) - -command.SetUsageTemplate(s string) +cmd.SetUsageFunc(f func(*Command) error) +cmd.SetUsageTemplate(s string) ``` -## PreRun or PostRun Hooks +## PreRun and PostRun Hooks It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`. The `Persistent*Run` functions will be inherited by children if they do not declare their own. These functions are run in the following order: @@ -815,51 +639,19 @@ func main() { } ``` +Output: +``` +Inside rootCmd PersistentPreRun with args: [] +Inside rootCmd PreRun with args: [] +Inside rootCmd Run with args: [] +Inside rootCmd PostRun with args: [] +Inside rootCmd PersistentPostRun with args: [] -## Alternative Error Handling - -Cobra also has functions where the return signature is an error. This allows for errors to bubble up to the top, -providing a way to handle the errors in one location. The current list of functions that return an error is: - -* PersistentPreRunE -* PreRunE -* RunE -* PostRunE -* PersistentPostRunE - -If you would like to silence the default `error` and `usage` output in favor of your own, you can set `SilenceUsage` -and `SilenceErrors` to `true` on the command. A child command respects these flags if they are set on the parent -command. - -**Example Usage using RunE:** - -```go -package main - -import ( - "errors" - "log" - - "github.com/spf13/cobra" -) - -func main() { - var rootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with -love by spf13 and friends in Go. -Complete documentation is available at http://hugo.spf13.com`, - RunE: func(cmd *cobra.Command, args []string) error { - // Do Stuff Here - return errors.New("some random error") - }, - } - - if err := rootCmd.Execute(); err != nil { - log.Fatal(err) - } -} +Inside rootCmd PersistentPreRun with args: [arg1 arg2] +Inside subCmd PreRun with args: [arg1 arg2] +Inside subCmd Run with args: [arg1 arg2] +Inside subCmd PostRun with args: [arg1 arg2] +Inside subCmd PersistentPostRun with args: [arg1 arg2] ``` ## Suggestions when "unknown command" happens @@ -902,41 +694,28 @@ Did you mean this? Run 'kubectl help' for usage. ``` -## Generating Markdown-formatted documentation for your command +## Generating documentation for your command -Cobra can generate a Markdown-formatted document based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Markdown Docs](doc/md_docs.md). +Cobra can generate documentation based on subcommands, flags, etc. in the following formats: -## Generating man pages for your command +- [Markdown](doc/md_docs.md) +- [ReStructured Text](doc/rest_docs.md) +- [Man Page](doc/man_docs.md) -Cobra can generate a man page based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Man Docs](doc/man_docs.md). - -## Generating bash completions for your command +## Generating bash completions Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible. Read more about it in [Bash Completions](bash_completions.md). - -## Extensions - -Libraries for extending Cobra: - -* [cmdns](https://github.com/gosuri/cmdns): Enables name spacing a command's immediate children. It provides an alternative way to structure subcommands, similar to `heroku apps:create` and `ovrclk clusters:launch`. - -## Contributing +# Contributing 1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request +2. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`) +3. Create your feature branch (`git checkout -b my-new-feature`) +4. Make changes and add them (`git add .`) +5. Commit your changes (`git commit -m 'Add some feature'`) +6. Push to the branch (`git push origin my-new-feature`) +7. Create new pull request -## Contributors - -Names in no particular order: - -* [spf13](https://github.com/spf13), -[eparis](https://github.com/eparis), -[bep](https://github.com/bep), and many more! - -## License +# License Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go index e402065dd..c19fe7a06 100644 --- a/vendor/github.com/spf13/cobra/bash_completions.go +++ b/vendor/github.com/spf13/cobra/bash_completions.go @@ -92,7 +92,7 @@ __handle_reply() cur="${cur#*=}" ${flags_completion[${index}]} if [ -n "${ZSH_VERSION}" ]; then - # zfs completion needs --flag= prefix + # zsh completion needs --flag= prefix eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )" fi fi diff --git a/vendor/github.com/spf13/cobra/cobra/README.md b/vendor/github.com/spf13/cobra/cobra/README.md new file mode 100644 index 000000000..6054f95c5 --- /dev/null +++ b/vendor/github.com/spf13/cobra/cobra/README.md @@ -0,0 +1,94 @@ +# Cobra Generator + +Cobra provides its own program that will create your application and add any +commands you want. It's the easiest way to incorporate Cobra into your application. + +In order to use the cobra command, compile it using the following command: + + go get github.com/spf13/cobra/cobra + +This will create the cobra executable under your `$GOPATH/bin` directory. + +### cobra init + +The `cobra init [app]` command will create your initial application code +for you. It is a very powerful application that will populate your program with +the right structure so you can immediately enjoy all the benefits of Cobra. It +will also automatically apply the license you specify to your application. + +Cobra init is pretty smart. You can provide it a full path, or simply a path +similar to what is expected in the import. + +``` +cobra init github.com/spf13/newApp +``` + +### cobra add + +Once an application is initialized, Cobra can create additional commands for you. +Let's say you created an app and you wanted the following commands for it: + +* app serve +* app config +* app config create + +In your project directory (where your main.go file is) you would run the following: + +``` +cobra add serve +cobra add config +cobra add create -p 'configCmd' +``` + +*Note: Use camelCase (not snake_case/snake-case) for command names. +Otherwise, you will encounter errors. +For example, `cobra add add-user` is incorrect, but `cobra add addUser` is valid.* + +Once you have run these three commands you would have an app structure similar to +the following: + +``` + ▾ app/ + ▾ cmd/ + serve.go + config.go + create.go + main.go +``` + +At this point you can run `go run main.go` and it would run your app. `go run +main.go serve`, `go run main.go config`, `go run main.go config create` along +with `go run main.go help serve`, etc. would all work. + +Obviously you haven't added your own code to these yet. The commands are ready +for you to give them their tasks. Have fun! + +### Configuring the cobra generator + +The Cobra generator will be easier to use if you provide a simple configuration +file which will help you eliminate providing a bunch of repeated information in +flags over and over. + +An example ~/.cobra.yaml file: + +```yaml +author: Steve Francia +license: MIT +``` + +You can specify no license by setting `license` to `none` or you can specify +a custom license: + +```yaml +license: + header: This file is part of {{ .appName }}. + text: | + {{ .copyright }} + + This is my license. There are many like it, but this one is mine. + My license is my best friend. It is my life. I must master it as I must + master my life. +``` + +You can also use built-in licenses. For example, **GPLv2**, **GPLv3**, **LGPL**, +**AGPL**, **MIT**, **2-Clause BSD** or **3-Clause BSD**. diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go b/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go index cf2a6b7af..a070134dd 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go @@ -63,7 +63,7 @@ func getLicense() License { // If user wants to have custom license, use that. if viper.IsSet("license.header") || viper.IsSet("license.text") { return License{Header: viper.GetString("license.header"), - Text: "license.text"} + Text: viper.GetString("license.text")} } // If user wants to have built-in license, use that. diff --git a/vendor/github.com/spf13/cobra/cobra_test.go b/vendor/github.com/spf13/cobra/cobra_test.go index d5df951e6..8192b526f 100644 --- a/vendor/github.com/spf13/cobra/cobra_test.go +++ b/vendor/github.com/spf13/cobra/cobra_test.go @@ -190,6 +190,7 @@ func flagInit() { cmdTimes.Flags().IntVarP(&flagi2, "inttwo", "j", 234, "help message for flag inttwo") cmdTimes.Flags().StringVarP(&flags2b, "strtwo", "t", "2", strtwoChildHelp) cmdTimes.PersistentFlags().StringVarP(&flags2b, "strtwo", "t", "2", strtwoChildHelp) + cmdTimes.LocalFlags() // populate lflags before parent is set cmdPrint.Flags().BoolVarP(&flagb3, "boolthree", "b", true, "help message for flag boolthree") cmdPrint.PersistentFlags().StringVarP(&flags3, "strthree", "s", "three", "help message for flag strthree") } @@ -210,8 +211,8 @@ func initialize() *Command { rootPersPre, echoPre, echoPersPre, timesPersPre = nil, nil, nil, nil var c = cmdRootNoRun - flagInit() commandInit() + flagInit() return c } @@ -219,8 +220,8 @@ func initializeWithSameName() *Command { tt, tp, te = nil, nil, nil rootPersPre, echoPre, echoPersPre, timesPersPre = nil, nil, nil, nil var c = cmdRootSameName - flagInit() commandInit() + flagInit() return c } @@ -910,6 +911,7 @@ func TestRootHelp(t *testing.T) { func TestFlagAccess(t *testing.T) { initialize() + cmdEcho.AddCommand(cmdTimes) local := cmdTimes.LocalFlags() inherited := cmdTimes.InheritedFlags() @@ -1165,11 +1167,18 @@ func TestGlobalNormFuncPropagation(t *testing.T) { } rootCmd := initialize() + rootCmd.AddCommand(cmdEcho) + rootCmd.SetGlobalNormalizationFunc(normFunc) if reflect.ValueOf(normFunc).Pointer() != reflect.ValueOf(rootCmd.GlobalNormalizationFunc()).Pointer() { t.Error("rootCmd seems to have a wrong normalization function") } + // Also check it propagates retroactively + if reflect.ValueOf(normFunc).Pointer() != reflect.ValueOf(cmdEcho.GlobalNormalizationFunc()).Pointer() { + t.Error("cmdEcho should have had the normalization function of rootCmd") + } + // First add the cmdEchoSub to cmdPrint cmdPrint.AddCommand(cmdEchoSub) if cmdPrint.GlobalNormalizationFunc() != nil && cmdEchoSub.GlobalNormalizationFunc() != nil { @@ -1184,6 +1193,67 @@ func TestGlobalNormFuncPropagation(t *testing.T) { } } +func TestNormPassedOnLocal(t *testing.T) { + n := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + + cmd := &Command{} + flagVal := false + + cmd.Flags().BoolVar(&flagVal, "flagname", true, "this is a dummy flag") + cmd.SetGlobalNormalizationFunc(n) + if cmd.LocalFlags().Lookup("flagname") != cmd.LocalFlags().Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to Local flag set") + } +} + +func TestNormPassedOnInherited(t *testing.T) { + n := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + + cmd, childBefore, childAfter := &Command{}, &Command{}, &Command{} + flagVal := false + cmd.AddCommand(childBefore) + + cmd.PersistentFlags().BoolVar(&flagVal, "flagname", true, "this is a dummy flag") + cmd.SetGlobalNormalizationFunc(n) + + cmd.AddCommand(childAfter) + + if f := childBefore.InheritedFlags(); f.Lookup("flagname") == nil || f.Lookup("flagname") != f.Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to inherited flag set in command added before flag") + } + if f := childAfter.InheritedFlags(); f.Lookup("flagname") == nil || f.Lookup("flagname") != f.Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to inherited flag set in command added after flag") + } +} + +// Related to https://github.com/spf13/cobra/issues/521. +func TestNormConsistent(t *testing.T) { + n := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + id := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(name) + } + + cmd := &Command{} + flagVal := false + + cmd.Flags().BoolVar(&flagVal, "flagname", true, "this is a dummy flag") + // Build local flag set + cmd.LocalFlags() + + cmd.SetGlobalNormalizationFunc(n) + cmd.SetGlobalNormalizationFunc(id) + + if cmd.LocalFlags().Lookup("flagname") == cmd.LocalFlags().Lookup("FLAGNAME") { + t.Error("Normalizing flag names should not result in duplicate flags") + } +} + func TestFlagOnPflagCommandLine(t *testing.T) { flagName := "flagOnCommandLine" pflag.String(flagName, "", "about my flag") diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index 185e45263..58e6ceb07 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -125,8 +125,9 @@ type Command struct { // Must be > 0. SuggestionsMinimumDistance int - // name is the command name, usually the executable's name. - name string + // TraverseChildren parses flags on all parents before executing child command. + TraverseChildren bool + // commands is the list of commands supported by this program. commands []*Command // parent is a parent command for this command. @@ -475,13 +476,14 @@ func argsMinusFirstX(args []string, x string) []string { return args } +func isFlagArg(arg string) bool { + return ((len(arg) >= 3 && arg[1] == '-') || + (len(arg) >= 2 && arg[0] == '-' && arg[1] != '-')) +} + // Find the target command given the args and command tree // Meant to be run on the highest node. Only searches down. func (c *Command) Find(args []string) (*Command, []string, error) { - if c == nil { - return nil, nil, fmt.Errorf("Called find() on a nil Command") - } - var innerfind func(*Command, []string) (*Command, []string) innerfind = func(c *Command, innerArgs []string) (*Command, []string) { @@ -490,28 +492,11 @@ func (c *Command) Find(args []string) (*Command, []string, error) { return c, innerArgs } nextSubCmd := argsWOflags[0] - matches := make([]*Command, 0) - for _, cmd := range c.commands { - if cmd.Name() == nextSubCmd || cmd.HasAlias(nextSubCmd) { // exact name or alias match - return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd)) - } - if EnablePrefixMatching { - if strings.HasPrefix(cmd.Name(), nextSubCmd) { // prefix match - matches = append(matches, cmd) - } - for _, x := range cmd.Aliases { - if strings.HasPrefix(x, nextSubCmd) { - matches = append(matches, cmd) - } - } - } - } - // only accept a single prefix match - multiple matches would be ambiguous - if len(matches) == 1 { - return innerfind(matches[0], argsMinusFirstX(innerArgs, argsWOflags[0])) + cmd := c.findNext(nextSubCmd) + if cmd != nil { + return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd)) } - return c, innerArgs } @@ -539,6 +524,66 @@ func (c *Command) findSuggestions(arg string) string { return suggestionsString } +func (c *Command) findNext(next string) *Command { + matches := make([]*Command, 0) + for _, cmd := range c.commands { + if cmd.Name() == next || cmd.HasAlias(next) { + return cmd + } + if EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) { + matches = append(matches, cmd) + } + } + + if len(matches) == 1 { + return matches[0] + } + return nil +} + +// Traverse the command tree to find the command, and parse args for +// each parent. +func (c *Command) Traverse(args []string) (*Command, []string, error) { + flags := []string{} + inFlag := false + + for i, arg := range args { + switch { + // A long flag with a space separated value + case strings.HasPrefix(arg, "--") && !strings.Contains(arg, "="): + // TODO: this isn't quite right, we should really check ahead for 'true' or 'false' + inFlag = !hasNoOptDefVal(arg[2:], c.Flags()) + flags = append(flags, arg) + continue + // A short flag with a space separated value + case strings.HasPrefix(arg, "-") && !strings.Contains(arg, "=") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()): + inFlag = true + flags = append(flags, arg) + continue + // The value for a flag + case inFlag: + inFlag = false + flags = append(flags, arg) + continue + // A flag without a value, or with an `=` separated value + case isFlagArg(arg): + flags = append(flags, arg) + continue + } + + cmd := c.findNext(arg) + if cmd == nil { + return c, args, nil + } + + if err := c.ParseFlags(flags); err != nil { + return nil, args, err + } + return cmd.Traverse(args[i+1:]) + } + return c, args, nil +} + // SuggestionsFor provides suggestions for the typedName. func (c *Command) SuggestionsFor(typedName string) []string { suggestions := []string{} @@ -646,6 +691,9 @@ func (c *Command) execute(a []string) (err error) { c.PreRun(c, argWoFlags) } + if err := c.validateRequiredFlags(); err != nil { + return err + } if c.RunE != nil { if err := c.RunE(c, argWoFlags); err != nil { return err @@ -714,7 +762,12 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { args = c.args } - cmd, flags, err := c.Find(args) + var flags []string + if c.TraverseChildren { + cmd, flags, err = c.Traverse(args) + } else { + cmd, flags, err = c.Find(args) + } if err != nil { // If found parse to a subcommand and then failed, talk about the subcommand if cmd != nil { @@ -726,6 +779,7 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { } return c, err } + err = cmd.execute(flags) if err != nil { // Always show help if requested, even if SilenceErrors is in @@ -757,6 +811,25 @@ func (c *Command) ValidateArgs(args []string) error { return c.Args(c, args) } +func (c *Command) validateRequiredFlags() error { + flags := c.Flags() + missingFlagNames := []string{} + flags.VisitAll(func(pflag *flag.Flag) { + requiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag] + if !found { + return + } + if (requiredAnnotation[0] == "true") && !pflag.Changed { + missingFlagNames = append(missingFlagNames, pflag.Name) + } + }) + + if len(missingFlagNames) > 0 { + return fmt.Errorf(`Required flag(s) "%s" have/has not been set`, strings.Join(missingFlagNames, `", "`)) + } + return nil +} + // InitDefaultHelpFlag adds default help flag to c. // It is called automatically by executing the c or by calling help and usage. // If c already has help flag, it will do nothing. @@ -806,6 +879,7 @@ Simply type ` + c.Name() + ` help [path to command] for full details.`, // ResetCommands used for testing. func (c *Command) ResetCommands() { + c.parent = nil c.commands = nil c.helpCommand = nil c.parentsPflags = nil @@ -971,15 +1045,12 @@ func (c *Command) DebugFlags() { // Name returns the command's name: the first word in the use line. func (c *Command) Name() string { - if c.name == "" { - name := c.Use - i := strings.Index(name, " ") - if i >= 0 { - name = name[:i] - } - c.name = name + name := c.Use + i := strings.Index(name, " ") + if i >= 0 { + name = name[:i] } - return c.name + return name } // HasAlias determines if a given string is an alias of the command. @@ -992,7 +1063,21 @@ func (c *Command) HasAlias(s string) bool { return false } -// NameAndAliases returns string containing name and all aliases +// hasNameOrAliasPrefix returns true if the Name or any of aliases start +// with prefix +func (c *Command) hasNameOrAliasPrefix(prefix string) bool { + if strings.HasPrefix(c.Name(), prefix) { + return true + } + for _, alias := range c.Aliases { + if strings.HasPrefix(alias, prefix) { + return true + } + } + return false +} + +// NameAndAliases returns a list of the command name and all aliases func (c *Command) NameAndAliases() string { return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ") } @@ -1132,6 +1217,9 @@ func (c *Command) LocalFlags() *flag.FlagSet { c.lflags.SetOutput(c.flagErrorBuf) } c.lflags.SortFlags = c.Flags().SortFlags + if c.globNormFunc != nil { + c.lflags.SetNormalizeFunc(c.globNormFunc) + } addToLocal := func(f *flag.Flag) { if c.lflags.Lookup(f.Name) == nil && c.parentsPflags.Lookup(f.Name) == nil { @@ -1156,6 +1244,10 @@ func (c *Command) InheritedFlags() *flag.FlagSet { } local := c.LocalFlags() + if c.globNormFunc != nil { + c.iflags.SetNormalizeFunc(c.globNormFunc) + } + c.parentsPflags.VisitAll(func(f *flag.Flag) { if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil { c.iflags.AddFlag(f) @@ -1189,6 +1281,10 @@ func (c *Command) ResetFlags() { c.flags.SetOutput(c.flagErrorBuf) c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) c.pflags.SetOutput(c.flagErrorBuf) + + c.lflags = nil + c.iflags = nil + c.parentsPflags = nil } // HasFlags checks if the command contains any flags (local plus persistent from the entire structure). @@ -1264,6 +1360,9 @@ func (c *Command) ParseFlags(args []string) error { return nil } + if c.flagErrorBuf == nil { + c.flagErrorBuf = new(bytes.Buffer) + } beforeErrorBufLen := c.flagErrorBuf.Len() c.mergePersistentFlags() err := c.Flags().Parse(args) @@ -1298,6 +1397,10 @@ func (c *Command) updateParentsPflags() { c.parentsPflags.SortFlags = false } + if c.globNormFunc != nil { + c.parentsPflags.SetNormalizeFunc(c.globNormFunc) + } + c.Root().PersistentFlags().AddFlagSet(flag.CommandLine) c.VisitParents(func(parent *Command) { diff --git a/vendor/github.com/spf13/cobra/command_test.go b/vendor/github.com/spf13/cobra/command_test.go index aa6658f85..dda355f36 100644 --- a/vendor/github.com/spf13/cobra/command_test.go +++ b/vendor/github.com/spf13/cobra/command_test.go @@ -347,3 +347,180 @@ func TestSetHelpCommand(t *testing.T) { t.Errorf("Expected to contain %q message, but got %q", correctMessage, output.String()) } } + +func TestTraverseWithParentFlags(t *testing.T) { + cmd := &Command{ + Use: "do", + TraverseChildren: true, + } + cmd.Flags().String("foo", "", "foo things") + cmd.Flags().BoolP("goo", "g", false, "foo things") + + sub := &Command{Use: "next"} + sub.Flags().String("add", "", "add things") + cmd.AddCommand(sub) + + c, args, err := cmd.Traverse([]string{"-g", "--foo", "ok", "next", "--add"}) + if err != nil { + t.Fatalf("Expected no error: %s", err) + } + if len(args) != 1 && args[0] != "--add" { + t.Fatalf("wrong args %s", args) + } + if c.Name() != sub.Name() { + t.Fatalf("wrong command %q expected %q", c.Name(), sub.Name()) + } +} + +func TestTraverseNoParentFlags(t *testing.T) { + cmd := &Command{ + Use: "do", + TraverseChildren: true, + } + cmd.Flags().String("foo", "", "foo things") + + sub := &Command{Use: "next"} + sub.Flags().String("add", "", "add things") + cmd.AddCommand(sub) + + c, args, err := cmd.Traverse([]string{"next"}) + if err != nil { + t.Fatalf("Expected no error: %s", err) + } + if len(args) != 0 { + t.Fatalf("wrong args %s", args) + } + if c.Name() != sub.Name() { + t.Fatalf("wrong command %q expected %q", c.Name(), sub.Name()) + } +} + +func TestTraverseWithBadParentFlags(t *testing.T) { + cmd := &Command{ + Use: "do", + TraverseChildren: true, + } + sub := &Command{Use: "next"} + sub.Flags().String("add", "", "add things") + cmd.AddCommand(sub) + + expected := "got unknown flag: --add" + + c, _, err := cmd.Traverse([]string{"--add", "ok", "next"}) + if err == nil || strings.Contains(err.Error(), expected) { + t.Fatalf("Expected error %s got %s", expected, err) + } + if c != nil { + t.Fatalf("Expected nil command") + } +} + +func TestTraverseWithBadChildFlag(t *testing.T) { + cmd := &Command{ + Use: "do", + TraverseChildren: true, + } + cmd.Flags().String("foo", "", "foo things") + + sub := &Command{Use: "next"} + cmd.AddCommand(sub) + + // Expect no error because the last commands args shouldn't be parsed in + // Traverse + c, args, err := cmd.Traverse([]string{"next", "--add"}) + if err != nil { + t.Fatalf("Expected no error: %s", err) + } + if len(args) != 1 && args[0] != "--add" { + t.Fatalf("wrong args %s", args) + } + if c.Name() != sub.Name() { + t.Fatalf("wrong command %q expected %q", c.Name(), sub.Name()) + } +} + +func TestTraverseWithTwoSubcommands(t *testing.T) { + cmd := &Command{ + Use: "do", + TraverseChildren: true, + } + + sub := &Command{ + Use: "sub", + TraverseChildren: true, + } + cmd.AddCommand(sub) + + subsub := &Command{ + Use: "subsub", + } + sub.AddCommand(subsub) + + c, _, err := cmd.Traverse([]string{"sub", "subsub"}) + if err != nil { + t.Fatalf("Expected no error: %s", err) + } + if c.Name() != subsub.Name() { + t.Fatalf("wrong command %q expected %q", c.Name(), subsub.Name()) + } +} + +func TestRequiredFlags(t *testing.T) { + c := &Command{Use: "c", Run: func(*Command, []string) {}} + output := new(bytes.Buffer) + c.SetOutput(output) + c.Flags().String("foo1", "", "required foo1") + c.MarkFlagRequired("foo1") + c.Flags().String("foo2", "", "required foo2") + c.MarkFlagRequired("foo2") + c.Flags().String("bar", "", "optional bar") + + expected := fmt.Sprintf("Required flag(s) %q, %q have/has not been set", "foo1", "foo2") + + if err := c.Execute(); err != nil { + if err.Error() != expected { + t.Errorf("expected %v, got %v", expected, err.Error()) + } + } +} + +func TestPersistentRequiredFlags(t *testing.T) { + parent := &Command{Use: "parent", Run: func(*Command, []string) {}} + output := new(bytes.Buffer) + parent.SetOutput(output) + parent.PersistentFlags().String("foo1", "", "required foo1") + parent.MarkPersistentFlagRequired("foo1") + parent.PersistentFlags().String("foo2", "", "required foo2") + parent.MarkPersistentFlagRequired("foo2") + parent.Flags().String("foo3", "", "optional foo3") + + child := &Command{Use: "child", Run: func(*Command, []string) {}} + child.Flags().String("bar1", "", "required bar1") + child.MarkFlagRequired("bar1") + child.Flags().String("bar2", "", "required bar2") + child.MarkFlagRequired("bar2") + child.Flags().String("bar3", "", "optional bar3") + + parent.AddCommand(child) + parent.SetArgs([]string{"child"}) + + expected := fmt.Sprintf("Required flag(s) %q, %q, %q, %q have/has not been set", "bar1", "bar2", "foo1", "foo2") + + if err := parent.Execute(); err != nil { + if err.Error() != expected { + t.Errorf("expected %v, got %v", expected, err.Error()) + } + } +} + +// TestUpdateName checks if c.Name() updates on changed c.Use. +// Related to https://github.com/spf13/cobra/pull/422#discussion_r143918343. +func TestUpdateName(t *testing.T) { + c := &Command{Use: "name xyz"} + originalName := c.Name() + + c.Use = "changedName abc" + if originalName == c.Name() || c.Name() != "changedName" { + t.Error("c.Name() should be updated on changed c.Use") + } +} diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs.go b/vendor/github.com/spf13/cobra/doc/rest_docs.go new file mode 100644 index 000000000..4913e3ee2 --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs.go @@ -0,0 +1,185 @@ +//Copyright 2015 Red Hat Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package doc + +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "sort" + "strings" + "time" + + "github.com/spf13/cobra" +) + +func printOptionsReST(buf *bytes.Buffer, cmd *cobra.Command, name string) error { + flags := cmd.NonInheritedFlags() + flags.SetOutput(buf) + if flags.HasFlags() { + buf.WriteString("Options\n") + buf.WriteString("~~~~~~~\n\n::\n\n") + flags.PrintDefaults() + buf.WriteString("\n") + } + + parentFlags := cmd.InheritedFlags() + parentFlags.SetOutput(buf) + if parentFlags.HasFlags() { + buf.WriteString("Options inherited from parent commands\n") + buf.WriteString("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n") + parentFlags.PrintDefaults() + buf.WriteString("\n") + } + return nil +} + +// linkHandler for default ReST hyperlink markup +func defaultLinkHandler(name, ref string) string { + return fmt.Sprintf("`%s <%s.rst>`_", name, ref) +} + +// GenReST creates reStructured Text output. +func GenReST(cmd *cobra.Command, w io.Writer) error { + return GenReSTCustom(cmd, w, defaultLinkHandler) +} + +// GenReSTCustom creates custom reStructured Text output. +func GenReSTCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string, string) string) error { + cmd.InitDefaultHelpCmd() + cmd.InitDefaultHelpFlag() + + buf := new(bytes.Buffer) + name := cmd.CommandPath() + + short := cmd.Short + long := cmd.Long + if len(long) == 0 { + long = short + } + ref := strings.Replace(name, " ", "_", -1) + + buf.WriteString(".. _" + ref + ":\n\n") + buf.WriteString(name + "\n") + buf.WriteString(strings.Repeat("-", len(name)) + "\n\n") + buf.WriteString(short + "\n\n") + buf.WriteString("Synopsis\n") + buf.WriteString("~~~~~~~~\n\n") + buf.WriteString("\n" + long + "\n\n") + + if cmd.Runnable() { + buf.WriteString(fmt.Sprintf("::\n\n %s\n\n", cmd.UseLine())) + } + + if len(cmd.Example) > 0 { + buf.WriteString("Examples\n") + buf.WriteString("~~~~~~~~\n\n") + buf.WriteString(fmt.Sprintf("::\n\n%s\n\n", indentString(cmd.Example, " "))) + } + + if err := printOptionsReST(buf, cmd, name); err != nil { + return err + } + if hasSeeAlso(cmd) { + buf.WriteString("SEE ALSO\n") + buf.WriteString("~~~~~~~~\n\n") + if cmd.HasParent() { + parent := cmd.Parent() + pname := parent.CommandPath() + ref = strings.Replace(pname, " ", "_", -1) + buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(pname, ref), parent.Short)) + cmd.VisitParents(func(c *cobra.Command) { + if c.DisableAutoGenTag { + cmd.DisableAutoGenTag = c.DisableAutoGenTag + } + }) + } + + children := cmd.Commands() + sort.Sort(byName(children)) + + for _, child := range children { + if !child.IsAvailableCommand() || child.IsAdditionalHelpTopicCommand() { + continue + } + cname := name + " " + child.Name() + ref = strings.Replace(cname, " ", "_", -1) + buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(cname, ref), child.Short)) + } + buf.WriteString("\n") + } + if !cmd.DisableAutoGenTag { + buf.WriteString("*Auto generated by spf13/cobra on " + time.Now().Format("2-Jan-2006") + "*\n") + } + _, err := buf.WriteTo(w) + return err +} + +// GenReSTTree will generate a ReST page for this command and all +// descendants in the directory given. +// This function may not work correctly if your command names have `-` in them. +// If you have `cmd` with two subcmds, `sub` and `sub-third`, +// and `sub` has a subcommand called `third`, it is undefined which +// help output will be in the file `cmd-sub-third.1`. +func GenReSTTree(cmd *cobra.Command, dir string) error { + emptyStr := func(s string) string { return "" } + return GenReSTTreeCustom(cmd, dir, emptyStr, defaultLinkHandler) +} + +// GenReSTTreeCustom is the the same as GenReSTTree, but +// with custom filePrepender and linkHandler. +func GenReSTTreeCustom(cmd *cobra.Command, dir string, filePrepender func(string) string, linkHandler func(string, string) string) error { + for _, c := range cmd.Commands() { + if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() { + continue + } + if err := GenReSTTreeCustom(c, dir, filePrepender, linkHandler); err != nil { + return err + } + } + + basename := strings.Replace(cmd.CommandPath(), " ", "_", -1) + ".rst" + filename := filepath.Join(dir, basename) + f, err := os.Create(filename) + if err != nil { + return err + } + defer f.Close() + + if _, err := io.WriteString(f, filePrepender(filename)); err != nil { + return err + } + if err := GenReSTCustom(cmd, f, linkHandler); err != nil { + return err + } + return nil +} + +// adapted from: https://github.com/kr/text/blob/main/indent.go +func indentString(s, p string) string { + var res []byte + b := []byte(s) + prefix := []byte(p) + bol := true + for _, c := range b { + if bol && c != '\n' { + res = append(res, prefix...) + } + res = append(res, c) + bol = c == '\n' + } + return string(res) +} diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs.md b/vendor/github.com/spf13/cobra/doc/rest_docs.md new file mode 100644 index 000000000..6098430ef --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs.md @@ -0,0 +1,114 @@ +# Generating ReStructured Text Docs For Your Own cobra.Command + +Generating ReST pages from a cobra command is incredibly easy. An example is as follows: + +```go +package main + +import ( + "log" + + "github.com/spf13/cobra" + "github.com/spf13/cobra/doc" +) + +func main() { + cmd := &cobra.Command{ + Use: "test", + Short: "my test program", + } + err := doc.GenReSTTree(cmd, "/tmp") + if err != nil { + log.Fatal(err) + } +} +``` + +That will get you a ReST document `/tmp/test.rst` + +## Generate ReST docs for the entire command tree + +This program can actually generate docs for the kubectl command in the kubernetes project + +```go +package main + +import ( + "log" + "io/ioutil" + "os" + + "k8s.io/kubernetes/pkg/kubectl/cmd" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + + "github.com/spf13/cobra/doc" +) + +func main() { + kubectl := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) + err := doc.GenReSTTree(kubectl, "./") + if err != nil { + log.Fatal(err) + } +} +``` + +This will generate a whole series of files, one for each command in the tree, in the directory specified (in this case "./") + +## Generate ReST docs for a single command + +You may wish to have more control over the output, or only generate for a single command, instead of the entire command tree. If this is the case you may prefer to `GenReST` instead of `GenReSTTree` + +```go + out := new(bytes.Buffer) + err := doc.GenReST(cmd, out) + if err != nil { + log.Fatal(err) + } +``` + +This will write the ReST doc for ONLY "cmd" into the out, buffer. + +## Customize the output + +Both `GenReST` and `GenReSTTree` have alternate versions with callbacks to get some control of the output: + +```go +func GenReSTTreeCustom(cmd *Command, dir string, filePrepender func(string) string, linkHandler func(string, string) string) error { + //... +} +``` + +```go +func GenReSTCustom(cmd *Command, out *bytes.Buffer, linkHandler func(string, string) string) error { + //... +} +``` + +The `filePrepender` will prepend the return value given the full filepath to the rendered ReST file. A common use case is to add front matter to use the generated documentation with [Hugo](http://gohugo.io/): + +```go +const fmTemplate = `--- +date: %s +title: "%s" +slug: %s +url: %s +--- +` +filePrepender := func(filename string) string { + now := time.Now().Format(time.RFC3339) + name := filepath.Base(filename) + base := strings.TrimSuffix(name, path.Ext(name)) + url := "/commands/" + strings.ToLower(base) + "/" + return fmt.Sprintf(fmTemplate, now, strings.Replace(base, "_", " ", -1), base, url) +} +``` + +The `linkHandler` can be used to customize the rendered links to the commands, given a command name and reference. This is useful while converting rst to html or while generating documentation with tools like Sphinx where `:ref:` is used: + +```go +// Sphinx cross-referencing format +linkHandler := func(name, ref string) string { + return fmt.Sprintf(":ref:`%s <%s>`", name, ref) +} +``` diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs_test.go b/vendor/github.com/spf13/cobra/doc/rest_docs_test.go new file mode 100644 index 000000000..d5e1dfad0 --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs_test.go @@ -0,0 +1,124 @@ +package doc + +import ( + "bytes" + "io/ioutil" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/spf13/cobra" +) + +func TestGenRSTDoc(t *testing.T) { + c := initializeWithRootCmd() + // Need two commands to run the command alphabetical sort + cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) + c.AddCommand(cmdPrint, cmdEcho) + cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) + + out := new(bytes.Buffer) + + // We generate on s subcommand so we have both subcommands and parents + if err := GenReST(cmdEcho, out); err != nil { + t.Fatal(err) + } + found := out.String() + + // Our description + expected := cmdEcho.Long + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + // Better have our example + expected = cmdEcho.Example + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + // A local flag + expected = "boolone" + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + // persistent flag on parent + expected = "rootflag" + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + // We better output info about our parent + expected = cmdRootWithRun.Short + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + // And about subcommands + expected = cmdEchoSub.Short + if !strings.Contains(found, expected) { + t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + } + + unexpected := cmdDeprecated.Short + if strings.Contains(found, unexpected) { + t.Errorf("Unexpected response.\nFound: %v\nBut should not have!!\n", unexpected) + } +} + +func TestGenRSTNoTag(t *testing.T) { + c := initializeWithRootCmd() + // Need two commands to run the command alphabetical sort + cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) + c.AddCommand(cmdPrint, cmdEcho) + c.DisableAutoGenTag = true + cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) + out := new(bytes.Buffer) + + if err := GenReST(c, out); err != nil { + t.Fatal(err) + } + found := out.String() + + unexpected := "Auto generated" + checkStringOmits(t, found, unexpected) + +} + +func TestGenRSTTree(t *testing.T) { + cmd := &cobra.Command{ + Use: "do [OPTIONS] arg1 arg2", + } + tmpdir, err := ioutil.TempDir("", "test-gen-rst-tree") + if err != nil { + t.Fatalf("Failed to create tmpdir: %s", err.Error()) + } + defer os.RemoveAll(tmpdir) + + if err := GenReSTTree(cmd, tmpdir); err != nil { + t.Fatalf("GenReSTTree failed: %s", err.Error()) + } + + if _, err := os.Stat(filepath.Join(tmpdir, "do.rst")); err != nil { + t.Fatalf("Expected file 'do.rst' to exist") + } +} + +func BenchmarkGenReSTToFile(b *testing.B) { + c := initializeWithRootCmd() + file, err := ioutil.TempFile("", "") + if err != nil { + b.Fatal(err) + } + defer os.Remove(file.Name()) + defer file.Close() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + if err := GenReST(c, file); err != nil { + b.Fatal(err) + } + } +} diff --git a/vendor/golang.org/x/crypto/acme/acme.go b/vendor/golang.org/x/crypto/acme/acme.go index e8388b083..fa9c4b39e 100644 --- a/vendor/golang.org/x/crypto/acme/acme.go +++ b/vendor/golang.org/x/crypto/acme/acme.go @@ -142,7 +142,7 @@ func (c *Client) Discover(ctx context.Context) (Directory, error) { // // In the case where CA server does not provide the issued certificate in the response, // CreateCert will poll certURL using c.FetchCert, which will result in additional round-trips. -// In such scenario the caller can cancel the polling with ctx. +// In such a scenario, the caller can cancel the polling with ctx. // // CreateCert returns an error if the CA's response or chain was unreasonably large. // Callers are encouraged to parse the returned value to ensure the certificate is valid and has the expected features. @@ -257,7 +257,7 @@ func (c *Client) RevokeCert(ctx context.Context, key crypto.Signer, cert []byte, func AcceptTOS(tosURL string) bool { return true } // Register creates a new account registration by following the "new-reg" flow. -// It returns registered account. The account is not modified. +// It returns the registered account. The account is not modified. // // The registration may require the caller to agree to the CA's Terms of Service (TOS). // If so, and the account has not indicated the acceptance of the terms (see Account for details), @@ -995,6 +995,7 @@ func keyAuth(pub crypto.PublicKey, token string) (string, error) { // tlsChallengeCert creates a temporary certificate for TLS-SNI challenges // with the given SANs and auto-generated public/private key pair. +// The Subject Common Name is set to the first SAN to aid debugging. // To create a cert with a custom key pair, specify WithKey option. func tlsChallengeCert(san []string, opt []CertOption) (tls.Certificate, error) { var ( @@ -1033,6 +1034,9 @@ func tlsChallengeCert(san []string, opt []CertOption) (tls.Certificate, error) { } } tmpl.DNSNames = san + if len(san) > 0 { + tmpl.Subject.CommonName = san[0] + } der, err := x509.CreateCertificate(rand.Reader, tmpl, tmpl, key.Public(), key) if err != nil { diff --git a/vendor/golang.org/x/crypto/acme/acme_test.go b/vendor/golang.org/x/crypto/acme/acme_test.go index 14832de49..b44af5959 100644 --- a/vendor/golang.org/x/crypto/acme/acme_test.go +++ b/vendor/golang.org/x/crypto/acme/acme_test.go @@ -1186,6 +1186,9 @@ func TestTLSSNI01ChallengeCert(t *testing.T) { if cert.DNSNames[0] != name { t.Errorf("cert.DNSNames[0] != name: %q vs %q", cert.DNSNames[0], name) } + if cn := cert.Subject.CommonName; cn != san { + t.Errorf("cert.Subject.CommonName = %q; want %q", cn, san) + } } func TestTLSSNI02ChallengeCert(t *testing.T) { @@ -1219,6 +1222,9 @@ func TestTLSSNI02ChallengeCert(t *testing.T) { if i >= len(cert.DNSNames) || cert.DNSNames[i] != name { t.Errorf("%v doesn't have %q", cert.DNSNames, name) } + if cn := cert.Subject.CommonName; cn != sanA { + t.Errorf("CommonName = %q; want %q", cn, sanA) + } } func TestTLSChallengeCertOpt(t *testing.T) { diff --git a/vendor/golang.org/x/crypto/acme/autocert/autocert.go b/vendor/golang.org/x/crypto/acme/autocert/autocert.go index b10102017..94edba986 100644 --- a/vendor/golang.org/x/crypto/acme/autocert/autocert.go +++ b/vendor/golang.org/x/crypto/acme/autocert/autocert.go @@ -371,7 +371,7 @@ func (m *Manager) createCert(ctx context.Context, domain string) (*tls.Certifica // We are the first; state is locked. // Unblock the readers when domain ownership is verified - // and the we got the cert or the process failed. + // and we got the cert or the process failed. defer state.Unlock() state.locked = false @@ -439,7 +439,7 @@ func (m *Manager) certState(domain string) (*certState, error) { return state, nil } -// authorizedCert starts domain ownership verification process and requests a new cert upon success. +// authorizedCert starts the domain ownership verification process and requests a new cert upon success. // The key argument is the certificate private key. func (m *Manager) authorizedCert(ctx context.Context, key crypto.Signer, domain string) (der [][]byte, leaf *x509.Certificate, err error) { if err := m.verify(ctx, domain); err != nil { diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp.go b/vendor/golang.org/x/crypto/ocsp/ocsp.go index ae8d63e73..5e73146d7 100644 --- a/vendor/golang.org/x/crypto/ocsp/ocsp.go +++ b/vendor/golang.org/x/crypto/ocsp/ocsp.go @@ -295,17 +295,17 @@ const ( // The enumerated reasons for revoking a certificate. See RFC 5280. const ( - Unspecified = iota - KeyCompromise = iota - CACompromise = iota - AffiliationChanged = iota - Superseded = iota - CessationOfOperation = iota - CertificateHold = iota - _ = iota - RemoveFromCRL = iota - PrivilegeWithdrawn = iota - AACompromise = iota + Unspecified = 0 + KeyCompromise = 1 + CACompromise = 2 + AffiliationChanged = 3 + Superseded = 4 + CessationOfOperation = 5 + CertificateHold = 6 + + RemoveFromCRL = 8 + PrivilegeWithdrawn = 9 + AACompromise = 10 ) // Request represents an OCSP request. See RFC 6960. @@ -659,7 +659,7 @@ func CreateRequest(cert, issuer *x509.Certificate, opts *RequestOptions) ([]byte // // The issuer cert is used to puplate the IssuerNameHash and IssuerKeyHash fields. // -// The template is used to populate the SerialNumber, RevocationStatus, RevokedAt, +// The template is used to populate the SerialNumber, Status, RevokedAt, // RevocationReason, ThisUpdate, and NextUpdate fields. // // If template.IssuerHash is not set, SHA1 will be used. diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go index a7e3263bc..6fd199455 100644 --- a/vendor/golang.org/x/crypto/ssh/client.go +++ b/vendor/golang.org/x/crypto/ssh/client.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "net" + "os" "sync" "time" ) @@ -187,6 +188,10 @@ func Dial(network, addr string, config *ClientConfig) (*Client, error) { // net.Conn underlying the the SSH connection. type HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error +// BannerCallback is the function type used for treat the banner sent by +// the server. A BannerCallback receives the message sent by the remote server. +type BannerCallback func(message string) error + // A ClientConfig structure is used to configure a Client. It must not be // modified after having been passed to an SSH function. type ClientConfig struct { @@ -209,6 +214,12 @@ type ClientConfig struct { // FixedHostKey can be used for simplistic host key checks. HostKeyCallback HostKeyCallback + // BannerCallback is called during the SSH dance to display a custom + // server's message. The client configuration can supply this callback to + // handle it as wished. The function BannerDisplayStderr can be used for + // simplistic display on Stderr. + BannerCallback BannerCallback + // ClientVersion contains the version identification string that will // be used for the connection. If empty, a reasonable default is used. ClientVersion string @@ -255,3 +266,13 @@ func FixedHostKey(key PublicKey) HostKeyCallback { hk := &fixedHostKey{key} return hk.check } + +// BannerDisplayStderr returns a function that can be used for +// ClientConfig.BannerCallback to display banners on os.Stderr. +func BannerDisplayStderr() BannerCallback { + return func(banner string) error { + _, err := os.Stderr.WriteString(banner) + + return err + } +} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index 3acd8d498..a1252cb9b 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -283,7 +283,9 @@ func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { } switch packet[0] { case msgUserAuthBanner: - // TODO(gpaul): add callback to present the banner to the user + if err := handleBannerResponse(c, packet); err != nil { + return false, err + } case msgUserAuthPubKeyOk: var msg userAuthPubKeyOkMsg if err := Unmarshal(packet, &msg); err != nil { @@ -325,7 +327,9 @@ func handleAuthResponse(c packetConn) (bool, []string, error) { switch packet[0] { case msgUserAuthBanner: - // TODO: add callback to present the banner to the user + if err := handleBannerResponse(c, packet); err != nil { + return false, nil, err + } case msgUserAuthFailure: var msg userAuthFailureMsg if err := Unmarshal(packet, &msg); err != nil { @@ -340,6 +344,24 @@ func handleAuthResponse(c packetConn) (bool, []string, error) { } } +func handleBannerResponse(c packetConn, packet []byte) error { + var msg userAuthBannerMsg + if err := Unmarshal(packet, &msg); err != nil { + return err + } + + transport, ok := c.(*handshakeTransport) + if !ok { + return nil + } + + if transport.bannerCallback != nil { + return transport.bannerCallback(msg.Message) + } + + return nil +} + // KeyboardInteractiveChallenge should print questions, optionally // disabling echoing (e.g. for passwords), and return all the answers. // Challenge may be called multiple times in a single session. After @@ -385,7 +407,9 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe // like handleAuthResponse, but with less options. switch packet[0] { case msgUserAuthBanner: - // TODO: Print banners during userauth. + if err := handleBannerResponse(c, packet); err != nil { + return false, nil, err + } continue case msgUserAuthInfoRequest: // OK diff --git a/vendor/golang.org/x/crypto/ssh/client_test.go b/vendor/golang.org/x/crypto/ssh/client_test.go index ccf56074d..f751eb6c6 100644 --- a/vendor/golang.org/x/crypto/ssh/client_test.go +++ b/vendor/golang.org/x/crypto/ssh/client_test.go @@ -79,3 +79,40 @@ func TestHostKeyCheck(t *testing.T) { } } } +func TestBannerCallback(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serverConf := &ServerConfig{ + NoClientAuth: true, + BannerCallback: func(conn ConnMetadata) string { + return "Hello World" + }, + } + serverConf.AddHostKey(testSigners["rsa"]) + go NewServerConn(c1, serverConf) + + var receivedBanner string + clientConf := ClientConfig{ + User: "user", + HostKeyCallback: InsecureIgnoreHostKey(), + BannerCallback: func(message string) error { + receivedBanner = message + return nil + }, + } + + _, _, _, err = NewClientConn(c2, "", &clientConf) + if err != nil { + t.Fatal(err) + } + + expected := "Hello World" + if receivedBanner != expected { + t.Fatalf("got %s; want %s", receivedBanner, expected) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index 932ce8393..4f7912ecd 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -78,6 +78,11 @@ type handshakeTransport struct { dialAddress string remoteAddr net.Addr + // bannerCallback is non-empty if we are the client and it has been set in + // ClientConfig. In that case it is called during the user authentication + // dance to handle a custom server's message. + bannerCallback BannerCallback + // Algorithms agreed in the last key exchange. algorithms *algorithms @@ -120,6 +125,7 @@ func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byt t.dialAddress = dialAddr t.remoteAddr = addr t.hostKeyCallback = config.HostKeyCallback + t.bannerCallback = config.BannerCallback if config.HostKeyAlgorithms != nil { t.hostKeyAlgorithms = config.HostKeyAlgorithms } else { diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go index e6ecd3afa..92f3810ed 100644 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -23,10 +23,6 @@ const ( msgUnimplemented = 3 msgDebug = 4 msgNewKeys = 21 - - // Standard authentication messages - msgUserAuthSuccess = 52 - msgUserAuthBanner = 53 ) // SSH messages: @@ -137,6 +133,16 @@ type userAuthFailureMsg struct { PartialSuccess bool } +// See RFC 4252, section 5.1 +const msgUserAuthSuccess = 52 + +// See RFC 4252, section 5.4 +const msgUserAuthBanner = 53 + +type userAuthBannerMsg struct { + Message string `sshtype:"53"` +} + // See RFC 4256, section 3.2 const msgUserAuthInfoRequest = 60 const msgUserAuthInfoResponse = 61 diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index 8a78b7ca0..148d2cb24 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -95,6 +95,10 @@ type ServerConfig struct { // Note that RFC 4253 section 4.2 requires that this string start with // "SSH-2.0-". ServerVersion string + + // BannerCallback, if present, is called and the return string is sent to + // the client after key exchange completed but before authentication. + BannerCallback func(conn ConnMetadata) string } // AddHostKey adds a private key as a host key. If an existing host @@ -343,6 +347,19 @@ userAuthLoop: } s.user = userAuthReq.User + + if authFailures == 0 && config.BannerCallback != nil { + msg := config.BannerCallback(s) + if msg != "" { + bannerMsg := &userAuthBannerMsg{ + Message: msg, + } + if err := s.transport.writePacket(Marshal(bannerMsg)); err != nil { + return nil, err + } + } + } + perms = nil authErr := errors.New("no auth passed yet") diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index eae143ddf..d790c3b3d 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -853,8 +853,13 @@ func (sc *serverConn) serve() { } } - if sc.inGoAway && sc.curOpenStreams() == 0 && !sc.needToSendGoAway && !sc.writingFrame { - return + // Start the shutdown timer after sending a GOAWAY. When sending GOAWAY + // with no error code (graceful shutdown), don't start the timer until + // all open streams have been completed. + sentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame + gracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0 + if sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) { + sc.shutDownIn(goAwayTimeout) } } } @@ -1218,30 +1223,31 @@ func (sc *serverConn) startGracefulShutdown() { sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) }) } +// After sending GOAWAY, the connection will close after goAwayTimeout. +// If we close the connection immediately after sending GOAWAY, there may +// be unsent data in our kernel receive buffer, which will cause the kernel +// to send a TCP RST on close() instead of a FIN. This RST will abort the +// connection immediately, whether or not the client had received the GOAWAY. +// +// Ideally we should delay for at least 1 RTT + epsilon so the client has +// a chance to read the GOAWAY and stop sending messages. Measuring RTT +// is hard, so we approximate with 1 second. See golang.org/issue/18701. +// +// This is a var so it can be shorter in tests, where all requests uses the +// loopback interface making the expected RTT very small. +// +// TODO: configurable? +var goAwayTimeout = 1 * time.Second + func (sc *serverConn) startGracefulShutdownInternal() { - sc.goAwayIn(ErrCodeNo, 0) + sc.goAway(ErrCodeNo) } func (sc *serverConn) goAway(code ErrCode) { - sc.serveG.check() - var forceCloseIn time.Duration - if code != ErrCodeNo { - forceCloseIn = 250 * time.Millisecond - } else { - // TODO: configurable - forceCloseIn = 1 * time.Second - } - sc.goAwayIn(code, forceCloseIn) -} - -func (sc *serverConn) goAwayIn(code ErrCode, forceCloseIn time.Duration) { sc.serveG.check() if sc.inGoAway { return } - if forceCloseIn != 0 { - sc.shutDownIn(forceCloseIn) - } sc.inGoAway = true sc.needToSendGoAway = true sc.goAwayCode = code diff --git a/vendor/golang.org/x/net/http2/server_test.go b/vendor/golang.org/x/net/http2/server_test.go index b4e832894..d06fdeaf2 100644 --- a/vendor/golang.org/x/net/http2/server_test.go +++ b/vendor/golang.org/x/net/http2/server_test.go @@ -68,6 +68,7 @@ type serverTester struct { func init() { testHookOnPanicMu = new(sync.Mutex) + goAwayTimeout = 25 * time.Millisecond } func resetHooks() { diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index adb77ffab..c112d2217 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -1536,7 +1536,17 @@ func (rl *clientConnReadLoop) run() error { func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { cc := rl.cc - cs := cc.streamByID(f.StreamID, f.StreamEnded()) + if f.StreamEnded() { + // Issue 20521: If the stream has ended, streamByID() causes + // clientStream.done to be closed, which causes the request's bodyWriter + // to be closed with an errStreamClosed, which may be received by + // clientConn.RoundTrip before the result of processing these headers. + // Deferring stream closure allows the header processing to occur first. + // clientConn.RoundTrip may still receive the bodyWriter error first, but + // the fix for issue 16102 prioritises any response. + defer cc.streamByID(f.StreamID, true) + } + cs := cc.streamByID(f.StreamID, false) if cs == nil { // We'd get here if we canceled a request while the // server had its response still in flight. So if this diff --git a/vendor/golang.org/x/net/http2/transport_test.go b/vendor/golang.org/x/net/http2/transport_test.go index 0126ff483..12a9869f1 100644 --- a/vendor/golang.org/x/net/http2/transport_test.go +++ b/vendor/golang.org/x/net/http2/transport_test.go @@ -3678,6 +3678,34 @@ func benchSimpleRoundTrip(b *testing.B, nHeaders int) { } } +type infiniteReader struct{} + +func (r infiniteReader) Read(b []byte) (int, error) { + return len(b), nil +} + +// Issue 20521: it is not an error to receive a response and end stream +// from the server without the body being consumed. +func TestTransportResponseAndResetWithoutConsumingBodyRace(t *testing.T) { + st := newServerTester(t, func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }, optOnlyServer) + defer st.Close() + + tr := &Transport{TLSClientConfig: tlsConfigInsecure} + defer tr.CloseIdleConnections() + + // The request body needs to be big enough to trigger flow control. + req, _ := http.NewRequest("PUT", st.ts.URL, infiniteReader{}) + res, err := tr.RoundTrip(req) + if err != nil { + t.Fatal(err) + } + if res.StatusCode != http.StatusOK { + t.Fatalf("Response code = %v; want %v", res.StatusCode, http.StatusOK) + } +} + func BenchmarkClientRequestHeaders(b *testing.B) { b.Run(" 0 Headers", func(b *testing.B) { benchSimpleRoundTrip(b, 0) }) b.Run(" 10 Headers", func(b *testing.B) { benchSimpleRoundTrip(b, 10) }) diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go index 6b0dfae31..54ab4a88e 100644 --- a/vendor/golang.org/x/net/http2/write.go +++ b/vendor/golang.org/x/net/http2/write.go @@ -10,7 +10,6 @@ import ( "log" "net/http" "net/url" - "time" "golang.org/x/net/http2/hpack" "golang.org/x/net/lex/httplex" @@ -90,11 +89,7 @@ type writeGoAway struct { func (p *writeGoAway) writeFrame(ctx writeContext) error { err := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil) - if p.code != 0 { - ctx.Flush() // ignore error: we're hanging up on them anyway - time.Sleep(50 * time.Millisecond) - ctx.CloseConn() - } + ctx.Flush() // ignore error: we're hanging up on them anyway return err } diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go index d6a570c90..05d6082d1 100644 --- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go +++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go @@ -10,6 +10,10 @@ package socket import "unsafe" func (v *iovec) set(b []byte) { + l := len(b) + if l == 0 { + return + } v.Base = (*byte)(unsafe.Pointer(&b[0])) - v.Len = uint32(len(b)) + v.Len = uint32(l) } diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go index 2ae435e64..afb34ad58 100644 --- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go +++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go @@ -10,6 +10,10 @@ package socket import "unsafe" func (v *iovec) set(b []byte) { + l := len(b) + if l == 0 { + return + } v.Base = (*byte)(unsafe.Pointer(&b[0])) - v.Len = uint64(len(b)) + v.Len = uint64(l) } diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go index 100a62820..8d17a40c4 100644 --- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go +++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go @@ -10,6 +10,10 @@ package socket import "unsafe" func (v *iovec) set(b []byte) { + l := len(b) + if l == 0 { + return + } v.Base = (*int8)(unsafe.Pointer(&b[0])) - v.Len = uint64(len(b)) + v.Len = uint64(l) } diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go index 3fcb04280..b8c87b72b 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go @@ -7,6 +7,10 @@ package socket func (h *msghdr) setIov(vs []iovec) { + l := len(vs) + if l == 0 { + return + } h.Iov = &vs[0] - h.Iovlen = int32(len(vs)) + h.Iovlen = int32(l) } diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go index 9f671aec0..a7a5987c8 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go @@ -10,8 +10,12 @@ package socket import "unsafe" func (h *msghdr) setIov(vs []iovec) { + l := len(vs) + if l == 0 { + return + } h.Iov = &vs[0] - h.Iovlen = uint32(len(vs)) + h.Iovlen = uint32(l) } func (h *msghdr) setControl(b []byte) { diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go index 9f7870621..610fc4f3b 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go @@ -10,8 +10,12 @@ package socket import "unsafe" func (h *msghdr) setIov(vs []iovec) { + l := len(vs) + if l == 0 { + return + } h.Iov = &vs[0] - h.Iovlen = uint64(len(vs)) + h.Iovlen = uint64(l) } func (h *msghdr) setControl(b []byte) { diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go index be354ff84..71a69e251 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go @@ -5,6 +5,10 @@ package socket func (h *msghdr) setIov(vs []iovec) { + l := len(vs) + if l == 0 { + return + } h.Iov = &vs[0] - h.Iovlen = uint32(len(vs)) + h.Iovlen = uint32(l) } diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go index d1b059397..6465b2073 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go @@ -13,8 +13,10 @@ func (h *msghdr) pack(vs []iovec, bs [][]byte, oob []byte, sa []byte) { for i := range vs { vs[i].set(bs[i]) } - h.Iov = &vs[0] - h.Iovlen = int32(len(vs)) + if len(vs) > 0 { + h.Iov = &vs[0] + h.Iovlen = int32(len(vs)) + } if len(oob) > 0 { h.Accrights = (*int8)(unsafe.Pointer(&oob[0])) h.Accrightslen = int32(len(oob)) diff --git a/vendor/golang.org/x/net/internal/socket/socket_go1_9_test.go b/vendor/golang.org/x/net/internal/socket/socket_go1_9_test.go index 109fed762..c4edd4a8d 100644 --- a/vendor/golang.org/x/net/internal/socket/socket_go1_9_test.go +++ b/vendor/golang.org/x/net/internal/socket/socket_go1_9_test.go @@ -119,81 +119,84 @@ func TestUDP(t *testing.T) { t.Skipf("not supported on %s/%s: %v", runtime.GOOS, runtime.GOARCH, err) } defer c.Close() + cc, err := socket.NewConn(c.(net.Conn)) + if err != nil { + t.Fatal(err) + } t.Run("Message", func(t *testing.T) { - testUDPMessage(t, c.(net.Conn)) + data := []byte("HELLO-R-U-THERE") + wm := socket.Message{ + Buffers: bytes.SplitAfter(data, []byte("-")), + Addr: c.LocalAddr(), + } + if err := cc.SendMsg(&wm, 0); err != nil { + t.Fatal(err) + } + b := make([]byte, 32) + rm := socket.Message{ + Buffers: [][]byte{b[:1], b[1:3], b[3:7], b[7:11], b[11:]}, + } + if err := cc.RecvMsg(&rm, 0); err != nil { + t.Fatal(err) + } + if !bytes.Equal(b[:rm.N], data) { + t.Fatalf("got %#v; want %#v", b[:rm.N], data) + } }) switch runtime.GOOS { - case "linux": + case "android", "linux": t.Run("Messages", func(t *testing.T) { - testUDPMessages(t, c.(net.Conn)) + data := []byte("HELLO-R-U-THERE") + wmbs := bytes.SplitAfter(data, []byte("-")) + wms := []socket.Message{ + {Buffers: wmbs[:1], Addr: c.LocalAddr()}, + {Buffers: wmbs[1:], Addr: c.LocalAddr()}, + } + n, err := cc.SendMsgs(wms, 0) + if err != nil { + t.Fatal(err) + } + if n != len(wms) { + t.Fatalf("got %d; want %d", n, len(wms)) + } + b := make([]byte, 32) + rmbs := [][][]byte{{b[:len(wmbs[0])]}, {b[len(wmbs[0]):]}} + rms := []socket.Message{ + {Buffers: rmbs[0]}, + {Buffers: rmbs[1]}, + } + n, err = cc.RecvMsgs(rms, 0) + if err != nil { + t.Fatal(err) + } + if n != len(rms) { + t.Fatalf("got %d; want %d", n, len(rms)) + } + nn := 0 + for i := 0; i < n; i++ { + nn += rms[i].N + } + if !bytes.Equal(b[:nn], data) { + t.Fatalf("got %#v; want %#v", b[:nn], data) + } }) } -} -func testUDPMessage(t *testing.T, c net.Conn) { - cc, err := socket.NewConn(c) - if err != nil { - t.Fatal(err) - } - data := []byte("HELLO-R-U-THERE") + // The behavior of transmission for zero byte paylaod depends + // on each platform implementation. Some may transmit only + // protocol header and options, other may transmit nothing. + // We test only that SendMsg and SendMsgs will not crash with + // empty buffers. wm := socket.Message{ - Buffers: bytes.SplitAfter(data, []byte("-")), + Buffers: [][]byte{{}}, Addr: c.LocalAddr(), } - if err := cc.SendMsg(&wm, 0); err != nil { - t.Fatal(err) - } - b := make([]byte, 32) - rm := socket.Message{ - Buffers: [][]byte{b[:1], b[1:3], b[3:7], b[7:11], b[11:]}, - } - if err := cc.RecvMsg(&rm, 0); err != nil { - t.Fatal(err) - } - if !bytes.Equal(b[:rm.N], data) { - t.Fatalf("got %#v; want %#v", b[:rm.N], data) - } -} - -func testUDPMessages(t *testing.T, c net.Conn) { - cc, err := socket.NewConn(c) - if err != nil { - t.Fatal(err) - } - data := []byte("HELLO-R-U-THERE") - wmbs := bytes.SplitAfter(data, []byte("-")) + cc.SendMsg(&wm, 0) wms := []socket.Message{ - {Buffers: wmbs[:1], Addr: c.LocalAddr()}, - {Buffers: wmbs[1:], Addr: c.LocalAddr()}, - } - n, err := cc.SendMsgs(wms, 0) - if err != nil { - t.Fatal(err) - } - if n != len(wms) { - t.Fatalf("got %d; want %d", n, len(wms)) - } - b := make([]byte, 32) - rmbs := [][][]byte{{b[:len(wmbs[0])]}, {b[len(wmbs[0]):]}} - rms := []socket.Message{ - {Buffers: rmbs[0]}, - {Buffers: rmbs[1]}, - } - n, err = cc.RecvMsgs(rms, 0) - if err != nil { - t.Fatal(err) - } - if n != len(rms) { - t.Fatalf("got %d; want %d", n, len(rms)) - } - nn := 0 - for i := 0; i < n; i++ { - nn += rms[i].N - } - if !bytes.Equal(b[:nn], data) { - t.Fatalf("got %#v; want %#v", b[:nn], data) + {Buffers: [][]byte{{}}, Addr: c.LocalAddr()}, } + cc.SendMsgs(wms, 0) } func BenchmarkUDP(b *testing.B) { @@ -230,7 +233,7 @@ func BenchmarkUDP(b *testing.B) { } }) switch runtime.GOOS { - case "linux": + case "android", "linux": wms := make([]socket.Message, M) for i := range wms { wms[i].Buffers = [][]byte{data} diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go index 9a0dbcfb9..dc130c27e 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_posix.go +++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go @@ -34,7 +34,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip4 := ip.To4(); ip4 != nil { b := make([]byte, sizeofSockaddrInet) switch runtime.GOOS { - case "linux", "solaris", "windows": + case "android", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET)) default: b[0] = sizeofSockaddrInet @@ -47,7 +47,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { b := make([]byte, sizeofSockaddrInet6) switch runtime.GOOS { - case "linux", "solaris", "windows": + case "android", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6)) default: b[0] = sizeofSockaddrInet6 @@ -69,7 +69,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) { } var af int switch runtime.GOOS { - case "linux", "solaris", "windows": + case "android", "linux", "solaris", "windows": af = int(NativeEndian.Uint16(b[:2])) default: af = int(b[1]) diff --git a/vendor/golang.org/x/net/proxy/per_host.go b/vendor/golang.org/x/net/proxy/per_host.go index 242d5623f..0689bb6a7 100644 --- a/vendor/golang.org/x/net/proxy/per_host.go +++ b/vendor/golang.org/x/net/proxy/per_host.go @@ -61,7 +61,7 @@ func (p *PerHost) dialerForRequest(host string) Dialer { return p.bypass } if host == zone[1:] { - // For a zone "example.com", we match "example.com" + // For a zone ".example.com", we match "example.com" // too. return p.bypass } diff --git a/vendor/golang.org/x/net/proxy/socks5.go b/vendor/golang.org/x/net/proxy/socks5.go index 2d7978fe4..3fed38ef1 100644 --- a/vendor/golang.org/x/net/proxy/socks5.go +++ b/vendor/golang.org/x/net/proxy/socks5.go @@ -12,7 +12,7 @@ import ( ) // SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address -// with an optional username and password. See RFC 1928 and 1929. +// with an optional username and password. See RFC 1928 and RFC 1929. func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) { s := &socks5{ network: network, @@ -60,7 +60,7 @@ var socks5Errors = []string{ "address type not supported", } -// Dial connects to the address addr on the network net via the SOCKS5 proxy. +// Dial connects to the address addr on the given network via the SOCKS5 proxy. func (s *socks5) Dial(network, addr string) (net.Conn, error) { switch network { case "tcp", "tcp6", "tcp4": diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index c3a080926..00b7ce7ac 100755 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -142,7 +142,6 @@ openbsd_386) mkerrors="$mkerrors -m32" mksyscall="./mksyscall.pl -l32 -openbsd" mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; @@ -150,7 +149,6 @@ openbsd_amd64) mkerrors="$mkerrors -m64" mksyscall="./mksyscall.pl -openbsd" mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; @@ -158,7 +156,6 @@ openbsd_arm) mkerrors="$mkerrors" mksyscall="./mksyscall.pl -l32 -openbsd -arm" mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index f9f5e5691..e16c4faf3 100755 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -84,6 +84,7 @@ includes_FreeBSD=' #include #include #include +#include #include #include #include diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 1b7d59d89..4520328ab 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -1262,6 +1262,7 @@ func Getpgrp() (pid int) { //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT //sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 //sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 //sys read(fd int, p []byte) (n int, err error) //sys Removexattr(path string, attr string) (err error) //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index 68cc975db..e16a0d141 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -21,7 +21,12 @@ package unix //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + ts := Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + return Pselect(nfd, r, w, e, &ts, nil) +} + //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys Setfsgid(gid int) (err error) //sys Setfsuid(uid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 977df441b..92e620ea5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -23,7 +23,12 @@ package unix //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + ts := Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + return Pselect(nfd, r, w, e, &ts, nil) +} + //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys Setfsgid(gid int) (err error) //sys Setfsuid(uid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go index 1d3eec44d..adf5eef0f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -981,6 +981,49 @@ const ( MAP_STACK = 0x400 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0x2d8d0807e + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0x3fef0ffff + MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 MSG_CTRUNC = 0x20 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go index ac094f9cf..360caff4f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -982,6 +982,49 @@ const ( MAP_STACK = 0x400 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0x2d8d0807e + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0x3fef0ffff + MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 MSG_CTRUNC = 0x20 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go index c5c6f13e5..87deda950 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -989,6 +989,49 @@ const ( MAP_STACK = 0x400 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0x2d8d0807e + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0x3fef0ffff + MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 MSG_CTRUNC = 0x20 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 000a46833..85a2907e5 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 712dffde4..8e2be97d3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 338796d90..5ff0637fd 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index fc3006d97..40760110f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { @@ -1667,17 +1678,6 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) written = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index 4b0ef2076..984e56173 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 31eb98c7d..f98194e24 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { @@ -1677,17 +1688,6 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) written = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 875ffa33f..f30267019 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { @@ -1677,17 +1688,6 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) written = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 6863e81aa..f18c5e4a7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 2a32c6b41..bc268243c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index 8172d3558..8d874cbcd 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index 49021966f..169321273 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -1035,6 +1035,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func read(fd int, p []byte) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go similarity index 100% rename from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go rename to vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go new file mode 100644 index 000000000..83bb935b9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -0,0 +1,270 @@ +// mksysctl_openbsd.pl +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.arandom", []_C_int{1, 37}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.random", []_C_int{1, 31}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.maxptys", []_C_int{1, 44, 6}}, + {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.userasymcrypto", []_C_int{1, 60}}, + {"kern.usercrypto", []_C_int{1, 52}}, + {"kern.usermount", []_C_int{1, 30}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.vnode", []_C_int{1, 13}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, + {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, + {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, + {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go new file mode 100644 index 000000000..83bb935b9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -0,0 +1,270 @@ +// mksysctl_openbsd.pl +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.arandom", []_C_int{1, 37}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.random", []_C_int{1, 31}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.tty.maxptys", []_C_int{1, 44, 6}}, + {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.userasymcrypto", []_C_int{1, 60}}, + {"kern.usercrypto", []_C_int{1, 52}}, + {"kern.usermount", []_C_int{1, 30}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.vnode", []_C_int{1, 13}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, + {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, + {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, + {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/windows/syscall_test.go b/vendor/golang.org/x/sys/windows/syscall_test.go index 62588b91b..d7009e44a 100644 --- a/vendor/golang.org/x/sys/windows/syscall_test.go +++ b/vendor/golang.org/x/sys/windows/syscall_test.go @@ -7,6 +7,7 @@ package windows_test import ( + "syscall" "testing" "golang.org/x/sys/windows" @@ -31,3 +32,22 @@ func TestEnv(t *testing.T) { // make sure TESTENV gets set to "", not deleted testSetGetenv(t, "TESTENV", "") } + +func TestGetProcAddressByOrdinal(t *testing.T) { + // Attempt calling shlwapi.dll:IsOS, resolving it by ordinal, as + // suggested in + // https://msdn.microsoft.com/en-us/library/windows/desktop/bb773795.aspx + h, err := windows.LoadLibrary("shlwapi.dll") + if err != nil { + t.Fatalf("Failed to load shlwapi.dll: %s", err) + } + procIsOS, err := windows.GetProcAddressByOrdinal(h, 437) + if err != nil { + t.Fatalf("Could not find shlwapi.dll:IsOS by ordinal: %s", err) + } + const OS_NT = 1 + r, _, _ := syscall.Syscall(procIsOS, 1, OS_NT, 0, 0) + if r == 0 { + t.Error("shlwapi.dll:IsOS(OS_NT) returned 0, expected non-zero value") + } +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 9b5ed549a..acd06e369 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -202,6 +202,21 @@ func NewCallbackCDecl(fn interface{}) uintptr { // syscall interface implementation for other packages +// GetProcAddressByOrdinal retrieves the address of the exported +// function from module by ordinal. +func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) + proc = uintptr(r0) + if proc == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + func Exit(code int) { ExitProcess(uint32(code)) } func makeInheritSa() *SecurityAttributes { diff --git a/vendor/google.golang.org/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json b/vendor/google.golang.org/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json index 36d359cc2..07f95c98d 100644 --- a/vendor/google.golang.org/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json +++ b/vendor/google.golang.org/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json @@ -1,5 +1,4 @@ { - "version_module": true, "resources": { "ampUrls": { "methods": { @@ -8,46 +7,51 @@ "$ref": "BatchGetAmpUrlsRequest" }, "description": "Returns AMP URL(s) and equivalent\n[AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).", - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "BatchGetAmpUrlsResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "parameters": {}, "flatPath": "v1/ampUrls:batchGet", - "path": "v1/ampUrls:batchGet", - "id": "acceleratedmobilepageurl.ampUrls.batchGet" + "id": "acceleratedmobilepageurl.ampUrls.batchGet", + "path": "v1/ampUrls:batchGet" } } } }, "parameters": { + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, "pp": { "location": "query", "description": "Pretty-print response.", "default": "true", "type": "boolean" }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "upload_protocol": { "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "description": "OAuth bearer token.", "type": "string" }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "type": "string", + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + }, "prettyPrint": { + "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "fields": { "location": "query", @@ -55,29 +59,30 @@ "type": "string" }, "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", - "location": "query" - }, - "callback": { "location": "query", - "description": "JSONP", - "type": "string" + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." }, "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "type": "string", + "location": "query", + "description": "JSONP" }, "alt": { + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -90,8 +95,7 @@ "json", "media", "proto" - ], - "type": "string" + ] }, "key": { "location": "query", @@ -99,14 +103,9 @@ "type": "string" }, "access_token": { + "location": "query", "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" + "type": "string" } }, "schemas": { @@ -122,40 +121,42 @@ "type": "array" }, "ampUrls": { - "description": "For each URL in BatchAmpUrlsRequest, the URL response. The response might\nnot be in the same order as URLs in the batch request.\nIf BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated\nonly once.", "items": { "$ref": "AmpUrl" }, - "type": "array" + "type": "array", + "description": "For each URL in BatchAmpUrlsRequest, the URL response. The response might\nnot be in the same order as URLs in the batch request.\nIf BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated\nonly once." } }, "id": "BatchGetAmpUrlsResponse" }, "AmpUrl": { - "description": "AMP URL response for a requested URL.", "type": "object", "properties": { "cdnAmpUrl": { - "description": "The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to\nthe cached document in the Google AMP Cache.", - "type": "string" + "type": "string", + "description": "The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to\nthe cached document in the Google AMP Cache." }, "ampUrl": { "description": "The AMP URL pointing to the publisher's web server.", "type": "string" }, "originalUrl": { - "description": "The original non-AMP URL.", - "type": "string" + "type": "string", + "description": "The original non-AMP URL." } }, - "id": "AmpUrl" + "id": "AmpUrl", + "description": "AMP URL response for a requested URL." }, "AmpUrlError": { - "description": "AMP URL Error resource for a requested URL that couldn't be found.", "type": "object", "properties": { + "errorMessage": { + "type": "string", + "description": "An optional descriptive error message." + }, "errorCode": { - "description": "The error code of an API call.", "type": "string", "enumDescriptions": [ "Not specified error.", @@ -172,25 +173,28 @@ "APPLICATION_ERROR", "URL_IS_VALID_AMP", "URL_IS_INVALID_AMP" - ] + ], + "description": "The error code of an API call." }, "originalUrl": { - "description": "The original non-AMP URL.", - "type": "string" - }, - "errorMessage": { - "description": "An optional descriptive error message.", - "type": "string" + "type": "string", + "description": "The original non-AMP URL." } }, - "id": "AmpUrlError" + "id": "AmpUrlError", + "description": "AMP URL Error resource for a requested URL that couldn't be found." }, "BatchGetAmpUrlsRequest": { - "description": "AMP URL request for a batch of URLs.", "type": "object", "properties": { + "urls": { + "description": "List of URLs to look up for the paired AMP URLs.\nThe URLs are case-sensitive. Up to 50 URLs per lookup\n(see [Usage Limits](/amp/cache/reference/limits)).", + "items": { + "type": "string" + }, + "type": "array" + }, "lookupStrategy": { - "description": "The lookup_strategy being requested.", "type": "string", "enumDescriptions": [ "FETCH_LIVE_DOC strategy involves live document fetch of URLs not found in\nthe index. Any request URL not found in the index is crawled in realtime\nto validate if there is a corresponding AMP URL. This strategy has higher\ncoverage but with extra latency introduced by realtime crawling. This is\nthe default strategy. Applications using this strategy should set higher\nHTTP timeouts of the API calls.", @@ -199,29 +203,24 @@ "enum": [ "FETCH_LIVE_DOC", "IN_INDEX_DOC" - ] - }, - "urls": { - "description": "List of URLs to look up for the paired AMP URLs.\nThe URLs are case-sensitive. Up to 50 URLs per lookup\n(see [Usage Limits](/amp/cache/reference/limits)).", - "items": { - "type": "string" - }, - "type": "array" + ], + "description": "The lookup_strategy being requested." } }, - "id": "BatchGetAmpUrlsRequest" + "id": "BatchGetAmpUrlsRequest", + "description": "AMP URL request for a batch of URLs." } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1", "baseUrl": "https://acceleratedmobilepageurl.googleapis.com/", - "servicePath": "", - "description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s).\n", "kind": "discovery#restDescription", + "description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s).\n", + "servicePath": "", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "basePath": "", "ownerDomain": "google.com", @@ -231,6 +230,7 @@ "documentationLink": "https://developers.google.com/amp/cache/", "id": "acceleratedmobilepageurl:v1", "title": "Accelerated Mobile Pages (AMP) URL API", + "discoveryVersion": "v1", "ownerName": "Google", - "discoveryVersion": "v1" + "version_module": true } diff --git a/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json index 8e2573d8b..9cff29141 100644 --- a/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json +++ b/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json @@ -1,845 +1,2384 @@ { - "basePath": "", - "id": "adexchangebuyer2:v2beta1", - "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest/reference/rest/", - "revision": "20170927", - "discoveryVersion": "v1", - "version_module": true, - "schemas": { - "CreativeStatusRow": { - "type": "object", - "properties": { - "creativeStatusId": { - "format": "int32", - "description": "The ID of the creative status.\nSee [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", - "type": "integer" - }, - "bidCount": { - "$ref": "MetricValue", - "description": "The number of bids with the specified status." - }, - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - } - }, - "id": "CreativeStatusRow", - "description": "The number of bids with the specified dimension values that did not win the\nauction (either were filtered pre-auction or lost the auction), as described\nby the specified creative status." - }, - "RealtimeTimeRange": { - "description": "An open-ended realtime time range specified by the start timestamp.\nFor filter sets that specify a realtime time range RTB metrics continue to\nbe aggregated throughout the lifetime of the filter set.", - "type": "object", - "properties": { - "startTimestamp": { - "format": "google-datetime", - "description": "The start timestamp of the real-time RTB metrics aggregation.", - "type": "string" - } - }, - "id": "RealtimeTimeRange" - }, - "NonBillableWinningBidStatusRow": { - "description": "The number of winning bids with the specified dimension values for which the\nbuyer was not billed, as described by the specified status.", - "type": "object", - "properties": { - "status": { - "enumDescriptions": [ - "A placeholder for an undefined status.\nThis value will never be returned in responses.", - "The buyer was not billed because the ad was not rendered by the\npublisher.", - "The buyer was not billed because the impression won by the bid was\ndetermined to be invalid." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "AD_NOT_RENDERED", - "INVALID_IMPRESSION" - ], - "description": "The status specifying why the winning bids were not billed.", - "type": "string" - }, - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - }, - "bidCount": { - "description": "The number of bids with the specified status.", - "$ref": "MetricValue" - } - }, - "id": "NonBillableWinningBidStatusRow" - }, - "FilteredBidDetailRow": { - "description": "The number of filtered bids with the specified dimension values, among those\nfiltered due to the requested filtering reason (i.e. creative status), that\nhave the specified detail.", - "type": "object", - "properties": { - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - }, - "detailId": { - "format": "int32", - "description": "The ID of the detail. The associated value can be looked up in the\ndictionary file corresponding to the DetailType in the response message.", - "type": "integer" - }, - "bidCount": { - "description": "The number of bids with the specified detail.", - "$ref": "MetricValue" - } - }, - "id": "FilteredBidDetailRow" - }, - "AbsoluteDateRange": { - "description": "An absolute date range, specified by its start date and end date.\nThe supported range of dates begins 30 days before today and ends today.\nValidity checked upon filter set creation. If a filter set with an absolute\ndate range is run at a later date more than 30 days after start_date, it will\nfail.", - "type": "object", - "properties": { - "startDate": { - "description": "The start date of the range (inclusive).\nMust be within the 30 days leading up to current date, and must be equal to\nor before end_date.", - "$ref": "Date" - }, - "endDate": { - "description": "The end date of the range (inclusive).\nMust be within the 30 days leading up to current date, and must be equal to\nor after start_date.", - "$ref": "Date" - } - }, - "id": "AbsoluteDateRange" - }, - "AddDealAssociationRequest": { - "type": "object", - "properties": { - "association": { - "description": "The association between a creative and a deal that should be added.", - "$ref": "CreativeDealAssociation" - } - }, - "id": "AddDealAssociationRequest", - "description": "A request for associating a deal and a creative." - }, - "WatchCreativeRequest": { - "description": "A request for watching changes to creative Status.", - "type": "object", - "properties": { - "topic": { - "type": "string", - "description": "The Pub/Sub topic to publish notifications to.\nThis topic must already exist and must give permission to\nad-exchange-buyside-reports@google.com to write to the topic.\nThis should be the full resource name in\n\"projects/{project_id}/topics/{topic_id}\" format." - } - }, - "id": "WatchCreativeRequest" - }, - "TimeInterval": { - "properties": { - "endTime": { - "format": "google-datetime", - "description": "The timestamp marking the end of the range (exclusive) for which data is\nincluded.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The timestamp marking the start of the range (inclusive) for which data is\nincluded.", - "type": "string" - } - }, - "id": "TimeInterval", - "description": "An interval of time, with an absolute start and end.", - "type": "object" - }, - "FilteredBidCreativeRow": { - "description": "The number of filtered bids with the specified dimension values that have the\nspecified creative.", - "type": "object", - "properties": { - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - }, - "bidCount": { - "$ref": "MetricValue", - "description": "The number of bids with the specified creative." - }, - "creativeId": { - "description": "The ID of the creative.", - "type": "string" - } - }, - "id": "FilteredBidCreativeRow" - }, - "RelativeDateRange": { - "properties": { - "durationDays": { - "format": "int32", - "description": "The number of days in the requested date range. E.g. for a range spanning\ntoday, 1. For a range spanning the last 7 days, 7.", - "type": "integer" - }, - "offsetDays": { - "format": "int32", - "description": "The end date of the filter set, specified as the number of days before\ntoday. E.g. for a range where the last date is today, 0.", - "type": "integer" - } - }, - "id": "RelativeDateRange", - "description": "A relative date range, specified by an offset and a duration.\nThe supported range of dates begins 30 days before today and ends today.\nI.e. the limits for these values are:\noffset_days \u003e= 0\nduration_days \u003e= 1\noffset_days + duration_days \u003c= 30", - "type": "object" - }, - "NativeContent": { - "properties": { - "storeUrl": { - "type": "string", - "description": "The URL to the app store to purchase/download the promoted app." - }, - "headline": { - "description": "A short title for the ad.", - "type": "string" - }, - "appIcon": { - "$ref": "Image", - "description": "The app icon, for app download ads." - }, - "callToAction": { - "description": "A label for the button that the user is supposed to click.", - "type": "string" - }, - "body": { - "description": "A long description of the ad.", - "type": "string" - }, - "starRating": { - "format": "double", - "description": "The app rating in the app store. Must be in the range [0-5].", - "type": "number" - }, - "videoUrl": { - "description": "The URL to fetch a native video ad.", - "type": "string" - }, - "clickLinkUrl": { - "type": "string", - "description": "The URL that the browser/SDK will load when the user clicks the ad." - }, - "logo": { - "$ref": "Image", - "description": "A smaller image, for the advertiser's logo." - }, - "priceDisplayText": { - "description": "The price of the promoted app including currency info.", - "type": "string" - }, - "image": { - "$ref": "Image", - "description": "A large image." - }, - "clickTrackingUrl": { - "description": "The URL to use for click tracking.", - "type": "string" - }, - "advertiserName": { - "description": "The name of the advertiser or sponsor, to be displayed in the ad creative.", - "type": "string" - } - }, - "id": "NativeContent", - "description": "Native content for a creative.", - "type": "object" - }, - "ListClientsResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientsRequest.pageToken\nfield in the subsequent call to the\naccounts.clients.list method\nto retrieve the next page of results.", - "type": "string" - }, - "clients": { - "description": "The returned list of clients.", - "items": { - "$ref": "Client" + "ownerDomain": "google.com", + "name": "adexchangebuyer2", + "batchPath": "batch", + "title": "Ad Exchange Buyer API II", + "ownerName": "Google", + "resources": { + "bidders": { + "resources": { + "filterSets": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to delete.", + "type": "string" + }, + "name": { + "description": "Full name of the resource to delete.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "accountId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "Account ID of the buyer." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}", + "path": "v2beta1/{+name}", + "id": "adexchangebuyer2.bidders.filterSets.delete", + "description": "Deletes the requested filter set from the account with the given account\nID." + }, + "list": { + "description": "Lists all filter sets for the account with the given account ID.", + "response": { + "$ref": "ListFilterSetsResponse" + }, + "parameterOrder": [ + "ownerName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilterSetsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.list\nmethod.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "ownerName": { + "description": "Name of the owner (bidder or account) of the filter sets to be listed.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets", + "id": "adexchangebuyer2.bidders.filterSets.list", + "path": "v2beta1/{+ownerName}/filterSets" + }, + "get": { + "response": { + "$ref": "FilterSet" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "name": { + "description": "Full name of the resource being requested.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to get.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}", + "id": "adexchangebuyer2.bidders.filterSets.get", + "path": "v2beta1/{+name}", + "description": "Retrieves the requested filter set for the account with the given account\nID." + }, + "create": { + "description": "Creates the specified filter set for the account with the given account ID.", + "response": { + "$ref": "FilterSet" + }, + "parameterOrder": [ + "ownerName" + ], + "httpMethod": "POST", + "parameters": { + "filterSet.ownerAccountId": { + "format": "int64", + "description": "The account ID of the buyer who owns this filter set.\nThe value of this field is ignored in create operations.", + "type": "string", + "location": "query" + }, + "filterSet.absoluteDateRange.startDate.day": { + "format": "int32", + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "type": "integer", + "location": "query" + }, + "filterSet.realtimeTimeRange.startTimestamp": { + "format": "google-datetime", + "description": "The start timestamp of the real-time RTB metrics aggregation.", + "type": "string", + "location": "query" + }, + "filterSet.absoluteDateRange.startDate.month": { + "location": "query", + "format": "int32", + "description": "Month of year. Must be from 1 to 12.", + "type": "integer" + }, + "filterSet.absoluteDateRange.endDate.day": { + "format": "int32", + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "type": "integer", + "location": "query" + }, + "filterSet.absoluteDateRange.startDate.year": { + "format": "int32", + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "type": "integer", + "location": "query" + }, + "filterSet.name": { + "description": "A user-defined name of the filter set. Filter set names must be unique\nglobally and match one of the patterns:\n\n- `bidders/*/filterSets/*` (for accessing bidder-level troubleshooting\ndata)\n- `bidders/*/accounts/*/filterSets/*` (for accessing buyer-level\ntroubleshooting data)", + "type": "string", + "location": "query" + }, + "filterSet.platforms": { + "repeated": true, + "location": "query", + "enum": [ + "PLATFORM_UNSPECIFIED", + "DESKTOP", + "TABLET", + "MOBILE" + ], + "description": "The list of platforms on which to filter; may be empty. The filters\nrepresented by multiple platforms are ORed together (i.e. if non-empty,\nresults must match any one of the platforms).", + "type": "string" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSet.relativeDateRange.durationDays": { + "format": "int32", + "description": "The number of days in the requested date range. E.g. for a range spanning\ntoday, 1. For a range spanning the last 7 days, 7.", + "type": "integer", + "location": "query" + }, + "filterSet.dealId": { + "format": "int64", + "description": "The ID of the deal on which to filter; optional.", + "type": "string", + "location": "query" + }, + "filterSet.absoluteDateRange.endDate.year": { + "location": "query", + "format": "int32", + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "type": "integer" + }, + "filterSet.environment": { + "location": "query", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "WEB", + "APP" + ], + "description": "The environment on which to filter; optional.", + "type": "string" + }, + "filterSet.absoluteDateRange.endDate.month": { + "location": "query", + "format": "int32", + "description": "Month of year. Must be from 1 to 12.", + "type": "integer" + }, + "filterSet.sellerNetworkIds": { + "location": "query", + "format": "int32", + "description": "The list of IDs of the seller (publisher) networks on which to filter;\nmay be empty. The filters represented by multiple seller network IDs are\nORed together (i.e. if non-empty, results must match any one of the\npublisher networks).\nSee [seller-network-ids](https://developers.google.com/ad-exchange/rtb/downloads/seller-network-ids)\nfile for the set of existing seller network IDs.", + "type": "integer", + "repeated": true + }, + "filterSet.filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set; unique within the account of the filter set\nowner.\nThe value of this field is ignored in create operations.", + "type": "string" + }, + "filterSet.format": { + "location": "query", + "enum": [ + "FORMAT_UNSPECIFIED", + "DISPLAY", + "VIDEO" + ], + "description": "The format on which to filter; optional.", + "type": "string" + }, + "filterSet.timeSeriesGranularity": { + "location": "query", + "enum": [ + "TIME_SERIES_GRANULARITY_UNSPECIFIED", + "HOURLY", + "DAILY" + ], + "description": "The granularity of time intervals if a time series breakdown is desired;\noptional.", + "type": "string" + }, + "ownerName": { + "location": "path", + "description": "Name of the owner (bidder or account) of the filter set to be created.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+$" + }, + "filterSet.creativeId": { + "location": "query", + "description": "The ID of the creative on which to filter; optional.", + "type": "string" + }, + "filterSet.relativeDateRange.offsetDays": { + "location": "query", + "format": "int32", + "description": "The end date of the filter set, specified as the number of days before\ntoday. E.g. for a range where the last date is today, 0.", + "type": "integer" + }, + "isTransient": { + "location": "query", + "description": "Whether the filter set is transient, or should be persisted indefinitely.\nBy default, filter sets are not transient.\nIf transient, it will be available for at least 1 hour after creation.", + "type": "boolean" + }, + "filterSet.buyerAccountId": { + "format": "int64", + "description": "The ID of the buyer account on which to filter; optional.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/filterSets", + "id": "adexchangebuyer2.bidders.filterSets.create", + "path": "v2beta1/{+ownerName}/filterSets" + } }, - "type": "array" - } - }, - "id": "ListClientsResponse" - }, - "ListBidResponsesWithoutBidsResponse": { - "description": "Response message for listing all reasons that bid responses were considered\nto have no applicable bids.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidResponsesWithoutBidsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.bidResponsesWithoutBids.list\nmethod to retrieve the next page of results.", - "type": "string" + "resources": { + "bidResponseErrors": { + "methods": { + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListBidResponseErrorsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the bidResponseErrors.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidResponseErrors", + "path": "v2beta1/{+filterSetName}/bidResponseErrors", + "id": "adexchangebuyer2.bidders.filterSets.bidResponseErrors.list", + "description": "List all errors that occurred in bid responses, with the number of bid\nresponses affected for each reason." + } + } + }, + "bidResponsesWithoutBids": { + "methods": { + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "filterSetName" + ], + "response": { + "$ref": "ListBidResponsesWithoutBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the bidResponsesWithoutBids.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidResponsesWithoutBids", + "path": "v2beta1/{+filterSetName}/bidResponsesWithoutBids", + "id": "adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list", + "description": "List all reasons for which bid responses were considered to have no\napplicable bids, with the number of bid responses affected for each reason." + } + } + }, + "filteredBidRequests": { + "methods": { + "list": { + "description": "List all reasons that caused a bid request not to be sent for an\nimpression, with the number of bid requests not sent for each reason.", + "httpMethod": "GET", + "parameterOrder": [ + "filterSetName" + ], + "response": { + "$ref": "ListFilteredBidRequestsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the filteredBidRequests.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBidRequests", + "path": "v2beta1/{+filterSetName}/filteredBidRequests", + "id": "adexchangebuyer2.bidders.filterSets.filteredBidRequests.list" + } + } + }, + "nonBillableWinningBids": { + "methods": { + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "filterSetName" + ], + "response": { + "$ref": "ListNonBillableWinningBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the nonBillableWinningBids.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/nonBillableWinningBids", + "path": "v2beta1/{+filterSetName}/nonBillableWinningBids", + "id": "adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list", + "description": "List all reasons for which winning bids were not billable, with the number\nof bids not billed for each reason." + } + } + }, + "filteredBids": { + "methods": { + "list": { + "path": "v2beta1/{+filterSetName}/filteredBids", + "id": "adexchangebuyer2.bidders.filterSets.filteredBids.list", + "description": "List all reasons for which bids were filtered, with the number of bids\nfiltered for each reason.", + "httpMethod": "GET", + "parameterOrder": [ + "filterSetName" + ], + "response": { + "$ref": "ListFilteredBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the filteredBids.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default." + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids" + } + }, + "resources": { + "details": { + "methods": { + "list": { + "description": "List all details associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each detail.", + "httpMethod": "GET", + "response": { + "$ref": "ListCreativeStatusBreakdownByDetailResponse" + }, + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "parameters": { + "creativeStatusId": { + "location": "path", + "format": "int32", + "description": "The ID of the creative status for which to retrieve a breakdown by detail.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).\nDetails are only available for statuses 10, 14, 15, 17, 18, 19, 86, and 87.", + "type": "integer", + "required": true + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the filteredBids.details.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/details", + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details", + "id": "adexchangebuyer2.bidders.filterSets.filteredBids.details.list" + } + } + }, + "creatives": { + "methods": { + "list": { + "description": "List all creatives associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each creative.", + "response": { + "$ref": "ListCreativeStatusBreakdownByCreativeResponse" + }, + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetName": { + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the filteredBids.creatives.list\nmethod.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "creativeStatusId": { + "format": "int32", + "description": "The ID of the creative status for which to retrieve a breakdown by\ncreative.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", + "type": "integer", + "required": true, + "location": "path" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/creatives", + "id": "adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list", + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives" + } + } + } + } + }, + "losingBids": { + "methods": { + "list": { + "description": "List all reasons for which bids lost in the auction, with the number of\nbids that lost for each reason.", + "response": { + "$ref": "ListLosingBidsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the losingBids.list\nmethod." + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/losingBids", + "id": "adexchangebuyer2.bidders.filterSets.losingBids.list", + "path": "v2beta1/{+filterSetName}/losingBids" + } + } + }, + "bidMetrics": { + "methods": { + "list": { + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidMetrics", + "id": "adexchangebuyer2.bidders.filterSets.bidMetrics.list", + "path": "v2beta1/{+filterSetName}/bidMetrics", + "description": "Lists all metrics that are measured in terms of number of bids.", + "response": { + "$ref": "ListBidMetricsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the bidMetrics.list\nmethod." + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + } + } + } + } + }, + "impressionMetrics": { + "methods": { + "list": { + "id": "adexchangebuyer2.bidders.filterSets.impressionMetrics.list", + "path": "v2beta1/{+filterSetName}/impressionMetrics", + "description": "Lists all metrics that are measured in terms of number of impressions.", + "response": { + "$ref": "ListImpressionMetricsResponse" + }, + "httpMethod": "GET", + "parameterOrder": [ + "filterSetName" + ], + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the impressionMetrics.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/impressionMetrics" + } + } + } + } }, - "bidResponseWithoutBidsStatusRows": { - "description": "List of rows, with counts of bid responses without bids aggregated by\nstatus.", - "items": { - "$ref": "BidResponseWithoutBidsStatusRow" - }, - "type": "array" - } - }, - "id": "ListBidResponsesWithoutBidsResponse" - }, - "ServingContext": { - "id": "ServingContext", - "description": "The serving context for this restriction.", - "type": "object", - "properties": { - "appType": { - "description": "Matches impressions for a particular app type.", - "$ref": "AppContext" - }, - "securityType": { - "$ref": "SecurityContext", - "description": "Matches impressions for a particular security type." - }, - "platform": { - "description": "Matches impressions coming from a particular platform.", - "$ref": "PlatformContext" - }, - "location": { - "$ref": "LocationContext", - "description": "Matches impressions coming from users *or* publishers in a specific\nlocation." - }, - "auctionType": { - "$ref": "AuctionContext", - "description": "Matches impressions for a particular auction type." - }, - "all": { - "type": "string", - "enumDescriptions": [ - "A simple context." - ], - "enum": [ - "SIMPLE_CONTEXT" - ], - "description": "Matches all contexts." + "accounts": { + "resources": { + "filterSets": { + "methods": { + "delete": { + "path": "v2beta1/{+name}", + "id": "adexchangebuyer2.bidders.accounts.filterSets.delete", + "description": "Deletes the requested filter set from the account with the given account\nID.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "name": { + "description": "Full name of the resource to delete.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to delete.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}" + }, + "list": { + "response": { + "$ref": "ListFilterSetsResponse" + }, + "parameterOrder": [ + "ownerName" + ], + "httpMethod": "GET", + "parameters": { + "ownerName": { + "location": "path", + "description": "Name of the owner (bidder or account) of the filter sets to be listed.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+$" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilterSetsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.list\nmethod.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets", + "id": "adexchangebuyer2.bidders.accounts.filterSets.list", + "path": "v2beta1/{+ownerName}/filterSets", + "description": "Lists all filter sets for the account with the given account ID." + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "FilterSet" + }, + "parameters": { + "name": { + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Full name of the resource being requested.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to get.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}", + "path": "v2beta1/{+name}", + "id": "adexchangebuyer2.bidders.accounts.filterSets.get", + "description": "Retrieves the requested filter set for the account with the given account\nID." + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "ownerName" + ], + "response": { + "$ref": "FilterSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "isTransient": { + "location": "query", + "description": "Whether the filter set is transient, or should be persisted indefinitely.\nBy default, filter sets are not transient.\nIf transient, it will be available for at least 1 hour after creation.", + "type": "boolean" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "ownerName": { + "description": "Name of the owner (bidder or account) of the filter set to be created.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets", + "path": "v2beta1/{+ownerName}/filterSets", + "id": "adexchangebuyer2.bidders.accounts.filterSets.create", + "request": { + "$ref": "FilterSet" + }, + "description": "Creates the specified filter set for the account with the given account ID." + } + }, + "resources": { + "nonBillableWinningBids": { + "methods": { + "list": { + "path": "v2beta1/{+filterSetName}/nonBillableWinningBids", + "id": "adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list", + "description": "List all reasons for which winning bids were not billable, with the number\nof bids not billed for each reason.", + "httpMethod": "GET", + "response": { + "$ref": "ListNonBillableWinningBidsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the nonBillableWinningBids.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + }, + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/nonBillableWinningBids" + } + } + }, + "filteredBids": { + "methods": { + "list": { + "description": "List all reasons for which bids were filtered, with the number of bids\nfiltered for each reason.", + "httpMethod": "GET", + "response": { + "$ref": "ListFilteredBidsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the filteredBids.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids", + "path": "v2beta1/{+filterSetName}/filteredBids", + "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list" + } + }, + "resources": { + "creatives": { + "methods": { + "list": { + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/creatives", + "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list", + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives", + "description": "List all creatives associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each creative.", + "response": { + "$ref": "ListCreativeStatusBreakdownByCreativeResponse" + }, + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the filteredBids.creatives.list\nmethod." + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "creativeStatusId": { + "location": "path", + "format": "int32", + "description": "The ID of the creative status for which to retrieve a breakdown by\ncreative.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", + "type": "integer", + "required": true + } + } + } + } + }, + "details": { + "methods": { + "list": { + "response": { + "$ref": "ListCreativeStatusBreakdownByDetailResponse" + }, + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "creativeStatusId": { + "location": "path", + "format": "int32", + "description": "The ID of the creative status for which to retrieve a breakdown by detail.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).\nDetails are only available for statuses 10, 14, 15, 17, 18, 19, 86, and 87.", + "type": "integer", + "required": true + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the filteredBids.details.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/details", + "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list", + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details", + "description": "List all details associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each detail." + } + } + } + } + }, + "losingBids": { + "methods": { + "list": { + "description": "List all reasons for which bids lost in the auction, with the number of\nbids that lost for each reason.", + "response": { + "$ref": "ListLosingBidsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the losingBids.list\nmethod." + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/losingBids", + "id": "adexchangebuyer2.bidders.accounts.filterSets.losingBids.list", + "path": "v2beta1/{+filterSetName}/losingBids" + } + } + }, + "bidMetrics": { + "methods": { + "list": { + "description": "Lists all metrics that are measured in terms of number of bids.", + "response": { + "$ref": "ListBidMetricsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the bidMetrics.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidMetrics", + "id": "adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list", + "path": "v2beta1/{+filterSetName}/bidMetrics" + } + } + }, + "impressionMetrics": { + "methods": { + "list": { + "response": { + "$ref": "ListImpressionMetricsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the impressionMetrics.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "type": "string", + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/impressionMetrics", + "id": "adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list", + "path": "v2beta1/{+filterSetName}/impressionMetrics", + "description": "Lists all metrics that are measured in terms of number of impressions." + } + } + }, + "bidResponseErrors": { + "methods": { + "list": { + "description": "List all errors that occurred in bid responses, with the number of bid\nresponses affected for each reason.", + "httpMethod": "GET", + "response": { + "$ref": "ListBidResponseErrorsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the bidResponseErrors.list\nmethod.", + "type": "string", + "location": "query" + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "location": "query", + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string" + } + }, + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidResponseErrors", + "path": "v2beta1/{+filterSetName}/bidResponseErrors", + "id": "adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list" + } + } + }, + "bidResponsesWithoutBids": { + "methods": { + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListBidResponsesWithoutBidsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetId": { + "location": "query", + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the bidResponsesWithoutBids.list\nmethod." + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true, + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidResponsesWithoutBids", + "path": "v2beta1/{+filterSetName}/bidResponsesWithoutBids", + "id": "adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list", + "description": "List all reasons for which bid responses were considered to have no\napplicable bids, with the number of bid responses affected for each reason." + } + } + }, + "filteredBidRequests": { + "methods": { + "list": { + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "format": "int64", + "description": "Account ID of the buyer.", + "type": "string", + "location": "query" + }, + "filterSetId": { + "format": "int64", + "description": "The ID of the filter set to apply.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the filteredBidRequests.list\nmethod.", + "type": "string" + }, + "filterSetName": { + "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", + "location": "path", + "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBidRequests", + "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list", + "path": "v2beta1/{+filterSetName}/filteredBidRequests", + "description": "List all reasons that caused a bid request not to be sent for an\nimpression, with the number of bid requests not sent for each reason.", + "response": { + "$ref": "ListFilteredBidRequestsResponse" + }, + "parameterOrder": [ + "filterSetName" + ], + "httpMethod": "GET" + } + } + } + } + } + } } } }, - "Image": { - "type": "object", - "properties": { - "height": { - "format": "int32", - "description": "Image height in pixels.", - "type": "integer" + "accounts": { + "resources": { + "creatives": { + "methods": { + "list": { + "path": "v2beta1/accounts/{accountId}/creatives", + "id": "adexchangebuyer2.accounts.creatives.list", + "description": "Lists creatives.", + "httpMethod": "GET", + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "ListCreativesResponse" + }, + "parameters": { + "pageToken": { + "location": "query", + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativesResponse.next_page_token\nreturned from the previous call to 'ListCreatives' method.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. The server may return fewer creatives than requested\n(due to timeout constraint) even if more are available via another call.\nIf unspecified, server will pick an appropriate default.\nAcceptable values are 1 to 1000, inclusive.", + "type": "integer" + }, + "accountId": { + "type": "string", + "required": true, + "location": "path", + "description": "The account to list the creatives from.\nSpecify \"-\" to list all creatives the current user has access to." + }, + "query": { + "type": "string", + "location": "query", + "description": "An optional query string to filter creatives. If no filter is specified,\nall active creatives will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eattribute: {a numeric attribute from the list of attributes}\n\u003cli\u003edisapprovalReason: {a reason from\nDisapprovalReason\n\u003c/ul\u003e\nExample: 'accountId=12345 AND (dealsStatus:disapproved AND\ndisapprovalReason:unacceptable_content) OR attribute:47'" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/creatives" + }, + "create": { + "request": { + "$ref": "Creative" + }, + "description": "Creates a creative.", + "response": { + "$ref": "Creative" + }, + "parameterOrder": [ + "accountId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "duplicateIdMode": { + "type": "string", + "location": "query", + "enum": [ + "NO_DUPLICATES", + "FORCE_ENABLE_DUPLICATE_IDS" + ], + "description": "Indicates if multiple creatives can share an ID or not. Default is\nNO_DUPLICATES (one ID per creative)." + }, + "accountId": { + "location": "path", + "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/accounts/{accountId}/creatives", + "id": "adexchangebuyer2.accounts.creatives.create", + "path": "v2beta1/accounts/{accountId}/creatives" + }, + "stopWatching": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "creativeId": { + "type": "string", + "required": true, + "location": "path", + "description": "The creative ID of the creative to stop notifications for.\nSpecify \"-\" to specify stopping account level notifications." + }, + "accountId": { + "location": "path", + "description": "The account of the creative to stop notifications for.", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}:stopWatching", + "id": "adexchangebuyer2.accounts.creatives.stopWatching", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}:stopWatching", + "request": { + "$ref": "StopWatchingCreativeRequest" + }, + "description": "Stops watching a creative. Will stop push notifications being sent to the\ntopics when the creative changes status." + }, + "get": { + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}", + "id": "adexchangebuyer2.accounts.creatives.get", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}", + "description": "Gets a creative.", + "response": { + "$ref": "Creative" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "description": "The account the creative belongs to.", + "type": "string", + "required": true, + "location": "path" + }, + "creativeId": { + "location": "path", + "description": "The ID of the creative to retrieve.", + "type": "string", + "required": true + } + } + }, + "watch": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ], + "httpMethod": "POST", + "parameters": { + "creativeId": { + "description": "The creative ID to watch for status changes.\nSpecify \"-\" to watch all creatives under the above account.\nIf both creative-level and account-level notifications are\nsent, only a single notification will be sent to the\ncreative-level notification topic.", + "type": "string", + "required": true, + "location": "path" + }, + "accountId": { + "location": "path", + "description": "The account of the creative to watch.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}:watch", + "id": "adexchangebuyer2.accounts.creatives.watch", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}:watch", + "description": "Watches a creative. Will result in push notifications being sent to the\ntopic when the creative changes status.", + "request": { + "$ref": "WatchCreativeRequest" + } + }, + "update": { + "parameters": { + "accountId": { + "type": "string", + "required": true, + "location": "path", + "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod." + }, + "creativeId": { + "description": "The buyer-defined creative ID of this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}", + "id": "adexchangebuyer2.accounts.creatives.update", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}", + "description": "Updates a creative.", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ], + "httpMethod": "PUT" + } + }, + "resources": { + "dealAssociations": { + "methods": { + "remove": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "type": "string", + "required": true, + "location": "path", + "description": "The account the creative belongs to." + }, + "creativeId": { + "description": "The ID of the creative associated with the deal.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:remove", + "id": "adexchangebuyer2.accounts.creatives.dealAssociations.remove", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:remove", + "request": { + "$ref": "RemoveDealAssociationRequest" + }, + "description": "Remove the association between a deal and a creative." + }, + "add": { + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "location": "path", + "description": "The account the creative belongs to.", + "type": "string", + "required": true + }, + "creativeId": { + "description": "The ID of the creative associated with the deal.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:add", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:add", + "id": "adexchangebuyer2.accounts.creatives.dealAssociations.add", + "request": { + "$ref": "AddDealAssociationRequest" + }, + "description": "Associate an existing deal with a creative.", + "httpMethod": "POST", + "parameterOrder": [ + "accountId", + "creativeId" + ], + "response": { + "$ref": "Empty" + } + }, + "list": { + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListDealAssociationsResponse.next_page_token\nreturned from the previous call to 'ListDealAssociations' method.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. Server may return fewer associations than requested.\nIf unspecified, server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "description": "The account to list the associations from.\nSpecify \"-\" to list all creatives the current user has access to.", + "type": "string", + "required": true, + "location": "path" + }, + "query": { + "description": "An optional query string to filter deal associations. If no filter is\nspecified, all associations will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsId=\u003ci\u003edeals_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus:{approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus:{approved, conditionally_approved, disapproved,\n not_checked}\n\u003c/ul\u003e\nExample: 'dealsId=12345 AND dealsStatus:disapproved'", + "type": "string", + "location": "query" + }, + "creativeId": { + "location": "path", + "description": "The creative ID to list the associations from.\nSpecify \"-\" to list all creatives under the above account.", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations", + "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations", + "id": "adexchangebuyer2.accounts.creatives.dealAssociations.list", + "description": "List all creative-deal associations.", + "httpMethod": "GET", + "response": { + "$ref": "ListDealAssociationsResponse" + }, + "parameterOrder": [ + "accountId", + "creativeId" + ] + } + } + } + } }, - "width": { - "format": "int32", - "description": "Image width in pixels.", - "type": "integer" - }, - "url": { - "description": "The URL of the image.", - "type": "string" + "clients": { + "methods": { + "list": { + "id": "adexchangebuyer2.accounts.clients.list", + "path": "v2beta1/accounts/{accountId}/clients", + "description": "Lists all the clients for the current sponsor buyer.", + "response": { + "$ref": "ListClientsResponse" + }, + "parameterOrder": [ + "accountId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientsResponse.nextPageToken\nreturned from the previous call to the\naccounts.clients.list method.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer clients than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Unique numerical account ID of the sponsor buyer to list the clients for.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients" + }, + "get": { + "response": { + "$ref": "Client" + }, + "parameterOrder": [ + "accountId", + "clientAccountId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "format": "int64", + "description": "Numerical account ID of the client buyer to retrieve. (required)", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", + "id": "adexchangebuyer2.accounts.clients.get", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", + "description": "Gets a client buyer with a given client account ID." + }, + "update": { + "id": "adexchangebuyer2.accounts.clients.update", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", + "description": "Updates an existing client buyer.", + "request": { + "$ref": "Client" + }, + "response": { + "$ref": "Client" + }, + "parameterOrder": [ + "accountId", + "clientAccountId" + ], + "httpMethod": "PUT", + "parameters": { + "accountId": { + "location": "path", + "format": "int64", + "description": "Unique numerical account ID for the buyer of which the client buyer\nis a customer; the sponsor buyer to update a client for. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "location": "path", + "format": "int64", + "description": "Unique numerical account ID of the client to update. (required)", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}" + }, + "create": { + "id": "adexchangebuyer2.accounts.clients.create", + "path": "v2beta1/accounts/{accountId}/clients", + "request": { + "$ref": "Client" + }, + "description": "Creates a new client buyer.", + "response": { + "$ref": "Client" + }, + "parameterOrder": [ + "accountId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "format": "int64", + "description": "Unique numerical account ID for the buyer of which the client buyer\nis a customer; the sponsor buyer to create a client for. (required)", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients" + } + }, + "resources": { + "invitations": { + "methods": { + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "accountId", + "clientAccountId" + ], + "response": { + "$ref": "ListClientUserInvitationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. Server may return fewer clients than requested.\nIf unspecified, server will pick an appropriate default.", + "type": "integer" + }, + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "location": "path", + "description": "Numerical account ID of the client buyer to list invitations for.\n(required)\nYou must either specify a string representation of a\nnumerical account identifier or the `-` character\nto list all the invitations for all the clients\nof a given sponsor buyer.", + "type": "string", + "required": true + }, + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientUserInvitationsResponse.nextPageToken\nreturned from the previous call to the\nclients.invitations.list\nmethod.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", + "id": "adexchangebuyer2.accounts.clients.invitations.list", + "description": "Lists all the client users invitations for a client\nwith a given account ID." + }, + "get": { + "id": "adexchangebuyer2.accounts.clients.invitations.get", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations/{invitationId}", + "description": "Retrieves an existing client user invitation.", + "response": { + "$ref": "ClientUserInvitation" + }, + "parameterOrder": [ + "accountId", + "clientAccountId", + "invitationId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "format": "int64", + "description": "Numerical account ID of the client buyer that the user invitation\nto be retrieved is associated with. (required)", + "type": "string", + "required": true, + "location": "path" + }, + "invitationId": { + "location": "path", + "format": "int64", + "description": "Numerical identifier of the user invitation to retrieve. (required)", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations/{invitationId}" + }, + "create": { + "response": { + "$ref": "ClientUserInvitation" + }, + "parameterOrder": [ + "accountId", + "clientAccountId" + ], + "httpMethod": "POST", + "parameters": { + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client buyer that the user\nshould be associated with. (required)", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", + "id": "adexchangebuyer2.accounts.clients.invitations.create", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", + "description": "Creates and sends out an email invitation to access\nan Ad Exchange client buyer account.", + "request": { + "$ref": "ClientUserInvitation" + } + } + } + }, + "users": { + "methods": { + "get": { + "id": "adexchangebuyer2.accounts.clients.users.get", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", + "description": "Retrieves an existing client user.", + "response": { + "$ref": "ClientUser" + }, + "parameterOrder": [ + "accountId", + "clientAccountId", + "userId" + ], + "httpMethod": "GET", + "parameters": { + "userId": { + "format": "int64", + "description": "Numerical identifier of the user to retrieve. (required)", + "type": "string", + "required": true, + "location": "path" + }, + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + }, + "clientAccountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client buyer\nthat the user to be retrieved is associated with. (required)", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}" + }, + "list": { + "response": { + "$ref": "ListClientUsersResponse" + }, + "parameterOrder": [ + "accountId", + "clientAccountId" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientUsersResponse.nextPageToken\nreturned from the previous call to the\naccounts.clients.users.list method.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. The server may return fewer clients than requested.\nIf unspecified, the server will pick an appropriate default.", + "type": "integer", + "location": "query" + }, + "accountId": { + "format": "int64", + "description": "Numerical account ID of the sponsor buyer of the client to list users for.\n(required)", + "type": "string", + "required": true, + "location": "path" + }, + "clientAccountId": { + "type": "string", + "required": true, + "location": "path", + "description": "The account ID of the client buyer to list users for. (required)\nYou must specify either a string representation of a\nnumerical account identifier or the `-` character\nto list all the client users for all the clients\nof a given sponsor buyer." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users", + "id": "adexchangebuyer2.accounts.clients.users.list", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users", + "description": "Lists all the known client users for a specified\nsponsor buyer account ID." + }, + "update": { + "request": { + "$ref": "ClientUser" + }, + "description": "Updates an existing client user.\nOnly the user status can be changed on update.", + "response": { + "$ref": "ClientUser" + }, + "parameterOrder": [ + "accountId", + "clientAccountId", + "userId" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ], + "parameters": { + "clientAccountId": { + "format": "int64", + "description": "Numerical account ID of the client buyer that the user to be retrieved\nis associated with. (required)", + "type": "string", + "required": true, + "location": "path" + }, + "userId": { + "format": "int64", + "description": "Numerical identifier of the user to retrieve. (required)", + "type": "string", + "required": true, + "location": "path" + }, + "accountId": { + "location": "path", + "format": "int64", + "description": "Numerical account ID of the client's sponsor buyer. (required)", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", + "id": "adexchangebuyer2.accounts.clients.users.update", + "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}" + } + } + } + } } - }, - "id": "Image", - "description": "An image resource. You may provide a larger image than was requested,\nso long as the aspect ratio is preserved." + } + } + }, + "parameters": { + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" }, - "ListFilterSetsResponse": { - "description": "Response message for listing filter sets.", - "type": "object", - "properties": { - "filterSets": { - "description": "The filter sets belonging to the buyer.", - "items": { - "$ref": "FilterSet" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilterSetsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.list\nmethod to retrieve the next page of results.", - "type": "string" - } - }, - "id": "ListFilterSetsResponse" + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" }, - "BidResponseWithoutBidsStatusRow": { - "description": "The number of impressions with the specified dimension values that were\nconsidered to have no applicable bids, as described by the specified status.", - "type": "object", - "properties": { - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - }, - "impressionCount": { - "description": "The number of impressions for which there was a bid response with the\nspecified status.", - "$ref": "MetricValue" - }, - "status": { - "description": "The status specifying why the bid responses were considered to have no\napplicable bids.", - "type": "string", - "enumDescriptions": [ - "A placeholder for an undefined status.\nThis value will never be returned in responses.", - "The response had no bids.", - "The response had no bids for the specified account, though it may have\nincluded bids on behalf of other accounts.", - "The response had no bids for the specified deal, though it may have\nincluded bids on other deals on behalf of the account to which the deal\nbelongs." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "RESPONSES_WITHOUT_BIDS", - "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT", - "RESPONSES_WITHOUT_BIDS_FOR_DEAL" - ] - } - }, - "id": "BidResponseWithoutBidsStatusRow" + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" }, - "ClientUserInvitation": { - "properties": { - "invitationId": { - "format": "int64", - "description": "The unique numerical ID of the invitation that is sent to the user.\nThe value of this field is ignored in create operations.", - "type": "string" - }, - "email": { - "description": "The email address to which the invitation is sent. Email\naddresses should be unique among all client users under each sponsor\nbuyer.", - "type": "string" - }, - "clientAccountId": { - "format": "int64", - "description": "Numerical account ID of the client buyer\nthat the invited user is associated with.\nThe value of this field is ignored in create operations.", - "type": "string" - } - }, - "id": "ClientUserInvitation", - "description": "An invitation for a new client user to get access to the Ad Exchange\nBuyer UI.\nAll fields are required unless otherwise specified.", - "type": "object" + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" }, - "ListCreativeStatusBreakdownByDetailResponse": { - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListCreativeStatusBreakdownByDetailRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.filteredBids.details.list\nmethod to retrieve the next page of results.", - "type": "string" - }, - "filteredBidDetailRows": { - "description": "List of rows, with counts of bids with a given creative status aggregated\nby detail.", - "items": { - "$ref": "FilteredBidDetailRow" - }, - "type": "array" - }, - "detailType": { - "type": "string", - "enumDescriptions": [ - "A placeholder for an undefined status.\nThis value will never be returned in responses.", - "Indicates that the detail ID refers to a creative attribute; see\n[publisher-excludable-creative-attributes](https://developers.google.com/ad-exchange/rtb/downloads/publisher-excludable-creative-attributes).", - "Indicates that the detail ID refers to a vendor; see\n[vendors](https://developers.google.com/ad-exchange/rtb/downloads/vendors).", - "Indicates that the detail ID refers to a sensitive category; see\n[ad-sensitive-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-sensitive-categories).", - "Indicates that the detail ID refers to a product category; see\n[ad-product-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-product-categories).", - "Indicates that the detail ID refers to a disapproval reason; see\nDisapprovalReason enum in [snippet-status-report-proto](https://developers.google.com/ad-exchange/rtb/downloads/snippet-status-report-proto)." - ], - "enum": [ - "DETAIL_TYPE_UNSPECIFIED", - "CREATIVE_ATTRIBUTE", - "VENDOR", - "SENSITIVE_CATEGORY", - "PRODUCT_CATEGORY", - "DISAPPROVAL_REASON" - ], - "description": "The type of detail that the detail IDs represent." - } - }, - "id": "ListCreativeStatusBreakdownByDetailResponse", - "description": "Response message for listing all details associated with a given filtered bid\nreason.", - "type": "object" + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" }, - "ListClientUsersResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientUsersRequest.pageToken\nfield in the subsequent call to the\nclients.invitations.list\nmethod to retrieve the next\npage of results.", - "type": "string" - }, - "users": { - "description": "The returned list of client users.", - "items": { - "$ref": "ClientUser" - }, - "type": "array" - } - }, - "id": "ListClientUsersResponse" + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" }, - "ListClientUserInvitationsResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientUserInvitationsRequest.pageToken\nfield in the subsequent call to the\nclients.invitations.list\nmethod to retrieve the next\npage of results.", - "type": "string" - }, - "invitations": { - "description": "The returned list of client users.", - "items": { - "$ref": "ClientUserInvitation" - }, - "type": "array" - } - }, - "id": "ListClientUserInvitationsResponse" + "$.xgafv": { + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ] }, - "LocationContext": { - "description": "@OutputOnly The Geo criteria the restriction applies to.", - "type": "object", - "properties": { - "geoCriteriaIds": { - "description": "IDs representing the geo location for this context.\nPlease refer to the\n[geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)\nfile for different geo criteria IDs.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - } - }, - "id": "LocationContext" + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" }, - "PlatformContext": { - "description": "@OutputOnly The type of platform the restriction applies to.", - "type": "object", - "properties": { - "platforms": { - "enumDescriptions": [ - "Desktop platform.", - "Android platform.", - "iOS platform." - ], - "description": "The platforms this restriction applies to.", - "items": { - "enum": [ - "DESKTOP", - "ANDROID", - "IOS" - ], - "type": "string" - }, - "type": "array" - } - }, - "id": "PlatformContext" + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" }, - "MetricValue": { - "description": "A metric value, with an expected value and a variance; represents a count\nthat may be either exact or estimated (i.e. when sampled).", - "type": "object", - "properties": { - "variance": { - "type": "string", - "format": "int64", - "description": "The variance (i.e. square of the standard deviation) of the metric value.\nIf value is exact, variance is 0.\nCan be used to calculate margin of error as a percentage of value, using\nthe following formula, where Z is the standard constant that depends on the\ndesired size of the confidence interval (e.g. for 90% confidence interval,\nuse Z = 1.645):\n\n marginOfError = 100 * Z * sqrt(variance) / value" - }, - "value": { - "format": "int64", - "description": "The expected value of the metric.", - "type": "string" - } - }, - "id": "MetricValue" + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" }, - "ClientUser": { - "description": "A client user is created under a client buyer and has restricted access to\nthe Ad Exchange Marketplace and certain other sections\nof the Ad Exchange Buyer UI based on the role\ngranted to the associated client buyer.\n\nThe only way a new client user can be created is via accepting an\nemail invitation\n(see the\naccounts.clients.invitations.create\nmethod).\n\nAll fields are required unless otherwise specified.", - "type": "object", - "properties": { - "status": { - "enumDescriptions": [ - "A placeholder for an undefined user status.", - "A user who was already created but hasn't accepted the invitation yet.", - "A user that is currently active.", - "A user that is currently disabled." - ], - "enum": [ - "USER_STATUS_UNSPECIFIED", - "PENDING", - "ACTIVE", - "DISABLED" - ], - "description": "The status of the client user.", - "type": "string" - }, - "email": { - "description": "User's email address. The value of this field\nis ignored in an update operation.", - "type": "string" - }, - "userId": { - "format": "int64", - "description": "The unique numerical ID of the client user\nthat has accepted an invitation.\nThe value of this field is ignored in an update operation.", - "type": "string" - }, - "clientAccountId": { - "format": "int64", - "description": "Numerical account ID of the client buyer\nwith which the user is associated; the\nbuyer must be a client of the current sponsor buyer.\nThe value of this field is ignored in an update operation.", - "type": "string" - } - }, - "id": "ClientUser" + "key": { + "location": "query", + "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.", + "type": "string" }, - "CreativeDealAssociation": { - "description": "The association between a creative and a deal.", - "type": "object", - "properties": { - "dealsId": { - "description": "The externalDealId for the deal associated with the creative.", - "type": "string" - }, - "accountId": { - "type": "string", - "description": "The account the creative belongs to." - }, - "creativeId": { - "description": "The ID of the creative associated with the deal.", - "type": "string" - } - }, - "id": "CreativeDealAssociation" - }, - "Creative": { - "description": "A creative and its classification data.", - "type": "object", - "properties": { - "vendorIds": { - "description": "All vendor IDs for the ads that may be shown from this creative.\nSee https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt\nfor possible values.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "impressionTrackingUrls": { - "description": "The set of URLs to be called to record an impression.", - "items": { - "type": "string" - }, - "type": "array" - }, - "html": { - "$ref": "HtmlContent", - "description": "An HTML creative." - }, - "detectedProductCategories": { - "description": "@OutputOnly Detected product categories, if any.\nSee the ad-product-categories.txt file in the technical documentation\nfor a list of IDs.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "dealsStatus": { - "enumDescriptions": [ - "The status is unknown.", - "The creative has not been checked.", - "The creative has been conditionally approved.\nSee serving_restrictions for details.", - "The creative has been approved.", - "The creative has been disapproved." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "NOT_CHECKED", - "CONDITIONALLY_APPROVED", - "APPROVED", - "DISAPPROVED" - ], - "description": "@OutputOnly The top-level deals status of this creative.\nIf disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string" - }, - "openAuctionStatus": { - "description": "@OutputOnly The top-level open auction status of this creative.\nIf disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string", - "enumDescriptions": [ - "The status is unknown.", - "The creative has not been checked.", - "The creative has been conditionally approved.\nSee serving_restrictions for details.", - "The creative has been approved.", - "The creative has been disapproved." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "NOT_CHECKED", - "CONDITIONALLY_APPROVED", - "APPROVED", - "DISAPPROVED" - ] - }, - "advertiserName": { - "description": "The name of the company being advertised in the creative.", - "type": "string" - }, - "detectedDomains": { - "description": "@OutputOnly\nThe detected domains for this creative.", - "items": { - "type": "string" - }, - "type": "array" - }, - "detectedAdvertiserIds": { - "description": "@OutputOnly Detected advertiser IDs, if any.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "filteringStats": { - "$ref": "FilteringStats", - "description": "@OutputOnly The filtering stats for this creative." - }, - "attributes": { - "description": "All attributes for the ads that may be shown from this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "items": { - "type": "string", - "enum": [ - "ATTRIBUTE_UNSPECIFIED", - "IS_TAGGED", - "IS_COOKIE_TARGETED", - "IS_USER_INTEREST_TARGETED", - "EXPANDING_DIRECTION_NONE", - "EXPANDING_DIRECTION_UP", - "EXPANDING_DIRECTION_DOWN", - "EXPANDING_DIRECTION_LEFT", - "EXPANDING_DIRECTION_RIGHT", - "EXPANDING_DIRECTION_UP_LEFT", - "EXPANDING_DIRECTION_UP_RIGHT", - "EXPANDING_DIRECTION_DOWN_LEFT", - "EXPANDING_DIRECTION_DOWN_RIGHT", - "EXPANDING_DIRECTION_UP_OR_DOWN", - "EXPANDING_DIRECTION_LEFT_OR_RIGHT", - "EXPANDING_DIRECTION_ANY_DIAGONAL", - "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", - "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", - "RICH_MEDIA_CAPABILITY_TYPE_MRAID", - "RICH_MEDIA_CAPABILITY_TYPE_SSL", - "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", - "NATIVE_ELIGIBILITY_ELIGIBLE", - "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", - "RENDERING_SIZELESS_ADX" - ] - }, - "type": "array", - "enumDescriptions": [ - "Do not use. This is a placeholder value only.", - "The creative is tagged.", - "The creative is cookie targeted.", - "The creative is user interest targeted.", - "The creative does not expand.", - "The creative expands up.", - "The creative expands down.", - "The creative expands left.", - "The creative expands right.", - "The creative expands up and left.", - "The creative expands up and right.", - "The creative expands down and left.", - "The creative expands down and right.", - "The creative expands up or down.", - "The creative expands left or right.", - "The creative expands on any diagonal.", - "The creative expands when rolled over.", - "The instream vast video type is vpaid flash.", - "The creative is MRAID", - "The creative is SSL.", - "The creative is an interstitial.", - "The creative is eligible for native.", - "The creative is not eligible for native.", - "The creative can dynamically resize to fill a variety of slot sizes." - ] - }, - "apiUpdateTime": { - "type": "string", - "format": "google-datetime", - "description": "@OutputOnly The last update timestamp of the creative via API." - }, - "detectedLanguages": { - "description": "@OutputOnly\nThe detected languages for this creative. The order is arbitrary. The codes\nare 2 or 5 characters and are documented at\nhttps://developers.google.com/adwords/api/docs/appendix/languagecodes.", - "items": { - "type": "string" - }, - "type": "array" - }, - "creativeId": { - "description": "The buyer-defined creative ID of this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string" - }, - "accountId": { - "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string" - }, - "native": { - "$ref": "NativeContent", - "description": "A native creative." - }, - "video": { - "$ref": "VideoContent", - "description": "A video creative." - }, - "servingRestrictions": { - "description": "@OutputOnly The granular status of this ad in specific contexts.\nA context here relates to where something ultimately serves (for example,\na physical location, a platform, an HTTPS vs HTTP request, or the type\nof auction).", - "items": { - "$ref": "ServingRestriction" - }, - "type": "array" - }, - "agencyId": { - "format": "int64", - "description": "The agency ID for this creative.", - "type": "string" - }, - "clickThroughUrls": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The set of destination URLs for the creative." - }, - "adChoicesDestinationUrl": { - "description": "The link to AdChoices destination page.", - "type": "string" - }, - "detectedSensitiveCategories": { - "description": "@OutputOnly Detected sensitive categories, if any.\nSee the ad-sensitive-categories.txt file in the technical documentation for\na list of IDs. You should use these IDs along with the\nexcluded-sensitive-category field in the bid request to filter your bids.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "restrictedCategories": { - "description": "All restricted categories for the ads that may be shown from this creative.", - "items": { - "enum": [ - "NO_RESTRICTED_CATEGORIES", - "ALCOHOL" - ], - "type": "string" - }, - "type": "array", - "enumDescriptions": [ - "The ad has no restricted categories", - "The alcohol restricted category." - ] - }, - "corrections": { - "description": "@OutputOnly Shows any corrections that were applied to this creative.", - "items": { - "$ref": "Correction" - }, - "type": "array" - }, - "version": { - "format": "int32", - "description": "@OutputOnly The version of this creative.", - "type": "integer" - } - }, - "id": "Creative" - }, - "FilteringStats": { - "description": "@OutputOnly Filtering reasons for this creative during a period of a single\nday (from midnight to midnight Pacific).", - "type": "object", - "properties": { - "reasons": { - "description": "The set of filtering reasons for this date.", - "items": { - "$ref": "Reason" - }, - "type": "array" - }, - "date": { - "description": "The day during which the data was collected.\nThe data is collected from 00:00:00 to 23:59:59 PT.\nDuring switches from PST to PDT and back, the day may\ncontain 23 or 25 hours of data instead of the usual 24.", - "$ref": "Date" - } - }, - "id": "FilteringStats" + "quotaUser": { + "location": "query", + "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.", + "type": "string" }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + } + }, + "version": "v2beta1", + "baseUrl": "https://adexchangebuyer.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Accesses the latest features for managing Ad Exchange accounts, Real-Time Bidding configurations and auction metrics, and Marketplace programmatic deals.", + "servicePath": "", + "basePath": "", + "id": "adexchangebuyer2:v2beta1", + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest/reference/rest/", + "revision": "20171019", + "discoveryVersion": "v1", + "version_module": true, + "schemas": { "RemoveDealAssociationRequest": { "description": "A request for removing the association between a deal and a creative.", "type": "object", @@ -851,38 +2390,16 @@ }, "id": "RemoveDealAssociationRequest" }, - "ListCreativeStatusBreakdownByCreativeResponse": { - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListCreativeStatusBreakdownByCreativeRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.filteredBids.creatives.list\nmethod to retrieve the next page of results.", - "type": "string" - }, - "filteredBidCreativeRows": { - "description": "List of rows, with counts of bids with a given creative status aggregated\nby creative.", - "items": { - "$ref": "FilteredBidCreativeRow" - }, - "type": "array" - } - }, - "id": "ListCreativeStatusBreakdownByCreativeResponse", - "description": "Response message for listing all creatives associated with a given filtered\nbid reason.", - "type": "object" - }, "Client": { "description": "A client resource represents a client buyer—an agency,\na brand, or an advertiser customer of the sponsor buyer.\nUsers associated with the client buyer have restricted access to\nthe Ad Exchange Marketplace and certain other sections\nof the Ad Exchange Buyer UI based on the role\ngranted to the client buyer.\nAll fields are required unless otherwise specified.", "type": "object", "properties": { - "clientAccountId": { - "format": "int64", - "description": "The globally-unique numerical ID of the client.\nThe value of this field is ignored in create and update operations.", + "entityName": { + "description": "The name of the entity. This field is automatically fetched based on\nthe type and ID.\nThe value of this field is ignored in create and update operations.", "type": "string" }, - "entityName": { - "type": "string", - "description": "The name of the entity. This field is automatically fetched based on\nthe type and ID.\nThe value of this field is ignored in create and update operations." - }, "status": { + "type": "string", "enumDescriptions": [ "A placeholder for an undefined client status.", "A client that is currently disabled.", @@ -893,10 +2410,15 @@ "DISABLED", "ACTIVE" ], - "description": "The status of the client buyer.", - "type": "string" + "description": "The status of the client buyer." }, "entityType": { + "enumDescriptions": [ + "A placeholder for an undefined client entity type. Should not be used.", + "An advertiser.", + "A brand.", + "An advertising agency." + ], "enum": [ "ENTITY_TYPE_UNSPECIFIED", "ADVERTISER", @@ -904,19 +2426,19 @@ "AGENCY" ], "description": "The type of the client entity: `ADVERTISER`, `BRAND`, or `AGENCY`.", - "type": "string", - "enumDescriptions": [ - "A placeholder for an undefined client entity type. Should not be used.", - "An advertiser.", - "A brand.", - "An advertising agency." - ] + "type": "string" }, "clientName": { "description": "Name used to represent this client to publishers.\nYou may have multiple clients that map to the same entity,\nbut for each client the combination of `clientName` and entity\nmust be unique.\nYou can specify this field as empty.", "type": "string" }, "role": { + "enumDescriptions": [ + "A placeholder for an undefined client role.", + "Users associated with this client can see publisher deal offers\nin the Marketplace.\nThey can neither negotiate proposals nor approve deals.\nIf this client is visible to publishers, they can send deal proposals\nto this client.", + "Users associated with this client can respond to deal proposals\nsent to them by publishers. They can also initiate deal proposals\nof their own.", + "Users associated with this client can approve eligible deals\non your behalf. Some deals may still explicitly require publisher\nfinalization. If this role is not selected, the sponsor buyer\nwill need to manually approve each of their deals." + ], "enum": [ "CLIENT_ROLE_UNSPECIFIED", "CLIENT_DEAL_VIEWER", @@ -924,13 +2446,7 @@ "CLIENT_DEAL_APPROVER" ], "description": "The role which is assigned to the client buyer. Each role implies a set of\npermissions granted to the client. Must be one of `CLIENT_DEAL_VIEWER`,\n`CLIENT_DEAL_NEGOTIATOR` or `CLIENT_DEAL_APPROVER`.", - "type": "string", - "enumDescriptions": [ - "A placeholder for an undefined client role.", - "Users associated with this client can see publisher deal offers\nin the Marketplace.\nThey can neither negotiate proposals nor approve deals.\nIf this client is visible to publishers, they can send deal proposals\nto this client.", - "Users associated with this client can respond to deal proposals\nsent to them by publishers. They can also initiate deal proposals\nof their own.", - "Users associated with this client can approve eligible deals\non your behalf. Some deals may still explicitly require publisher\nfinalization. If this role is not selected, the sponsor buyer\nwill need to manually approve each of their deals." - ] + "type": "string" }, "visibleToSeller": { "description": "Whether the client buyer will be visible to sellers.", @@ -940,14 +2456,59 @@ "format": "int64", "description": "Numerical identifier of the client entity.\nThe entity can be an advertiser, a brand, or an agency.\nThis identifier is unique among all the entities with the same type.\n\nA list of all known advertisers with their identifiers is available in the\n[advertisers.txt](https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt)\nfile.\n\nA list of all known brands with their identifiers is available in the\n[brands.txt](https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt)\nfile.\n\nA list of all known agencies with their identifiers is available in the\n[agencies.txt](https://storage.googleapis.com/adx-rtb-dictionaries/agencies.txt)\nfile.", "type": "string" + }, + "clientAccountId": { + "format": "int64", + "description": "The globally-unique numerical ID of the client.\nThe value of this field is ignored in create and update operations.", + "type": "string" } }, "id": "Client" }, - "Correction": { + "ListCreativeStatusBreakdownByCreativeResponse": { + "description": "Response message for listing all creatives associated with a given filtered\nbid reason.", "type": "object", "properties": { + "filteredBidCreativeRows": { + "description": "List of rows, with counts of bids with a given creative status aggregated\nby creative.", + "items": { + "$ref": "FilteredBidCreativeRow" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListCreativeStatusBreakdownByCreativeRequest.pageToken\nfield in the subsequent call to the filteredBids.creatives.list\nmethod to retrieve the next page of results.", + "type": "string" + } + }, + "id": "ListCreativeStatusBreakdownByCreativeResponse" + }, + "Correction": { + "description": "@OutputOnly Shows any corrections that were applied to this creative.", + "type": "object", + "properties": { + "details": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Additional details about what was corrected." + }, "type": { + "enumDescriptions": [ + "The correction type is unknown. Refer to the details for more information.", + "The ad's declared vendors did not match the vendors that were detected.\nThe detected vendors were added.", + "The ad had the SSL attribute declared but was not SSL-compliant.\nThe SSL attribute was removed.", + "The ad was declared as Flash-free but contained Flash, so the Flash-free\nattribute was removed.", + "The ad was not declared as Flash-free but it did not reference any flash\ncontent, so the Flash-free attribute was added.", + "The ad did not declare a required creative attribute.\nThe attribute was added.", + "The ad did not declare a required technology vendor.\nThe technology vendor was added.", + "The ad did not declare the SSL attribute but was SSL-compliant, so the\nSSL attribute was added.", + "Properties consistent with In-banner video were found, so an\nIn-Banner Video attribute was added.", + "The ad makes calls to the MRAID API so the MRAID attribute was added.", + "The ad unnecessarily declared the Flash attribute, so the Flash attribute\nwas removed.", + "The ad contains video content." + ], "enum": [ "CORRECTION_TYPE_UNSPECIFIED", "VENDOR_IDS_ADDED", @@ -963,21 +2524,7 @@ "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" ], "description": "The type of correction that was applied to the creative.", - "type": "string", - "enumDescriptions": [ - "The correction type is unknown. Refer to the details for more information.", - "The ad's declared vendors did not match the vendors that were detected.\nThe detected vendors were added.", - "The ad had the SSL attribute declared but was not SSL-compliant.\nThe SSL attribute was removed.", - "The ad was declared as Flash-free but contained Flash, so the Flash-free\nattribute was removed.", - "The ad was not declared as Flash-free but it did not reference any flash\ncontent, so the Flash-free attribute was added.", - "The ad did not declare a required creative attribute.\nThe attribute was added.", - "The ad did not declare a required technology vendor.\nThe technology vendor was added.", - "The ad did not declare the SSL attribute but was SSL-compliant, so the\nSSL attribute was added.", - "Properties consistent with In-banner video were found, so an\nIn-Banner Video attribute was added.", - "The ad makes calls to the MRAID API so the MRAID attribute was added.", - "The ad unnecessarily declared the Flash attribute, so the Flash attribute\nwas removed.", - "The ad contains video content." - ] + "type": "string" }, "contexts": { "description": "The contexts for the correction.", @@ -985,22 +2532,67 @@ "$ref": "ServingContext" }, "type": "array" - }, - "details": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Additional details about what was corrected." } }, - "id": "Correction", - "description": "@OutputOnly Shows any corrections that were applied to this creative." + "id": "Correction" }, "FilterSet": { "description": "A set of filters that is applied to a request for data.\nWithin a filter set, an AND operation is performed across the filters\nrepresented by each field. An OR operation is performed across the filters\nrepresented by the multiple values of a repeated field. E.g.\n\"format=VIDEO AND deal_id=12 AND (seller_network_id=34 OR\nseller_network_id=56)\"", "type": "object", "properties": { + "creativeId": { + "description": "The ID of the creative on which to filter; optional.", + "type": "string" + }, + "relativeDateRange": { + "description": "A relative date range, defined by an offset from today and a duration.\nInterpreted relative to Pacific time zone.", + "$ref": "RelativeDateRange" + }, + "platforms": { + "description": "The list of platforms on which to filter; may be empty. The filters\nrepresented by multiple platforms are ORed together (i.e. if non-empty,\nresults must match any one of the platforms).", + "items": { + "enum": [ + "PLATFORM_UNSPECIFIED", + "DESKTOP", + "TABLET", + "MOBILE" + ], + "type": "string" + }, + "type": "array", + "enumDescriptions": [ + "A placeholder for an undefined platform; indicates that no platform\nfilter will be applied.", + "The ad impression appears on a desktop.", + "The ad impression appears on a tablet.", + "The ad impression appears on a mobile device." + ] + }, + "name": { + "description": "A user-defined name of the filter set. Filter set names must be unique\nglobally and match one of the patterns:\n\n- `bidders/*/filterSets/*` (for accessing bidder-level troubleshooting\ndata)\n- `bidders/*/accounts/*/filterSets/*` (for accessing buyer-level\ntroubleshooting data)", + "type": "string" + }, + "sellerNetworkIds": { + "description": "The list of IDs of the seller (publisher) networks on which to filter;\nmay be empty. The filters represented by multiple seller network IDs are\nORed together (i.e. if non-empty, results must match any one of the\npublisher networks).\nSee [seller-network-ids](https://developers.google.com/ad-exchange/rtb/downloads/seller-network-ids)\nfile for the set of existing seller network IDs.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "ownerAccountId": { + "format": "int64", + "description": "The account ID of the buyer who owns this filter set.\nThe value of this field is ignored in create operations.", + "type": "string" + }, + "buyerAccountId": { + "type": "string", + "format": "int64", + "description": "The ID of the buyer account on which to filter; optional." + }, + "absoluteDateRange": { + "description": "An absolute date range, defined by a start date and an end date.\nInterpreted relative to Pacific time zone.", + "$ref": "AbsoluteDateRange" + }, "environment": { "description": "The environment on which to filter; optional.", "type": "string", @@ -1016,7 +2608,6 @@ ] }, "format": { - "type": "string", "enumDescriptions": [ "A placeholder for an undefined format; indicates that no format filter\nwill be applied.", "The ad impression is display format (i.e. an image).", @@ -1027,7 +2618,8 @@ "DISPLAY", "VIDEO" ], - "description": "The format on which to filter; optional." + "description": "The format on which to filter; optional.", + "type": "string" }, "dealId": { "format": "int64", @@ -1035,8 +2627,6 @@ "type": "string" }, "timeSeriesGranularity": { - "description": "The granularity of time intervals if a time series breakdown is desired;\noptional.", - "type": "string", "enumDescriptions": [ "A placeholder for an unspecified interval; no time series is applied.\nAll rows in response will contain data for the entire requested time range.", "Indicates that data will be broken down by the hour.", @@ -1046,87 +2636,22 @@ "TIME_SERIES_GRANULARITY_UNSPECIFIED", "HOURLY", "DAILY" - ] + ], + "description": "The granularity of time intervals if a time series breakdown is desired;\noptional.", + "type": "string" }, "filterSetId": { - "type": "string", "format": "int64", - "description": "The ID of the filter set; unique within the account of the filter set\nowner.\nThe value of this field is ignored in create operations." + "description": "The ID of the filter set; unique within the account of the filter set\nowner.\nThe value of this field is ignored in create operations.", + "type": "string" }, "realtimeTimeRange": { "description": "An open-ended realtime time range, defined by the aggregation start\ntimestamp.", "$ref": "RealtimeTimeRange" - }, - "creativeId": { - "description": "The ID of the creative on which to filter; optional.", - "type": "string" - }, - "relativeDateRange": { - "$ref": "RelativeDateRange", - "description": "A relative date range, defined by an offset from today and a duration.\nInterpreted relative to Pacific time zone." - }, - "platforms": { - "description": "The list of platforms on which to filter; may be empty. The filters\nrepresented by multiple platforms are ORed together (i.e. if non-empty,\nresults must match any one of the platforms).", - "items": { - "type": "string", - "enum": [ - "PLATFORM_UNSPECIFIED", - "DESKTOP", - "TABLET", - "MOBILE" - ] - }, - "type": "array", - "enumDescriptions": [ - "A placeholder for an undefined platform; indicates that no platform\nfilter will be applied.", - "The ad impression appears on a desktop.", - "The ad impression appears on a tablet.", - "The ad impression appears on a mobile device." - ] - }, - "sellerNetworkIds": { - "description": "The list of IDs of the seller (publisher) networks on which to filter;\nmay be empty. The filters represented by multiple seller network IDs are\nORed together (i.e. if non-empty, results must match any one of the\npublisher networks).\nSee [seller-network-ids](https://developers.google.com/ad-exchange/rtb/downloads/seller-network-ids)\nfile for the set of existing seller network IDs.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "ownerAccountId": { - "format": "int64", - "description": "The account ID of the buyer who owns this filter set.\nThe value of this field is ignored in create operations.", - "type": "string" - }, - "absoluteDateRange": { - "$ref": "AbsoluteDateRange", - "description": "An absolute date range, defined by a start date and an end date.\nInterpreted relative to Pacific time zone." - }, - "buyerAccountId": { - "format": "int64", - "description": "The ID of the buyer account on which to filter; optional.", - "type": "string" } }, "id": "FilterSet" }, - "ListDealAssociationsResponse": { - "description": "A response for listing creative and deal associations", - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListDealAssociationsRequest.page_token\nfield in the subsequent call to 'ListDealAssociation' method to retrieve\nthe next page of results.", - "type": "string" - }, - "associations": { - "items": { - "$ref": "CreativeDealAssociation" - }, - "type": "array", - "description": "The list of associations." - } - }, - "id": "ListDealAssociationsResponse" - }, "CalloutStatusRow": { "description": "The number of impressions with the specified dimension values where the\ncorresponding bid request or bid response was not successful, as described by\nthe specified callout status.", "type": "object", @@ -1147,14 +2672,31 @@ }, "id": "CalloutStatusRow" }, + "ListDealAssociationsResponse": { + "description": "A response for listing creative and deal associations", + "type": "object", + "properties": { + "associations": { + "description": "The list of associations.", + "items": { + "$ref": "CreativeDealAssociation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListDealAssociationsRequest.page_token\nfield in the subsequent call to 'ListDealAssociation' method to retrieve\nthe next page of results.", + "type": "string" + } + }, + "id": "ListDealAssociationsResponse" + }, "StopWatchingCreativeRequest": { - "properties": {}, - "id": "StopWatchingCreativeRequest", "description": "A request for stopping notifications for changes to creative Status.", - "type": "object" + "type": "object", + "properties": {}, + "id": "StopWatchingCreativeRequest" }, "Disapproval": { - "id": "Disapproval", "description": "@OutputOnly The reason and details for a disapproval.", "type": "object", "properties": { @@ -1166,8 +2708,6 @@ "type": "array" }, "reason": { - "description": "The categorized reason for disapproval.", - "type": "string", "enumDescriptions": [ "The length of the image animation is longer than allowed.", "The click through URL doesn't work properly.", @@ -1359,28 +2899,17 @@ "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED", "PERSONAL_LOANS", "UNSUPPORTED_FLASH_CONTENT" - ] + ], + "description": "The categorized reason for disapproval.", + "type": "string" } - } + }, + "id": "Disapproval" }, "ServingRestriction": { "description": "@OutputOnly A representation of the status of an ad in a\nspecific context. A context here relates to where something ultimately serves\n(for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,\nor the type of auction).", "type": "object", "properties": { - "status": { - "description": "The status of the creative in this context (for example, it has been\nexplicitly disapproved or is pending review).", - "type": "string", - "enumDescriptions": [ - "The status is not known.", - "The ad was disapproved in this context.", - "The ad is pending review in this context." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "DISAPPROVAL", - "PENDING_REVIEW" - ] - }, "disapprovalReasons": { "description": "Any disapprovals bound to this restriction.\nOnly present if status=DISAPPROVED.\nCan be used to filter the response of the\ncreatives.list\nmethod.", "items": { @@ -1394,6 +2923,20 @@ "$ref": "ServingContext" }, "type": "array" + }, + "status": { + "type": "string", + "enumDescriptions": [ + "The status is not known.", + "The ad was disapproved in this context.", + "The ad is pending review in this context." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "DISAPPROVAL", + "PENDING_REVIEW" + ], + "description": "The status of the creative in this context (for example, it has been\nexplicitly disapproved or is pending review)." } }, "id": "ServingRestriction" @@ -1403,6 +2946,11 @@ "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", "type": "object", "properties": { + "month": { + "format": "int32", + "description": "Month of year. Must be from 1 to 12.", + "type": "integer" + }, "day": { "format": "int32", "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", @@ -1412,11 +2960,6 @@ "format": "int32", "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", "type": "integer" - }, - "month": { - "format": "int32", - "description": "Month of year. Must be from 1 to 12.", - "type": "integer" } } }, @@ -1425,8 +2968,8 @@ "type": "object", "properties": { "timeInterval": { - "description": "The time interval that this row represents.", - "$ref": "TimeInterval" + "$ref": "TimeInterval", + "description": "The time interval that this row represents." } }, "id": "RowDimensions" @@ -1438,50 +2981,53 @@ "id": "Empty" }, "AppContext": { - "description": "@OutputOnly The app type the restriction applies to for mobile device.", "type": "object", "properties": { "appTypes": { - "enumDescriptions": [ - "Native app context.", - "Mobile web app context." - ], "description": "The app types this restriction applies to.", "items": { - "type": "string", "enum": [ "NATIVE", "WEB" - ] + ], + "type": "string" }, - "type": "array" + "type": "array", + "enumDescriptions": [ + "Native app context.", + "Mobile web app context." + ] } }, - "id": "AppContext" + "id": "AppContext", + "description": "@OutputOnly The app type the restriction applies to for mobile device." }, "ListFilteredBidsResponse": { + "id": "ListFilteredBidsResponse", "description": "Response message for listing all reasons that bids were filtered from the\nauction.", "type": "object", "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilteredBidsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.filteredBids.list\nmethod to retrieve the next page of results.", - "type": "string" - }, "creativeStatusRows": { "description": "List of rows, with counts of filtered bids aggregated by filtering reason\n(i.e. creative status).", "items": { "$ref": "CreativeStatusRow" }, "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilteredBidsRequest.pageToken\nfield in the subsequent call to the filteredBids.list\nmethod to retrieve the next page of results.", + "type": "string" } - }, - "id": "ListFilteredBidsResponse" + } }, "SecurityContext": { - "description": "@OutputOnly A security context.", "type": "object", "properties": { "securities": { + "enumDescriptions": [ + "Matches impressions that require insecure compatibility.", + "Matches impressions that require SSL compatibility." + ], "description": "The security types in this context.", "items": { "enum": [ @@ -1490,16 +3036,37 @@ ], "type": "string" }, - "type": "array", - "enumDescriptions": [ - "Matches impressions that require insecure compatibility.", - "Matches impressions that require SSL compatibility." - ] + "type": "array" } }, - "id": "SecurityContext" + "id": "SecurityContext", + "description": "@OutputOnly A security context." + }, + "HtmlContent": { + "description": "HTML content for a creative.", + "type": "object", + "properties": { + "width": { + "format": "int32", + "description": "The width of the HTML snippet in pixels.", + "type": "integer" + }, + "snippet": { + "type": "string", + "description": "The HTML snippet that displays the ad when inserted in the web page." + }, + "height": { + "format": "int32", + "description": "The height of the HTML snippet in pixels.", + "type": "integer" + } + }, + "id": "HtmlContent" }, "ListCreativesResponse": { + "id": "ListCreativesResponse", + "description": "A response for listing creatives.", + "type": "object", "properties": { "creatives": { "description": "The list of creatives.", @@ -1512,52 +3079,27 @@ "type": "string", "description": "A token to retrieve the next page of results.\nPass this value in the\nListCreativesRequest.page_token\nfield in the subsequent call to `ListCreatives` method to retrieve the next\npage of results." } - }, - "id": "ListCreativesResponse", - "description": "A response for listing creatives.", - "type": "object" - }, - "HtmlContent": { - "description": "HTML content for a creative.", - "type": "object", - "properties": { - "width": { - "format": "int32", - "description": "The width of the HTML snippet in pixels.", - "type": "integer" - }, - "snippet": { - "description": "The HTML snippet that displays the ad when inserted in the web page.", - "type": "string" - }, - "height": { - "format": "int32", - "description": "The height of the HTML snippet in pixels.", - "type": "integer" - } - }, - "id": "HtmlContent" + } }, "ListFilteredBidRequestsResponse": { "description": "Response message for listing all reasons that bid requests were filtered and\nnot sent to the buyer.", "type": "object", "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilteredBidRequestsRequest.pageToken\nfield in the subsequent call to the filteredBidRequests.list\nmethod to retrieve the next page of results.", + "type": "string" + }, "calloutStatusRows": { "description": "List of rows, with counts of filtered bid requests aggregated by callout\nstatus.", "items": { "$ref": "CalloutStatusRow" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilteredBidRequestsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.filteredBidRequests.list\nmethod to retrieve the next page of results.", - "type": "string" } }, "id": "ListFilteredBidRequestsResponse" }, "ListBidMetricsResponse": { - "id": "ListBidMetricsResponse", "description": "Response message for listing the metrics that are measured in number of bids.", "type": "object", "properties": { @@ -1569,24 +3111,25 @@ "type": "array" }, "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidMetricsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.bidMetrics.list\nmethod to retrieve the next page of results.", + "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidMetricsRequest.pageToken\nfield in the subsequent call to the bidMetrics.list\nmethod to retrieve the next page of results.", "type": "string" } - } + }, + "id": "ListBidMetricsResponse" }, "Reason": { "description": "A specific filtering status and how many times it occurred.", "type": "object", "properties": { - "status": { - "format": "int32", - "description": "The filtering status code. Please refer to the\n[creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)\nfile for different statuses.", - "type": "integer" - }, "count": { "format": "int64", "description": "The number of times the creative was filtered for the status. The\ncount is aggregated across all publishers on the exchange.", "type": "string" + }, + "status": { + "format": "int32", + "description": "The filtering status code. Please refer to the\n[creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)\nfile for different statuses.", + "type": "integer" } }, "id": "Reason" @@ -1607,16 +3150,16 @@ "description": "Response message for listing all reasons that bids lost in the auction.", "type": "object", "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListLosingBidsRequest.pageToken\nfield in the subsequent call to the losingBids.list\nmethod to retrieve the next page of results.", + "type": "string" + }, "creativeStatusRows": { + "description": "List of rows, with counts of losing bids aggregated by loss reason (i.e.\ncreative status).", "items": { "$ref": "CreativeStatusRow" }, - "type": "array", - "description": "List of rows, with counts of losing bids aggregated by loss reason (i.e.\ncreative status)." - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListLosingBidsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.losingBids.list\nmethod to retrieve the next page of results.", - "type": "string" + "type": "array" } } }, @@ -1624,16 +3167,16 @@ "description": "Response message for listing all reasons for which a buyer was not billed for\na winning bid.", "type": "object", "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListNonBillableWinningBidsRequest.pageToken\nfield in the subsequent call to the nonBillableWinningBids.list\nmethod to retrieve the next page of results.", + "type": "string" + }, "nonBillableWinningBidStatusRows": { "description": "List of rows, with counts of bids not billed aggregated by reason.", "items": { "$ref": "NonBillableWinningBidStatusRow" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListNonBillableWinningBidsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.nonBillableWinningBids.list\nmethod to retrieve the next page of results.", - "type": "string" } }, "id": "ListNonBillableWinningBidsResponse" @@ -1641,14 +3184,6 @@ "ImpressionMetricsRow": { "type": "object", "properties": { - "rowDimensions": { - "$ref": "RowDimensions", - "description": "The values of all dimensions associated with metric values in this row." - }, - "availableImpressions": { - "$ref": "MetricValue", - "description": "The number of impressions available to the buyer on Ad Exchange.\nIn some cases this value may be unavailable." - }, "inventoryMatches": { "description": "The number of impressions that match the buyer's inventory pretargeting.", "$ref": "MetricValue" @@ -1658,18 +3193,28 @@ "$ref": "MetricValue" }, "responsesWithBids": { - "$ref": "MetricValue", - "description": "The number of impressions for which Ad Exchange received a response from\nthe buyer that contained at least one applicable bid." + "description": "The number of impressions for which Ad Exchange received a response from\nthe buyer that contained at least one applicable bid.", + "$ref": "MetricValue" }, "successfulResponses": { - "$ref": "MetricValue", - "description": "The number of impressions for which the buyer successfully sent a response\nto Ad Exchange." + "description": "The number of impressions for which the buyer successfully sent a response\nto Ad Exchange.", + "$ref": "MetricValue" + }, + "rowDimensions": { + "$ref": "RowDimensions", + "description": "The values of all dimensions associated with metric values in this row." + }, + "availableImpressions": { + "description": "The number of impressions available to the buyer on Ad Exchange.\nIn some cases this value may be unavailable.", + "$ref": "MetricValue" } }, "id": "ImpressionMetricsRow", "description": "The set of metrics that are measured in numbers of impressions, representing\nhow many impressions with the specified dimension values were considered\neligible at each stage of the bidding funnel." }, "AuctionContext": { + "description": "@OutputOnly The auction type the restriction applies to.", + "type": "object", "properties": { "auctionTypes": { "description": "The auction types this restriction applies to.", @@ -1687,87 +3232,919 @@ ] } }, - "id": "AuctionContext", - "description": "@OutputOnly The auction type the restriction applies to.", - "type": "object" + "id": "AuctionContext" }, "ListImpressionMetricsResponse": { "description": "Response message for listing the metrics that are measured in number of\nimpressions.", "type": "object", "properties": { + "nextPageToken": { + "type": "string", + "description": "A token to retrieve the next page of results.\nPass this value in the\nListImpressionMetricsRequest.pageToken\nfield in the subsequent call to the impressionMetrics.list\nmethod to retrieve the next page of results." + }, "impressionMetricsRows": { "description": "List of rows, each containing a set of impression metrics.", "items": { "$ref": "ImpressionMetricsRow" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListImpressionMetricsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.impressionMetrics.list\nmethod to retrieve the next page of results.", - "type": "string" } }, "id": "ListImpressionMetricsResponse" }, "BidMetricsRow": { + "type": "object", "properties": { - "bids": { - "description": "The number of bids that Ad Exchange received from the buyer.", - "$ref": "MetricValue" - }, "billedImpressions": { "$ref": "MetricValue", "description": "The number of bids for which the buyer was billed." }, "bidsInAuction": { - "$ref": "MetricValue", - "description": "The number of bids that were permitted to compete in the auction." + "description": "The number of bids that were permitted to compete in the auction.", + "$ref": "MetricValue" }, "rowDimensions": { "$ref": "RowDimensions", "description": "The values of all dimensions associated with metric values in this row." }, - "impressionsWon": { - "$ref": "MetricValue", - "description": "The number of bids that won an impression." - }, "viewableImpressions": { - "$ref": "MetricValue", - "description": "The number of bids for which the corresponding impression was viewable (as\ndefined by Active View)." + "description": "The number of bids for which the corresponding impression was viewable (as\ndefined by Active View).", + "$ref": "MetricValue" + }, + "impressionsWon": { + "description": "The number of bids that won an impression.", + "$ref": "MetricValue" }, "measurableImpressions": { - "description": "The number of bids for which the corresponding impression was measurable\nfor viewability (as defined by Active View).", + "$ref": "MetricValue", + "description": "The number of bids for which the corresponding impression was measurable\nfor viewability (as defined by Active View)." + }, + "bids": { + "description": "The number of bids that Ad Exchange received from the buyer.", "$ref": "MetricValue" } }, "id": "BidMetricsRow", - "description": "The set of metrics that are measured in numbers of bids, representing how\nmany bids with the specified dimension values were considered eligible at\neach stage of the bidding funnel;", - "type": "object" + "description": "The set of metrics that are measured in numbers of bids, representing how\nmany bids with the specified dimension values were considered eligible at\neach stage of the bidding funnel;" }, "ListBidResponseErrorsResponse": { + "description": "Response message for listing all reasons that bid responses resulted in an\nerror.", + "type": "object", "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidResponseErrorsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.bidResponseErrors.list\nmethod to retrieve the next page of results.", - "type": "string" - }, "calloutStatusRows": { "description": "List of rows, with counts of bid responses aggregated by callout status.", "items": { "$ref": "CalloutStatusRow" }, "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidResponseErrorsRequest.pageToken\nfield in the subsequent call to the bidResponseErrors.list\nmethod to retrieve the next page of results.", + "type": "string" } }, - "id": "ListBidResponseErrorsResponse", - "description": "Response message for listing all reasons that bid responses resulted in an\nerror.", + "id": "ListBidResponseErrorsResponse" + }, + "CreativeStatusRow": { + "description": "The number of bids with the specified dimension values that did not win the\nauction (either were filtered pre-auction or lost the auction), as described\nby the specified creative status.", + "type": "object", + "properties": { + "creativeStatusId": { + "format": "int32", + "description": "The ID of the creative status.\nSee [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", + "type": "integer" + }, + "bidCount": { + "$ref": "MetricValue", + "description": "The number of bids with the specified status." + }, + "rowDimensions": { + "$ref": "RowDimensions", + "description": "The values of all dimensions associated with metric values in this row." + } + }, + "id": "CreativeStatusRow" + }, + "RealtimeTimeRange": { + "type": "object", + "properties": { + "startTimestamp": { + "format": "google-datetime", + "description": "The start timestamp of the real-time RTB metrics aggregation.", + "type": "string" + } + }, + "id": "RealtimeTimeRange", + "description": "An open-ended realtime time range specified by the start timestamp.\nFor filter sets that specify a realtime time range RTB metrics continue to\nbe aggregated throughout the lifetime of the filter set." + }, + "NonBillableWinningBidStatusRow": { + "id": "NonBillableWinningBidStatusRow", + "description": "The number of winning bids with the specified dimension values for which the\nbuyer was not billed, as described by the specified status.", + "type": "object", + "properties": { + "rowDimensions": { + "$ref": "RowDimensions", + "description": "The values of all dimensions associated with metric values in this row." + }, + "bidCount": { + "$ref": "MetricValue", + "description": "The number of bids with the specified status." + }, + "status": { + "enumDescriptions": [ + "A placeholder for an undefined status.\nThis value will never be returned in responses.", + "The buyer was not billed because the ad was not rendered by the\npublisher.", + "The buyer was not billed because the impression won by the bid was\ndetermined to be invalid." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "AD_NOT_RENDERED", + "INVALID_IMPRESSION" + ], + "description": "The status specifying why the winning bids were not billed.", + "type": "string" + } + } + }, + "FilteredBidDetailRow": { + "description": "The number of filtered bids with the specified dimension values, among those\nfiltered due to the requested filtering reason (i.e. creative status), that\nhave the specified detail.", + "type": "object", + "properties": { + "rowDimensions": { + "description": "The values of all dimensions associated with metric values in this row.", + "$ref": "RowDimensions" + }, + "detailId": { + "format": "int32", + "description": "The ID of the detail. The associated value can be looked up in the\ndictionary file corresponding to the DetailType in the response message.", + "type": "integer" + }, + "bidCount": { + "description": "The number of bids with the specified detail.", + "$ref": "MetricValue" + } + }, + "id": "FilteredBidDetailRow" + }, + "AbsoluteDateRange": { + "description": "An absolute date range, specified by its start date and end date.\nThe supported range of dates begins 30 days before today and ends today.\nValidity checked upon filter set creation. If a filter set with an absolute\ndate range is run at a later date more than 30 days after start_date, it will\nfail.", + "type": "object", + "properties": { + "endDate": { + "$ref": "Date", + "description": "The end date of the range (inclusive).\nMust be within the 30 days leading up to current date, and must be equal to\nor after start_date." + }, + "startDate": { + "$ref": "Date", + "description": "The start date of the range (inclusive).\nMust be within the 30 days leading up to current date, and must be equal to\nor before end_date." + } + }, + "id": "AbsoluteDateRange" + }, + "AddDealAssociationRequest": { + "description": "A request for associating a deal and a creative.", + "type": "object", + "properties": { + "association": { + "$ref": "CreativeDealAssociation", + "description": "The association between a creative and a deal that should be added." + } + }, + "id": "AddDealAssociationRequest" + }, + "WatchCreativeRequest": { + "description": "A request for watching changes to creative Status.", + "type": "object", + "properties": { + "topic": { + "type": "string", + "description": "The Pub/Sub topic to publish notifications to.\nThis topic must already exist and must give permission to\nad-exchange-buyside-reports@google.com to write to the topic.\nThis should be the full resource name in\n\"projects/{project_id}/topics/{topic_id}\" format." + } + }, + "id": "WatchCreativeRequest" + }, + "TimeInterval": { + "description": "An interval of time, with an absolute start and end.", + "type": "object", + "properties": { + "endTime": { + "format": "google-datetime", + "description": "The timestamp marking the end of the range (exclusive) for which data is\nincluded.", + "type": "string" + }, + "startTime": { + "format": "google-datetime", + "description": "The timestamp marking the start of the range (inclusive) for which data is\nincluded.", + "type": "string" + } + }, + "id": "TimeInterval" + }, + "FilteredBidCreativeRow": { + "properties": { + "bidCount": { + "$ref": "MetricValue", + "description": "The number of bids with the specified creative." + }, + "creativeId": { + "description": "The ID of the creative.", + "type": "string" + }, + "rowDimensions": { + "$ref": "RowDimensions", + "description": "The values of all dimensions associated with metric values in this row." + } + }, + "id": "FilteredBidCreativeRow", + "description": "The number of filtered bids with the specified dimension values that have the\nspecified creative.", "type": "object" + }, + "RelativeDateRange": { + "id": "RelativeDateRange", + "description": "A relative date range, specified by an offset and a duration.\nThe supported range of dates begins 30 days before today and ends today.\nI.e. the limits for these values are:\noffset_days \u003e= 0\nduration_days \u003e= 1\noffset_days + duration_days \u003c= 30", + "type": "object", + "properties": { + "offsetDays": { + "format": "int32", + "description": "The end date of the filter set, specified as the number of days before\ntoday. E.g. for a range where the last date is today, 0.", + "type": "integer" + }, + "durationDays": { + "format": "int32", + "description": "The number of days in the requested date range. E.g. for a range spanning\ntoday, 1. For a range spanning the last 7 days, 7.", + "type": "integer" + } + } + }, + "NativeContent": { + "description": "Native content for a creative.", + "type": "object", + "properties": { + "logo": { + "description": "A smaller image, for the advertiser's logo.", + "$ref": "Image" + }, + "clickLinkUrl": { + "description": "The URL that the browser/SDK will load when the user clicks the ad.", + "type": "string" + }, + "priceDisplayText": { + "description": "The price of the promoted app including currency info.", + "type": "string" + }, + "image": { + "description": "A large image.", + "$ref": "Image" + }, + "clickTrackingUrl": { + "description": "The URL to use for click tracking.", + "type": "string" + }, + "advertiserName": { + "description": "The name of the advertiser or sponsor, to be displayed in the ad creative.", + "type": "string" + }, + "storeUrl": { + "description": "The URL to the app store to purchase/download the promoted app.", + "type": "string" + }, + "headline": { + "description": "A short title for the ad.", + "type": "string" + }, + "appIcon": { + "$ref": "Image", + "description": "The app icon, for app download ads." + }, + "callToAction": { + "description": "A label for the button that the user is supposed to click.", + "type": "string" + }, + "body": { + "description": "A long description of the ad.", + "type": "string" + }, + "starRating": { + "type": "number", + "format": "double", + "description": "The app rating in the app store. Must be in the range [0-5]." + }, + "videoUrl": { + "description": "The URL to fetch a native video ad.", + "type": "string" + } + }, + "id": "NativeContent" + }, + "ListClientsResponse": { + "type": "object", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientsRequest.pageToken\nfield in the subsequent call to the\naccounts.clients.list method\nto retrieve the next page of results.", + "type": "string" + }, + "clients": { + "description": "The returned list of clients.", + "items": { + "$ref": "Client" + }, + "type": "array" + } + }, + "id": "ListClientsResponse" + }, + "ListBidResponsesWithoutBidsResponse": { + "description": "Response message for listing all reasons that bid responses were considered\nto have no applicable bids.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListBidResponsesWithoutBidsRequest.pageToken\nfield in the subsequent call to the bidResponsesWithoutBids.list\nmethod to retrieve the next page of results.", + "type": "string" + }, + "bidResponseWithoutBidsStatusRows": { + "description": "List of rows, with counts of bid responses without bids aggregated by\nstatus.", + "items": { + "$ref": "BidResponseWithoutBidsStatusRow" + }, + "type": "array" + } + }, + "id": "ListBidResponsesWithoutBidsResponse" + }, + "ServingContext": { + "description": "The serving context for this restriction.", + "type": "object", + "properties": { + "all": { + "type": "string", + "enumDescriptions": [ + "A simple context." + ], + "enum": [ + "SIMPLE_CONTEXT" + ], + "description": "Matches all contexts." + }, + "appType": { + "description": "Matches impressions for a particular app type.", + "$ref": "AppContext" + }, + "securityType": { + "$ref": "SecurityContext", + "description": "Matches impressions for a particular security type." + }, + "platform": { + "$ref": "PlatformContext", + "description": "Matches impressions coming from a particular platform." + }, + "location": { + "$ref": "LocationContext", + "description": "Matches impressions coming from users *or* publishers in a specific\nlocation." + }, + "auctionType": { + "description": "Matches impressions for a particular auction type.", + "$ref": "AuctionContext" + } + }, + "id": "ServingContext" + }, + "Image": { + "description": "An image resource. You may provide a larger image than was requested,\nso long as the aspect ratio is preserved.", + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32", + "description": "Image height in pixels." + }, + "width": { + "format": "int32", + "description": "Image width in pixels.", + "type": "integer" + }, + "url": { + "description": "The URL of the image.", + "type": "string" + } + }, + "id": "Image" + }, + "ListFilterSetsResponse": { + "description": "Response message for listing filter sets.", + "type": "object", + "properties": { + "filterSets": { + "description": "The filter sets belonging to the buyer.", + "items": { + "$ref": "FilterSet" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListFilterSetsRequest.pageToken\nfield in the subsequent call to the\naccounts.filterSets.list\nmethod to retrieve the next page of results.", + "type": "string" + } + }, + "id": "ListFilterSetsResponse" + }, + "BidResponseWithoutBidsStatusRow": { + "description": "The number of impressions with the specified dimension values that were\nconsidered to have no applicable bids, as described by the specified status.", + "type": "object", + "properties": { + "impressionCount": { + "description": "The number of impressions for which there was a bid response with the\nspecified status.", + "$ref": "MetricValue" + }, + "status": { + "enumDescriptions": [ + "A placeholder for an undefined status.\nThis value will never be returned in responses.", + "The response had no bids.", + "The response had no bids for the specified account, though it may have\nincluded bids on behalf of other accounts.", + "The response had no bids for the specified deal, though it may have\nincluded bids on other deals on behalf of the account to which the deal\nbelongs." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "RESPONSES_WITHOUT_BIDS", + "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT", + "RESPONSES_WITHOUT_BIDS_FOR_DEAL" + ], + "description": "The status specifying why the bid responses were considered to have no\napplicable bids.", + "type": "string" + }, + "rowDimensions": { + "description": "The values of all dimensions associated with metric values in this row.", + "$ref": "RowDimensions" + } + }, + "id": "BidResponseWithoutBidsStatusRow" + }, + "ClientUserInvitation": { + "description": "An invitation for a new client user to get access to the Ad Exchange\nBuyer UI.\nAll fields are required unless otherwise specified.", + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The email address to which the invitation is sent. Email\naddresses should be unique among all client users under each sponsor\nbuyer." + }, + "clientAccountId": { + "format": "int64", + "description": "Numerical account ID of the client buyer\nthat the invited user is associated with.\nThe value of this field is ignored in create operations.", + "type": "string" + }, + "invitationId": { + "format": "int64", + "description": "The unique numerical ID of the invitation that is sent to the user.\nThe value of this field is ignored in create operations.", + "type": "string" + } + }, + "id": "ClientUserInvitation" + }, + "ListClientUserInvitationsResponse": { + "type": "object", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientUserInvitationsRequest.pageToken\nfield in the subsequent call to the\nclients.invitations.list\nmethod to retrieve the next\npage of results.", + "type": "string" + }, + "invitations": { + "description": "The returned list of client users.", + "items": { + "$ref": "ClientUserInvitation" + }, + "type": "array" + } + }, + "id": "ListClientUserInvitationsResponse" + }, + "ListClientUsersResponse": { + "type": "object", + "properties": { + "users": { + "description": "The returned list of client users.", + "items": { + "$ref": "ClientUser" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListClientUsersRequest.pageToken\nfield in the subsequent call to the\nclients.invitations.list\nmethod to retrieve the next\npage of results.", + "type": "string" + } + }, + "id": "ListClientUsersResponse" + }, + "ListCreativeStatusBreakdownByDetailResponse": { + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results.\nPass this value in the\nListCreativeStatusBreakdownByDetailRequest.pageToken\nfield in the subsequent call to the filteredBids.details.list\nmethod to retrieve the next page of results.", + "type": "string" + }, + "filteredBidDetailRows": { + "description": "List of rows, with counts of bids with a given creative status aggregated\nby detail.", + "items": { + "$ref": "FilteredBidDetailRow" + }, + "type": "array" + }, + "detailType": { + "description": "The type of detail that the detail IDs represent.", + "type": "string", + "enumDescriptions": [ + "A placeholder for an undefined status.\nThis value will never be returned in responses.", + "Indicates that the detail ID refers to a creative attribute; see\n[publisher-excludable-creative-attributes](https://developers.google.com/ad-exchange/rtb/downloads/publisher-excludable-creative-attributes).", + "Indicates that the detail ID refers to a vendor; see\n[vendors](https://developers.google.com/ad-exchange/rtb/downloads/vendors).", + "Indicates that the detail ID refers to a sensitive category; see\n[ad-sensitive-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-sensitive-categories).", + "Indicates that the detail ID refers to a product category; see\n[ad-product-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-product-categories).", + "Indicates that the detail ID refers to a disapproval reason; see\nDisapprovalReason enum in [snippet-status-report-proto](https://developers.google.com/ad-exchange/rtb/downloads/snippet-status-report-proto)." + ], + "enum": [ + "DETAIL_TYPE_UNSPECIFIED", + "CREATIVE_ATTRIBUTE", + "VENDOR", + "SENSITIVE_CATEGORY", + "PRODUCT_CATEGORY", + "DISAPPROVAL_REASON" + ] + } + }, + "id": "ListCreativeStatusBreakdownByDetailResponse", + "description": "Response message for listing all details associated with a given filtered bid\nreason.", + "type": "object" + }, + "LocationContext": { + "description": "@OutputOnly The Geo criteria the restriction applies to.", + "type": "object", + "properties": { + "geoCriteriaIds": { + "description": "IDs representing the geo location for this context.\nPlease refer to the\n[geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)\nfile for different geo criteria IDs.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "id": "LocationContext" + }, + "PlatformContext": { + "id": "PlatformContext", + "description": "@OutputOnly The type of platform the restriction applies to.", + "type": "object", + "properties": { + "platforms": { + "description": "The platforms this restriction applies to.", + "items": { + "type": "string", + "enum": [ + "DESKTOP", + "ANDROID", + "IOS" + ] + }, + "type": "array", + "enumDescriptions": [ + "Desktop platform.", + "Android platform.", + "iOS platform." + ] + } + } + }, + "MetricValue": { + "description": "A metric value, with an expected value and a variance; represents a count\nthat may be either exact or estimated (i.e. when sampled).", + "type": "object", + "properties": { + "variance": { + "format": "int64", + "description": "The variance (i.e. square of the standard deviation) of the metric value.\nIf value is exact, variance is 0.\nCan be used to calculate margin of error as a percentage of value, using\nthe following formula, where Z is the standard constant that depends on the\ndesired size of the confidence interval (e.g. for 90% confidence interval,\nuse Z = 1.645):\n\n marginOfError = 100 * Z * sqrt(variance) / value", + "type": "string" + }, + "value": { + "type": "string", + "format": "int64", + "description": "The expected value of the metric." + } + }, + "id": "MetricValue" + }, + "ClientUser": { + "description": "A client user is created under a client buyer and has restricted access to\nthe Ad Exchange Marketplace and certain other sections\nof the Ad Exchange Buyer UI based on the role\ngranted to the associated client buyer.\n\nThe only way a new client user can be created is via accepting an\nemail invitation\n(see the\naccounts.clients.invitations.create\nmethod).\n\nAll fields are required unless otherwise specified.", + "type": "object", + "properties": { + "email": { + "description": "User's email address. The value of this field\nis ignored in an update operation.", + "type": "string" + }, + "userId": { + "format": "int64", + "description": "The unique numerical ID of the client user\nthat has accepted an invitation.\nThe value of this field is ignored in an update operation.", + "type": "string" + }, + "clientAccountId": { + "format": "int64", + "description": "Numerical account ID of the client buyer\nwith which the user is associated; the\nbuyer must be a client of the current sponsor buyer.\nThe value of this field is ignored in an update operation.", + "type": "string" + }, + "status": { + "enumDescriptions": [ + "A placeholder for an undefined user status.", + "A user who was already created but hasn't accepted the invitation yet.", + "A user that is currently active.", + "A user that is currently disabled." + ], + "enum": [ + "USER_STATUS_UNSPECIFIED", + "PENDING", + "ACTIVE", + "DISABLED" + ], + "description": "The status of the client user.", + "type": "string" + } + }, + "id": "ClientUser" + }, + "CreativeDealAssociation": { + "description": "The association between a creative and a deal.", + "type": "object", + "properties": { + "accountId": { + "description": "The account the creative belongs to.", + "type": "string" + }, + "creativeId": { + "description": "The ID of the creative associated with the deal.", + "type": "string" + }, + "dealsId": { + "description": "The externalDealId for the deal associated with the creative.", + "type": "string" + } + }, + "id": "CreativeDealAssociation" + }, + "Creative": { + "description": "A creative and its classification data.", + "type": "object", + "properties": { + "advertiserName": { + "description": "The name of the company being advertised in the creative.", + "type": "string" + }, + "detectedDomains": { + "description": "@OutputOnly\nThe detected domains for this creative.", + "items": { + "type": "string" + }, + "type": "array" + }, + "detectedAdvertiserIds": { + "description": "@OutputOnly Detected advertiser IDs, if any.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "filteringStats": { + "$ref": "FilteringStats", + "description": "@OutputOnly The filtering stats for this creative." + }, + "attributes": { + "description": "All attributes for the ads that may be shown from this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "items": { + "enum": [ + "ATTRIBUTE_UNSPECIFIED", + "IS_TAGGED", + "IS_COOKIE_TARGETED", + "IS_USER_INTEREST_TARGETED", + "EXPANDING_DIRECTION_NONE", + "EXPANDING_DIRECTION_UP", + "EXPANDING_DIRECTION_DOWN", + "EXPANDING_DIRECTION_LEFT", + "EXPANDING_DIRECTION_RIGHT", + "EXPANDING_DIRECTION_UP_LEFT", + "EXPANDING_DIRECTION_UP_RIGHT", + "EXPANDING_DIRECTION_DOWN_LEFT", + "EXPANDING_DIRECTION_DOWN_RIGHT", + "EXPANDING_DIRECTION_UP_OR_DOWN", + "EXPANDING_DIRECTION_LEFT_OR_RIGHT", + "EXPANDING_DIRECTION_ANY_DIAGONAL", + "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", + "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", + "RICH_MEDIA_CAPABILITY_TYPE_MRAID", + "RICH_MEDIA_CAPABILITY_TYPE_SSL", + "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", + "NATIVE_ELIGIBILITY_ELIGIBLE", + "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", + "RENDERING_SIZELESS_ADX" + ], + "type": "string" + }, + "type": "array", + "enumDescriptions": [ + "Do not use. This is a placeholder value only.", + "The creative is tagged.", + "The creative is cookie targeted.", + "The creative is user interest targeted.", + "The creative does not expand.", + "The creative expands up.", + "The creative expands down.", + "The creative expands left.", + "The creative expands right.", + "The creative expands up and left.", + "The creative expands up and right.", + "The creative expands down and left.", + "The creative expands down and right.", + "The creative expands up or down.", + "The creative expands left or right.", + "The creative expands on any diagonal.", + "The creative expands when rolled over.", + "The instream vast video type is vpaid flash.", + "The creative is MRAID", + "The creative is SSL.", + "The creative is an interstitial.", + "The creative is eligible for native.", + "The creative is not eligible for native.", + "The creative can dynamically resize to fill a variety of slot sizes." + ] + }, + "apiUpdateTime": { + "format": "google-datetime", + "description": "@OutputOnly The last update timestamp of the creative via API.", + "type": "string" + }, + "detectedLanguages": { + "items": { + "type": "string" + }, + "type": "array", + "description": "@OutputOnly\nThe detected languages for this creative. The order is arbitrary. The codes\nare 2 or 5 characters and are documented at\nhttps://developers.google.com/adwords/api/docs/appendix/languagecodes." + }, + "creativeId": { + "description": "The buyer-defined creative ID of this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string" + }, + "accountId": { + "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string" + }, + "native": { + "$ref": "NativeContent", + "description": "A native creative." + }, + "video": { + "$ref": "VideoContent", + "description": "A video creative." + }, + "servingRestrictions": { + "description": "@OutputOnly The granular status of this ad in specific contexts.\nA context here relates to where something ultimately serves (for example,\na physical location, a platform, an HTTPS vs HTTP request, or the type\nof auction).", + "items": { + "$ref": "ServingRestriction" + }, + "type": "array" + }, + "agencyId": { + "type": "string", + "format": "int64", + "description": "The agency ID for this creative." + }, + "clickThroughUrls": { + "description": "The set of destination URLs for the creative.", + "items": { + "type": "string" + }, + "type": "array" + }, + "detectedSensitiveCategories": { + "description": "@OutputOnly Detected sensitive categories, if any.\nSee the ad-sensitive-categories.txt file in the technical documentation for\na list of IDs. You should use these IDs along with the\nexcluded-sensitive-category field in the bid request to filter your bids.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "adChoicesDestinationUrl": { + "type": "string", + "description": "The link to AdChoices destination page." + }, + "restrictedCategories": { + "enumDescriptions": [ + "The ad has no restricted categories", + "The alcohol restricted category." + ], + "description": "All restricted categories for the ads that may be shown from this creative.", + "items": { + "type": "string", + "enum": [ + "NO_RESTRICTED_CATEGORIES", + "ALCOHOL" + ] + }, + "type": "array" + }, + "corrections": { + "items": { + "$ref": "Correction" + }, + "type": "array", + "description": "@OutputOnly Shows any corrections that were applied to this creative." + }, + "version": { + "format": "int32", + "description": "@OutputOnly The version of this creative.", + "type": "integer" + }, + "vendorIds": { + "description": "All vendor IDs for the ads that may be shown from this creative.\nSee https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt\nfor possible values.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "impressionTrackingUrls": { + "description": "The set of URLs to be called to record an impression.", + "items": { + "type": "string" + }, + "type": "array" + }, + "html": { + "description": "An HTML creative.", + "$ref": "HtmlContent" + }, + "dealsStatus": { + "description": "@OutputOnly The top-level deals status of this creative.\nIf disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string", + "enumDescriptions": [ + "The status is unknown.", + "The creative has not been checked.", + "The creative has been conditionally approved.\nSee serving_restrictions for details.", + "The creative has been approved.", + "The creative has been disapproved." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "NOT_CHECKED", + "CONDITIONALLY_APPROVED", + "APPROVED", + "DISAPPROVED" + ] + }, + "detectedProductCategories": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "description": "@OutputOnly Detected product categories, if any.\nSee the ad-product-categories.txt file in the technical documentation\nfor a list of IDs." + }, + "openAuctionStatus": { + "description": "@OutputOnly The top-level open auction status of this creative.\nIf disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in\nserving_restrictions will also exist. Note\nthat this may be nuanced with other contextual restrictions, in which case,\nit may be preferable to read from serving_restrictions directly.\nCan be used to filter the response of the\ncreatives.list\nmethod.", + "type": "string", + "enumDescriptions": [ + "The status is unknown.", + "The creative has not been checked.", + "The creative has been conditionally approved.\nSee serving_restrictions for details.", + "The creative has been approved.", + "The creative has been disapproved." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "NOT_CHECKED", + "CONDITIONALLY_APPROVED", + "APPROVED", + "DISAPPROVED" + ] + } + }, + "id": "Creative" + }, + "FilteringStats": { + "description": "@OutputOnly Filtering reasons for this creative during a period of a single\nday (from midnight to midnight Pacific).", + "type": "object", + "properties": { + "reasons": { + "description": "The set of filtering reasons for this date.", + "items": { + "$ref": "Reason" + }, + "type": "array" + }, + "date": { + "$ref": "Date", + "description": "The day during which the data was collected.\nThe data is collected from 00:00:00 to 23:59:59 PT.\nDuring switches from PST to PDT and back, the day may\ncontain 23 or 25 hours of data instead of the usual 24." + } + }, + "id": "FilteringStats" } }, - "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, "protocol": "rest", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, "canonicalName": "AdExchangeBuyerII", "auth": { "oauth2": { @@ -1778,1477 +4155,5 @@ } } }, - "rootUrl": "https://adexchangebuyer.googleapis.com/", - "ownerDomain": "google.com", - "name": "adexchangebuyer2", - "batchPath": "batch", - "title": "Ad Exchange Buyer API II", - "ownerName": "Google", - "resources": { - "accounts": { - "resources": { - "clients": { - "methods": { - "create": { - "flatPath": "v2beta1/accounts/{accountId}/clients", - "path": "v2beta1/accounts/{accountId}/clients", - "id": "adexchangebuyer2.accounts.clients.create", - "description": "Creates a new client buyer.", - "request": { - "$ref": "Client" - }, - "httpMethod": "POST", - "parameterOrder": [ - "accountId" - ], - "response": { - "$ref": "Client" - }, - "parameters": { - "accountId": { - "format": "int64", - "description": "Unique numerical account ID for the buyer of which the client buyer\nis a customer; the sponsor buyer to create a client for. (required)", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ] - }, - "list": { - "flatPath": "v2beta1/accounts/{accountId}/clients", - "path": "v2beta1/accounts/{accountId}/clients", - "id": "adexchangebuyer2.accounts.clients.list", - "description": "Lists all the clients for the current sponsor buyer.", - "httpMethod": "GET", - "response": { - "$ref": "ListClientsResponse" - }, - "parameterOrder": [ - "accountId" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientsResponse.nextPageToken\nreturned from the previous call to the\naccounts.clients.list method.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. The server may return fewer clients than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "Unique numerical account ID of the sponsor buyer to list the clients for." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ] - }, - "get": { - "description": "Gets a client buyer with a given client account ID.", - "response": { - "$ref": "Client" - }, - "parameterOrder": [ - "accountId", - "clientAccountId" - ], - "httpMethod": "GET", - "parameters": { - "accountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true - }, - "clientAccountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client buyer to retrieve. (required)", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", - "id": "adexchangebuyer2.accounts.clients.get", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}" - }, - "update": { - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}", - "id": "adexchangebuyer2.accounts.clients.update", - "description": "Updates an existing client buyer.", - "request": { - "$ref": "Client" - }, - "httpMethod": "PUT", - "parameterOrder": [ - "accountId", - "clientAccountId" - ], - "response": { - "$ref": "Client" - }, - "parameters": { - "accountId": { - "location": "path", - "format": "int64", - "description": "Unique numerical account ID for the buyer of which the client buyer\nis a customer; the sponsor buyer to update a client for. (required)", - "type": "string", - "required": true - }, - "clientAccountId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "Unique numerical account ID of the client to update. (required)" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ] - } - }, - "resources": { - "invitations": { - "methods": { - "list": { - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientUserInvitationsResponse.nextPageToken\nreturned from the previous call to the\nclients.invitations.list\nmethod.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. Server may return fewer clients than requested.\nIf unspecified, server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true - }, - "clientAccountId": { - "location": "path", - "description": "Numerical account ID of the client buyer to list invitations for.\n(required)\nYou must either specify a string representation of a\nnumerical account identifier or the `-` character\nto list all the invitations for all the clients\nof a given sponsor buyer.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", - "id": "adexchangebuyer2.accounts.clients.invitations.list", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", - "description": "Lists all the client users invitations for a client\nwith a given account ID.", - "response": { - "$ref": "ListClientUserInvitationsResponse" - }, - "httpMethod": "GET", - "parameterOrder": [ - "accountId", - "clientAccountId" - ] - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "ClientUserInvitation" - }, - "parameterOrder": [ - "accountId", - "clientAccountId", - "invitationId" - ], - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "invitationId": { - "location": "path", - "format": "int64", - "description": "Numerical identifier of the user invitation to retrieve. (required)", - "type": "string", - "required": true - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true - }, - "clientAccountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client buyer that the user invitation\nto be retrieved is associated with. (required)", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations/{invitationId}", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations/{invitationId}", - "id": "adexchangebuyer2.accounts.clients.invitations.get", - "description": "Retrieves an existing client user invitation." - }, - "create": { - "response": { - "$ref": "ClientUserInvitation" - }, - "parameterOrder": [ - "accountId", - "clientAccountId" - ], - "httpMethod": "POST", - "parameters": { - "clientAccountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client buyer that the user\nshould be associated with. (required)", - "type": "string", - "required": true - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", - "id": "adexchangebuyer2.accounts.clients.invitations.create", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/invitations", - "description": "Creates and sends out an email invitation to access\nan Ad Exchange client buyer account.", - "request": { - "$ref": "ClientUserInvitation" - } - } - } - }, - "users": { - "methods": { - "get": { - "response": { - "$ref": "ClientUser" - }, - "parameterOrder": [ - "accountId", - "clientAccountId", - "userId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "userId": { - "format": "int64", - "description": "Numerical identifier of the user to retrieve. (required)", - "type": "string", - "required": true, - "location": "path" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true - }, - "clientAccountId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client buyer\nthat the user to be retrieved is associated with. (required)" - } - }, - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", - "id": "adexchangebuyer2.accounts.clients.users.get", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", - "description": "Retrieves an existing client user." - }, - "list": { - "description": "Lists all the known client users for a specified\nsponsor buyer account ID.", - "httpMethod": "GET", - "parameterOrder": [ - "accountId", - "clientAccountId" - ], - "response": { - "$ref": "ListClientUsersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListClientUsersResponse.nextPageToken\nreturned from the previous call to the\naccounts.clients.users.list method.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer clients than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "format": "int64", - "description": "Numerical account ID of the sponsor buyer of the client to list users for.\n(required)", - "type": "string", - "required": true, - "location": "path" - }, - "clientAccountId": { - "description": "The account ID of the client buyer to list users for. (required)\nYou must specify either a string representation of a\nnumerical account identifier or the `-` character\nto list all the client users for all the clients\nof a given sponsor buyer.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users", - "id": "adexchangebuyer2.accounts.clients.users.list" - }, - "update": { - "flatPath": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", - "path": "v2beta1/accounts/{accountId}/clients/{clientAccountId}/users/{userId}", - "id": "adexchangebuyer2.accounts.clients.users.update", - "description": "Updates an existing client user.\nOnly the user status can be changed on update.", - "request": { - "$ref": "ClientUser" - }, - "httpMethod": "PUT", - "parameterOrder": [ - "accountId", - "clientAccountId", - "userId" - ], - "response": { - "$ref": "ClientUser" - }, - "parameters": { - "userId": { - "format": "int64", - "description": "Numerical identifier of the user to retrieve. (required)", - "type": "string", - "required": true, - "location": "path" - }, - "accountId": { - "format": "int64", - "description": "Numerical account ID of the client's sponsor buyer. (required)", - "type": "string", - "required": true, - "location": "path" - }, - "clientAccountId": { - "location": "path", - "format": "int64", - "description": "Numerical account ID of the client buyer that the user to be retrieved\nis associated with. (required)", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ] - } - } - } - } - }, - "creatives": { - "methods": { - "list": { - "description": "Lists creatives.", - "response": { - "$ref": "ListCreativesResponse" - }, - "parameterOrder": [ - "accountId" - ], - "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer creatives than requested\n(due to timeout constraint) even if more are available via another call.\nIf unspecified, server will pick an appropriate default.\nAcceptable values are 1 to 1000, inclusive.", - "type": "integer" - }, - "accountId": { - "description": "The account to list the creatives from.\nSpecify \"-\" to list all creatives the current user has access to.", - "type": "string", - "required": true, - "location": "path" - }, - "query": { - "description": "An optional query string to filter creatives. If no filter is specified,\nall active creatives will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eattribute: {a numeric attribute from the list of attributes}\n\u003cli\u003edisapprovalReason: {a reason from\nDisapprovalReason\n\u003c/ul\u003e\nExample: 'accountId=12345 AND (dealsStatus:disapproved AND\ndisapprovalReason:unacceptable_content) OR attribute:47'", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativesResponse.next_page_token\nreturned from the previous call to 'ListCreatives' method.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/creatives", - "id": "adexchangebuyer2.accounts.creatives.list", - "path": "v2beta1/accounts/{accountId}/creatives" - }, - "create": { - "flatPath": "v2beta1/accounts/{accountId}/creatives", - "path": "v2beta1/accounts/{accountId}/creatives", - "id": "adexchangebuyer2.accounts.creatives.create", - "description": "Creates a creative.", - "request": { - "$ref": "Creative" - }, - "httpMethod": "POST", - "parameterOrder": [ - "accountId" - ], - "response": { - "$ref": "Creative" - }, - "parameters": { - "duplicateIdMode": { - "location": "query", - "enum": [ - "NO_DUPLICATES", - "FORCE_ENABLE_DUPLICATE_IDS" - ], - "description": "Indicates if multiple creatives can share an ID or not. Default is\nNO_DUPLICATES (one ID per creative).", - "type": "string" - }, - "accountId": { - "location": "path", - "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ] - }, - "stopWatching": { - "httpMethod": "POST", - "parameterOrder": [ - "accountId", - "creativeId" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "accountId": { - "location": "path", - "description": "The account of the creative to stop notifications for.", - "type": "string", - "required": true - }, - "creativeId": { - "location": "path", - "description": "The creative ID of the creative to stop notifications for.\nSpecify \"-\" to specify stopping account level notifications.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}:stopWatching", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}:stopWatching", - "id": "adexchangebuyer2.accounts.creatives.stopWatching", - "description": "Stops watching a creative. Will stop push notifications being sent to the\ntopics when the creative changes status.", - "request": { - "$ref": "StopWatchingCreativeRequest" - } - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "accountId", - "creativeId" - ], - "response": { - "$ref": "Creative" - }, - "parameters": { - "accountId": { - "location": "path", - "description": "The account the creative belongs to.", - "type": "string", - "required": true - }, - "creativeId": { - "location": "path", - "description": "The ID of the creative to retrieve.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}", - "id": "adexchangebuyer2.accounts.creatives.get", - "description": "Gets a creative." - }, - "watch": { - "description": "Watches a creative. Will result in push notifications being sent to the\ntopic when the creative changes status.", - "request": { - "$ref": "WatchCreativeRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "accountId", - "creativeId" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "accountId": { - "location": "path", - "description": "The account of the creative to watch.", - "type": "string", - "required": true - }, - "creativeId": { - "location": "path", - "description": "The creative ID to watch for status changes.\nSpecify \"-\" to watch all creatives under the above account.\nIf both creative-level and account-level notifications are\nsent, only a single notification will be sent to the\ncreative-level notification topic.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}:watch", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}:watch", - "id": "adexchangebuyer2.accounts.creatives.watch" - }, - "update": { - "request": { - "$ref": "Creative" - }, - "description": "Updates a creative.", - "httpMethod": "PUT", - "parameterOrder": [ - "accountId", - "creativeId" - ], - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "accountId": { - "description": "The account that this creative belongs to.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string", - "required": true, - "location": "path" - }, - "creativeId": { - "location": "path", - "description": "The buyer-defined creative ID of this creative.\nCan be used to filter the response of the\ncreatives.list\nmethod.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}", - "id": "adexchangebuyer2.accounts.creatives.update" - } - }, - "resources": { - "dealAssociations": { - "methods": { - "remove": { - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "creativeId": { - "type": "string", - "required": true, - "location": "path", - "description": "The ID of the creative associated with the deal." - }, - "accountId": { - "description": "The account the creative belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:remove", - "id": "adexchangebuyer2.accounts.creatives.dealAssociations.remove", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:remove", - "request": { - "$ref": "RemoveDealAssociationRequest" - }, - "description": "Remove the association between a deal and a creative.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "accountId", - "creativeId" - ], - "httpMethod": "POST" - }, - "add": { - "description": "Associate an existing deal with a creative.", - "request": { - "$ref": "AddDealAssociationRequest" - }, - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "accountId", - "creativeId" - ], - "httpMethod": "POST", - "parameters": { - "accountId": { - "description": "The account the creative belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "creativeId": { - "description": "The ID of the creative associated with the deal.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:add", - "id": "adexchangebuyer2.accounts.creatives.dealAssociations.add", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations:add" - }, - "list": { - "parameterOrder": [ - "accountId", - "creativeId" - ], - "httpMethod": "GET", - "response": { - "$ref": "ListDealAssociationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListDealAssociationsResponse.next_page_token\nreturned from the previous call to 'ListDealAssociations' method." - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. Server may return fewer associations than requested.\nIf unspecified, server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "description": "The account to list the associations from.\nSpecify \"-\" to list all creatives the current user has access to.", - "type": "string", - "required": true - }, - "query": { - "location": "query", - "description": "An optional query string to filter deal associations. If no filter is\nspecified, all associations will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsId=\u003ci\u003edeals_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus:{approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus:{approved, conditionally_approved, disapproved,\n not_checked}\n\u003c/ul\u003e\nExample: 'dealsId=12345 AND dealsStatus:disapproved'", - "type": "string" - }, - "creativeId": { - "location": "path", - "description": "The creative ID to list the associations from.\nSpecify \"-\" to list all creatives under the above account.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations", - "id": "adexchangebuyer2.accounts.creatives.dealAssociations.list", - "path": "v2beta1/accounts/{accountId}/creatives/{creativeId}/dealAssociations", - "description": "List all creative-deal associations." - } - } - } - } - }, - "filterSets": { - "methods": { - "delete": { - "description": "Deletes the requested filter set from the account with the given account\nID.", - "httpMethod": "DELETE", - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "location": "path", - "format": "int64", - "description": "The ID of the filter set to delete.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", - "id": "adexchangebuyer2.accounts.filterSets.delete" - }, - "list": { - "description": "Lists all filter sets for the account with the given account ID.", - "response": { - "$ref": "ListFilterSetsResponse" - }, - "parameterOrder": [ - "accountId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilterSetsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/filterSets", - "id": "adexchangebuyer2.accounts.filterSets.list", - "path": "v2beta1/accounts/{accountId}/filterSets" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "response": { - "$ref": "FilterSet" - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "The ID of the filter set to get." - } - }, - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", - "id": "adexchangebuyer2.accounts.filterSets.get", - "description": "Retrieves the requested filter set for the account with the given account\nID." - }, - "create": { - "response": { - "$ref": "FilterSet" - }, - "parameterOrder": [ - "accountId" - ], - "httpMethod": "POST", - "parameters": { - "isTransient": { - "location": "query", - "description": "Whether the filter set is transient, or should be persisted indefinitely.\nBy default, filter sets are not transient.\nIf transient, it will be available for at least 1 hour after creation.", - "type": "boolean" - }, - "accountId": { - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets", - "id": "adexchangebuyer2.accounts.filterSets.create", - "path": "v2beta1/accounts/{accountId}/filterSets", - "description": "Creates the specified filter set for the account with the given account ID.", - "request": { - "$ref": "FilterSet" - } - } - }, - "resources": { - "bidMetrics": { - "methods": { - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListBidMetricsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidMetrics.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidMetrics", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidMetrics", - "id": "adexchangebuyer2.accounts.filterSets.bidMetrics.list", - "description": "Lists all metrics that are measured in terms of number of bids." - } - } - }, - "impressionMetrics": { - "methods": { - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListImpressionMetricsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.impressionMetrics.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/impressionMetrics", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/impressionMetrics", - "id": "adexchangebuyer2.accounts.filterSets.impressionMetrics.list", - "description": "Lists all metrics that are measured in terms of number of impressions." - } - } - }, - "bidResponseErrors": { - "methods": { - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListBidResponseErrorsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidResponseErrors.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponseErrors", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponseErrors", - "id": "adexchangebuyer2.accounts.filterSets.bidResponseErrors.list", - "description": "List all errors that occurred in bid responses, with the number of bid\nresponses affected for each reason." - } - } - }, - "bidResponsesWithoutBids": { - "methods": { - "list": { - "description": "List all reasons for which bid responses were considered to have no\napplicable bids, with the number of bid responses affected for each reason.", - "response": { - "$ref": "ListBidResponsesWithoutBidsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidResponsesWithoutBids.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponsesWithoutBids", - "id": "adexchangebuyer2.accounts.filterSets.bidResponsesWithoutBids.list", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponsesWithoutBids" - } - } - }, - "filteredBidRequests": { - "methods": { - "list": { - "response": { - "$ref": "ListFilteredBidRequestsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBidRequests.list\nmethod.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true, - "location": "path" - }, - "filterSetId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBidRequests", - "id": "adexchangebuyer2.accounts.filterSets.filteredBidRequests.list", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBidRequests", - "description": "List all reasons that caused a bid request not to be sent for an\nimpression, with the number of bid requests not sent for each reason." - } - } - }, - "nonBillableWinningBids": { - "methods": { - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListNonBillableWinningBidsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "filterSetId": { - "type": "string", - "required": true, - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply." - }, - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.nonBillableWinningBids.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default." - }, - "accountId": { - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/nonBillableWinningBids", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/nonBillableWinningBids", - "id": "adexchangebuyer2.accounts.filterSets.nonBillableWinningBids.list", - "description": "List all reasons for which winning bids were not billable, with the number\nof bids not billed for each reason." - } - } - }, - "filteredBids": { - "resources": { - "creatives": { - "methods": { - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListCreativeStatusBreakdownByCreativeResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId", - "creativeStatusId" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.creatives.list\nmethod.", - "type": "string", - "location": "query" - }, - "creativeStatusId": { - "format": "int32", - "description": "The ID of the creative status for which to retrieve a breakdown by\ncreative.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", - "type": "integer", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/creatives", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/creatives", - "id": "adexchangebuyer2.accounts.filterSets.filteredBids.creatives.list", - "description": "List all creatives associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each creative." - } - } - }, - "details": { - "methods": { - "list": { - "description": "List all details associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each detail.", - "response": { - "$ref": "ListCreativeStatusBreakdownByDetailResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId", - "creativeStatusId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.details.list\nmethod.", - "type": "string" - }, - "creativeStatusId": { - "location": "path", - "format": "int32", - "description": "The ID of the creative status for which to retrieve a breakdown by detail.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).\nDetails are only available for statuses 10, 14, 15, 17, 18, 19, 86, and 87.", - "type": "integer", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/details", - "id": "adexchangebuyer2.accounts.filterSets.filteredBids.details.list", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/details" - } - } - } - }, - "methods": { - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "response": { - "$ref": "ListFilteredBidsResponse" - }, - "parameters": { - "pageToken": { - "location": "query", - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.list\nmethod.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "accountId": { - "location": "path", - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true - }, - "filterSetId": { - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids", - "id": "adexchangebuyer2.accounts.filterSets.filteredBids.list", - "description": "List all reasons for which bids were filtered, with the number of bids\nfiltered for each reason." - } - } - }, - "losingBids": { - "methods": { - "list": { - "id": "adexchangebuyer2.accounts.filterSets.losingBids.list", - "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/losingBids", - "description": "List all reasons for which bids lost in the auction, with the number of\nbids that lost for each reason.", - "response": { - "$ref": "ListLosingBidsResponse" - }, - "parameterOrder": [ - "accountId", - "filterSetId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/adexchange.buyer" - ], - "parameters": { - "pageToken": { - "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.losingBids.list\nmethod.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "accountId": { - "format": "int64", - "description": "Account ID of the buyer.", - "type": "string", - "required": true, - "location": "path" - }, - "filterSetId": { - "location": "path", - "format": "int64", - "description": "The ID of the filter set to apply.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/losingBids" - } - } - } - } - } - } - } - }, - "parameters": { - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "type": "string", - "location": "query", - "description": "OAuth bearer token." - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - } - }, - "version": "v2beta1", - "baseUrl": "https://adexchangebuyer.googleapis.com/", - "servicePath": "", - "description": "Accesses the latest features for managing Ad Exchange accounts, Real-Time Bidding configurations and auction metrics, and Marketplace programmatic deals.", - "kind": "discovery#restDescription" + "rootUrl": "https://adexchangebuyer.googleapis.com/" } diff --git a/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go b/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go index d7e27b2fe..c3b709c34 100644 --- a/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go +++ b/vendor/google.golang.org/api/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go @@ -57,6 +57,7 @@ func New(client *http.Client) (*Service, error) { } s := &Service{client: client, BasePath: basePath} s.Accounts = NewAccountsService(s) + s.Bidders = NewBiddersService(s) return s, nil } @@ -66,6 +67,8 @@ type Service struct { UserAgent string // optional additional User-Agent fragment Accounts *AccountsService + + Bidders *BiddersService } func (s *Service) userAgent() string { @@ -79,7 +82,6 @@ func NewAccountsService(s *Service) *AccountsService { rs := &AccountsService{s: s} rs.Clients = NewAccountsClientsService(s) rs.Creatives = NewAccountsCreativesService(s) - rs.FilterSets = NewAccountsFilterSetsService(s) return rs } @@ -89,8 +91,6 @@ type AccountsService struct { Clients *AccountsClientsService Creatives *AccountsCreativesService - - FilterSets *AccountsFilterSetsService } func NewAccountsClientsService(s *Service) *AccountsClientsService { @@ -147,132 +147,288 @@ type AccountsCreativesDealAssociationsService struct { s *Service } -func NewAccountsFilterSetsService(s *Service) *AccountsFilterSetsService { - rs := &AccountsFilterSetsService{s: s} - rs.BidMetrics = NewAccountsFilterSetsBidMetricsService(s) - rs.BidResponseErrors = NewAccountsFilterSetsBidResponseErrorsService(s) - rs.BidResponsesWithoutBids = NewAccountsFilterSetsBidResponsesWithoutBidsService(s) - rs.FilteredBidRequests = NewAccountsFilterSetsFilteredBidRequestsService(s) - rs.FilteredBids = NewAccountsFilterSetsFilteredBidsService(s) - rs.ImpressionMetrics = NewAccountsFilterSetsImpressionMetricsService(s) - rs.LosingBids = NewAccountsFilterSetsLosingBidsService(s) - rs.NonBillableWinningBids = NewAccountsFilterSetsNonBillableWinningBidsService(s) +func NewBiddersService(s *Service) *BiddersService { + rs := &BiddersService{s: s} + rs.Accounts = NewBiddersAccountsService(s) + rs.FilterSets = NewBiddersFilterSetsService(s) return rs } -type AccountsFilterSetsService struct { +type BiddersService struct { s *Service - BidMetrics *AccountsFilterSetsBidMetricsService + Accounts *BiddersAccountsService - BidResponseErrors *AccountsFilterSetsBidResponseErrorsService - - BidResponsesWithoutBids *AccountsFilterSetsBidResponsesWithoutBidsService - - FilteredBidRequests *AccountsFilterSetsFilteredBidRequestsService - - FilteredBids *AccountsFilterSetsFilteredBidsService - - ImpressionMetrics *AccountsFilterSetsImpressionMetricsService - - LosingBids *AccountsFilterSetsLosingBidsService - - NonBillableWinningBids *AccountsFilterSetsNonBillableWinningBidsService + FilterSets *BiddersFilterSetsService } -func NewAccountsFilterSetsBidMetricsService(s *Service) *AccountsFilterSetsBidMetricsService { - rs := &AccountsFilterSetsBidMetricsService{s: s} +func NewBiddersAccountsService(s *Service) *BiddersAccountsService { + rs := &BiddersAccountsService{s: s} + rs.FilterSets = NewBiddersAccountsFilterSetsService(s) return rs } -type AccountsFilterSetsBidMetricsService struct { +type BiddersAccountsService struct { + s *Service + + FilterSets *BiddersAccountsFilterSetsService +} + +func NewBiddersAccountsFilterSetsService(s *Service) *BiddersAccountsFilterSetsService { + rs := &BiddersAccountsFilterSetsService{s: s} + rs.BidMetrics = NewBiddersAccountsFilterSetsBidMetricsService(s) + rs.BidResponseErrors = NewBiddersAccountsFilterSetsBidResponseErrorsService(s) + rs.BidResponsesWithoutBids = NewBiddersAccountsFilterSetsBidResponsesWithoutBidsService(s) + rs.FilteredBidRequests = NewBiddersAccountsFilterSetsFilteredBidRequestsService(s) + rs.FilteredBids = NewBiddersAccountsFilterSetsFilteredBidsService(s) + rs.ImpressionMetrics = NewBiddersAccountsFilterSetsImpressionMetricsService(s) + rs.LosingBids = NewBiddersAccountsFilterSetsLosingBidsService(s) + rs.NonBillableWinningBids = NewBiddersAccountsFilterSetsNonBillableWinningBidsService(s) + return rs +} + +type BiddersAccountsFilterSetsService struct { + s *Service + + BidMetrics *BiddersAccountsFilterSetsBidMetricsService + + BidResponseErrors *BiddersAccountsFilterSetsBidResponseErrorsService + + BidResponsesWithoutBids *BiddersAccountsFilterSetsBidResponsesWithoutBidsService + + FilteredBidRequests *BiddersAccountsFilterSetsFilteredBidRequestsService + + FilteredBids *BiddersAccountsFilterSetsFilteredBidsService + + ImpressionMetrics *BiddersAccountsFilterSetsImpressionMetricsService + + LosingBids *BiddersAccountsFilterSetsLosingBidsService + + NonBillableWinningBids *BiddersAccountsFilterSetsNonBillableWinningBidsService +} + +func NewBiddersAccountsFilterSetsBidMetricsService(s *Service) *BiddersAccountsFilterSetsBidMetricsService { + rs := &BiddersAccountsFilterSetsBidMetricsService{s: s} + return rs +} + +type BiddersAccountsFilterSetsBidMetricsService struct { s *Service } -func NewAccountsFilterSetsBidResponseErrorsService(s *Service) *AccountsFilterSetsBidResponseErrorsService { - rs := &AccountsFilterSetsBidResponseErrorsService{s: s} +func NewBiddersAccountsFilterSetsBidResponseErrorsService(s *Service) *BiddersAccountsFilterSetsBidResponseErrorsService { + rs := &BiddersAccountsFilterSetsBidResponseErrorsService{s: s} return rs } -type AccountsFilterSetsBidResponseErrorsService struct { +type BiddersAccountsFilterSetsBidResponseErrorsService struct { s *Service } -func NewAccountsFilterSetsBidResponsesWithoutBidsService(s *Service) *AccountsFilterSetsBidResponsesWithoutBidsService { - rs := &AccountsFilterSetsBidResponsesWithoutBidsService{s: s} +func NewBiddersAccountsFilterSetsBidResponsesWithoutBidsService(s *Service) *BiddersAccountsFilterSetsBidResponsesWithoutBidsService { + rs := &BiddersAccountsFilterSetsBidResponsesWithoutBidsService{s: s} return rs } -type AccountsFilterSetsBidResponsesWithoutBidsService struct { +type BiddersAccountsFilterSetsBidResponsesWithoutBidsService struct { s *Service } -func NewAccountsFilterSetsFilteredBidRequestsService(s *Service) *AccountsFilterSetsFilteredBidRequestsService { - rs := &AccountsFilterSetsFilteredBidRequestsService{s: s} +func NewBiddersAccountsFilterSetsFilteredBidRequestsService(s *Service) *BiddersAccountsFilterSetsFilteredBidRequestsService { + rs := &BiddersAccountsFilterSetsFilteredBidRequestsService{s: s} return rs } -type AccountsFilterSetsFilteredBidRequestsService struct { +type BiddersAccountsFilterSetsFilteredBidRequestsService struct { s *Service } -func NewAccountsFilterSetsFilteredBidsService(s *Service) *AccountsFilterSetsFilteredBidsService { - rs := &AccountsFilterSetsFilteredBidsService{s: s} - rs.Creatives = NewAccountsFilterSetsFilteredBidsCreativesService(s) - rs.Details = NewAccountsFilterSetsFilteredBidsDetailsService(s) +func NewBiddersAccountsFilterSetsFilteredBidsService(s *Service) *BiddersAccountsFilterSetsFilteredBidsService { + rs := &BiddersAccountsFilterSetsFilteredBidsService{s: s} + rs.Creatives = NewBiddersAccountsFilterSetsFilteredBidsCreativesService(s) + rs.Details = NewBiddersAccountsFilterSetsFilteredBidsDetailsService(s) return rs } -type AccountsFilterSetsFilteredBidsService struct { +type BiddersAccountsFilterSetsFilteredBidsService struct { s *Service - Creatives *AccountsFilterSetsFilteredBidsCreativesService + Creatives *BiddersAccountsFilterSetsFilteredBidsCreativesService - Details *AccountsFilterSetsFilteredBidsDetailsService + Details *BiddersAccountsFilterSetsFilteredBidsDetailsService } -func NewAccountsFilterSetsFilteredBidsCreativesService(s *Service) *AccountsFilterSetsFilteredBidsCreativesService { - rs := &AccountsFilterSetsFilteredBidsCreativesService{s: s} +func NewBiddersAccountsFilterSetsFilteredBidsCreativesService(s *Service) *BiddersAccountsFilterSetsFilteredBidsCreativesService { + rs := &BiddersAccountsFilterSetsFilteredBidsCreativesService{s: s} return rs } -type AccountsFilterSetsFilteredBidsCreativesService struct { +type BiddersAccountsFilterSetsFilteredBidsCreativesService struct { s *Service } -func NewAccountsFilterSetsFilteredBidsDetailsService(s *Service) *AccountsFilterSetsFilteredBidsDetailsService { - rs := &AccountsFilterSetsFilteredBidsDetailsService{s: s} +func NewBiddersAccountsFilterSetsFilteredBidsDetailsService(s *Service) *BiddersAccountsFilterSetsFilteredBidsDetailsService { + rs := &BiddersAccountsFilterSetsFilteredBidsDetailsService{s: s} return rs } -type AccountsFilterSetsFilteredBidsDetailsService struct { +type BiddersAccountsFilterSetsFilteredBidsDetailsService struct { s *Service } -func NewAccountsFilterSetsImpressionMetricsService(s *Service) *AccountsFilterSetsImpressionMetricsService { - rs := &AccountsFilterSetsImpressionMetricsService{s: s} +func NewBiddersAccountsFilterSetsImpressionMetricsService(s *Service) *BiddersAccountsFilterSetsImpressionMetricsService { + rs := &BiddersAccountsFilterSetsImpressionMetricsService{s: s} return rs } -type AccountsFilterSetsImpressionMetricsService struct { +type BiddersAccountsFilterSetsImpressionMetricsService struct { s *Service } -func NewAccountsFilterSetsLosingBidsService(s *Service) *AccountsFilterSetsLosingBidsService { - rs := &AccountsFilterSetsLosingBidsService{s: s} +func NewBiddersAccountsFilterSetsLosingBidsService(s *Service) *BiddersAccountsFilterSetsLosingBidsService { + rs := &BiddersAccountsFilterSetsLosingBidsService{s: s} return rs } -type AccountsFilterSetsLosingBidsService struct { +type BiddersAccountsFilterSetsLosingBidsService struct { s *Service } -func NewAccountsFilterSetsNonBillableWinningBidsService(s *Service) *AccountsFilterSetsNonBillableWinningBidsService { - rs := &AccountsFilterSetsNonBillableWinningBidsService{s: s} +func NewBiddersAccountsFilterSetsNonBillableWinningBidsService(s *Service) *BiddersAccountsFilterSetsNonBillableWinningBidsService { + rs := &BiddersAccountsFilterSetsNonBillableWinningBidsService{s: s} return rs } -type AccountsFilterSetsNonBillableWinningBidsService struct { +type BiddersAccountsFilterSetsNonBillableWinningBidsService struct { + s *Service +} + +func NewBiddersFilterSetsService(s *Service) *BiddersFilterSetsService { + rs := &BiddersFilterSetsService{s: s} + rs.BidMetrics = NewBiddersFilterSetsBidMetricsService(s) + rs.BidResponseErrors = NewBiddersFilterSetsBidResponseErrorsService(s) + rs.BidResponsesWithoutBids = NewBiddersFilterSetsBidResponsesWithoutBidsService(s) + rs.FilteredBidRequests = NewBiddersFilterSetsFilteredBidRequestsService(s) + rs.FilteredBids = NewBiddersFilterSetsFilteredBidsService(s) + rs.ImpressionMetrics = NewBiddersFilterSetsImpressionMetricsService(s) + rs.LosingBids = NewBiddersFilterSetsLosingBidsService(s) + rs.NonBillableWinningBids = NewBiddersFilterSetsNonBillableWinningBidsService(s) + return rs +} + +type BiddersFilterSetsService struct { + s *Service + + BidMetrics *BiddersFilterSetsBidMetricsService + + BidResponseErrors *BiddersFilterSetsBidResponseErrorsService + + BidResponsesWithoutBids *BiddersFilterSetsBidResponsesWithoutBidsService + + FilteredBidRequests *BiddersFilterSetsFilteredBidRequestsService + + FilteredBids *BiddersFilterSetsFilteredBidsService + + ImpressionMetrics *BiddersFilterSetsImpressionMetricsService + + LosingBids *BiddersFilterSetsLosingBidsService + + NonBillableWinningBids *BiddersFilterSetsNonBillableWinningBidsService +} + +func NewBiddersFilterSetsBidMetricsService(s *Service) *BiddersFilterSetsBidMetricsService { + rs := &BiddersFilterSetsBidMetricsService{s: s} + return rs +} + +type BiddersFilterSetsBidMetricsService struct { + s *Service +} + +func NewBiddersFilterSetsBidResponseErrorsService(s *Service) *BiddersFilterSetsBidResponseErrorsService { + rs := &BiddersFilterSetsBidResponseErrorsService{s: s} + return rs +} + +type BiddersFilterSetsBidResponseErrorsService struct { + s *Service +} + +func NewBiddersFilterSetsBidResponsesWithoutBidsService(s *Service) *BiddersFilterSetsBidResponsesWithoutBidsService { + rs := &BiddersFilterSetsBidResponsesWithoutBidsService{s: s} + return rs +} + +type BiddersFilterSetsBidResponsesWithoutBidsService struct { + s *Service +} + +func NewBiddersFilterSetsFilteredBidRequestsService(s *Service) *BiddersFilterSetsFilteredBidRequestsService { + rs := &BiddersFilterSetsFilteredBidRequestsService{s: s} + return rs +} + +type BiddersFilterSetsFilteredBidRequestsService struct { + s *Service +} + +func NewBiddersFilterSetsFilteredBidsService(s *Service) *BiddersFilterSetsFilteredBidsService { + rs := &BiddersFilterSetsFilteredBidsService{s: s} + rs.Creatives = NewBiddersFilterSetsFilteredBidsCreativesService(s) + rs.Details = NewBiddersFilterSetsFilteredBidsDetailsService(s) + return rs +} + +type BiddersFilterSetsFilteredBidsService struct { + s *Service + + Creatives *BiddersFilterSetsFilteredBidsCreativesService + + Details *BiddersFilterSetsFilteredBidsDetailsService +} + +func NewBiddersFilterSetsFilteredBidsCreativesService(s *Service) *BiddersFilterSetsFilteredBidsCreativesService { + rs := &BiddersFilterSetsFilteredBidsCreativesService{s: s} + return rs +} + +type BiddersFilterSetsFilteredBidsCreativesService struct { + s *Service +} + +func NewBiddersFilterSetsFilteredBidsDetailsService(s *Service) *BiddersFilterSetsFilteredBidsDetailsService { + rs := &BiddersFilterSetsFilteredBidsDetailsService{s: s} + return rs +} + +type BiddersFilterSetsFilteredBidsDetailsService struct { + s *Service +} + +func NewBiddersFilterSetsImpressionMetricsService(s *Service) *BiddersFilterSetsImpressionMetricsService { + rs := &BiddersFilterSetsImpressionMetricsService{s: s} + return rs +} + +type BiddersFilterSetsImpressionMetricsService struct { + s *Service +} + +func NewBiddersFilterSetsLosingBidsService(s *Service) *BiddersFilterSetsLosingBidsService { + rs := &BiddersFilterSetsLosingBidsService{s: s} + return rs +} + +type BiddersFilterSetsLosingBidsService struct { + s *Service +} + +func NewBiddersFilterSetsNonBillableWinningBidsService(s *Service) *BiddersFilterSetsNonBillableWinningBidsService { + rs := &BiddersFilterSetsNonBillableWinningBidsService{s: s} + return rs +} + +type BiddersFilterSetsNonBillableWinningBidsService struct { s *Service } @@ -1509,6 +1665,18 @@ type FilterSet struct { // "VIDEO" - The ad impression is video format. Format string `json:"format,omitempty"` + // Name: A user-defined name of the filter set. Filter set names must be + // unique + // globally and match one of the patterns: + // + // - `bidders/*/filterSets/*` (for accessing bidder-level + // troubleshooting + // data) + // - `bidders/*/accounts/*/filterSets/*` (for accessing + // buyer-level + // troubleshooting data) + Name string `json:"name,omitempty"` + // OwnerAccountId: The account ID of the buyer who owns this filter // set. // The value of this field is ignored in create operations. @@ -1847,9 +2015,7 @@ type ListBidMetricsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListBidMetricsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.bidMetrics.list + // field in the subsequent call to the bidMetrics.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -1892,9 +2058,7 @@ type ListBidResponseErrorsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListBidResponseErrorsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.bidResponseErrors.list + // field in the subsequent call to the bidResponseErrors.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -1939,9 +2103,8 @@ type ListBidResponsesWithoutBidsResponse struct { // Pass this value in // the // ListBidResponsesWithoutBidsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.bidResponsesWithoutBids.list + // field in the subsequent call to the + // bidResponsesWithoutBids.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2107,9 +2270,8 @@ type ListCreativeStatusBreakdownByCreativeResponse struct { // Pass this value in // the // ListCreativeStatusBreakdownByCreativeRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.filteredBids.creatives.list + // field in the subsequent call to the + // filteredBids.creatives.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2188,9 +2350,7 @@ type ListCreativeStatusBreakdownByDetailResponse struct { // Pass this value in // the // ListCreativeStatusBreakdownByDetailRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.filteredBids.details.list + // field in the subsequent call to the filteredBids.details.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2354,9 +2514,7 @@ type ListFilteredBidRequestsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListFilteredBidRequestsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.filteredBidRequests.list + // field in the subsequent call to the filteredBidRequests.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2400,9 +2558,7 @@ type ListFilteredBidsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListFilteredBidsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.filteredBids.list + // field in the subsequent call to the filteredBids.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2445,9 +2601,7 @@ type ListImpressionMetricsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListImpressionMetricsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.impressionMetrics.list + // field in the subsequent call to the impressionMetrics.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2491,9 +2645,7 @@ type ListLosingBidsResponse struct { // NextPageToken: A token to retrieve the next page of results. // Pass this value in the // ListLosingBidsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.losingBids.list + // field in the subsequent call to the losingBids.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -2533,9 +2685,8 @@ type ListNonBillableWinningBidsResponse struct { // Pass this value in // the // ListNonBillableWinningBidsRequest.pageToken - // field in the subsequent call to - // the - // accounts.filterSets.nonBillableWinningBids.list + // field in the subsequent call to the + // nonBillableWinningBids.list // method to retrieve the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` @@ -6360,11 +6511,11 @@ func (c *AccountsCreativesDealAssociationsRemoveCall) Do(opts ...googleapi.CallO } -// method id "adexchangebuyer2.accounts.filterSets.create": +// method id "adexchangebuyer2.bidders.accounts.filterSets.create": -type AccountsFilterSetsCreateCall struct { +type BiddersAccountsFilterSetsCreateCall struct { s *Service - accountId int64 + ownerName string filterset *FilterSet urlParams_ gensupport.URLParams ctx_ context.Context @@ -6373,19 +6524,26 @@ type AccountsFilterSetsCreateCall struct { // Create: Creates the specified filter set for the account with the // given account ID. -func (r *AccountsFilterSetsService) Create(accountId int64, filterset *FilterSet) *AccountsFilterSetsCreateCall { - c := &AccountsFilterSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId +func (r *BiddersAccountsFilterSetsService) Create(ownerName string, filterset *FilterSet) *BiddersAccountsFilterSetsCreateCall { + c := &BiddersAccountsFilterSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.ownerName = ownerName c.filterset = filterset return c } +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsCreateCall) AccountId(accountId int64) *BiddersAccountsFilterSetsCreateCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + // IsTransient sets the optional parameter "isTransient": Whether the // filter set is transient, or should be persisted indefinitely. // By default, filter sets are not transient. // If transient, it will be available for at least 1 hour after // creation. -func (c *AccountsFilterSetsCreateCall) IsTransient(isTransient bool) *AccountsFilterSetsCreateCall { +func (c *BiddersAccountsFilterSetsCreateCall) IsTransient(isTransient bool) *BiddersAccountsFilterSetsCreateCall { c.urlParams_.Set("isTransient", fmt.Sprint(isTransient)) return c } @@ -6393,7 +6551,7 @@ func (c *AccountsFilterSetsCreateCall) IsTransient(isTransient bool) *AccountsFi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsCreateCall) Fields(s ...googleapi.Field) *AccountsFilterSetsCreateCall { +func (c *BiddersAccountsFilterSetsCreateCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6401,21 +6559,21 @@ func (c *AccountsFilterSetsCreateCall) Fields(s ...googleapi.Field) *AccountsFil // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsCreateCall) Context(ctx context.Context) *AccountsFilterSetsCreateCall { +func (c *BiddersAccountsFilterSetsCreateCall) Context(ctx context.Context) *BiddersAccountsFilterSetsCreateCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsCreateCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsCreateCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -6428,24 +6586,24 @@ func (c *AccountsFilterSetsCreateCall) doRequest(alt string) (*http.Response, er } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+ownerName}/filterSets") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), + "ownerName": c.ownerName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.create" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.create" call. // Exactly one of *FilterSet or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *FilterSet.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *AccountsFilterSetsCreateCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { +func (c *BiddersAccountsFilterSetsCreateCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6477,27 +6635,33 @@ func (c *AccountsFilterSetsCreateCall) Do(opts ...googleapi.CallOption) (*Filter return ret, nil // { // "description": "Creates the specified filter set for the account with the given account ID.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets", // "httpMethod": "POST", - // "id": "adexchangebuyer2.accounts.filterSets.create", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.create", // "parameterOrder": [ - // "accountId" + // "ownerName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "isTransient": { // "description": "Whether the filter set is transient, or should be persisted indefinitely.\nBy default, filter sets are not transient.\nIf transient, it will be available for at least 1 hour after creation.", // "location": "query", // "type": "boolean" + // }, + // "ownerName": { + // "description": "Name of the owner (bidder or account) of the filter set to be created.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+$", + // "required": true, + // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets", + // "path": "v2beta1/{+ownerName}/filterSets", // "request": { // "$ref": "FilterSet" // }, @@ -6511,31 +6675,43 @@ func (c *AccountsFilterSetsCreateCall) Do(opts ...googleapi.CallOption) (*Filter } -// method id "adexchangebuyer2.accounts.filterSets.delete": +// method id "adexchangebuyer2.bidders.accounts.filterSets.delete": -type AccountsFilterSetsDeleteCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } // Delete: Deletes the requested filter set from the account with the // given account // ID. -func (r *AccountsFilterSetsService) Delete(accountId int64, filterSetId int64) *AccountsFilterSetsDeleteCall { - c := &AccountsFilterSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsService) Delete(name string) *BiddersAccountsFilterSetsDeleteCall { + c := &BiddersAccountsFilterSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsDeleteCall) AccountId(accountId int64) *BiddersAccountsFilterSetsDeleteCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to delete. +func (c *BiddersAccountsFilterSetsDeleteCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsDeleteCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsDeleteCall) Fields(s ...googleapi.Field) *AccountsFilterSetsDeleteCall { +func (c *BiddersAccountsFilterSetsDeleteCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6543,21 +6719,21 @@ func (c *AccountsFilterSetsDeleteCall) Fields(s ...googleapi.Field) *AccountsFil // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsDeleteCall) Context(ctx context.Context) *AccountsFilterSetsDeleteCall { +func (c *BiddersAccountsFilterSetsDeleteCall) Context(ctx context.Context) *BiddersAccountsFilterSetsDeleteCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsDeleteCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -6565,25 +6741,24 @@ func (c *AccountsFilterSetsDeleteCall) doRequest(alt string) (*http.Response, er reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("DELETE", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.delete" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.delete" call. // Exactly one of *Empty or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Empty.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. -func (c *AccountsFilterSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { +func (c *BiddersAccountsFilterSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6615,30 +6790,34 @@ func (c *AccountsFilterSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, return ret, nil // { // "description": "Deletes the requested filter set from the account with the given account\nID.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}", // "httpMethod": "DELETE", - // "id": "adexchangebuyer2.accounts.filterSets.delete", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.delete", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "name" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to delete.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Full name of the resource to delete.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", + // "path": "v2beta1/{+name}", // "response": { // "$ref": "Empty" // }, @@ -6649,12 +6828,11 @@ func (c *AccountsFilterSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, } -// method id "adexchangebuyer2.accounts.filterSets.get": +// method id "adexchangebuyer2.bidders.accounts.filterSets.get": -type AccountsFilterSetsGetCall struct { +type BiddersAccountsFilterSetsGetCall struct { s *Service - accountId int64 - filterSetId int64 + name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context @@ -6664,17 +6842,30 @@ type AccountsFilterSetsGetCall struct { // Get: Retrieves the requested filter set for the account with the // given account // ID. -func (r *AccountsFilterSetsService) Get(accountId int64, filterSetId int64) *AccountsFilterSetsGetCall { - c := &AccountsFilterSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsService) Get(name string) *BiddersAccountsFilterSetsGetCall { + c := &BiddersAccountsFilterSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsGetCall) AccountId(accountId int64) *BiddersAccountsFilterSetsGetCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to get. +func (c *BiddersAccountsFilterSetsGetCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsGetCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsGetCall) Fields(s ...googleapi.Field) *AccountsFilterSetsGetCall { +func (c *BiddersAccountsFilterSetsGetCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6684,7 +6875,7 @@ func (c *AccountsFilterSetsGetCall) Fields(s ...googleapi.Field) *AccountsFilter // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsGetCall) IfNoneMatch(entityTag string) *AccountsFilterSetsGetCall { +func (c *BiddersAccountsFilterSetsGetCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsGetCall { c.ifNoneMatch_ = entityTag return c } @@ -6692,21 +6883,21 @@ func (c *AccountsFilterSetsGetCall) IfNoneMatch(entityTag string) *AccountsFilte // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsGetCall) Context(ctx context.Context) *AccountsFilterSetsGetCall { +func (c *BiddersAccountsFilterSetsGetCall) Context(ctx context.Context) *BiddersAccountsFilterSetsGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsGetCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -6717,25 +6908,24 @@ func (c *AccountsFilterSetsGetCall) doRequest(alt string) (*http.Response, error } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.get" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.get" call. // Exactly one of *FilterSet or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *FilterSet.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *AccountsFilterSetsGetCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { +func (c *BiddersAccountsFilterSetsGetCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6767,30 +6957,34 @@ func (c *AccountsFilterSetsGetCall) Do(opts ...googleapi.CallOption) (*FilterSet return ret, nil // { // "description": "Retrieves the requested filter set for the account with the given account\nID.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.get", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.get", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "name" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to get.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Full name of the resource being requested.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}", + // "path": "v2beta1/{+name}", // "response": { // "$ref": "FilterSet" // }, @@ -6801,11 +6995,11 @@ func (c *AccountsFilterSetsGetCall) Do(opts ...googleapi.CallOption) (*FilterSet } -// method id "adexchangebuyer2.accounts.filterSets.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.list": -type AccountsFilterSetsListCall struct { +type BiddersAccountsFilterSetsListCall struct { s *Service - accountId int64 + ownerName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context @@ -6814,16 +7008,23 @@ type AccountsFilterSetsListCall struct { // List: Lists all filter sets for the account with the given account // ID. -func (r *AccountsFilterSetsService) List(accountId int64) *AccountsFilterSetsListCall { - c := &AccountsFilterSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId +func (r *BiddersAccountsFilterSetsService) List(ownerName string) *BiddersAccountsFilterSetsListCall { + c := &BiddersAccountsFilterSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.ownerName = ownerName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsListCall) PageSize(pageSize int64) *AccountsFilterSetsListCall { +func (c *BiddersAccountsFilterSetsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -6837,7 +7038,7 @@ func (c *AccountsFilterSetsListCall) PageSize(pageSize int64) *AccountsFilterSet // the // accounts.filterSets.list // method. -func (c *AccountsFilterSetsListCall) PageToken(pageToken string) *AccountsFilterSetsListCall { +func (c *BiddersAccountsFilterSetsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -6845,7 +7046,7 @@ func (c *AccountsFilterSetsListCall) PageToken(pageToken string) *AccountsFilter // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsListCall { +func (c *BiddersAccountsFilterSetsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6855,7 +7056,7 @@ func (c *AccountsFilterSetsListCall) Fields(s ...googleapi.Field) *AccountsFilte // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsListCall { +func (c *BiddersAccountsFilterSetsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsListCall { c.ifNoneMatch_ = entityTag return c } @@ -6863,21 +7064,21 @@ func (c *AccountsFilterSetsListCall) IfNoneMatch(entityTag string) *AccountsFilt // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsListCall) Context(ctx context.Context) *AccountsFilterSetsListCall { +func (c *BiddersAccountsFilterSetsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -6888,24 +7089,24 @@ func (c *AccountsFilterSetsListCall) doRequest(alt string) (*http.Response, erro } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+ownerName}/filterSets") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), + "ownerName": c.ownerName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.list" call. // Exactly one of *ListFilterSetsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListFilterSetsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilterSetsResponse, error) { +func (c *BiddersAccountsFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilterSetsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6937,17 +7138,23 @@ func (c *AccountsFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilt return ret, nil // { // "description": "Lists all filter sets for the account with the given account ID.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.list", // "parameterOrder": [ - // "accountId" + // "ownerName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "ownerName": { + // "description": "Name of the owner (bidder or account) of the filter sets to be listed.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+$", // "required": true, // "type": "string" // }, @@ -6963,7 +7170,7 @@ func (c *AccountsFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilt // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets", + // "path": "v2beta1/{+ownerName}/filterSets", // "response": { // "$ref": "ListFilterSetsResponse" // }, @@ -6977,7 +7184,7 @@ func (c *AccountsFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilt // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsListCall) Pages(ctx context.Context, f func(*ListFilterSetsResponse) error) error { +func (c *BiddersAccountsFilterSetsListCall) Pages(ctx context.Context, f func(*ListFilterSetsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -6995,30 +7202,42 @@ func (c *AccountsFilterSetsListCall) Pages(ctx context.Context, f func(*ListFilt } } -// method id "adexchangebuyer2.accounts.filterSets.bidMetrics.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list": -type AccountsFilterSetsBidMetricsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsBidMetricsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: Lists all metrics that are measured in terms of number of bids. -func (r *AccountsFilterSetsBidMetricsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsBidMetricsListCall { - c := &AccountsFilterSetsBidMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsBidMetricsService) List(filterSetName string) *BiddersAccountsFilterSetsBidMetricsListCall { + c := &BiddersAccountsFilterSetsBidMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsBidMetricsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsBidMetricsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsBidMetricsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsBidMetricsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsBidMetricsListCall) PageSize(pageSize int64) *AccountsFilterSetsBidMetricsListCall { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsBidMetricsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -7028,11 +7247,9 @@ func (c *AccountsFilterSetsBidMetricsListCall) PageSize(pageSize int64) *Account // Typically, this is the value // of // ListBidMetricsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.bidMetrics.list +// returned from the previous call to the bidMetrics.list // method. -func (c *AccountsFilterSetsBidMetricsListCall) PageToken(pageToken string) *AccountsFilterSetsBidMetricsListCall { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsBidMetricsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7040,7 +7257,7 @@ func (c *AccountsFilterSetsBidMetricsListCall) PageToken(pageToken string) *Acco // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsBidMetricsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsBidMetricsListCall { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsBidMetricsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7050,7 +7267,7 @@ func (c *AccountsFilterSetsBidMetricsListCall) Fields(s ...googleapi.Field) *Acc // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsBidMetricsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsBidMetricsListCall { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsBidMetricsListCall { c.ifNoneMatch_ = entityTag return c } @@ -7058,21 +7275,21 @@ func (c *AccountsFilterSetsBidMetricsListCall) IfNoneMatch(entityTag string) *Ac // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsBidMetricsListCall) Context(ctx context.Context) *AccountsFilterSetsBidMetricsListCall { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsBidMetricsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsBidMetricsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsBidMetricsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -7083,25 +7300,24 @@ func (c *AccountsFilterSetsBidMetricsListCall) doRequest(alt string) (*http.Resp } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidMetrics") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidMetrics") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.bidMetrics.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list" call. // Exactly one of *ListBidMetricsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListBidMetricsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) (*ListBidMetricsResponse, error) { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) (*ListBidMetricsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7133,25 +7349,29 @@ func (c *AccountsFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) return ret, nil // { // "description": "Lists all metrics that are measured in terms of number of bids.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidMetrics", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidMetrics", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.bidMetrics.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.bidMetrics.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -7162,12 +7382,12 @@ func (c *AccountsFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidMetrics.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the bidMetrics.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidMetrics", + // "path": "v2beta1/{+filterSetName}/bidMetrics", // "response": { // "$ref": "ListBidMetricsResponse" // }, @@ -7181,7 +7401,7 @@ func (c *AccountsFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsBidMetricsListCall) Pages(ctx context.Context, f func(*ListBidMetricsResponse) error) error { +func (c *BiddersAccountsFilterSetsBidMetricsListCall) Pages(ctx context.Context, f func(*ListBidMetricsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -7199,32 +7419,44 @@ func (c *AccountsFilterSetsBidMetricsListCall) Pages(ctx context.Context, f func } } -// method id "adexchangebuyer2.accounts.filterSets.bidResponseErrors.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list": -type AccountsFilterSetsBidResponseErrorsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsBidResponseErrorsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all errors that occurred in bid responses, with the number // of bid // responses affected for each reason. -func (r *AccountsFilterSetsBidResponseErrorsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsBidResponseErrorsListCall { - c := &AccountsFilterSetsBidResponseErrorsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsBidResponseErrorsService) List(filterSetName string) *BiddersAccountsFilterSetsBidResponseErrorsListCall { + c := &BiddersAccountsFilterSetsBidResponseErrorsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsBidResponseErrorsListCall) PageSize(pageSize int64) *AccountsFilterSetsBidResponseErrorsListCall { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsBidResponseErrorsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -7234,11 +7466,9 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) PageSize(pageSize int64) * // Typically, this is the value // of // ListBidResponseErrorsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.bidResponseErrors.list +// returned from the previous call to the bidResponseErrors.list // method. -func (c *AccountsFilterSetsBidResponseErrorsListCall) PageToken(pageToken string) *AccountsFilterSetsBidResponseErrorsListCall { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsBidResponseErrorsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7246,7 +7476,7 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) PageToken(pageToken string // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsBidResponseErrorsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsBidResponseErrorsListCall { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsBidResponseErrorsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7256,7 +7486,7 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) Fields(s ...googleapi.Fiel // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsBidResponseErrorsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsBidResponseErrorsListCall { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsBidResponseErrorsListCall { c.ifNoneMatch_ = entityTag return c } @@ -7264,21 +7494,21 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) IfNoneMatch(entityTag stri // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsBidResponseErrorsListCall) Context(ctx context.Context) *AccountsFilterSetsBidResponseErrorsListCall { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsBidResponseErrorsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsBidResponseErrorsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsBidResponseErrorsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -7289,25 +7519,24 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) doRequest(alt string) (*ht } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponseErrors") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidResponseErrors") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.bidResponseErrors.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list" call. // Exactly one of *ListBidResponseErrorsResponse or error will be // non-nil. Any non-2xx status code is an error. Response headers are in // either *ListBidResponseErrorsResponse.ServerResponse.Header or (if a // response was returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponseErrorsResponse, error) { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponseErrorsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7339,25 +7568,29 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallO return ret, nil // { // "description": "List all errors that occurred in bid responses, with the number of bid\nresponses affected for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponseErrors", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidResponseErrors", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.bidResponseErrors.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.bidResponseErrors.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -7368,12 +7601,12 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallO // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidResponseErrors.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the bidResponseErrors.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponseErrors", + // "path": "v2beta1/{+filterSetName}/bidResponseErrors", // "response": { // "$ref": "ListBidResponseErrorsResponse" // }, @@ -7387,7 +7620,7 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallO // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsBidResponseErrorsListCall) Pages(ctx context.Context, f func(*ListBidResponseErrorsResponse) error) error { +func (c *BiddersAccountsFilterSetsBidResponseErrorsListCall) Pages(ctx context.Context, f func(*ListBidResponseErrorsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -7405,33 +7638,45 @@ func (c *AccountsFilterSetsBidResponseErrorsListCall) Pages(ctx context.Context, } } -// method id "adexchangebuyer2.accounts.filterSets.bidResponsesWithoutBids.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list": -type AccountsFilterSetsBidResponsesWithoutBidsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all reasons for which bid responses were considered to // have no // applicable bids, with the number of bid responses affected for each // reason. -func (r *AccountsFilterSetsBidResponsesWithoutBidsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsBidResponsesWithoutBidsListCall { - c := &AccountsFilterSetsBidResponsesWithoutBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsBidResponsesWithoutBidsService) List(filterSetName string) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { + c := &BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) PageSize(pageSize int64) *AccountsFilterSetsBidResponsesWithoutBidsListCall { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -7441,11 +7686,10 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) PageSize(pageSize in // Typically, this is the value // of // ListBidResponsesWithoutBidsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.bidResponsesWithoutBids.list +// returned from the previous call to the +// bidResponsesWithoutBids.list // method. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) PageToken(pageToken string) *AccountsFilterSetsBidResponsesWithoutBidsListCall { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7453,7 +7697,7 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) PageToken(pageToken // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsBidResponsesWithoutBidsListCall { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7463,7 +7707,7 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Fields(s ...googleap // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsBidResponsesWithoutBidsListCall { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { c.ifNoneMatch_ = entityTag return c } @@ -7471,21 +7715,21 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) IfNoneMatch(entityTa // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Context(ctx context.Context) *AccountsFilterSetsBidResponsesWithoutBidsListCall { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -7496,18 +7740,17 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) doRequest(alt string } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponsesWithoutBids") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidResponsesWithoutBids") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.bidResponsesWithoutBids.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list" call. // Exactly one of *ListBidResponsesWithoutBidsResponse or error will be // non-nil. Any non-2xx status code is an error. Response headers are in // either *ListBidResponsesWithoutBidsResponse.ServerResponse.Header or @@ -7515,7 +7758,7 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) doRequest(alt string // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was // returned. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponsesWithoutBidsResponse, error) { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponsesWithoutBidsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7547,25 +7790,29 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi return ret, nil // { // "description": "List all reasons for which bid responses were considered to have no\napplicable bids, with the number of bid responses affected for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponsesWithoutBids", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/bidResponsesWithoutBids", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.bidResponsesWithoutBids.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.bidResponsesWithoutBids.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -7576,12 +7823,12 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.bidResponsesWithoutBids.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the bidResponsesWithoutBids.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/bidResponsesWithoutBids", + // "path": "v2beta1/{+filterSetName}/bidResponsesWithoutBids", // "response": { // "$ref": "ListBidResponsesWithoutBidsResponse" // }, @@ -7595,7 +7842,7 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Pages(ctx context.Context, f func(*ListBidResponsesWithoutBidsResponse) error) error { +func (c *BiddersAccountsFilterSetsBidResponsesWithoutBidsListCall) Pages(ctx context.Context, f func(*ListBidResponsesWithoutBidsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -7613,32 +7860,44 @@ func (c *AccountsFilterSetsBidResponsesWithoutBidsListCall) Pages(ctx context.Co } } -// method id "adexchangebuyer2.accounts.filterSets.filteredBidRequests.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list": -type AccountsFilterSetsFilteredBidRequestsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsFilteredBidRequestsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all reasons that caused a bid request not to be sent for // an // impression, with the number of bid requests not sent for each reason. -func (r *AccountsFilterSetsFilteredBidRequestsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsFilteredBidRequestsListCall { - c := &AccountsFilterSetsFilteredBidRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsFilteredBidRequestsService) List(filterSetName string) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { + c := &BiddersAccountsFilterSetsFilteredBidRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) PageSize(pageSize int64) *AccountsFilterSetsFilteredBidRequestsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -7648,11 +7907,10 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) PageSize(pageSize int64) // Typically, this is the value // of // ListFilteredBidRequestsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.filteredBidRequests.list +// returned from the previous call to the +// filteredBidRequests.list // method. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) PageToken(pageToken string) *AccountsFilterSetsFilteredBidRequestsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7660,7 +7918,7 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) PageToken(pageToken stri // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsFilteredBidRequestsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7670,7 +7928,7 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) Fields(s ...googleapi.Fi // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsFilteredBidRequestsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { c.ifNoneMatch_ = entityTag return c } @@ -7678,21 +7936,21 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) IfNoneMatch(entityTag st // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) Context(ctx context.Context) *AccountsFilterSetsFilteredBidRequestsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsFilteredBidRequestsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsFilteredBidRequestsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -7703,25 +7961,24 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) doRequest(alt string) (* } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBidRequests") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBidRequests") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.filteredBidRequests.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list" call. // Exactly one of *ListFilteredBidRequestsResponse or error will be // non-nil. Any non-2xx status code is an error. Response headers are in // either *ListFilteredBidRequestsResponse.ServerResponse.Header or (if // a response was returned at all) in error.(*googleapi.Error).Header. // Use googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidRequestsResponse, error) { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidRequestsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7753,25 +8010,29 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.Cal return ret, nil // { // "description": "List all reasons that caused a bid request not to be sent for an\nimpression, with the number of bid requests not sent for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBidRequests", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBidRequests", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.filteredBidRequests.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBidRequests.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -7782,12 +8043,12 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.Cal // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBidRequests.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the filteredBidRequests.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBidRequests", + // "path": "v2beta1/{+filterSetName}/filteredBidRequests", // "response": { // "$ref": "ListFilteredBidRequestsResponse" // }, @@ -7801,7 +8062,7 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.Cal // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsFilteredBidRequestsListCall) Pages(ctx context.Context, f func(*ListFilteredBidRequestsResponse) error) error { +func (c *BiddersAccountsFilterSetsFilteredBidRequestsListCall) Pages(ctx context.Context, f func(*ListFilteredBidRequestsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -7819,32 +8080,44 @@ func (c *AccountsFilterSetsFilteredBidRequestsListCall) Pages(ctx context.Contex } } -// method id "adexchangebuyer2.accounts.filterSets.filteredBids.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list": -type AccountsFilterSetsFilteredBidsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsFilteredBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all reasons for which bids were filtered, with the number // of bids // filtered for each reason. -func (r *AccountsFilterSetsFilteredBidsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsFilteredBidsListCall { - c := &AccountsFilterSetsFilteredBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsFilteredBidsService) List(filterSetName string) *BiddersAccountsFilterSetsFilteredBidsListCall { + c := &BiddersAccountsFilterSetsFilteredBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsFilteredBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsFilteredBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsFilteredBidsListCall) PageSize(pageSize int64) *AccountsFilterSetsFilteredBidsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsFilteredBidsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -7854,11 +8127,9 @@ func (c *AccountsFilterSetsFilteredBidsListCall) PageSize(pageSize int64) *Accou // Typically, this is the value // of // ListFilteredBidsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.filteredBids.list +// returned from the previous call to the filteredBids.list // method. -func (c *AccountsFilterSetsFilteredBidsListCall) PageToken(pageToken string) *AccountsFilterSetsFilteredBidsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsFilteredBidsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7866,7 +8137,7 @@ func (c *AccountsFilterSetsFilteredBidsListCall) PageToken(pageToken string) *Ac // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsFilteredBidsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsFilteredBidsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsFilteredBidsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7876,7 +8147,7 @@ func (c *AccountsFilterSetsFilteredBidsListCall) Fields(s ...googleapi.Field) *A // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsFilteredBidsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsFilteredBidsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsFilteredBidsListCall { c.ifNoneMatch_ = entityTag return c } @@ -7884,21 +8155,21 @@ func (c *AccountsFilterSetsFilteredBidsListCall) IfNoneMatch(entityTag string) * // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsFilteredBidsListCall) Context(ctx context.Context) *AccountsFilterSetsFilteredBidsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsFilteredBidsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsFilteredBidsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsFilteredBidsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -7909,25 +8180,24 @@ func (c *AccountsFilterSetsFilteredBidsListCall) doRequest(alt string) (*http.Re } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.filteredBids.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list" call. // Exactly one of *ListFilteredBidsResponse or error will be non-nil. // Any non-2xx status code is an error. Response headers are in either // *ListFilteredBidsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidsResponse, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7959,25 +8229,29 @@ func (c *AccountsFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption return ret, nil // { // "description": "List all reasons for which bids were filtered, with the number of bids\nfiltered for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.filteredBids.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -7988,12 +8262,12 @@ func (c *AccountsFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the filteredBids.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids", + // "path": "v2beta1/{+filterSetName}/filteredBids", // "response": { // "$ref": "ListFilteredBidsResponse" // }, @@ -8007,7 +8281,7 @@ func (c *AccountsFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsFilteredBidsListCall) Pages(ctx context.Context, f func(*ListFilteredBidsResponse) error) error { +func (c *BiddersAccountsFilterSetsFilteredBidsListCall) Pages(ctx context.Context, f func(*ListFilteredBidsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -8025,12 +8299,11 @@ func (c *AccountsFilterSetsFilteredBidsListCall) Pages(ctx context.Context, f fu } } -// method id "adexchangebuyer2.accounts.filterSets.filteredBids.creatives.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list": -type AccountsFilterSetsFilteredBidsCreativesListCall struct { +type BiddersAccountsFilterSetsFilteredBidsCreativesListCall struct { s *Service - accountId int64 - filterSetId int64 + filterSetName string creativeStatusId int64 urlParams_ gensupport.URLParams ifNoneMatch_ string @@ -8041,18 +8314,31 @@ type AccountsFilterSetsFilteredBidsCreativesListCall struct { // List: List all creatives associated with a specific reason for which // bids were // filtered, with the number of bids filtered for each creative. -func (r *AccountsFilterSetsFilteredBidsCreativesService) List(accountId int64, filterSetId int64, creativeStatusId int64) *AccountsFilterSetsFilteredBidsCreativesListCall { - c := &AccountsFilterSetsFilteredBidsCreativesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsFilteredBidsCreativesService) List(filterSetName string, creativeStatusId int64) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { + c := &BiddersAccountsFilterSetsFilteredBidsCreativesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName c.creativeStatusId = creativeStatusId return c } +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) PageSize(pageSize int64) *AccountsFilterSetsFilteredBidsCreativesListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -8063,11 +8349,9 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) PageSize(pageSize int6 // of // ListCreativeStatusBreakdownByCreativeResponse.nextPageToken // returne -// d from the previous call to -// the -// accounts.filterSets.filteredBids.creatives.list +// d from the previous call to the filteredBids.creatives.list // method. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) PageToken(pageToken string) *AccountsFilterSetsFilteredBidsCreativesListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -8075,7 +8359,7 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) PageToken(pageToken st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsFilteredBidsCreativesListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8085,7 +8369,7 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Fields(s ...googleapi. // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsFilteredBidsCreativesListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { c.ifNoneMatch_ = entityTag return c } @@ -8093,21 +8377,21 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) IfNoneMatch(entityTag // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Context(ctx context.Context) *AccountsFilterSetsFilteredBidsCreativesListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsFilteredBidsCreativesListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -8118,19 +8402,18 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) doRequest(alt string) } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/creatives") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, "creativeStatusId": strconv.FormatInt(c.creativeStatusId, 10), }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.filteredBids.creatives.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list" call. // Exactly one of *ListCreativeStatusBreakdownByCreativeResponse or // error will be non-nil. Any non-2xx status code is an error. Response // headers are in either @@ -8139,7 +8422,7 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) doRequest(alt string) // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was // returned. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByCreativeResponse, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByCreativeResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8171,20 +8454,18 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.C return ret, nil // { // "description": "List all creatives associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each creative.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/creatives", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/creatives", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.filteredBids.creatives.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.creatives.list", // "parameterOrder": [ - // "accountId", - // "filterSetId", + // "filterSetName", // "creativeStatusId" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "creativeStatusId": { @@ -8197,7 +8478,13 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.C // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -8208,12 +8495,12 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.C // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.creatives.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the filteredBids.creatives.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/creatives", + // "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives", // "response": { // "$ref": "ListCreativeStatusBreakdownByCreativeResponse" // }, @@ -8227,7 +8514,7 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.C // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByCreativeResponse) error) error { +func (c *BiddersAccountsFilterSetsFilteredBidsCreativesListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByCreativeResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -8245,12 +8532,11 @@ func (c *AccountsFilterSetsFilteredBidsCreativesListCall) Pages(ctx context.Cont } } -// method id "adexchangebuyer2.accounts.filterSets.filteredBids.details.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list": -type AccountsFilterSetsFilteredBidsDetailsListCall struct { +type BiddersAccountsFilterSetsFilteredBidsDetailsListCall struct { s *Service - accountId int64 - filterSetId int64 + filterSetName string creativeStatusId int64 urlParams_ gensupport.URLParams ifNoneMatch_ string @@ -8261,18 +8547,31 @@ type AccountsFilterSetsFilteredBidsDetailsListCall struct { // List: List all details associated with a specific reason for which // bids were // filtered, with the number of bids filtered for each detail. -func (r *AccountsFilterSetsFilteredBidsDetailsService) List(accountId int64, filterSetId int64, creativeStatusId int64) *AccountsFilterSetsFilteredBidsDetailsListCall { - c := &AccountsFilterSetsFilteredBidsDetailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsFilteredBidsDetailsService) List(filterSetName string, creativeStatusId int64) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { + c := &BiddersAccountsFilterSetsFilteredBidsDetailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName c.creativeStatusId = creativeStatusId return c } +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) PageSize(pageSize int64) *AccountsFilterSetsFilteredBidsDetailsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -8282,11 +8581,10 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) PageSize(pageSize int64) // Typically, this is the value // of // ListCreativeStatusBreakdownByDetailResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.filteredBids.details.list +// returned from the previous call to the +// filteredBids.details.list // method. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) PageToken(pageToken string) *AccountsFilterSetsFilteredBidsDetailsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -8294,7 +8592,7 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) PageToken(pageToken stri // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsFilteredBidsDetailsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8304,7 +8602,7 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Fields(s ...googleapi.Fi // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsFilteredBidsDetailsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { c.ifNoneMatch_ = entityTag return c } @@ -8312,21 +8610,21 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) IfNoneMatch(entityTag st // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Context(ctx context.Context) *AccountsFilterSetsFilteredBidsDetailsListCall { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsFilteredBidsDetailsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -8337,19 +8635,18 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) doRequest(alt string) (* } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/details") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, "creativeStatusId": strconv.FormatInt(c.creativeStatusId, 10), }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.filteredBids.details.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list" call. // Exactly one of *ListCreativeStatusBreakdownByDetailResponse or error // will be non-nil. Any non-2xx status code is an error. Response // headers are in either @@ -8358,7 +8655,7 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) doRequest(alt string) (* // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was // returned. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByDetailResponse, error) { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByDetailResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8390,20 +8687,18 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.Cal return ret, nil // { // "description": "List all details associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each detail.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/details", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/details", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.filteredBids.details.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.filteredBids.details.list", // "parameterOrder": [ - // "accountId", - // "filterSetId", + // "filterSetName", // "creativeStatusId" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "creativeStatusId": { @@ -8416,7 +8711,13 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.Cal // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -8427,12 +8728,12 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.Cal // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.filteredBids.details.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the filteredBids.details.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/filteredBids/{creativeStatusId}/details", + // "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details", // "response": { // "$ref": "ListCreativeStatusBreakdownByDetailResponse" // }, @@ -8446,7 +8747,7 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.Cal // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByDetailResponse) error) error { +func (c *BiddersAccountsFilterSetsFilteredBidsDetailsListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByDetailResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -8464,31 +8765,43 @@ func (c *AccountsFilterSetsFilteredBidsDetailsListCall) Pages(ctx context.Contex } } -// method id "adexchangebuyer2.accounts.filterSets.impressionMetrics.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list": -type AccountsFilterSetsImpressionMetricsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsImpressionMetricsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: Lists all metrics that are measured in terms of number of // impressions. -func (r *AccountsFilterSetsImpressionMetricsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsImpressionMetricsListCall { - c := &AccountsFilterSetsImpressionMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsImpressionMetricsService) List(filterSetName string) *BiddersAccountsFilterSetsImpressionMetricsListCall { + c := &BiddersAccountsFilterSetsImpressionMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsImpressionMetricsListCall) PageSize(pageSize int64) *AccountsFilterSetsImpressionMetricsListCall { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsImpressionMetricsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -8498,11 +8811,9 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) PageSize(pageSize int64) * // Typically, this is the value // of // ListImpressionMetricsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.impressionMetrics.list +// returned from the previous call to the impressionMetrics.list // method. -func (c *AccountsFilterSetsImpressionMetricsListCall) PageToken(pageToken string) *AccountsFilterSetsImpressionMetricsListCall { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsImpressionMetricsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -8510,7 +8821,7 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) PageToken(pageToken string // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsImpressionMetricsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsImpressionMetricsListCall { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsImpressionMetricsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8520,7 +8831,7 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) Fields(s ...googleapi.Fiel // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsImpressionMetricsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsImpressionMetricsListCall { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsImpressionMetricsListCall { c.ifNoneMatch_ = entityTag return c } @@ -8528,21 +8839,21 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) IfNoneMatch(entityTag stri // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsImpressionMetricsListCall) Context(ctx context.Context) *AccountsFilterSetsImpressionMetricsListCall { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsImpressionMetricsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsImpressionMetricsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsImpressionMetricsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -8553,25 +8864,24 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) doRequest(alt string) (*ht } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/impressionMetrics") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/impressionMetrics") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.impressionMetrics.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list" call. // Exactly one of *ListImpressionMetricsResponse or error will be // non-nil. Any non-2xx status code is an error. Response headers are in // either *ListImpressionMetricsResponse.ServerResponse.Header or (if a // response was returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallOption) (*ListImpressionMetricsResponse, error) { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallOption) (*ListImpressionMetricsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8603,25 +8913,29 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallO return ret, nil // { // "description": "Lists all metrics that are measured in terms of number of impressions.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/impressionMetrics", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/impressionMetrics", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.impressionMetrics.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.impressionMetrics.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -8632,12 +8946,12 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallO // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.impressionMetrics.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the impressionMetrics.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/impressionMetrics", + // "path": "v2beta1/{+filterSetName}/impressionMetrics", // "response": { // "$ref": "ListImpressionMetricsResponse" // }, @@ -8651,7 +8965,7 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallO // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsImpressionMetricsListCall) Pages(ctx context.Context, f func(*ListImpressionMetricsResponse) error) error { +func (c *BiddersAccountsFilterSetsImpressionMetricsListCall) Pages(ctx context.Context, f func(*ListImpressionMetricsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -8669,32 +8983,44 @@ func (c *AccountsFilterSetsImpressionMetricsListCall) Pages(ctx context.Context, } } -// method id "adexchangebuyer2.accounts.filterSets.losingBids.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.losingBids.list": -type AccountsFilterSetsLosingBidsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsLosingBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all reasons for which bids lost in the auction, with the // number of // bids that lost for each reason. -func (r *AccountsFilterSetsLosingBidsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsLosingBidsListCall { - c := &AccountsFilterSetsLosingBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsLosingBidsService) List(filterSetName string) *BiddersAccountsFilterSetsLosingBidsListCall { + c := &BiddersAccountsFilterSetsLosingBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsLosingBidsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsLosingBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsLosingBidsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsLosingBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsLosingBidsListCall) PageSize(pageSize int64) *AccountsFilterSetsLosingBidsListCall { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsLosingBidsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -8704,11 +9030,9 @@ func (c *AccountsFilterSetsLosingBidsListCall) PageSize(pageSize int64) *Account // Typically, this is the value // of // ListLosingBidsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.losingBids.list +// returned from the previous call to the losingBids.list // method. -func (c *AccountsFilterSetsLosingBidsListCall) PageToken(pageToken string) *AccountsFilterSetsLosingBidsListCall { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsLosingBidsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -8716,7 +9040,7 @@ func (c *AccountsFilterSetsLosingBidsListCall) PageToken(pageToken string) *Acco // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsLosingBidsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsLosingBidsListCall { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsLosingBidsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8726,7 +9050,7 @@ func (c *AccountsFilterSetsLosingBidsListCall) Fields(s ...googleapi.Field) *Acc // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsLosingBidsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsLosingBidsListCall { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsLosingBidsListCall { c.ifNoneMatch_ = entityTag return c } @@ -8734,21 +9058,21 @@ func (c *AccountsFilterSetsLosingBidsListCall) IfNoneMatch(entityTag string) *Ac // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsLosingBidsListCall) Context(ctx context.Context) *AccountsFilterSetsLosingBidsListCall { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsLosingBidsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsLosingBidsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsLosingBidsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -8759,25 +9083,24 @@ func (c *AccountsFilterSetsLosingBidsListCall) doRequest(alt string) (*http.Resp } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/losingBids") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/losingBids") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.losingBids.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.losingBids.list" call. // Exactly one of *ListLosingBidsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListLosingBidsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *AccountsFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) (*ListLosingBidsResponse, error) { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) (*ListLosingBidsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8809,25 +9132,29 @@ func (c *AccountsFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) return ret, nil // { // "description": "List all reasons for which bids lost in the auction, with the number of\nbids that lost for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/losingBids", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/losingBids", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.losingBids.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.losingBids.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -8838,12 +9165,12 @@ func (c *AccountsFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.losingBids.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the losingBids.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/losingBids", + // "path": "v2beta1/{+filterSetName}/losingBids", // "response": { // "$ref": "ListLosingBidsResponse" // }, @@ -8857,7 +9184,7 @@ func (c *AccountsFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsLosingBidsListCall) Pages(ctx context.Context, f func(*ListLosingBidsResponse) error) error { +func (c *BiddersAccountsFilterSetsLosingBidsListCall) Pages(ctx context.Context, f func(*ListLosingBidsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { @@ -8875,32 +9202,44 @@ func (c *AccountsFilterSetsLosingBidsListCall) Pages(ctx context.Context, f func } } -// method id "adexchangebuyer2.accounts.filterSets.nonBillableWinningBids.list": +// method id "adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list": -type AccountsFilterSetsNonBillableWinningBidsListCall struct { - s *Service - accountId int64 - filterSetId int64 - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type BiddersAccountsFilterSetsNonBillableWinningBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } // List: List all reasons for which winning bids were not billable, with // the number // of bids not billed for each reason. -func (r *AccountsFilterSetsNonBillableWinningBidsService) List(accountId int64, filterSetId int64) *AccountsFilterSetsNonBillableWinningBidsListCall { - c := &AccountsFilterSetsNonBillableWinningBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.accountId = accountId - c.filterSetId = filterSetId +func (r *BiddersAccountsFilterSetsNonBillableWinningBidsService) List(filterSetName string) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { + c := &BiddersAccountsFilterSetsNonBillableWinningBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) AccountId(accountId int64) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) FilterSetId(filterSetId int64) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The server may return fewer results than requested. // If unspecified, the server will pick an appropriate default. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) PageSize(pageSize int64) *AccountsFilterSetsNonBillableWinningBidsListCall { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) PageSize(pageSize int64) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } @@ -8910,11 +9249,10 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) PageSize(pageSize int // Typically, this is the value // of // ListNonBillableWinningBidsResponse.nextPageToken -// returned from the previous call to -// the -// accounts.filterSets.nonBillableWinningBids.list +// returned from the previous call to the +// nonBillableWinningBids.list // method. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) PageToken(pageToken string) *AccountsFilterSetsNonBillableWinningBidsListCall { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) PageToken(pageToken string) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -8922,7 +9260,7 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) PageToken(pageToken s // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Fields(s ...googleapi.Field) *AccountsFilterSetsNonBillableWinningBidsListCall { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) Fields(s ...googleapi.Field) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8932,7 +9270,7 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Fields(s ...googleapi // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) IfNoneMatch(entityTag string) *AccountsFilterSetsNonBillableWinningBidsListCall { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) IfNoneMatch(entityTag string) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { c.ifNoneMatch_ = entityTag return c } @@ -8940,21 +9278,21 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) IfNoneMatch(entityTag // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Context(ctx context.Context) *AccountsFilterSetsNonBillableWinningBidsListCall { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) Context(ctx context.Context) *BiddersAccountsFilterSetsNonBillableWinningBidsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Header() http.Header { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) doRequest(alt string) (*http.Response, error) { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v @@ -8965,18 +9303,17 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) doRequest(alt string) } var body io.Reader = nil c.urlParams_.Set("alt", alt) - urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/nonBillableWinningBids") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/nonBillableWinningBids") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "accountId": strconv.FormatInt(c.accountId, 10), - "filterSetId": strconv.FormatInt(c.filterSetId, 10), + "filterSetName": c.filterSetName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "adexchangebuyer2.accounts.filterSets.nonBillableWinningBids.list" call. +// Do executes the "adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list" call. // Exactly one of *ListNonBillableWinningBidsResponse or error will be // non-nil. Any non-2xx status code is an error. Response headers are in // either *ListNonBillableWinningBidsResponse.ServerResponse.Header or @@ -8984,7 +9321,7 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) doRequest(alt string) // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was // returned. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi.CallOption) (*ListNonBillableWinningBidsResponse, error) { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi.CallOption) (*ListNonBillableWinningBidsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9016,25 +9353,29 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi. return ret, nil // { // "description": "List all reasons for which winning bids were not billable, with the number\nof bids not billed for each reason.", - // "flatPath": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/nonBillableWinningBids", + // "flatPath": "v2beta1/bidders/{biddersId}/accounts/{accountsId}/filterSets/{filterSetsId}/nonBillableWinningBids", // "httpMethod": "GET", - // "id": "adexchangebuyer2.accounts.filterSets.nonBillableWinningBids.list", + // "id": "adexchangebuyer2.bidders.accounts.filterSets.nonBillableWinningBids.list", // "parameterOrder": [ - // "accountId", - // "filterSetId" + // "filterSetName" // ], // "parameters": { // "accountId": { // "description": "Account ID of the buyer.", // "format": "int64", - // "location": "path", - // "required": true, + // "location": "query", // "type": "string" // }, // "filterSetId": { // "description": "The ID of the filter set to apply.", // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", // "location": "path", + // "pattern": "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$", // "required": true, // "type": "string" // }, @@ -9045,12 +9386,12 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi. // "type": "integer" // }, // "pageToken": { - // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.nonBillableWinningBids.list\nmethod.", + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the nonBillableWinningBids.list\nmethod.", // "location": "query", // "type": "string" // } // }, - // "path": "v2beta1/accounts/{accountId}/filterSets/{filterSetId}/nonBillableWinningBids", + // "path": "v2beta1/{+filterSetName}/nonBillableWinningBids", // "response": { // "$ref": "ListNonBillableWinningBidsResponse" // }, @@ -9064,7 +9405,3259 @@ func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi. // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *AccountsFilterSetsNonBillableWinningBidsListCall) Pages(ctx context.Context, f func(*ListNonBillableWinningBidsResponse) error) error { +func (c *BiddersAccountsFilterSetsNonBillableWinningBidsListCall) Pages(ctx context.Context, f func(*ListNonBillableWinningBidsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.create": + +type BiddersFilterSetsCreateCall struct { + s *Service + ownerName string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates the specified filter set for the account with the +// given account ID. +func (r *BiddersFilterSetsService) Create(ownerName string) *BiddersFilterSetsCreateCall { + c := &BiddersFilterSetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.ownerName = ownerName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsCreateCall) AccountId(accountId int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetAbsoluteDateRangeEndDateDay sets the optional parameter +// "filterSet.absoluteDateRange.endDate.day": Day of month. Must be from +// 1 to 31 and valid for the year and month, or 0 +// if specifying a year/month where the day is not significant. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeEndDateDay(filterSetAbsoluteDateRangeEndDateDay int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.endDate.day", fmt.Sprint(filterSetAbsoluteDateRangeEndDateDay)) + return c +} + +// FilterSetAbsoluteDateRangeEndDateMonth sets the optional parameter +// "filterSet.absoluteDateRange.endDate.month": Month of year. Must be +// from 1 to 12. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeEndDateMonth(filterSetAbsoluteDateRangeEndDateMonth int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.endDate.month", fmt.Sprint(filterSetAbsoluteDateRangeEndDateMonth)) + return c +} + +// FilterSetAbsoluteDateRangeEndDateYear sets the optional parameter +// "filterSet.absoluteDateRange.endDate.year": Year of date. Must be +// from 1 to 9999, or 0 if specifying a date without +// a year. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeEndDateYear(filterSetAbsoluteDateRangeEndDateYear int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.endDate.year", fmt.Sprint(filterSetAbsoluteDateRangeEndDateYear)) + return c +} + +// FilterSetAbsoluteDateRangeStartDateDay sets the optional parameter +// "filterSet.absoluteDateRange.startDate.day": Day of month. Must be +// from 1 to 31 and valid for the year and month, or 0 +// if specifying a year/month where the day is not significant. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeStartDateDay(filterSetAbsoluteDateRangeStartDateDay int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.startDate.day", fmt.Sprint(filterSetAbsoluteDateRangeStartDateDay)) + return c +} + +// FilterSetAbsoluteDateRangeStartDateMonth sets the optional parameter +// "filterSet.absoluteDateRange.startDate.month": Month of year. Must be +// from 1 to 12. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeStartDateMonth(filterSetAbsoluteDateRangeStartDateMonth int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.startDate.month", fmt.Sprint(filterSetAbsoluteDateRangeStartDateMonth)) + return c +} + +// FilterSetAbsoluteDateRangeStartDateYear sets the optional parameter +// "filterSet.absoluteDateRange.startDate.year": Year of date. Must be +// from 1 to 9999, or 0 if specifying a date without +// a year. +func (c *BiddersFilterSetsCreateCall) FilterSetAbsoluteDateRangeStartDateYear(filterSetAbsoluteDateRangeStartDateYear int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.absoluteDateRange.startDate.year", fmt.Sprint(filterSetAbsoluteDateRangeStartDateYear)) + return c +} + +// FilterSetBuyerAccountId sets the optional parameter +// "filterSet.buyerAccountId": The ID of the buyer account on which to +// filter; optional. +func (c *BiddersFilterSetsCreateCall) FilterSetBuyerAccountId(filterSetBuyerAccountId int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.buyerAccountId", fmt.Sprint(filterSetBuyerAccountId)) + return c +} + +// FilterSetCreativeId sets the optional parameter +// "filterSet.creativeId": The ID of the creative on which to filter; +// optional. +func (c *BiddersFilterSetsCreateCall) FilterSetCreativeId(filterSetCreativeId string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.creativeId", filterSetCreativeId) + return c +} + +// FilterSetDealId sets the optional parameter "filterSet.dealId": The +// ID of the deal on which to filter; optional. +func (c *BiddersFilterSetsCreateCall) FilterSetDealId(filterSetDealId int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.dealId", fmt.Sprint(filterSetDealId)) + return c +} + +// FilterSetEnvironment sets the optional parameter +// "filterSet.environment": The environment on which to filter; +// optional. +// +// Possible values: +// "ENVIRONMENT_UNSPECIFIED" +// "WEB" +// "APP" +func (c *BiddersFilterSetsCreateCall) FilterSetEnvironment(filterSetEnvironment string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.environment", filterSetEnvironment) + return c +} + +// FilterSetFilterSetId sets the optional parameter +// "filterSet.filterSetId": The ID of the filter set; unique within the +// account of the filter set +// owner. +// The value of this field is ignored in create operations. +func (c *BiddersFilterSetsCreateCall) FilterSetFilterSetId(filterSetFilterSetId int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.filterSetId", fmt.Sprint(filterSetFilterSetId)) + return c +} + +// FilterSetFormat sets the optional parameter "filterSet.format": The +// format on which to filter; optional. +// +// Possible values: +// "FORMAT_UNSPECIFIED" +// "DISPLAY" +// "VIDEO" +func (c *BiddersFilterSetsCreateCall) FilterSetFormat(filterSetFormat string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.format", filterSetFormat) + return c +} + +// FilterSetName sets the optional parameter "filterSet.name": A +// user-defined name of the filter set. Filter set names must be +// unique +// globally and match one of the patterns: +// +// - `bidders/*/filterSets/*` (for accessing bidder-level +// troubleshooting +// data) +// - `bidders/*/accounts/*/filterSets/*` (for accessing +// buyer-level +// troubleshooting data) +func (c *BiddersFilterSetsCreateCall) FilterSetName(filterSetName string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.name", filterSetName) + return c +} + +// FilterSetOwnerAccountId sets the optional parameter +// "filterSet.ownerAccountId": The account ID of the buyer who owns this +// filter set. +// The value of this field is ignored in create operations. +func (c *BiddersFilterSetsCreateCall) FilterSetOwnerAccountId(filterSetOwnerAccountId int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.ownerAccountId", fmt.Sprint(filterSetOwnerAccountId)) + return c +} + +// FilterSetPlatforms sets the optional parameter "filterSet.platforms": +// 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). +// +// Possible values: +// "PLATFORM_UNSPECIFIED" +// "DESKTOP" +// "TABLET" +// "MOBILE" +func (c *BiddersFilterSetsCreateCall) FilterSetPlatforms(filterSetPlatforms ...string) *BiddersFilterSetsCreateCall { + c.urlParams_.SetMulti("filterSet.platforms", append([]string{}, filterSetPlatforms...)) + return c +} + +// FilterSetRealtimeTimeRangeStartTimestamp sets the optional parameter +// "filterSet.realtimeTimeRange.startTimestamp": The start timestamp of +// the real-time RTB metrics aggregation. +func (c *BiddersFilterSetsCreateCall) FilterSetRealtimeTimeRangeStartTimestamp(filterSetRealtimeTimeRangeStartTimestamp string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.realtimeTimeRange.startTimestamp", filterSetRealtimeTimeRangeStartTimestamp) + return c +} + +// FilterSetRelativeDateRangeDurationDays sets the optional parameter +// "filterSet.relativeDateRange.durationDays": 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. +func (c *BiddersFilterSetsCreateCall) FilterSetRelativeDateRangeDurationDays(filterSetRelativeDateRangeDurationDays int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.relativeDateRange.durationDays", fmt.Sprint(filterSetRelativeDateRangeDurationDays)) + return c +} + +// FilterSetRelativeDateRangeOffsetDays sets the optional parameter +// "filterSet.relativeDateRange.offsetDays": 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. +func (c *BiddersFilterSetsCreateCall) FilterSetRelativeDateRangeOffsetDays(filterSetRelativeDateRangeOffsetDays int64) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.relativeDateRange.offsetDays", fmt.Sprint(filterSetRelativeDateRangeOffsetDays)) + return c +} + +// FilterSetSellerNetworkIds sets the optional parameter +// "filterSet.sellerNetworkIds": 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/ad-exchange/rtb/dow +// nloads/seller-network-ids) +// file for the set of existing seller network IDs. +func (c *BiddersFilterSetsCreateCall) FilterSetSellerNetworkIds(filterSetSellerNetworkIds ...int64) *BiddersFilterSetsCreateCall { + var filterSetSellerNetworkIds_ []string + for _, v := range filterSetSellerNetworkIds { + filterSetSellerNetworkIds_ = append(filterSetSellerNetworkIds_, fmt.Sprint(v)) + } + c.urlParams_.SetMulti("filterSet.sellerNetworkIds", filterSetSellerNetworkIds_) + return c +} + +// FilterSetTimeSeriesGranularity sets the optional parameter +// "filterSet.timeSeriesGranularity": The granularity of time intervals +// if a time series breakdown is desired; +// optional. +// +// Possible values: +// "TIME_SERIES_GRANULARITY_UNSPECIFIED" +// "HOURLY" +// "DAILY" +func (c *BiddersFilterSetsCreateCall) FilterSetTimeSeriesGranularity(filterSetTimeSeriesGranularity string) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("filterSet.timeSeriesGranularity", filterSetTimeSeriesGranularity) + return c +} + +// IsTransient sets the optional parameter "isTransient": Whether the +// filter set is transient, or should be persisted indefinitely. +// By default, filter sets are not transient. +// If transient, it will be available for at least 1 hour after +// creation. +func (c *BiddersFilterSetsCreateCall) IsTransient(isTransient bool) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("isTransient", fmt.Sprint(isTransient)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsCreateCall) Fields(s ...googleapi.Field) *BiddersFilterSetsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsCreateCall) Context(ctx context.Context) *BiddersFilterSetsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+ownerName}/filterSets") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "ownerName": c.ownerName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.create" call. +// Exactly one of *FilterSet or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *FilterSet.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *BiddersFilterSetsCreateCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &FilterSet{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates the specified filter set for the account with the given account ID.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets", + // "httpMethod": "POST", + // "id": "adexchangebuyer2.bidders.filterSets.create", + // "parameterOrder": [ + // "ownerName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSet.absoluteDateRange.endDate.day": { + // "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.absoluteDateRange.endDate.month": { + // "description": "Month of year. Must be from 1 to 12.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.absoluteDateRange.endDate.year": { + // "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.absoluteDateRange.startDate.day": { + // "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.absoluteDateRange.startDate.month": { + // "description": "Month of year. Must be from 1 to 12.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.absoluteDateRange.startDate.year": { + // "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.buyerAccountId": { + // "description": "The ID of the buyer account on which to filter; optional.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSet.creativeId": { + // "description": "The ID of the creative on which to filter; optional.", + // "location": "query", + // "type": "string" + // }, + // "filterSet.dealId": { + // "description": "The ID of the deal on which to filter; optional.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSet.environment": { + // "description": "The environment on which to filter; optional.", + // "enum": [ + // "ENVIRONMENT_UNSPECIFIED", + // "WEB", + // "APP" + // ], + // "location": "query", + // "type": "string" + // }, + // "filterSet.filterSetId": { + // "description": "The ID of the filter set; unique within the account of the filter set\nowner.\nThe value of this field is ignored in create operations.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSet.format": { + // "description": "The format on which to filter; optional.", + // "enum": [ + // "FORMAT_UNSPECIFIED", + // "DISPLAY", + // "VIDEO" + // ], + // "location": "query", + // "type": "string" + // }, + // "filterSet.name": { + // "description": "A user-defined name of the filter set. Filter set names must be unique\nglobally and match one of the patterns:\n\n- `bidders/*/filterSets/*` (for accessing bidder-level troubleshooting\ndata)\n- `bidders/*/accounts/*/filterSets/*` (for accessing buyer-level\ntroubleshooting data)", + // "location": "query", + // "type": "string" + // }, + // "filterSet.ownerAccountId": { + // "description": "The account ID of the buyer who owns this filter set.\nThe value of this field is ignored in create operations.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSet.platforms": { + // "description": "The list of platforms on which to filter; may be empty. The filters\nrepresented by multiple platforms are ORed together (i.e. if non-empty,\nresults must match any one of the platforms).", + // "enum": [ + // "PLATFORM_UNSPECIFIED", + // "DESKTOP", + // "TABLET", + // "MOBILE" + // ], + // "location": "query", + // "repeated": true, + // "type": "string" + // }, + // "filterSet.realtimeTimeRange.startTimestamp": { + // "description": "The start timestamp of the real-time RTB metrics aggregation.", + // "format": "google-datetime", + // "location": "query", + // "type": "string" + // }, + // "filterSet.relativeDateRange.durationDays": { + // "description": "The number of days in the requested date range. E.g. for a range spanning\ntoday, 1. For a range spanning the last 7 days, 7.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.relativeDateRange.offsetDays": { + // "description": "The end date of the filter set, specified as the number of days before\ntoday. E.g. for a range where the last date is today, 0.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "filterSet.sellerNetworkIds": { + // "description": "The list of IDs of the seller (publisher) networks on which to filter;\nmay be empty. The filters represented by multiple seller network IDs are\nORed together (i.e. if non-empty, results must match any one of the\npublisher networks).\nSee [seller-network-ids](https://developers.google.com/ad-exchange/rtb/downloads/seller-network-ids)\nfile for the set of existing seller network IDs.", + // "format": "int32", + // "location": "query", + // "repeated": true, + // "type": "integer" + // }, + // "filterSet.timeSeriesGranularity": { + // "description": "The granularity of time intervals if a time series breakdown is desired;\noptional.", + // "enum": [ + // "TIME_SERIES_GRANULARITY_UNSPECIFIED", + // "HOURLY", + // "DAILY" + // ], + // "location": "query", + // "type": "string" + // }, + // "isTransient": { + // "description": "Whether the filter set is transient, or should be persisted indefinitely.\nBy default, filter sets are not transient.\nIf transient, it will be available for at least 1 hour after creation.", + // "location": "query", + // "type": "boolean" + // }, + // "ownerName": { + // "description": "Name of the owner (bidder or account) of the filter set to be created.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + // "location": "path", + // "pattern": "^bidders/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v2beta1/{+ownerName}/filterSets", + // "response": { + // "$ref": "FilterSet" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// method id "adexchangebuyer2.bidders.filterSets.delete": + +type BiddersFilterSetsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the requested filter set from the account with the +// given account +// ID. +func (r *BiddersFilterSetsService) Delete(name string) *BiddersFilterSetsDeleteCall { + c := &BiddersFilterSetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsDeleteCall) AccountId(accountId int64) *BiddersFilterSetsDeleteCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to delete. +func (c *BiddersFilterSetsDeleteCall) FilterSetId(filterSetId int64) *BiddersFilterSetsDeleteCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsDeleteCall) Fields(s ...googleapi.Field) *BiddersFilterSetsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsDeleteCall) Context(ctx context.Context) *BiddersFilterSetsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.delete" call. +// Exactly one of *Empty or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Empty.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *BiddersFilterSetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Empty{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes the requested filter set from the account with the given account\nID.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}", + // "httpMethod": "DELETE", + // "id": "adexchangebuyer2.bidders.filterSets.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to delete.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Full name of the resource to delete.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v2beta1/{+name}", + // "response": { + // "$ref": "Empty" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// method id "adexchangebuyer2.bidders.filterSets.get": + +type BiddersFilterSetsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves the requested filter set for the account with the +// given account +// ID. +func (r *BiddersFilterSetsService) Get(name string) *BiddersFilterSetsGetCall { + c := &BiddersFilterSetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsGetCall) AccountId(accountId int64) *BiddersFilterSetsGetCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to get. +func (c *BiddersFilterSetsGetCall) FilterSetId(filterSetId int64) *BiddersFilterSetsGetCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsGetCall) Fields(s ...googleapi.Field) *BiddersFilterSetsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsGetCall) IfNoneMatch(entityTag string) *BiddersFilterSetsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsGetCall) Context(ctx context.Context) *BiddersFilterSetsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.get" call. +// Exactly one of *FilterSet or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *FilterSet.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *BiddersFilterSetsGetCall) Do(opts ...googleapi.CallOption) (*FilterSet, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &FilterSet{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves the requested filter set for the account with the given account\nID.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to get.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Full name of the resource being requested.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v2beta1/{+name}", + // "response": { + // "$ref": "FilterSet" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// method id "adexchangebuyer2.bidders.filterSets.list": + +type BiddersFilterSetsListCall struct { + s *Service + ownerName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists all filter sets for the account with the given account +// ID. +func (r *BiddersFilterSetsService) List(ownerName string) *BiddersFilterSetsListCall { + c := &BiddersFilterSetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.ownerName = ownerName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsListCall) AccountId(accountId int64) *BiddersFilterSetsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsListCall) PageSize(pageSize int64) *BiddersFilterSetsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListFilterSetsResponse.nextPageToken +// returned from the previous call to +// the +// accounts.filterSets.list +// method. +func (c *BiddersFilterSetsListCall) PageToken(pageToken string) *BiddersFilterSetsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsListCall) Context(ctx context.Context) *BiddersFilterSetsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+ownerName}/filterSets") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "ownerName": c.ownerName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.list" call. +// Exactly one of *ListFilterSetsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListFilterSetsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsListCall) Do(opts ...googleapi.CallOption) (*ListFilterSetsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListFilterSetsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all filter sets for the account with the given account ID.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.list", + // "parameterOrder": [ + // "ownerName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "ownerName": { + // "description": "Name of the owner (bidder or account) of the filter sets to be listed.\nFor example:\n- For a bidder-level filter set for bidder 123: \"bidders/123\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456\"", + // "location": "path", + // "pattern": "^bidders/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilterSetsResponse.nextPageToken\nreturned from the previous call to the\naccounts.filterSets.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+ownerName}/filterSets", + // "response": { + // "$ref": "ListFilterSetsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsListCall) Pages(ctx context.Context, f func(*ListFilterSetsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.bidMetrics.list": + +type BiddersFilterSetsBidMetricsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists all metrics that are measured in terms of number of bids. +func (r *BiddersFilterSetsBidMetricsService) List(filterSetName string) *BiddersFilterSetsBidMetricsListCall { + c := &BiddersFilterSetsBidMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsBidMetricsListCall) AccountId(accountId int64) *BiddersFilterSetsBidMetricsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsBidMetricsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsBidMetricsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsBidMetricsListCall) PageSize(pageSize int64) *BiddersFilterSetsBidMetricsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListBidMetricsResponse.nextPageToken +// returned from the previous call to the bidMetrics.list +// method. +func (c *BiddersFilterSetsBidMetricsListCall) PageToken(pageToken string) *BiddersFilterSetsBidMetricsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsBidMetricsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsBidMetricsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsBidMetricsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsBidMetricsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsBidMetricsListCall) Context(ctx context.Context) *BiddersFilterSetsBidMetricsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsBidMetricsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsBidMetricsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidMetrics") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.bidMetrics.list" call. +// Exactly one of *ListBidMetricsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListBidMetricsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsBidMetricsListCall) Do(opts ...googleapi.CallOption) (*ListBidMetricsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListBidMetricsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all metrics that are measured in terms of number of bids.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidMetrics", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.bidMetrics.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidMetricsResponse.nextPageToken\nreturned from the previous call to the bidMetrics.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/bidMetrics", + // "response": { + // "$ref": "ListBidMetricsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsBidMetricsListCall) Pages(ctx context.Context, f func(*ListBidMetricsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.bidResponseErrors.list": + +type BiddersFilterSetsBidResponseErrorsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all errors that occurred in bid responses, with the number +// of bid +// responses affected for each reason. +func (r *BiddersFilterSetsBidResponseErrorsService) List(filterSetName string) *BiddersFilterSetsBidResponseErrorsListCall { + c := &BiddersFilterSetsBidResponseErrorsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsBidResponseErrorsListCall) AccountId(accountId int64) *BiddersFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsBidResponseErrorsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsBidResponseErrorsListCall) PageSize(pageSize int64) *BiddersFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListBidResponseErrorsResponse.nextPageToken +// returned from the previous call to the bidResponseErrors.list +// method. +func (c *BiddersFilterSetsBidResponseErrorsListCall) PageToken(pageToken string) *BiddersFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsBidResponseErrorsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsBidResponseErrorsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsBidResponseErrorsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsBidResponseErrorsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsBidResponseErrorsListCall) Context(ctx context.Context) *BiddersFilterSetsBidResponseErrorsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsBidResponseErrorsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsBidResponseErrorsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidResponseErrors") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.bidResponseErrors.list" call. +// Exactly one of *ListBidResponseErrorsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListBidResponseErrorsResponse.ServerResponse.Header or (if a +// response was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsBidResponseErrorsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponseErrorsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListBidResponseErrorsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all errors that occurred in bid responses, with the number of bid\nresponses affected for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidResponseErrors", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.bidResponseErrors.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponseErrorsResponse.nextPageToken\nreturned from the previous call to the bidResponseErrors.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/bidResponseErrors", + // "response": { + // "$ref": "ListBidResponseErrorsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsBidResponseErrorsListCall) Pages(ctx context.Context, f func(*ListBidResponseErrorsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list": + +type BiddersFilterSetsBidResponsesWithoutBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all reasons for which bid responses were considered to +// have no +// applicable bids, with the number of bid responses affected for each +// reason. +func (r *BiddersFilterSetsBidResponsesWithoutBidsService) List(filterSetName string) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c := &BiddersFilterSetsBidResponsesWithoutBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) AccountId(accountId int64) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) PageSize(pageSize int64) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListBidResponsesWithoutBidsResponse.nextPageToken +// returned from the previous call to the +// bidResponsesWithoutBids.list +// method. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) PageToken(pageToken string) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) Context(ctx context.Context) *BiddersFilterSetsBidResponsesWithoutBidsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/bidResponsesWithoutBids") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list" call. +// Exactly one of *ListBidResponsesWithoutBidsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListBidResponsesWithoutBidsResponse.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) Do(opts ...googleapi.CallOption) (*ListBidResponsesWithoutBidsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListBidResponsesWithoutBidsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all reasons for which bid responses were considered to have no\napplicable bids, with the number of bid responses affected for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/bidResponsesWithoutBids", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.bidResponsesWithoutBids.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListBidResponsesWithoutBidsResponse.nextPageToken\nreturned from the previous call to the bidResponsesWithoutBids.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/bidResponsesWithoutBids", + // "response": { + // "$ref": "ListBidResponsesWithoutBidsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsBidResponsesWithoutBidsListCall) Pages(ctx context.Context, f func(*ListBidResponsesWithoutBidsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.filteredBidRequests.list": + +type BiddersFilterSetsFilteredBidRequestsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all reasons that caused a bid request not to be sent for +// an +// impression, with the number of bid requests not sent for each reason. +func (r *BiddersFilterSetsFilteredBidRequestsService) List(filterSetName string) *BiddersFilterSetsFilteredBidRequestsListCall { + c := &BiddersFilterSetsFilteredBidRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) AccountId(accountId int64) *BiddersFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) PageSize(pageSize int64) *BiddersFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListFilteredBidRequestsResponse.nextPageToken +// returned from the previous call to the +// filteredBidRequests.list +// method. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) PageToken(pageToken string) *BiddersFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsFilteredBidRequestsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsFilteredBidRequestsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) Context(ctx context.Context) *BiddersFilterSetsFilteredBidRequestsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsFilteredBidRequestsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBidRequests") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.filteredBidRequests.list" call. +// Exactly one of *ListFilteredBidRequestsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListFilteredBidRequestsResponse.ServerResponse.Header or (if +// a response was returned at all) in error.(*googleapi.Error).Header. +// Use googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidRequestsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListFilteredBidRequestsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all reasons that caused a bid request not to be sent for an\nimpression, with the number of bid requests not sent for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBidRequests", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.filteredBidRequests.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidRequestsResponse.nextPageToken\nreturned from the previous call to the filteredBidRequests.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/filteredBidRequests", + // "response": { + // "$ref": "ListFilteredBidRequestsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsFilteredBidRequestsListCall) Pages(ctx context.Context, f func(*ListFilteredBidRequestsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.filteredBids.list": + +type BiddersFilterSetsFilteredBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all reasons for which bids were filtered, with the number +// of bids +// filtered for each reason. +func (r *BiddersFilterSetsFilteredBidsService) List(filterSetName string) *BiddersFilterSetsFilteredBidsListCall { + c := &BiddersFilterSetsFilteredBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsFilteredBidsListCall) AccountId(accountId int64) *BiddersFilterSetsFilteredBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsFilteredBidsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsFilteredBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsFilteredBidsListCall) PageSize(pageSize int64) *BiddersFilterSetsFilteredBidsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListFilteredBidsResponse.nextPageToken +// returned from the previous call to the filteredBids.list +// method. +func (c *BiddersFilterSetsFilteredBidsListCall) PageToken(pageToken string) *BiddersFilterSetsFilteredBidsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsFilteredBidsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsFilteredBidsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsFilteredBidsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsFilteredBidsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsFilteredBidsListCall) Context(ctx context.Context) *BiddersFilterSetsFilteredBidsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsFilteredBidsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsFilteredBidsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.filteredBids.list" call. +// Exactly one of *ListFilteredBidsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *ListFilteredBidsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsFilteredBidsListCall) Do(opts ...googleapi.CallOption) (*ListFilteredBidsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListFilteredBidsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all reasons for which bids were filtered, with the number of bids\nfiltered for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.filteredBids.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListFilteredBidsResponse.nextPageToken\nreturned from the previous call to the filteredBids.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/filteredBids", + // "response": { + // "$ref": "ListFilteredBidsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsFilteredBidsListCall) Pages(ctx context.Context, f func(*ListFilteredBidsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list": + +type BiddersFilterSetsFilteredBidsCreativesListCall struct { + s *Service + filterSetName string + creativeStatusId int64 + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all creatives associated with a specific reason for which +// bids were +// filtered, with the number of bids filtered for each creative. +func (r *BiddersFilterSetsFilteredBidsCreativesService) List(filterSetName string, creativeStatusId int64) *BiddersFilterSetsFilteredBidsCreativesListCall { + c := &BiddersFilterSetsFilteredBidsCreativesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + c.creativeStatusId = creativeStatusId + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) AccountId(accountId int64) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) PageSize(pageSize int64) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListCreativeStatusBreakdownByCreativeResponse.nextPageToken +// returne +// d from the previous call to the filteredBids.creatives.list +// method. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) PageToken(pageToken string) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) Context(ctx context.Context) *BiddersFilterSetsFilteredBidsCreativesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + "creativeStatusId": strconv.FormatInt(c.creativeStatusId, 10), + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list" call. +// Exactly one of *ListCreativeStatusBreakdownByCreativeResponse or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *ListCreativeStatusBreakdownByCreativeResponse.ServerResponse.Header +// or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByCreativeResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListCreativeStatusBreakdownByCreativeResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all creatives associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each creative.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/creatives", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.filteredBids.creatives.list", + // "parameterOrder": [ + // "filterSetName", + // "creativeStatusId" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "creativeStatusId": { + // "description": "The ID of the creative status for which to retrieve a breakdown by\ncreative.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).", + // "format": "int32", + // "location": "path", + // "required": true, + // "type": "integer" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByCreativeResponse.nextPageToken\nreturned from the previous call to the filteredBids.creatives.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives", + // "response": { + // "$ref": "ListCreativeStatusBreakdownByCreativeResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsFilteredBidsCreativesListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByCreativeResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.filteredBids.details.list": + +type BiddersFilterSetsFilteredBidsDetailsListCall struct { + s *Service + filterSetName string + creativeStatusId int64 + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all details associated with a specific reason for which +// bids were +// filtered, with the number of bids filtered for each detail. +func (r *BiddersFilterSetsFilteredBidsDetailsService) List(filterSetName string, creativeStatusId int64) *BiddersFilterSetsFilteredBidsDetailsListCall { + c := &BiddersFilterSetsFilteredBidsDetailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + c.creativeStatusId = creativeStatusId + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) AccountId(accountId int64) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) PageSize(pageSize int64) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListCreativeStatusBreakdownByDetailResponse.nextPageToken +// returned from the previous call to the +// filteredBids.details.list +// method. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) PageToken(pageToken string) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) Context(ctx context.Context) *BiddersFilterSetsFilteredBidsDetailsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + "creativeStatusId": strconv.FormatInt(c.creativeStatusId, 10), + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.filteredBids.details.list" call. +// Exactly one of *ListCreativeStatusBreakdownByDetailResponse or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *ListCreativeStatusBreakdownByDetailResponse.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) Do(opts ...googleapi.CallOption) (*ListCreativeStatusBreakdownByDetailResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListCreativeStatusBreakdownByDetailResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all details associated with a specific reason for which bids were\nfiltered, with the number of bids filtered for each detail.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/details", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.filteredBids.details.list", + // "parameterOrder": [ + // "filterSetName", + // "creativeStatusId" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "creativeStatusId": { + // "description": "The ID of the creative status for which to retrieve a breakdown by detail.\nSee\n[creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).\nDetails are only available for statuses 10, 14, 15, 17, 18, 19, 86, and 87.", + // "format": "int32", + // "location": "path", + // "required": true, + // "type": "integer" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListCreativeStatusBreakdownByDetailResponse.nextPageToken\nreturned from the previous call to the filteredBids.details.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details", + // "response": { + // "$ref": "ListCreativeStatusBreakdownByDetailResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsFilteredBidsDetailsListCall) Pages(ctx context.Context, f func(*ListCreativeStatusBreakdownByDetailResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.impressionMetrics.list": + +type BiddersFilterSetsImpressionMetricsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists all metrics that are measured in terms of number of +// impressions. +func (r *BiddersFilterSetsImpressionMetricsService) List(filterSetName string) *BiddersFilterSetsImpressionMetricsListCall { + c := &BiddersFilterSetsImpressionMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsImpressionMetricsListCall) AccountId(accountId int64) *BiddersFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsImpressionMetricsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsImpressionMetricsListCall) PageSize(pageSize int64) *BiddersFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListImpressionMetricsResponse.nextPageToken +// returned from the previous call to the impressionMetrics.list +// method. +func (c *BiddersFilterSetsImpressionMetricsListCall) PageToken(pageToken string) *BiddersFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsImpressionMetricsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsImpressionMetricsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsImpressionMetricsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsImpressionMetricsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsImpressionMetricsListCall) Context(ctx context.Context) *BiddersFilterSetsImpressionMetricsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsImpressionMetricsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsImpressionMetricsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/impressionMetrics") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.impressionMetrics.list" call. +// Exactly one of *ListImpressionMetricsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListImpressionMetricsResponse.ServerResponse.Header or (if a +// response was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsImpressionMetricsListCall) Do(opts ...googleapi.CallOption) (*ListImpressionMetricsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListImpressionMetricsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all metrics that are measured in terms of number of impressions.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/impressionMetrics", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.impressionMetrics.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListImpressionMetricsResponse.nextPageToken\nreturned from the previous call to the impressionMetrics.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/impressionMetrics", + // "response": { + // "$ref": "ListImpressionMetricsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsImpressionMetricsListCall) Pages(ctx context.Context, f func(*ListImpressionMetricsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.losingBids.list": + +type BiddersFilterSetsLosingBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all reasons for which bids lost in the auction, with the +// number of +// bids that lost for each reason. +func (r *BiddersFilterSetsLosingBidsService) List(filterSetName string) *BiddersFilterSetsLosingBidsListCall { + c := &BiddersFilterSetsLosingBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsLosingBidsListCall) AccountId(accountId int64) *BiddersFilterSetsLosingBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsLosingBidsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsLosingBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsLosingBidsListCall) PageSize(pageSize int64) *BiddersFilterSetsLosingBidsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListLosingBidsResponse.nextPageToken +// returned from the previous call to the losingBids.list +// method. +func (c *BiddersFilterSetsLosingBidsListCall) PageToken(pageToken string) *BiddersFilterSetsLosingBidsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsLosingBidsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsLosingBidsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsLosingBidsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsLosingBidsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsLosingBidsListCall) Context(ctx context.Context) *BiddersFilterSetsLosingBidsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsLosingBidsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsLosingBidsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/losingBids") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.losingBids.list" call. +// Exactly one of *ListLosingBidsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListLosingBidsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BiddersFilterSetsLosingBidsListCall) Do(opts ...googleapi.CallOption) (*ListLosingBidsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListLosingBidsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all reasons for which bids lost in the auction, with the number of\nbids that lost for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/losingBids", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.losingBids.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListLosingBidsResponse.nextPageToken\nreturned from the previous call to the losingBids.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/losingBids", + // "response": { + // "$ref": "ListLosingBidsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsLosingBidsListCall) Pages(ctx context.Context, f func(*ListLosingBidsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list": + +type BiddersFilterSetsNonBillableWinningBidsListCall struct { + s *Service + filterSetName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all reasons for which winning bids were not billable, with +// the number +// of bids not billed for each reason. +func (r *BiddersFilterSetsNonBillableWinningBidsService) List(filterSetName string) *BiddersFilterSetsNonBillableWinningBidsListCall { + c := &BiddersFilterSetsNonBillableWinningBidsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.filterSetName = filterSetName + return c +} + +// AccountId sets the optional parameter "accountId": Account ID of the +// buyer. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) AccountId(accountId int64) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("accountId", fmt.Sprint(accountId)) + return c +} + +// FilterSetId sets the optional parameter "filterSetId": The ID of the +// filter set to apply. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) FilterSetId(filterSetId int64) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("filterSetId", fmt.Sprint(filterSetId)) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. +// The server may return fewer results than requested. +// If unspecified, the server will pick an appropriate default. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) PageSize(pageSize int64) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token +// identifying a page of results the server should return. +// Typically, this is the value +// of +// ListNonBillableWinningBidsResponse.nextPageToken +// returned from the previous call to the +// nonBillableWinningBids.list +// method. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) PageToken(pageToken string) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) Fields(s ...googleapi.Field) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) IfNoneMatch(entityTag string) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) Context(ctx context.Context) *BiddersFilterSetsNonBillableWinningBidsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta1/{+filterSetName}/nonBillableWinningBids") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "filterSetName": c.filterSetName, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list" call. +// Exactly one of *ListNonBillableWinningBidsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListNonBillableWinningBidsResponse.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) Do(opts ...googleapi.CallOption) (*ListNonBillableWinningBidsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListNonBillableWinningBidsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "List all reasons for which winning bids were not billable, with the number\nof bids not billed for each reason.", + // "flatPath": "v2beta1/bidders/{biddersId}/filterSets/{filterSetsId}/nonBillableWinningBids", + // "httpMethod": "GET", + // "id": "adexchangebuyer2.bidders.filterSets.nonBillableWinningBids.list", + // "parameterOrder": [ + // "filterSetName" + // ], + // "parameters": { + // "accountId": { + // "description": "Account ID of the buyer.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetId": { + // "description": "The ID of the filter set to apply.", + // "format": "int64", + // "location": "query", + // "type": "string" + // }, + // "filterSetName": { + // "description": "Name of the filter set that should be applied to the requested metrics.\nFor example:\n- For a bidder-level filter set for bidder 123:\n \"bidders/123/filterSets/abc\"\n- For an account-level filter set for the buyer account representing bidder\n 123: \"bidders/123/accounts/123/filterSets/abc\"\n- For an account-level filter set for the child seat buyer account 456\n whose bidder is 123: \"bidders/123/accounts/456/filterSets/abc\"", + // "location": "path", + // "pattern": "^bidders/[^/]+/filterSets/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Requested page size. The server may return fewer results than requested.\nIf unspecified, the server will pick an appropriate default.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A token identifying a page of results the server should return.\nTypically, this is the value of\nListNonBillableWinningBidsResponse.nextPageToken\nreturned from the previous call to the nonBillableWinningBids.list\nmethod.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v2beta1/{+filterSetName}/nonBillableWinningBids", + // "response": { + // "$ref": "ListNonBillableWinningBidsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/adexchange.buyer" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BiddersFilterSetsNonBillableWinningBidsListCall) Pages(ctx context.Context, f func(*ListNonBillableWinningBidsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { diff --git a/vendor/google.golang.org/api/adexperiencereport/v1/adexperiencereport-api.json b/vendor/google.golang.org/api/adexperiencereport/v1/adexperiencereport-api.json index 4bea68b59..d9521c755 100644 --- a/vendor/google.golang.org/api/adexperiencereport/v1/adexperiencereport-api.json +++ b/vendor/google.golang.org/api/adexperiencereport/v1/adexperiencereport-api.json @@ -1,5 +1,82 @@ { + "version_module": true, "schemas": { + "PlatformSummary": { + "description": "Summary of the ad experience rating of a site for a specific platform.", + "type": "object", + "properties": { + "underReview": { + "description": "Whether the site is currently under review.", + "type": "boolean" + }, + "reportUrl": { + "description": "A link that leads to a full ad experience report.", + "type": "string" + }, + "lastChangeTime": { + "format": "google-datetime", + "description": "The last time that the site changed status.", + "type": "string" + }, + "betterAdsStatus": { + "description": "The status of the site reviewed for the Better Ads Standards.", + "type": "string", + "enumDescriptions": [ + "Not reviewed.", + "Passing.", + "Warning.", + "Failing." + ], + "enum": [ + "UNKNOWN", + "PASSING", + "WARNING", + "FAILING" + ] + }, + "enforcementTime": { + "format": "google-datetime", + "description": "The date on which ad filtering begins.", + "type": "string" + }, + "region": { + "enumDescriptions": [ + "Ad standard not yet defined for your region.", + "Region A.", + "Region B." + ], + "description": "The assigned regions for the site and platform.", + "items": { + "type": "string", + "enum": [ + "REGION_UNKNOWN", + "REGION_A", + "REGION_B" + ] + }, + "type": "array" + }, + "filterStatus": { + "enumDescriptions": [ + "N/A.", + "Ad filtering is on.", + "Ad filtering is off.", + "Ad filtering is paused.", + "Ad filtering is pending." + ], + "enum": [ + "UNKNOWN", + "ON", + "OFF", + "PAUSED", + "PENDING" + ], + "description": "The ad filtering status of the site.", + "type": "string" + } + }, + "id": "PlatformSummary" + }, "ViolatingSitesResponse": { "description": "Response message for ListViolatingSites.", "type": "object", @@ -27,94 +104,18 @@ "type": "string" }, "desktopSummary": { - "description": "Summary for the desktop review of the site.", - "$ref": "PlatformSummary" + "$ref": "PlatformSummary", + "description": "Summary for the desktop review of the site." } }, "id": "SiteSummaryResponse" - }, - "PlatformSummary": { - "properties": { - "lastChangeTime": { - "format": "google-datetime", - "description": "The last time that the site changed status.", - "type": "string" - }, - "betterAdsStatus": { - "enum": [ - "UNKNOWN", - "PASSING", - "WARNING", - "FAILING" - ], - "description": "The status of the site reviewed for the Better Ads Standards.", - "type": "string", - "enumDescriptions": [ - "Not reviewed.", - "Passing.", - "Warning.", - "Failing." - ] - }, - "region": { - "enumDescriptions": [ - "Ad standard not yet defined for your region.", - "Region A.", - "Region B." - ], - "description": "The assigned regions for the site and platform.", - "items": { - "enum": [ - "REGION_UNKNOWN", - "REGION_A", - "REGION_B" - ], - "type": "string" - }, - "type": "array" - }, - "enforcementTime": { - "format": "google-datetime", - "description": "The date on which ad filtering begins.", - "type": "string" - }, - "filterStatus": { - "enumDescriptions": [ - "N/A.", - "Ad filtering is on.", - "Ad filtering is off.", - "Ad filtering is paused.", - "Ad filtering is pending." - ], - "enum": [ - "UNKNOWN", - "ON", - "OFF", - "PAUSED", - "PENDING" - ], - "description": "The ad filtering status of the site.", - "type": "string" - }, - "underReview": { - "description": "Whether the site is currently under review.", - "type": "boolean" - }, - "reportUrl": { - "description": "A link that leads to a full ad experience report.", - "type": "string" - } - }, - "id": "PlatformSummary", - "description": "Summary of the ad experience rating of a site for a specific platform.", - "type": "object" } }, - "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, + "protocol": "rest", "canonicalName": "Ad Experience Report", "auth": { "oauth2": { @@ -132,25 +133,6 @@ "title": "Google Ad Experience Report API", "ownerName": "Google", "resources": { - "violatingSites": { - "methods": { - "list": { - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ViolatingSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/xapi.zoo" - ], - "parameters": {}, - "flatPath": "v1/violatingSites", - "path": "v1/violatingSites", - "id": "adexperiencereport.violatingSites.list", - "description": "Lists sites with Ad Experience Report statuses of \"Failing\" or \"Warning\"." - } - } - }, "sites": { "methods": { "get": { @@ -167,11 +149,11 @@ ], "parameters": { "name": { - "pattern": "^sites/[^/]+$", "location": "path", "description": "The required site name. It should be the site property whose ad experiences\nmay have been reviewed, and it should be URL-encoded. For example,\nsites/https%3A%2F%2Fwww.google.com. The server will return an error of\nBAD_REQUEST if this field is not filled in. Note that if the site property\nis not yet verified in Search Console, the reportUrl field returned by the\nAPI will lead to the verification page, prompting the user to go through\nthat process before they can gain access to the Ad Experience Report.", "type": "string", - "required": true + "required": true, + "pattern": "^sites/[^/]+$" } }, "flatPath": "v1/sites/{sitesId}", @@ -179,29 +161,38 @@ "path": "v1/{+name}" } } + }, + "violatingSites": { + "methods": { + "list": { + "flatPath": "v1/violatingSites", + "id": "adexperiencereport.violatingSites.list", + "path": "v1/violatingSites", + "description": "Lists sites with Ad Experience Report statuses of \"Failing\" or \"Warning\".", + "response": { + "$ref": "ViolatingSitesResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/xapi.zoo" + ], + "parameters": {} + } + } } }, "parameters": { - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", @@ -214,8 +205,6 @@ "type": "string" }, "$.xgafv": { - "description": "V1 error format.", - "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -224,12 +213,14 @@ "enum": [ "1", "2" - ] + ], + "description": "V1 error format.", + "type": "string" }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "alt": { "enum": [ @@ -247,37 +238,46 @@ "description": "Data format for response.", "default": "json" }, + "key": { + "location": "query", + "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.", + "type": "string" + }, "access_token": { "description": "OAuth access token.", "type": "string", "location": "query" }, - "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.", - "type": "string", - "location": "query" - }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" } }, "version": "v1", "baseUrl": "https://adexperiencereport.googleapis.com/", - "kind": "discovery#restDescription", - "description": "View Ad Experience Report data, and get a list of sites that have a significant number of annoying ads.", "servicePath": "", + "description": "View Ad Experience Report data, and get a list of sites that have a significant number of annoying ads.", + "kind": "discovery#restDescription", "basePath": "", "id": "adexperiencereport:v1", + "revision": "20171002", "documentationLink": "https://developers.google.com/ad-experience-report/", - "revision": "20170918", - "discoveryVersion": "v1", - "version_module": true + "discoveryVersion": "v1" } diff --git a/vendor/google.golang.org/api/admin/directory/v1/admin-api.json b/vendor/google.golang.org/api/admin/directory/v1/admin-api.json index 33fcb8713..1748814a3 100644 --- a/vendor/google.golang.org/api/admin/directory/v1/admin-api.json +++ b/vendor/google.golang.org/api/admin/directory/v1/admin-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/JB19efQGH5f-JRT49yZz7BTyNQU\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/QstgUNJM9z5P2QKTjvsIeuLGaOE\"", "discoveryVersion": "v1", "id": "admin:directory_v1", "name": "admin", "canonicalName": "directory", "version": "directory_v1", - "revision": "20170830", + "revision": "20171006", "title": "Admin Directory API", "description": "The Admin SDK Directory API lets you view and manage enterprise resources such as users and groups, administrative notifications, security features, and more.", "ownerDomain": "google.com", @@ -207,6 +207,50 @@ } } }, + "AppAccessCollections": { + "id": "AppAccessCollections", + "type": "object", + "description": "JSON template for App Access Collections Resource object in Directory API.", + "properties": { + "blockedApiAccessBuckets": { + "type": "array", + "description": "List of blocked api access buckets.", + "items": { + "type": "string" + } + }, + "enforceSettingsForAndroidDrive": { + "type": "boolean", + "description": "Boolean to indicate whether to enforce app access settings on Android Drive or not." + }, + "errorMessage": { + "type": "string", + "description": "Error message provided by the Admin that will be shown to the user when an app is blocked." + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as an app access collection. Value: admin#directory#appaccesscollection", + "default": "admin#directory#appaccesscollection" + }, + "resourceId": { + "type": "string", + "description": "Unique ID of app access collection. (Readonly)", + "format": "int64" + }, + "resourceName": { + "type": "string", + "description": "Resource name given by the customer while creating/updating. Should be unique under given customer." + }, + "trustDomainOwnedApps": { + "type": "boolean", + "description": "Boolean that indicates whether to trust domain owned apps." + } + } + }, "Asp": { "id": "Asp", "type": "object", @@ -1778,6 +1822,59 @@ } } }, + "TrustedAppId": { + "id": "TrustedAppId", + "type": "object", + "description": "JSON template for Trusted App Ids Resource object in Directory API.", + "properties": { + "androidPackageName": { + "type": "string", + "description": "Android package name." + }, + "certificateHashSHA1": { + "type": "string", + "description": "SHA1 signature of the app certificate." + }, + "certificateHashSHA256": { + "type": "string", + "description": "SHA256 signature of the app certificate." + }, + "etag": { + "type": "string" + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a trusted AppId.", + "default": "admin#directory#trustedappid" + } + } + }, + "TrustedApps": { + "id": "TrustedApps", + "type": "object", + "description": "JSON template for Trusted Apps response object of a user in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as trusted apps response.", + "default": "admin#directory#trustedapplist" + }, + "nextPageToken": { + "type": "string" + }, + "trustedApps": { + "type": "array", + "description": "Trusted Apps list.", + "items": { + "$ref": "TrustedAppId" + } + } + } + }, "User": { "id": "User", "type": "object", @@ -4344,6 +4441,28 @@ } } }, + "resolvedAppAccessSettings": { + "methods": { + "GetSettings": { + "id": "directory.resolvedAppAccessSettings.GetSettings", + "path": "resolvedappaccesssettings", + "httpMethod": "GET", + "description": "Retrieves resolved app access settings of the logged in user.", + "response": { + "$ref": "AppAccessCollections" + } + }, + "ListTrustedApps": { + "id": "directory.resolvedAppAccessSettings.ListTrustedApps", + "path": "trustedapps", + "httpMethod": "GET", + "description": "Retrieves the list of apps trusted by the admin of the logged in user.", + "response": { + "$ref": "TrustedApps" + } + } + } + }, "resources": { "resources": { "calendars": { @@ -4473,7 +4592,7 @@ "id": "directory.resources.calendars.patch", "path": "customer/{customer}/resources/calendars/{calendarResourceId}", "httpMethod": "PATCH", - "description": "Updates a calendar resource. This method supports patch semantics.", + "description": "Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved. This method supports patch semantics.", "parameters": { "calendarResourceId": { "type": "string", @@ -4506,7 +4625,7 @@ "id": "directory.resources.calendars.update", "path": "customer/{customer}/resources/calendars/{calendarResourceId}", "httpMethod": "PUT", - "description": "Updates a calendar resource.", + "description": "Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved.", "parameters": { "calendarResourceId": { "type": "string", diff --git a/vendor/google.golang.org/api/admin/directory/v1/admin-gen.go b/vendor/google.golang.org/api/admin/directory/v1/admin-gen.go index 142c017df..a74f731f4 100644 --- a/vendor/google.golang.org/api/admin/directory/v1/admin-gen.go +++ b/vendor/google.golang.org/api/admin/directory/v1/admin-gen.go @@ -146,6 +146,7 @@ func New(client *http.Client) (*Service, error) { s.Notifications = NewNotificationsService(s) s.Orgunits = NewOrgunitsService(s) s.Privileges = NewPrivilegesService(s) + s.ResolvedAppAccessSettings = NewResolvedAppAccessSettingsService(s) s.Resources = NewResourcesService(s) s.RoleAssignments = NewRoleAssignmentsService(s) s.Roles = NewRolesService(s) @@ -185,6 +186,8 @@ type Service struct { Privileges *PrivilegesService + ResolvedAppAccessSettings *ResolvedAppAccessSettingsService + Resources *ResourcesService RoleAssignments *RoleAssignmentsService @@ -327,6 +330,15 @@ type PrivilegesService struct { s *Service } +func NewResolvedAppAccessSettingsService(s *Service) *ResolvedAppAccessSettingsService { + rs := &ResolvedAppAccessSettingsService{s: s} + return rs +} + +type ResolvedAppAccessSettingsService struct { + s *Service +} + func NewResourcesService(s *Service) *ResourcesService { rs := &ResourcesService{s: s} rs.Calendars = NewResourcesCalendarsService(s) @@ -510,6 +522,67 @@ func (s *Aliases) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AppAccessCollections: JSON template for App Access Collections +// Resource object in Directory API. +type AppAccessCollections struct { + // BlockedApiAccessBuckets: List of blocked api access buckets. + BlockedApiAccessBuckets []string `json:"blockedApiAccessBuckets,omitempty"` + + // EnforceSettingsForAndroidDrive: Boolean to indicate whether to + // enforce app access settings on Android Drive or not. + EnforceSettingsForAndroidDrive bool `json:"enforceSettingsForAndroidDrive,omitempty"` + + // ErrorMessage: Error message provided by the Admin that will be shown + // to the user when an app is blocked. + ErrorMessage string `json:"errorMessage,omitempty"` + + // Etag: ETag of the resource. + Etag string `json:"etag,omitempty"` + + // Kind: Identifies the resource as an app access collection. Value: + // admin#directory#appaccesscollection + Kind string `json:"kind,omitempty"` + + // ResourceId: Unique ID of app access collection. (Readonly) + ResourceId int64 `json:"resourceId,omitempty,string"` + + // ResourceName: Resource name given by the customer while + // creating/updating. Should be unique under given customer. + ResourceName string `json:"resourceName,omitempty"` + + // TrustDomainOwnedApps: Boolean that indicates whether to trust domain + // owned apps. + TrustDomainOwnedApps bool `json:"trustDomainOwnedApps,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "BlockedApiAccessBuckets") to unconditionally include in API + // requests. By default, fields with empty values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BlockedApiAccessBuckets") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AppAccessCollections) MarshalJSON() ([]byte, error) { + type noMethod AppAccessCollections + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Asp: The template that returns individual ASP (Access Code) data. type Asp struct { // CodeId: The unique ID of the ASP. @@ -2622,6 +2695,88 @@ func (s *Tokens) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TrustedAppId: JSON template for Trusted App Ids Resource object in +// Directory API. +type TrustedAppId struct { + // AndroidPackageName: Android package name. + AndroidPackageName string `json:"androidPackageName,omitempty"` + + // CertificateHashSHA1: SHA1 signature of the app certificate. + CertificateHashSHA1 string `json:"certificateHashSHA1,omitempty"` + + // CertificateHashSHA256: SHA256 signature of the app certificate. + CertificateHashSHA256 string `json:"certificateHashSHA256,omitempty"` + + Etag string `json:"etag,omitempty"` + + // Kind: Identifies the resource as a trusted AppId. + Kind string `json:"kind,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AndroidPackageName") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AndroidPackageName") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *TrustedAppId) MarshalJSON() ([]byte, error) { + type noMethod TrustedAppId + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TrustedApps: JSON template for Trusted Apps response object of a user +// in Directory API. +type TrustedApps struct { + // Etag: ETag of the resource. + Etag string `json:"etag,omitempty"` + + // Kind: Identifies the resource as trusted apps response. + Kind string `json:"kind,omitempty"` + + NextPageToken string `json:"nextPageToken,omitempty"` + + // TrustedApps: Trusted Apps list. + TrustedApps []*TrustedAppId `json:"trustedApps,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Etag") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Etag") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TrustedApps) MarshalJSON() ([]byte, error) { + type noMethod TrustedApps + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // User: JSON template for User object in Directory API. type User struct { Addresses interface{} `json:"addresses,omitempty"` @@ -11182,6 +11337,244 @@ func (c *PrivilegesListCall) Do(opts ...googleapi.CallOption) (*Privileges, erro } +// method id "directory.resolvedAppAccessSettings.GetSettings": + +type ResolvedAppAccessSettingsGetSettingsCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetSettings: Retrieves resolved app access settings of the logged in +// user. +func (r *ResolvedAppAccessSettingsService) GetSettings() *ResolvedAppAccessSettingsGetSettingsCall { + c := &ResolvedAppAccessSettingsGetSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ResolvedAppAccessSettingsGetSettingsCall) Fields(s ...googleapi.Field) *ResolvedAppAccessSettingsGetSettingsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ResolvedAppAccessSettingsGetSettingsCall) IfNoneMatch(entityTag string) *ResolvedAppAccessSettingsGetSettingsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ResolvedAppAccessSettingsGetSettingsCall) Context(ctx context.Context) *ResolvedAppAccessSettingsGetSettingsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ResolvedAppAccessSettingsGetSettingsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResolvedAppAccessSettingsGetSettingsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "resolvedappaccesssettings") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "directory.resolvedAppAccessSettings.GetSettings" call. +// Exactly one of *AppAccessCollections or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *AppAccessCollections.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ResolvedAppAccessSettingsGetSettingsCall) Do(opts ...googleapi.CallOption) (*AppAccessCollections, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &AppAccessCollections{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves resolved app access settings of the logged in user.", + // "httpMethod": "GET", + // "id": "directory.resolvedAppAccessSettings.GetSettings", + // "path": "resolvedappaccesssettings", + // "response": { + // "$ref": "AppAccessCollections" + // } + // } + +} + +// method id "directory.resolvedAppAccessSettings.ListTrustedApps": + +type ResolvedAppAccessSettingsListTrustedAppsCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListTrustedApps: Retrieves the list of apps trusted by the admin of +// the logged in user. +func (r *ResolvedAppAccessSettingsService) ListTrustedApps() *ResolvedAppAccessSettingsListTrustedAppsCall { + c := &ResolvedAppAccessSettingsListTrustedAppsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) Fields(s ...googleapi.Field) *ResolvedAppAccessSettingsListTrustedAppsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) IfNoneMatch(entityTag string) *ResolvedAppAccessSettingsListTrustedAppsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) Context(ctx context.Context) *ResolvedAppAccessSettingsListTrustedAppsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "trustedapps") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "directory.resolvedAppAccessSettings.ListTrustedApps" call. +// Exactly one of *TrustedApps or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *TrustedApps.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ResolvedAppAccessSettingsListTrustedAppsCall) Do(opts ...googleapi.CallOption) (*TrustedApps, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &TrustedApps{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves the list of apps trusted by the admin of the logged in user.", + // "httpMethod": "GET", + // "id": "directory.resolvedAppAccessSettings.ListTrustedApps", + // "path": "trustedapps", + // "response": { + // "$ref": "TrustedApps" + // } + // } + +} + // method id "directory.resources.calendars.delete": type ResourcesCalendarsDeleteCall struct { @@ -11766,8 +12159,11 @@ type ResourcesCalendarsPatchCall struct { header_ http.Header } -// Patch: Updates a calendar resource. This method supports patch -// semantics. +// Patch: Updates a calendar resource. +// +// This method supports patch semantics, meaning you only need to +// include the fields you wish to update. Fields that are not present in +// the request will be preserved. This method supports patch semantics. func (r *ResourcesCalendarsService) Patch(customer string, calendarResourceId string, calendarresource *CalendarResource) *ResourcesCalendarsPatchCall { c := &ResourcesCalendarsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.customer = customer @@ -11863,7 +12259,7 @@ func (c *ResourcesCalendarsPatchCall) Do(opts ...googleapi.CallOption) (*Calenda } return ret, nil // { - // "description": "Updates a calendar resource. This method supports patch semantics.", + // "description": "Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved. This method supports patch semantics.", // "httpMethod": "PATCH", // "id": "directory.resources.calendars.patch", // "parameterOrder": [ @@ -11911,6 +12307,10 @@ type ResourcesCalendarsUpdateCall struct { } // Update: Updates a calendar resource. +// +// This method supports patch semantics, meaning you only need to +// include the fields you wish to update. Fields that are not present in +// the request will be preserved. func (r *ResourcesCalendarsService) Update(customer string, calendarResourceId string, calendarresource *CalendarResource) *ResourcesCalendarsUpdateCall { c := &ResourcesCalendarsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.customer = customer @@ -12006,7 +12406,7 @@ func (c *ResourcesCalendarsUpdateCall) Do(opts ...googleapi.CallOption) (*Calend } return ret, nil // { - // "description": "Updates a calendar resource.", + // "description": "Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved.", // "httpMethod": "PUT", // "id": "directory.resources.calendars.update", // "parameterOrder": [ diff --git a/vendor/google.golang.org/api/analyticsreporting/v4/analyticsreporting-api.json b/vendor/google.golang.org/api/analyticsreporting/v4/analyticsreporting-api.json index 02dc7f212..d7809e7b2 100644 --- a/vendor/google.golang.org/api/analyticsreporting/v4/analyticsreporting-api.json +++ b/vendor/google.golang.org/api/analyticsreporting/v4/analyticsreporting-api.json @@ -1,12 +1,13 @@ { + "canonicalName": "AnalyticsReporting", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/analytics": { - "description": "View and manage your Google Analytics data" - }, "https://www.googleapis.com/auth/analytics.readonly": { "description": "View your Google Analytics data" + }, + "https://www.googleapis.com/auth/analytics": { + "description": "View and manage your Google Analytics data" } } } @@ -21,6 +22,12 @@ "reports": { "methods": { "batchGet": { + "id": "analyticsreporting.reports.batchGet", + "path": "v4/reports:batchGet", + "description": "Returns the Analytics data.", + "request": { + "$ref": "GetReportsRequest" + }, "response": { "$ref": "GetReportsResponse" }, @@ -31,54 +38,32 @@ "https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly" ], - "flatPath": "v4/reports:batchGet", - "id": "analyticsreporting.reports.batchGet", - "path": "v4/reports:batchGet", - "description": "Returns the Analytics data.", - "request": { - "$ref": "GetReportsRequest" - } + "flatPath": "v4/reports:batchGet" } } } }, "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", + "type": "boolean", "location": "query" }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" }, "callback": { "location": "query", @@ -86,7 +71,6 @@ "type": "string" }, "$.xgafv": { - "location": "query", "enum": [ "1", "2" @@ -96,10 +80,10 @@ "enumDescriptions": [ "v1 error format", "v2 error format" - ] + ], + "location": "query" }, "alt": { - "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -112,29 +96,46 @@ "json", "media", "proto" - ] - }, - "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.", - "type": "string", - "location": "query" + ], + "type": "string" }, "access_token": { "location": "query", "description": "OAuth access token.", "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.", + "type": "string", + "location": "query" + }, "quotaUser": { "location": "query", "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.", "type": "string" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" } }, "version": "v4", "baseUrl": "https://analyticsreporting.googleapis.com/", + "servicePath": "", "kind": "discovery#restDescription", "description": "Accesses Analytics report data.", - "servicePath": "", "basePath": "", "revision": "20170925", "documentationLink": "https://developers.google.com/analytics/devguides/reporting/core/v4/", @@ -142,6 +143,480 @@ "discoveryVersion": "v1", "version_module": true, "schemas": { + "GetReportsRequest": { + "properties": { + "reportRequests": { + "description": "Requests, each request will have a separate response.\nThere can be a maximum of 5 requests. All requests should have the same\n`dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.", + "items": { + "$ref": "ReportRequest" + }, + "type": "array" + } + }, + "id": "GetReportsRequest", + "description": "The batch request containing multiple report request.", + "type": "object" + }, + "Pivot": { + "description": "The Pivot describes the pivot section in the request.\nThe Pivot helps rearrange the information in the table for certain reports\nby pivoting your data on a second dimension.", + "type": "object", + "properties": { + "dimensionFilterClauses": { + "description": "DimensionFilterClauses are logically combined with an `AND` operator: only\ndata that is included by all these DimensionFilterClauses contributes to\nthe values in this pivot region. Dimension filters can be used to restrict\nthe columns shown in the pivot region. For example if you have\n`ga:browser` as the requested dimension in the pivot region, and you\nspecify key filters to restrict `ga:browser` to only \"IE\" or \"Firefox\",\nthen only those two browsers would show up as columns.", + "items": { + "$ref": "DimensionFilterClause" + }, + "type": "array" + }, + "dimensions": { + "description": "A list of dimensions to show as pivot columns. A Pivot can have a maximum\nof 4 dimensions. Pivot dimensions are part of the restriction on the\ntotal number of dimensions allowed in the request.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "maxGroupCount": { + "format": "int32", + "description": "Specifies the maximum number of groups to return.\nThe default value is 10, also the maximum value is 1,000.", + "type": "integer" + }, + "startGroup": { + "format": "int32", + "description": "If k metrics were requested, then the response will contain some\ndata-dependent multiple of k columns in the report. E.g., if you pivoted\non the dimension `ga:browser` then you'd get k columns for \"Firefox\", k\ncolumns for \"IE\", k columns for \"Chrome\", etc. The ordering of the groups\nof columns is determined by descending order of \"total\" for the first of\nthe k values. Ties are broken by lexicographic ordering of the first\npivot dimension, then lexicographic ordering of the second pivot\ndimension, and so on. E.g., if the totals for the first value for\nFirefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns\nwould be Chrome, Firefox, IE.\n\nThe following let you choose which of the groups of k columns are\nincluded in the response.", + "type": "integer" + }, + "metrics": { + "description": "The pivot metrics. Pivot metrics are part of the\nrestriction on total number of metrics allowed in the request.", + "items": { + "$ref": "Metric" + }, + "type": "array" + } + }, + "id": "Pivot" + }, + "PivotHeaderEntry": { + "description": "The headers for the each of the metric column corresponding to the metrics\nrequested in the pivots section of the response.", + "type": "object", + "properties": { + "metric": { + "$ref": "MetricHeaderEntry", + "description": "The metric header for the metric in the pivot." + }, + "dimensionNames": { + "description": "The name of the dimensions in the pivot response.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dimensionValues": { + "description": "The values for the dimensions in the pivot.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "PivotHeaderEntry" + }, + "SegmentFilter": { + "properties": { + "sequenceSegment": { + "$ref": "SequenceSegment", + "description": "Sequence conditions consist of one or more steps, where each step is\ndefined by one or more dimension/metric conditions. Multiple steps can\nbe combined with special sequence operators." + }, + "not": { + "description": "If true, match the complement of simple or sequence segment.\nFor example, to match all visits not from \"New York\", we can define the\nsegment as follows:\n\n \"sessionSegment\": {\n \"segmentFilters\": [{\n \"simpleSegment\" :{\n \"orFiltersForSegment\": [{\n \"segmentFilterClauses\":[{\n \"dimensionFilter\": {\n \"dimensionName\": \"ga:city\",\n \"expressions\": [\"New York\"]\n }\n }]\n }]\n },\n \"not\": \"True\"\n }]\n },", + "type": "boolean" + }, + "simpleSegment": { + "description": "A Simple segment conditions consist of one or more dimension/metric\nconditions that can be combined", + "$ref": "SimpleSegment" + } + }, + "id": "SegmentFilter", + "description": "SegmentFilter defines the segment to be either a simple or a sequence\nsegment. A simple segment condition contains dimension and metric conditions\nto select the sessions or users. A sequence segment condition can be used to\nselect users or sessions based on sequential conditions.", + "type": "object" + }, + "SegmentDefinition": { + "properties": { + "segmentFilters": { + "description": "A segment is defined by a set of segment filters which are combined\ntogether with a logical `AND` operation.", + "items": { + "$ref": "SegmentFilter" + }, + "type": "array" + } + }, + "id": "SegmentDefinition", + "description": "SegmentDefinition defines the segment to be a set of SegmentFilters which\nare combined together with a logical `AND` operation.", + "type": "object" + }, + "MetricHeaderEntry": { + "description": "Header for the metrics.", + "type": "object", + "properties": { + "name": { + "description": "The name of the header.", + "type": "string" + }, + "type": { + "enumDescriptions": [ + "Metric type is unspecified.", + "Integer metric.", + "Float metric.", + "Currency metric.", + "Percentage metric.", + "Time metric in `HH:MM:SS` format." + ], + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "INTEGER", + "FLOAT", + "CURRENCY", + "PERCENT", + "TIME" + ], + "description": "The type of the metric, for example `INTEGER`.", + "type": "string" + } + }, + "id": "MetricHeaderEntry" + }, + "ReportData": { + "properties": { + "samplingSpaceSizes": { + "description": "If the results are\n[sampled](https://support.google.com/analytics/answer/2637192),\nthis returns the total number of\nsamples present, one entry per date range. If the results are not sampled\nthis field will not be defined. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\nfor details.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "minimums": { + "description": "Minimum and maximum values seen over all matching rows. These are both\nempty when `hideValueRanges` in the request is false, or when\nrowCount is zero.", + "items": { + "$ref": "DateRangeValues" + }, + "type": "array" + }, + "totals": { + "description": "For each requested date range, for the set of all rows that match\nthe query, every requested value format gets a total. The total\nfor a value format is computed by first totaling the metrics\nmentioned in the value format and then evaluating the value\nformat as a scalar expression. E.g., The \"totals\" for\n`3 / (ga:sessions + 2)` we compute\n`3 / ((sum of all relevant ga:sessions) + 2)`.\nTotals are computed before pagination.", + "items": { + "$ref": "DateRangeValues" + }, + "type": "array" + }, + "samplesReadCounts": { + "description": "If the results are\n[sampled](https://support.google.com/analytics/answer/2637192),\nthis returns the total number of samples read, one entry per date range.\nIf the results are not sampled this field will not be defined. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\nfor details.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "isDataGolden": { + "description": "Indicates if response to this request is golden or not. Data is\ngolden when the exact same request will not produce any new results if\nasked at a later point in time.", + "type": "boolean" + }, + "rows": { + "description": "There's one ReportRow for every unique combination of dimensions.", + "items": { + "$ref": "ReportRow" + }, + "type": "array" + }, + "rowCount": { + "format": "int32", + "description": "Total number of matching rows for this query.", + "type": "integer" + }, + "dataLastRefreshed": { + "format": "google-datetime", + "description": "The last time the data in the report was refreshed. All the hits received\nbefore this timestamp are included in the calculation of the report.", + "type": "string" + }, + "maximums": { + "description": "Minimum and maximum values seen over all matching rows. These are both\nempty when `hideValueRanges` in the request is false, or when\nrowCount is zero.", + "items": { + "$ref": "DateRangeValues" + }, + "type": "array" + } + }, + "id": "ReportData", + "description": "The data part of the report.", + "type": "object" + }, + "DimensionFilter": { + "properties": { + "operator": { + "enum": [ + "OPERATOR_UNSPECIFIED", + "REGEXP", + "BEGINS_WITH", + "ENDS_WITH", + "PARTIAL", + "EXACT", + "NUMERIC_EQUAL", + "NUMERIC_GREATER_THAN", + "NUMERIC_LESS_THAN", + "IN_LIST" + ], + "description": "How to match the dimension to the expression. The default is REGEXP.", + "type": "string", + "enumDescriptions": [ + "If the match type is unspecified, it is treated as a `REGEXP`.", + "The match expression is treated as a regular expression. All match types\nare not treated as regular expressions.", + "Matches the value which begin with the match expression provided.", + "Matches the values which end with the match expression provided.", + "Substring match.", + "The value should match the match expression entirely.", + "Integer comparison filters.\ncase sensitivity is ignored for these and the expression\nis assumed to be a string representing an integer.\nFailure conditions:\n\n- If expression is not a valid int64, the client should expect\n an error.\n- Input dimensions that are not valid int64 values will never match the\n filter.", + "Checks if the dimension is numerically greater than the match\nexpression. Read the description for `NUMERIC_EQUALS` for restrictions.", + "Checks if the dimension is numerically less than the match expression.\nRead the description for `NUMERIC_EQUALS` for restrictions.", + "This option is used to specify a dimension filter whose expression can\ntake any value from a selected list of values. This helps avoiding\nevaluating multiple exact match dimension filters which are OR'ed for\nevery single response row. For example:\n\n expressions: [\"A\", \"B\", \"C\"]\n\nAny response row whose dimension has it is value as A, B or C, matches\nthis DimensionFilter." + ] + }, + "dimensionName": { + "description": "The dimension to filter on. A DimensionFilter must contain a dimension.", + "type": "string" + }, + "expressions": { + "description": "Strings or regular expression to match against. Only the first value of\nthe list is used for comparison unless the operator is `IN_LIST`.\nIf `IN_LIST` operator, then the entire list is used to filter the\ndimensions as explained in the description of the `IN_LIST` operator.", + "items": { + "type": "string" + }, + "type": "array" + }, + "not": { + "description": "Logical `NOT` operator. If this boolean is set to true, then the matching\ndimension values will be excluded in the report. The default is false.", + "type": "boolean" + }, + "caseSensitive": { + "description": "Should the match be case sensitive? Default is false.", + "type": "boolean" + } + }, + "id": "DimensionFilter", + "description": "Dimension filter specifies the filtering options on a dimension.", + "type": "object" + }, + "SegmentDimensionFilter": { + "properties": { + "minComparisonValue": { + "description": "Minimum comparison values for `BETWEEN` match type.", + "type": "string" + }, + "maxComparisonValue": { + "description": "Maximum comparison values for `BETWEEN` match type.", + "type": "string" + }, + "dimensionName": { + "description": "Name of the dimension for which the filter is being applied.", + "type": "string" + }, + "operator": { + "enum": [ + "OPERATOR_UNSPECIFIED", + "REGEXP", + "BEGINS_WITH", + "ENDS_WITH", + "PARTIAL", + "EXACT", + "IN_LIST", + "NUMERIC_LESS_THAN", + "NUMERIC_GREATER_THAN", + "NUMERIC_BETWEEN" + ], + "description": "The operator to use to match the dimension with the expressions.", + "type": "string", + "enumDescriptions": [ + "If the match type is unspecified, it is treated as a REGEXP.", + "The match expression is treated as a regular expression. All other match\ntypes are not treated as regular expressions.", + "Matches the values which begin with the match expression provided.", + "Matches the values which end with the match expression provided.", + "Substring match.", + "The value should match the match expression entirely.", + "This option is used to specify a dimension filter whose expression can\ntake any value from a selected list of values. This helps avoiding\nevaluating multiple exact match dimension filters which are OR'ed for\nevery single response row. For example:\n\n expressions: [\"A\", \"B\", \"C\"]\n\nAny response row whose dimension has it is value as A, B or C, matches\nthis DimensionFilter.", + "Integer comparison filters.\ncase sensitivity is ignored for these and the expression\nis assumed to be a string representing an integer.\nFailure conditions:\n\n- if expression is not a valid int64, the client should expect\n an error.\n- input dimensions that are not valid int64 values will never match the\n filter.\n\nChecks if the dimension is numerically less than the match expression.", + "Checks if the dimension is numerically greater than the match\nexpression.", + "Checks if the dimension is numerically between the minimum and maximum\nof the match expression, boundaries excluded." + ] + }, + "expressions": { + "description": "The list of expressions, only the first element is used for all operators", + "items": { + "type": "string" + }, + "type": "array" + }, + "caseSensitive": { + "description": "Should the match be case sensitive, ignored for `IN_LIST` operator.", + "type": "boolean" + } + }, + "id": "SegmentDimensionFilter", + "description": "Dimension filter specifies the filtering options on a dimension.", + "type": "object" + }, + "OrderBy": { + "properties": { + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "VALUE", + "DELTA", + "SMART", + "HISTOGRAM_BUCKET", + "DIMENSION_AS_INTEGER" + ], + "description": "The order type. The default orderType is `VALUE`.", + "type": "string", + "enumDescriptions": [ + "Unspecified order type will be treated as sort based on value.", + "The sort order is based on the value of the chosen column; looks only at\nthe first date range.", + "The sort order is based on the difference of the values of the chosen\ncolumn between the first two date ranges. Usable only if there are\nexactly two date ranges.", + "The sort order is based on weighted value of the chosen column. If\ncolumn has n/d format, then weighted value of this ratio will\nbe `(n + totals.n)/(d + totals.d)` Usable only for metrics that\nrepresent ratios.", + "Histogram order type is applicable only to dimension columns with\nnon-empty histogram-buckets.", + "If the dimensions are fixed length numbers, ordinary sort would just\nwork fine. `DIMENSION_AS_INTEGER` can be used if the dimensions are\nvariable length numbers." + ] + }, + "fieldName": { + "description": "The field which to sort by. The default sort order is ascending. Example:\n`ga:browser`.\nNote, that you can only specify one field for sort here. For example,\n`ga:browser, ga:city` is not valid.", + "type": "string" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "description": "The sorting order for the field.", + "type": "string", + "enumDescriptions": [ + "If the sort order is unspecified, the default is ascending.", + "Ascending sort. The field will be sorted in an ascending manner.", + "Descending sort. The field will be sorted in a descending manner." + ] + } + }, + "id": "OrderBy", + "description": "Specifies the sorting options.", + "type": "object" + }, + "Segment": { + "properties": { + "dynamicSegment": { + "$ref": "DynamicSegment", + "description": "A dynamic segment definition in the request." + }, + "segmentId": { + "description": "The segment ID of a built-in or custom segment, for example `gaid::-3`.", + "type": "string" + } + }, + "id": "Segment", + "description": "The segment definition, if the report needs to be segmented.\nA Segment is a subset of the Analytics data. For example, of the entire\nset of users, one Segment might be users from a particular country or city.", + "type": "object" + }, + "SegmentSequenceStep": { + "description": "A segment sequence definition.", + "type": "object", + "properties": { + "orFiltersForSegment": { + "description": "A sequence is specified with a list of Or grouped filters which are\ncombined with `AND` operator.", + "items": { + "$ref": "OrFiltersForSegment" + }, + "type": "array" + }, + "matchType": { + "enumDescriptions": [ + "Unspecified match type is treated as precedes.", + "Operator indicates that the previous step precedes the next step.", + "Operator indicates that the previous step immediately precedes the next\nstep." + ], + "enum": [ + "UNSPECIFIED_MATCH_TYPE", + "PRECEDES", + "IMMEDIATELY_PRECEDES" + ], + "description": "Specifies if the step immediately precedes or can be any time before the\nnext step.", + "type": "string" + } + }, + "id": "SegmentSequenceStep" + }, + "Metric": { + "description": "[Metrics](https://support.google.com/analytics/answer/1033861)\nare the quantitative measurements. For example, the metric `ga:users`\nindicates the total number of users for the requested time period.", + "type": "object", + "properties": { + "formattingType": { + "enumDescriptions": [ + "Metric type is unspecified.", + "Integer metric.", + "Float metric.", + "Currency metric.", + "Percentage metric.", + "Time metric in `HH:MM:SS` format." + ], + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "INTEGER", + "FLOAT", + "CURRENCY", + "PERCENT", + "TIME" + ], + "description": "Specifies how the metric expression should be formatted, for example\n`INTEGER`.", + "type": "string" + }, + "alias": { + "description": "An alias for the metric expression is an alternate name for the\nexpression. The alias can be used for filtering and sorting. This field\nis optional and is useful if the expression is not a single metric but\na complex expression which cannot be used in filtering and sorting.\nThe alias is also used in the response column header.", + "type": "string" + }, + "expression": { + "description": "A metric expression in the request. An expression is constructed from one\nor more metrics and numbers. Accepted operators include: Plus (+), Minus\n(-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,\nPositive cardinal numbers (0-9), can include decimals and is limited to\n1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the\nmetric expression is just a single metric name like `ga:users`.\nAdding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics\nwill result in unexpected results.", + "type": "string" + } + }, + "id": "Metric" + }, + "PivotValueRegion": { + "properties": { + "values": { + "description": "The values of the metrics in each of the pivot regions.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "PivotValueRegion", + "description": "The metric values in the pivot region.", + "type": "object" + }, + "Report": { + "properties": { + "nextPageToken": { + "description": "Page token to retrieve the next page of results in the list.", + "type": "string" + }, + "data": { + "$ref": "ReportData", + "description": "Response data." + }, + "columnHeader": { + "$ref": "ColumnHeader", + "description": "The column headers." + } + }, + "id": "Report", + "description": "The data response corresponding to the request.", + "type": "object" + }, "PivotHeader": { "properties": { "pivotHeaderEntries": { @@ -166,8 +641,8 @@ "type": "object", "properties": { "endDate": { - "type": "string", - "description": "The end date for the query in the format `YYYY-MM-DD`." + "description": "The end date for the query in the format `YYYY-MM-DD`.", + "type": "string" }, "startDate": { "description": "The start date for the query in the format `YYYY-MM-DD`.", @@ -176,10 +651,70 @@ }, "id": "DateRange" }, + "MetricFilter": { + "description": "MetricFilter specifies the filter on a metric.", + "type": "object", + "properties": { + "operator": { + "enumDescriptions": [ + "If the operator is not specified, it is treated as `EQUAL`.", + "Should the value of the metric be exactly equal to the comparison value.", + "Should the value of the metric be less than to the comparison value.", + "Should the value of the metric be greater than to the comparison value.", + "Validates if the metric is missing.\nDoesn't take comparisonValue into account." + ], + "enum": [ + "OPERATOR_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "GREATER_THAN", + "IS_MISSING" + ], + "description": "Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the\ncomparisonValue, the default is `EQUAL`. If the operator is\n`IS_MISSING`, checks if the metric is missing and would ignore the\ncomparisonValue.", + "type": "string" + }, + "not": { + "description": "Logical `NOT` operator. If this boolean is set to true, then the matching\nmetric values will be excluded in the report. The default is false.", + "type": "boolean" + }, + "metricName": { + "description": "The metric that will be filtered on. A metricFilter must contain a metric\nname. A metric name can be an alias earlier defined as a metric or it can\nalso be a metric expression.", + "type": "string" + }, + "comparisonValue": { + "description": "The value to compare against.", + "type": "string" + } + }, + "id": "MetricFilter" + }, "ReportRequest": { "description": "The main request class which specifies the Reporting API request.", "type": "object", "properties": { + "samplingLevel": { + "enum": [ + "SAMPLING_UNSPECIFIED", + "DEFAULT", + "SMALL", + "LARGE" + ], + "description": "The desired report\n[sample](https://support.google.com/analytics/answer/2637192) size.\nIf the the `samplingLevel` field is unspecified the `DEFAULT` sampling\nlevel is used. Every [ReportRequest](#ReportRequest) within a\n`batchGet` method must contain the same `samplingLevel` definition. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\n for details.", + "type": "string", + "enumDescriptions": [ + "If the `samplingLevel` field is unspecified the `DEFAULT` sampling level\nis used.", + "Returns response with a sample size that balances speed and\naccuracy.", + "It returns a fast response with a smaller sampling size.", + "Returns a more accurate response using a large sampling size. But this\nmay result in response being slower." + ] + }, + "dimensions": { + "description": "The dimensions requested.\nRequests can have a total of 7 dimensions.", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, "dateRanges": { "description": "Date ranges in the request. The request can have a maximum of 2 date\nranges. The response will contain a set of metric values for each\ncombination of the dimensions for each date range in the request. So, if\nthere are two date ranges, there will be two set of metric values, one for\nthe original date range and one for the second date range.\nThe `reportRequest.dateRanges` field should not be specified for cohorts\nor Lifetime value requests.\nIf a date range is not provided, the default date range is (startDate:\ncurrent date - 7 days, endDate: current date - 1 day). Every\n[ReportRequest](#ReportRequest) within a `batchGet` method must\ncontain the same `dateRanges` definition.", "items": { @@ -214,17 +749,17 @@ "description": "Page size is for paging and specifies the maximum number of returned rows.\nPage size should be \u003e= 0. A query returns the default of 1,000 rows.\nThe Analytics Core Reporting API returns a maximum of 10,000 rows per\nrequest, no matter how many you ask for. It can also return fewer rows\nthan requested, if there aren't as many dimension segments as you expect.\nFor instance, there are fewer than 300 possible values for `ga:country`,\nso when segmenting only by country, you can't get more than 300 rows,\neven if you set `pageSize` to a higher value.", "type": "integer" }, - "hideValueRanges": { - "description": "If set to true, hides the minimum and maximum across all matching rows.\nThe default is false and the value ranges are returned.", - "type": "boolean" - }, "hideTotals": { "description": "If set to true, hides the total of all metrics for all the matching rows,\nfor every date range. The default false and will return the totals.", "type": "boolean" }, + "hideValueRanges": { + "description": "If set to true, hides the minimum and maximum across all matching rows.\nThe default is false and the value ranges are returned.", + "type": "boolean" + }, "filtersExpression": { - "type": "string", - "description": "Dimension or metric filters that restrict the data returned for your\nrequest. To use the `filtersExpression`, supply a dimension or metric on\nwhich to filter, followed by the filter expression. For example, the\nfollowing expression selects `ga:browser` dimension which starts with\nFirefox; `ga:browser=~^Firefox`. For more information on dimensions\nand metric filters, see\n[Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters)." + "description": "Dimension or metric filters that restrict the data returned for your\nrequest. To use the `filtersExpression`, supply a dimension or metric on\nwhich to filter, followed by the filter expression. For example, the\nfollowing expression selects `ga:browser` dimension which starts with\nFirefox; `ga:browser=~^Firefox`. For more information on dimensions\nand metric filters, see\n[Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).", + "type": "string" }, "cohortGroup": { "description": "Cohort group associated with this request. If there is a cohort group\nin the request the `ga:cohort` dimension must be present.\nEvery [ReportRequest](#ReportRequest) within a `batchGet` method must\ncontain the same `cohortGroup` definition.", @@ -261,79 +796,12 @@ "$ref": "Segment" }, "type": "array" - }, - "samplingLevel": { - "enumDescriptions": [ - "If the `samplingLevel` field is unspecified the `DEFAULT` sampling level\nis used.", - "Returns response with a sample size that balances speed and\naccuracy.", - "It returns a fast response with a smaller sampling size.", - "Returns a more accurate response using a large sampling size. But this\nmay result in response being slower." - ], - "enum": [ - "SAMPLING_UNSPECIFIED", - "DEFAULT", - "SMALL", - "LARGE" - ], - "description": "The desired report\n[sample](https://support.google.com/analytics/answer/2637192) size.\nIf the the `samplingLevel` field is unspecified the `DEFAULT` sampling\nlevel is used. Every [ReportRequest](#ReportRequest) within a\n`batchGet` method must contain the same `samplingLevel` definition. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\n for details.", - "type": "string" - }, - "dimensions": { - "description": "The dimensions requested.\nRequests can have a total of 7 dimensions.", - "items": { - "$ref": "Dimension" - }, - "type": "array" } }, "id": "ReportRequest" }, - "MetricFilter": { - "properties": { - "comparisonValue": { - "description": "The value to compare against.", - "type": "string" - }, - "operator": { - "enumDescriptions": [ - "If the operator is not specified, it is treated as `EQUAL`.", - "Should the value of the metric be exactly equal to the comparison value.", - "Should the value of the metric be less than to the comparison value.", - "Should the value of the metric be greater than to the comparison value.", - "Validates if the metric is missing.\nDoesn't take comparisonValue into account." - ], - "enum": [ - "OPERATOR_UNSPECIFIED", - "EQUAL", - "LESS_THAN", - "GREATER_THAN", - "IS_MISSING" - ], - "description": "Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the\ncomparisonValue, the default is `EQUAL`. If the operator is\n`IS_MISSING`, checks if the metric is missing and would ignore the\ncomparisonValue.", - "type": "string" - }, - "not": { - "description": "Logical `NOT` operator. If this boolean is set to true, then the matching\nmetric values will be excluded in the report. The default is false.", - "type": "boolean" - }, - "metricName": { - "description": "The metric that will be filtered on. A metricFilter must contain a metric\nname. A metric name can be an alias earlier defined as a metric or it can\nalso be a metric expression.", - "type": "string" - } - }, - "id": "MetricFilter", - "description": "MetricFilter specifies the filter on a metric.", - "type": "object" - }, "Dimension": { - "id": "Dimension", - "description": "[Dimensions](https://support.google.com/analytics/answer/1033861)\nare attributes of your data. For example, the dimension `ga:city`\nindicates the city, for example, \"Paris\" or \"New York\", from which\na session originates.", - "type": "object", "properties": { - "name": { - "description": "Name of the dimension to fetch, for example `ga:browser`.", - "type": "string" - }, "histogramBuckets": { "description": "If non-empty, we place dimension values into buckets after string to\nint64. Dimension values that are not the string representation of an\nintegral value will be converted to zero. The bucket values have to be in\nincreasing order. Each bucket is closed on the lower end, and open on the\nupper end. The \"first\" bucket includes all values less than the first\nboundary, the \"last\" bucket includes all values up to infinity. Dimension\nvalues that fall in a bucket get transformed to a new dimension value. For\nexample, if one gives a list of \"0, 1, 3, 4, 7\", then we return the\nfollowing buckets:\n\n- bucket #1: values \u003c 0, dimension value \"\u003c0\"\n- bucket #2: values in [0,1), dimension value \"0\"\n- bucket #3: values in [1,3), dimension value \"1-2\"\n- bucket #4: values in [3,4), dimension value \"3\"\n- bucket #5: values in [4,7), dimension value \"4-6\"\n- bucket #6: values \u003e= 7, dimension value \"7+\"\n\nNOTE: If you are applying histogram mutation on any dimension, and using\nthat dimension in sort, you will want to use the sort type\n`HISTOGRAM_BUCKET` for that purpose. Without that the dimension values\nwill be sorted according to dictionary\n(lexicographic) order. For example the ascending dictionary order is:\n\n \"\u003c50\", \"1001+\", \"121-1000\", \"50-120\"\n\nAnd the ascending `HISTOGRAM_BUCKET` order is:\n\n \"\u003c50\", \"50-120\", \"121-1000\", \"1001+\"\n\nThe client has to explicitly request `\"orderType\": \"HISTOGRAM_BUCKET\"`\nfor a histogram-mutated dimension.", "items": { @@ -341,30 +809,36 @@ "type": "string" }, "type": "array" + }, + "name": { + "description": "Name of the dimension to fetch, for example `ga:browser`.", + "type": "string" } - } + }, + "id": "Dimension", + "description": "[Dimensions](https://support.google.com/analytics/answer/1033861)\nare attributes of your data. For example, the dimension `ga:city`\nindicates the city, for example, \"Paris\" or \"New York\", from which\na session originates.", + "type": "object" }, "DynamicSegment": { - "description": "Dynamic segment definition for defining the segment within the request.\nA segment can select users, sessions or both.", - "type": "object", "properties": { "sessionSegment": { - "$ref": "SegmentDefinition", - "description": "Session Segment to select sessions to include in the segment." + "description": "Session Segment to select sessions to include in the segment.", + "$ref": "SegmentDefinition" }, "name": { "description": "The name of the dynamic segment.", "type": "string" }, "userSegment": { - "description": "User Segment to select users to include in the segment.", - "$ref": "SegmentDefinition" + "$ref": "SegmentDefinition", + "description": "User Segment to select users to include in the segment." } }, - "id": "DynamicSegment" + "id": "DynamicSegment", + "description": "Dynamic segment definition for defining the segment within the request.\nA segment can select users, sessions or both.", + "type": "object" }, "SimpleSegment": { - "id": "SimpleSegment", "description": "A Simple segment conditions consist of one or more dimension/metric\nconditions that can be combined.", "type": "object", "properties": { @@ -375,18 +849,19 @@ }, "type": "array" } - } + }, + "id": "SimpleSegment" }, "ColumnHeader": { "description": "Column headers.", "type": "object", "properties": { "dimensions": { + "description": "The dimension names in the response.", "items": { "type": "string" }, - "type": "array", - "description": "The dimension names in the response." + "type": "array" }, "metricHeader": { "description": "Metric headers for the metrics in the response.", @@ -399,23 +874,22 @@ "description": "Filter Clause to be used in a segment definition, can be wither a metric or\na dimension filter.", "type": "object", "properties": { + "metricFilter": { + "description": "Metric Filter for the segment definition.", + "$ref": "SegmentMetricFilter" + }, "not": { "description": "Matches the complement (`!`) of the filter.", "type": "boolean" }, "dimensionFilter": { - "$ref": "SegmentDimensionFilter", - "description": "Dimension Filter for the segment definition." - }, - "metricFilter": { - "description": "Metric Filter for the segment definition.", - "$ref": "SegmentMetricFilter" + "description": "Dimension Filter for the segment definition.", + "$ref": "SegmentDimensionFilter" } }, "id": "SegmentFilterClause" }, "MetricFilterClause": { - "id": "MetricFilterClause", "description": "Represents a group of metric filters.\nSet the operator value to specify how the filters are logically combined.", "type": "object", "properties": { @@ -427,24 +901,23 @@ "type": "array" }, "operator": { - "enumDescriptions": [ - "Unspecified operator. It is treated as an `OR`.", - "The logical `OR` operator.", - "The logical `AND` operator." - ], "enum": [ "OPERATOR_UNSPECIFIED", "OR", "AND" ], "description": "The operator for combining multiple metric filters. If unspecified, it is\ntreated as an `OR`.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified operator. It is treated as an `OR`.", + "The logical `OR` operator.", + "The logical `AND` operator." + ] } - } + }, + "id": "MetricFilterClause" }, "Cohort": { - "description": "Defines a cohort. A cohort is a group of users who share a common\ncharacteristic. For example, all users with the same acquisition date\nbelong to the same cohort.", - "type": "object", "properties": { "dateRange": { "$ref": "DateRange", @@ -455,21 +928,25 @@ "type": "string" }, "type": { - "enumDescriptions": [ - "If unspecified it's treated as `FIRST_VISIT_DATE`.", - "Cohorts that are selected based on first visit date." - ], "enum": [ "UNSPECIFIED_COHORT_TYPE", "FIRST_VISIT_DATE" ], "description": "Type of the cohort. The only supported type as of now is\n`FIRST_VISIT_DATE`. If this field is unspecified the cohort is treated\nas `FIRST_VISIT_DATE` type cohort.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "If unspecified it's treated as `FIRST_VISIT_DATE`.", + "Cohorts that are selected based on first visit date." + ] } }, - "id": "Cohort" + "id": "Cohort", + "description": "Defines a cohort. A cohort is a group of users who share a common\ncharacteristic. For example, all users with the same acquisition date\nbelong to the same cohort.", + "type": "object" }, "ReportRow": { + "description": "A row in the report.", + "type": "object", "properties": { "metrics": { "description": "List of metrics for each requested DateRange.", @@ -486,13 +963,9 @@ "type": "array" } }, - "id": "ReportRow", - "description": "A row in the report.", - "type": "object" + "id": "ReportRow" }, "OrFiltersForSegment": { - "description": "A list of segment filters in the `OR` group are combined with the logical OR\noperator.", - "type": "object", "properties": { "segmentFilterClauses": { "description": "List of segment filters to be combined with a `OR` operator.", @@ -502,7 +975,9 @@ "type": "array" } }, - "id": "OrFiltersForSegment" + "id": "OrFiltersForSegment", + "description": "A list of segment filters in the `OR` group are combined with the logical OR\noperator.", + "type": "object" }, "MetricHeader": { "description": "The headers for the metrics.", @@ -526,8 +1001,6 @@ "id": "MetricHeader" }, "DimensionFilterClause": { - "description": "A group of dimension filters. Set the operator value to specify how\nthe filters are logically combined.", - "type": "object", "properties": { "filters": { "description": "The repeated set of filters. They are logically combined based on the\noperator specified.", @@ -551,10 +1024,11 @@ "type": "string" } }, - "id": "DimensionFilterClause" + "id": "DimensionFilterClause", + "description": "A group of dimension filters. Set the operator value to specify how\nthe filters are logically combined.", + "type": "object" }, "GetReportsResponse": { - "id": "GetReportsResponse", "description": "The main response class which holds the reports from the Reporting API\n`batchGet` call.", "type": "object", "properties": { @@ -565,37 +1039,52 @@ }, "type": "array" } - } + }, + "id": "GetReportsResponse" }, "SequenceSegment": { "description": "Sequence conditions consist of one or more steps, where each step is defined\nby one or more dimension/metric conditions. Multiple steps can be combined\nwith special sequence operators.", "type": "object", "properties": { - "segmentSequenceSteps": { - "items": { - "$ref": "SegmentSequenceStep" - }, - "type": "array", - "description": "The list of steps in the sequence." - }, "firstStepShouldMatchFirstHit": { "description": "If set, first step condition must match the first hit of the visitor (in\nthe date range).", "type": "boolean" + }, + "segmentSequenceSteps": { + "description": "The list of steps in the sequence.", + "items": { + "$ref": "SegmentSequenceStep" + }, + "type": "array" } }, "id": "SequenceSegment" }, "SegmentMetricFilter": { - "description": "Metric filter to be used in a segment filter clause.", - "type": "object", "properties": { + "operator": { + "enum": [ + "UNSPECIFIED_OPERATOR", + "LESS_THAN", + "GREATER_THAN", + "EQUAL", + "BETWEEN" + ], + "description": "Specifies is the operation to perform to compare the metric. The default\nis `EQUAL`.", + "type": "string", + "enumDescriptions": [ + "Unspecified operator is treated as `LESS_THAN` operator.", + "Checks if the metric value is less than comparison value.", + "Checks if the metric value is greater than comparison value.", + "Equals operator.", + "For between operator, both the minimum and maximum are exclusive.\nWe will use `LT` and `GT` for comparison." + ] + }, "metricName": { "description": "The metric that will be filtered on. A `metricFilter` must contain a\nmetric name.", "type": "string" }, "scope": { - "description": "Scope for a metric defines the level at which that metric is defined. The\nspecified metric scope must be equal to or greater than its primary scope\nas defined in the data model. The primary scope is defined by if the\nsegment is selecting users or sessions.", - "type": "string", "enumDescriptions": [ "If the scope is unspecified, it defaults to the condition scope,\n`USER` or `SESSION` depending on if the segment is trying to choose\nusers or sessions.", "Product scope.", @@ -609,39 +1098,24 @@ "HIT", "SESSION", "USER" - ] + ], + "description": "Scope for a metric defines the level at which that metric is defined. The\nspecified metric scope must be equal to or greater than its primary scope\nas defined in the data model. The primary scope is defined by if the\nsegment is selecting users or sessions.", + "type": "string" }, "maxComparisonValue": { - "type": "string", - "description": "Max comparison value is only used for `BETWEEN` operator." + "description": "Max comparison value is only used for `BETWEEN` operator.", + "type": "string" }, "comparisonValue": { "description": "The value to compare against. If the operator is `BETWEEN`, this value is\ntreated as minimum comparison value.", "type": "string" - }, - "operator": { - "type": "string", - "enumDescriptions": [ - "Unspecified operator is treated as `LESS_THAN` operator.", - "Checks if the metric value is less than comparison value.", - "Checks if the metric value is greater than comparison value.", - "Equals operator.", - "For between operator, both the minimum and maximum are exclusive.\nWe will use `LT` and `GT` for comparison." - ], - "enum": [ - "UNSPECIFIED_OPERATOR", - "LESS_THAN", - "GREATER_THAN", - "EQUAL", - "BETWEEN" - ], - "description": "Specifies is the operation to perform to compare the metric. The default\nis `EQUAL`." } }, - "id": "SegmentMetricFilter" + "id": "SegmentMetricFilter", + "description": "Metric filter to be used in a segment filter clause.", + "type": "object" }, "DateRangeValues": { - "type": "object", "properties": { "values": { "description": "Each value corresponds to each Metric in the request.", @@ -659,7 +1133,8 @@ } }, "id": "DateRangeValues", - "description": "Used to return a list of metrics for a single DateRange / dimension\ncombination" + "description": "Used to return a list of metrics for a single DateRange / dimension\ncombination", + "type": "object" }, "CohortGroup": { "description": "Defines a cohort group.\nFor example:\n\n \"cohortGroup\": {\n \"cohorts\": [{\n \"name\": \"cohort 1\",\n \"type\": \"FIRST_VISIT_DATE\",\n \"dateRange\": { \"startDate\": \"2015-08-01\", \"endDate\": \"2015-08-01\" }\n },{\n \"name\": \"cohort 2\"\n \"type\": \"FIRST_VISIT_DATE\"\n \"dateRange\": { \"startDate\": \"2015-07-01\", \"endDate\": \"2015-07-01\" }\n }]\n }", @@ -678,486 +1153,11 @@ } }, "id": "CohortGroup" - }, - "GetReportsRequest": { - "description": "The batch request containing multiple report request.", - "type": "object", - "properties": { - "reportRequests": { - "description": "Requests, each request will have a separate response.\nThere can be a maximum of 5 requests. All requests should have the same\n`dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.", - "items": { - "$ref": "ReportRequest" - }, - "type": "array" - } - }, - "id": "GetReportsRequest" - }, - "Pivot": { - "description": "The Pivot describes the pivot section in the request.\nThe Pivot helps rearrange the information in the table for certain reports\nby pivoting your data on a second dimension.", - "type": "object", - "properties": { - "maxGroupCount": { - "format": "int32", - "description": "Specifies the maximum number of groups to return.\nThe default value is 10, also the maximum value is 1,000.", - "type": "integer" - }, - "startGroup": { - "format": "int32", - "description": "If k metrics were requested, then the response will contain some\ndata-dependent multiple of k columns in the report. E.g., if you pivoted\non the dimension `ga:browser` then you'd get k columns for \"Firefox\", k\ncolumns for \"IE\", k columns for \"Chrome\", etc. The ordering of the groups\nof columns is determined by descending order of \"total\" for the first of\nthe k values. Ties are broken by lexicographic ordering of the first\npivot dimension, then lexicographic ordering of the second pivot\ndimension, and so on. E.g., if the totals for the first value for\nFirefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns\nwould be Chrome, Firefox, IE.\n\nThe following let you choose which of the groups of k columns are\nincluded in the response.", - "type": "integer" - }, - "metrics": { - "description": "The pivot metrics. Pivot metrics are part of the\nrestriction on total number of metrics allowed in the request.", - "items": { - "$ref": "Metric" - }, - "type": "array" - }, - "dimensionFilterClauses": { - "description": "DimensionFilterClauses are logically combined with an `AND` operator: only\ndata that is included by all these DimensionFilterClauses contributes to\nthe values in this pivot region. Dimension filters can be used to restrict\nthe columns shown in the pivot region. For example if you have\n`ga:browser` as the requested dimension in the pivot region, and you\nspecify key filters to restrict `ga:browser` to only \"IE\" or \"Firefox\",\nthen only those two browsers would show up as columns.", - "items": { - "$ref": "DimensionFilterClause" - }, - "type": "array" - }, - "dimensions": { - "description": "A list of dimensions to show as pivot columns. A Pivot can have a maximum\nof 4 dimensions. Pivot dimensions are part of the restriction on the\ntotal number of dimensions allowed in the request.", - "items": { - "$ref": "Dimension" - }, - "type": "array" - } - }, - "id": "Pivot" - }, - "PivotHeaderEntry": { - "description": "The headers for the each of the metric column corresponding to the metrics\nrequested in the pivots section of the response.", - "type": "object", - "properties": { - "metric": { - "$ref": "MetricHeaderEntry", - "description": "The metric header for the metric in the pivot." - }, - "dimensionNames": { - "description": "The name of the dimensions in the pivot response.", - "items": { - "type": "string" - }, - "type": "array" - }, - "dimensionValues": { - "description": "The values for the dimensions in the pivot.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "PivotHeaderEntry" - }, - "SegmentFilter": { - "description": "SegmentFilter defines the segment to be either a simple or a sequence\nsegment. A simple segment condition contains dimension and metric conditions\nto select the sessions or users. A sequence segment condition can be used to\nselect users or sessions based on sequential conditions.", - "type": "object", - "properties": { - "not": { - "type": "boolean", - "description": "If true, match the complement of simple or sequence segment.\nFor example, to match all visits not from \"New York\", we can define the\nsegment as follows:\n\n \"sessionSegment\": {\n \"segmentFilters\": [{\n \"simpleSegment\" :{\n \"orFiltersForSegment\": [{\n \"segmentFilterClauses\":[{\n \"dimensionFilter\": {\n \"dimensionName\": \"ga:city\",\n \"expressions\": [\"New York\"]\n }\n }]\n }]\n },\n \"not\": \"True\"\n }]\n }," - }, - "simpleSegment": { - "$ref": "SimpleSegment", - "description": "A Simple segment conditions consist of one or more dimension/metric\nconditions that can be combined" - }, - "sequenceSegment": { - "description": "Sequence conditions consist of one or more steps, where each step is\ndefined by one or more dimension/metric conditions. Multiple steps can\nbe combined with special sequence operators.", - "$ref": "SequenceSegment" - } - }, - "id": "SegmentFilter" - }, - "SegmentDefinition": { - "description": "SegmentDefinition defines the segment to be a set of SegmentFilters which\nare combined together with a logical `AND` operation.", - "type": "object", - "properties": { - "segmentFilters": { - "description": "A segment is defined by a set of segment filters which are combined\ntogether with a logical `AND` operation.", - "items": { - "$ref": "SegmentFilter" - }, - "type": "array" - } - }, - "id": "SegmentDefinition" - }, - "MetricHeaderEntry": { - "description": "Header for the metrics.", - "type": "object", - "properties": { - "name": { - "description": "The name of the header.", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "Metric type is unspecified.", - "Integer metric.", - "Float metric.", - "Currency metric.", - "Percentage metric.", - "Time metric in `HH:MM:SS` format." - ], - "enum": [ - "METRIC_TYPE_UNSPECIFIED", - "INTEGER", - "FLOAT", - "CURRENCY", - "PERCENT", - "TIME" - ], - "description": "The type of the metric, for example `INTEGER`.", - "type": "string" - } - }, - "id": "MetricHeaderEntry" - }, - "ReportData": { - "description": "The data part of the report.", - "type": "object", - "properties": { - "samplesReadCounts": { - "description": "If the results are\n[sampled](https://support.google.com/analytics/answer/2637192),\nthis returns the total number of samples read, one entry per date range.\nIf the results are not sampled this field will not be defined. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\nfor details.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "rowCount": { - "format": "int32", - "description": "Total number of matching rows for this query.", - "type": "integer" - }, - "rows": { - "description": "There's one ReportRow for every unique combination of dimensions.", - "items": { - "$ref": "ReportRow" - }, - "type": "array" - }, - "isDataGolden": { - "description": "Indicates if response to this request is golden or not. Data is\ngolden when the exact same request will not produce any new results if\nasked at a later point in time.", - "type": "boolean" - }, - "dataLastRefreshed": { - "type": "string", - "format": "google-datetime", - "description": "The last time the data in the report was refreshed. All the hits received\nbefore this timestamp are included in the calculation of the report." - }, - "maximums": { - "description": "Minimum and maximum values seen over all matching rows. These are both\nempty when `hideValueRanges` in the request is false, or when\nrowCount is zero.", - "items": { - "$ref": "DateRangeValues" - }, - "type": "array" - }, - "minimums": { - "description": "Minimum and maximum values seen over all matching rows. These are both\nempty when `hideValueRanges` in the request is false, or when\nrowCount is zero.", - "items": { - "$ref": "DateRangeValues" - }, - "type": "array" - }, - "samplingSpaceSizes": { - "description": "If the results are\n[sampled](https://support.google.com/analytics/answer/2637192),\nthis returns the total number of\nsamples present, one entry per date range. If the results are not sampled\nthis field will not be defined. See\n[developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)\nfor details.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "totals": { - "description": "For each requested date range, for the set of all rows that match\nthe query, every requested value format gets a total. The total\nfor a value format is computed by first totaling the metrics\nmentioned in the value format and then evaluating the value\nformat as a scalar expression. E.g., The \"totals\" for\n`3 / (ga:sessions + 2)` we compute\n`3 / ((sum of all relevant ga:sessions) + 2)`.\nTotals are computed before pagination.", - "items": { - "$ref": "DateRangeValues" - }, - "type": "array" - } - }, - "id": "ReportData" - }, - "DimensionFilter": { - "properties": { - "expressions": { - "description": "Strings or regular expression to match against. Only the first value of\nthe list is used for comparison unless the operator is `IN_LIST`.\nIf `IN_LIST` operator, then the entire list is used to filter the\ndimensions as explained in the description of the `IN_LIST` operator.", - "items": { - "type": "string" - }, - "type": "array" - }, - "not": { - "type": "boolean", - "description": "Logical `NOT` operator. If this boolean is set to true, then the matching\ndimension values will be excluded in the report. The default is false." - }, - "caseSensitive": { - "description": "Should the match be case sensitive? Default is false.", - "type": "boolean" - }, - "operator": { - "type": "string", - "enumDescriptions": [ - "If the match type is unspecified, it is treated as a `REGEXP`.", - "The match expression is treated as a regular expression. All match types\nare not treated as regular expressions.", - "Matches the value which begin with the match expression provided.", - "Matches the values which end with the match expression provided.", - "Substring match.", - "The value should match the match expression entirely.", - "Integer comparison filters.\ncase sensitivity is ignored for these and the expression\nis assumed to be a string representing an integer.\nFailure conditions:\n\n- If expression is not a valid int64, the client should expect\n an error.\n- Input dimensions that are not valid int64 values will never match the\n filter.", - "Checks if the dimension is numerically greater than the match\nexpression. Read the description for `NUMERIC_EQUALS` for restrictions.", - "Checks if the dimension is numerically less than the match expression.\nRead the description for `NUMERIC_EQUALS` for restrictions.", - "This option is used to specify a dimension filter whose expression can\ntake any value from a selected list of values. This helps avoiding\nevaluating multiple exact match dimension filters which are OR'ed for\nevery single response row. For example:\n\n expressions: [\"A\", \"B\", \"C\"]\n\nAny response row whose dimension has it is value as A, B or C, matches\nthis DimensionFilter." - ], - "enum": [ - "OPERATOR_UNSPECIFIED", - "REGEXP", - "BEGINS_WITH", - "ENDS_WITH", - "PARTIAL", - "EXACT", - "NUMERIC_EQUAL", - "NUMERIC_GREATER_THAN", - "NUMERIC_LESS_THAN", - "IN_LIST" - ], - "description": "How to match the dimension to the expression. The default is REGEXP." - }, - "dimensionName": { - "description": "The dimension to filter on. A DimensionFilter must contain a dimension.", - "type": "string" - } - }, - "id": "DimensionFilter", - "description": "Dimension filter specifies the filtering options on a dimension.", - "type": "object" - }, - "Segment": { - "description": "The segment definition, if the report needs to be segmented.\nA Segment is a subset of the Analytics data. For example, of the entire\nset of users, one Segment might be users from a particular country or city.", - "type": "object", - "properties": { - "dynamicSegment": { - "$ref": "DynamicSegment", - "description": "A dynamic segment definition in the request." - }, - "segmentId": { - "description": "The segment ID of a built-in or custom segment, for example `gaid::-3`.", - "type": "string" - } - }, - "id": "Segment" - }, - "SegmentDimensionFilter": { - "type": "object", - "properties": { - "minComparisonValue": { - "type": "string", - "description": "Minimum comparison values for `BETWEEN` match type." - }, - "maxComparisonValue": { - "description": "Maximum comparison values for `BETWEEN` match type.", - "type": "string" - }, - "dimensionName": { - "description": "Name of the dimension for which the filter is being applied.", - "type": "string" - }, - "operator": { - "description": "The operator to use to match the dimension with the expressions.", - "type": "string", - "enumDescriptions": [ - "If the match type is unspecified, it is treated as a REGEXP.", - "The match expression is treated as a regular expression. All other match\ntypes are not treated as regular expressions.", - "Matches the values which begin with the match expression provided.", - "Matches the values which end with the match expression provided.", - "Substring match.", - "The value should match the match expression entirely.", - "This option is used to specify a dimension filter whose expression can\ntake any value from a selected list of values. This helps avoiding\nevaluating multiple exact match dimension filters which are OR'ed for\nevery single response row. For example:\n\n expressions: [\"A\", \"B\", \"C\"]\n\nAny response row whose dimension has it is value as A, B or C, matches\nthis DimensionFilter.", - "Integer comparison filters.\ncase sensitivity is ignored for these and the expression\nis assumed to be a string representing an integer.\nFailure conditions:\n\n- if expression is not a valid int64, the client should expect\n an error.\n- input dimensions that are not valid int64 values will never match the\n filter.\n\nChecks if the dimension is numerically less than the match expression.", - "Checks if the dimension is numerically greater than the match\nexpression.", - "Checks if the dimension is numerically between the minimum and maximum\nof the match expression, boundaries excluded." - ], - "enum": [ - "OPERATOR_UNSPECIFIED", - "REGEXP", - "BEGINS_WITH", - "ENDS_WITH", - "PARTIAL", - "EXACT", - "IN_LIST", - "NUMERIC_LESS_THAN", - "NUMERIC_GREATER_THAN", - "NUMERIC_BETWEEN" - ] - }, - "expressions": { - "description": "The list of expressions, only the first element is used for all operators", - "items": { - "type": "string" - }, - "type": "array" - }, - "caseSensitive": { - "description": "Should the match be case sensitive, ignored for `IN_LIST` operator.", - "type": "boolean" - } - }, - "id": "SegmentDimensionFilter", - "description": "Dimension filter specifies the filtering options on a dimension." - }, - "OrderBy": { - "description": "Specifies the sorting options.", - "type": "object", - "properties": { - "sortOrder": { - "description": "The sorting order for the field.", - "type": "string", - "enumDescriptions": [ - "If the sort order is unspecified, the default is ascending.", - "Ascending sort. The field will be sorted in an ascending manner.", - "Descending sort. The field will be sorted in a descending manner." - ], - "enum": [ - "SORT_ORDER_UNSPECIFIED", - "ASCENDING", - "DESCENDING" - ] - }, - "orderType": { - "enumDescriptions": [ - "Unspecified order type will be treated as sort based on value.", - "The sort order is based on the value of the chosen column; looks only at\nthe first date range.", - "The sort order is based on the difference of the values of the chosen\ncolumn between the first two date ranges. Usable only if there are\nexactly two date ranges.", - "The sort order is based on weighted value of the chosen column. If\ncolumn has n/d format, then weighted value of this ratio will\nbe `(n + totals.n)/(d + totals.d)` Usable only for metrics that\nrepresent ratios.", - "Histogram order type is applicable only to dimension columns with\nnon-empty histogram-buckets.", - "If the dimensions are fixed length numbers, ordinary sort would just\nwork fine. `DIMENSION_AS_INTEGER` can be used if the dimensions are\nvariable length numbers." - ], - "enum": [ - "ORDER_TYPE_UNSPECIFIED", - "VALUE", - "DELTA", - "SMART", - "HISTOGRAM_BUCKET", - "DIMENSION_AS_INTEGER" - ], - "description": "The order type. The default orderType is `VALUE`.", - "type": "string" - }, - "fieldName": { - "description": "The field which to sort by. The default sort order is ascending. Example:\n`ga:browser`.\nNote, that you can only specify one field for sort here. For example,\n`ga:browser, ga:city` is not valid.", - "type": "string" - } - }, - "id": "OrderBy" - }, - "SegmentSequenceStep": { - "type": "object", - "properties": { - "orFiltersForSegment": { - "description": "A sequence is specified with a list of Or grouped filters which are\ncombined with `AND` operator.", - "items": { - "$ref": "OrFiltersForSegment" - }, - "type": "array" - }, - "matchType": { - "description": "Specifies if the step immediately precedes or can be any time before the\nnext step.", - "type": "string", - "enumDescriptions": [ - "Unspecified match type is treated as precedes.", - "Operator indicates that the previous step precedes the next step.", - "Operator indicates that the previous step immediately precedes the next\nstep." - ], - "enum": [ - "UNSPECIFIED_MATCH_TYPE", - "PRECEDES", - "IMMEDIATELY_PRECEDES" - ] - } - }, - "id": "SegmentSequenceStep", - "description": "A segment sequence definition." - }, - "Metric": { - "description": "[Metrics](https://support.google.com/analytics/answer/1033861)\nare the quantitative measurements. For example, the metric `ga:users`\nindicates the total number of users for the requested time period.", - "type": "object", - "properties": { - "expression": { - "description": "A metric expression in the request. An expression is constructed from one\nor more metrics and numbers. Accepted operators include: Plus (+), Minus\n(-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,\nPositive cardinal numbers (0-9), can include decimals and is limited to\n1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the\nmetric expression is just a single metric name like `ga:users`.\nAdding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics\nwill result in unexpected results.", - "type": "string" - }, - "formattingType": { - "enum": [ - "METRIC_TYPE_UNSPECIFIED", - "INTEGER", - "FLOAT", - "CURRENCY", - "PERCENT", - "TIME" - ], - "description": "Specifies how the metric expression should be formatted, for example\n`INTEGER`.", - "type": "string", - "enumDescriptions": [ - "Metric type is unspecified.", - "Integer metric.", - "Float metric.", - "Currency metric.", - "Percentage metric.", - "Time metric in `HH:MM:SS` format." - ] - }, - "alias": { - "description": "An alias for the metric expression is an alternate name for the\nexpression. The alias can be used for filtering and sorting. This field\nis optional and is useful if the expression is not a single metric but\na complex expression which cannot be used in filtering and sorting.\nThe alias is also used in the response column header.", - "type": "string" - } - }, - "id": "Metric" - }, - "PivotValueRegion": { - "description": "The metric values in the pivot region.", - "type": "object", - "properties": { - "values": { - "description": "The values of the metrics in each of the pivot regions.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "PivotValueRegion" - }, - "Report": { - "description": "The data response corresponding to the request.", - "type": "object", - "properties": { - "columnHeader": { - "$ref": "ColumnHeader", - "description": "The column headers." - }, - "nextPageToken": { - "description": "Page token to retrieve the next page of results in the list.", - "type": "string" - }, - "data": { - "description": "Response data.", - "$ref": "ReportData" - } - }, - "id": "Report" } }, "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "protocol": "rest", - "canonicalName": "AnalyticsReporting" + "protocol": "rest" } diff --git a/vendor/google.golang.org/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json b/vendor/google.golang.org/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json index a725a2b4b..3fef722b2 100644 --- a/vendor/google.golang.org/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json +++ b/vendor/google.golang.org/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json @@ -1,19 +1,14 @@ { - "basePath": "", - "ownerDomain": "google.com", - "name": "androiddeviceprovisioning", - "batchPath": "batch", - "id": "androiddeviceprovisioning:v1", - "documentationLink": "https://developers.google.com/zero-touch/", - "revision": "20170923", - "title": "Android Device Provisioning Partner API", - "ownerName": "Google", "discoveryVersion": "v1", + "ownerName": "Google", "version_module": true, "resources": { "operations": { "methods": { "get": { + "flatPath": "v1/operations/{operationsId}", + "path": "v1/{+name}", + "id": "androiddeviceprovisioning.operations.get", "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", "response": { "$ref": "Operation" @@ -24,31 +19,86 @@ "httpMethod": "GET", "parameters": { "name": { - "location": "path", "description": "The name of the operation resource.", "required": true, "type": "string", - "pattern": "^operations/.+$" + "pattern": "^operations/.+$", + "location": "path" } - }, - "flatPath": "v1/operations/{operationsId}", - "path": "v1/{+name}", - "id": "androiddeviceprovisioning.operations.get" + } } } }, "partners": { "resources": { - "devices": { + "customers": { "methods": { - "claimAsync": { + "create": { + "response": { + "$ref": "Company" + }, + "parameterOrder": [ + "parent" + ], "httpMethod": "POST", + "parameters": { + "parent": { + "pattern": "^partners/[^/]+$", + "location": "path", + "description": "Required. The parent resource ID in format `partners/[PARTNER_ID]` that\nidentifies the reseller.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/partners/{partnersId}/customers", + "path": "v1/{+parent}/customers", + "id": "androiddeviceprovisioning.partners.customers.create", + "request": { + "$ref": "CreateCustomerRequest" + }, + "description": "Creates a customer for zero-touch enrollment. After the method returns\nsuccessfully, admin and owner roles can manage devices and EMM configs\nby calling API methods or using their zero-touch enrollment portal. The API\ndoesn't notify the customer that they have access." + }, + "list": { + "flatPath": "v1/partners/{partnersId}/customers", + "path": "v1/partners/{+partnerId}/customers", + "id": "androiddeviceprovisioning.partners.customers.list", + "description": "Lists the customers that are enrolled to the reseller identified by the\n`partnerId` argument. This list includes customers that the reseller\ncreated and customers that enrolled themselves using the portal.", + "response": { + "$ref": "ListCustomersResponse" + }, "parameterOrder": [ "partnerId" ], + "httpMethod": "GET", + "parameters": { + "partnerId": { + "pattern": "^[^/]+$", + "format": "int64", + "required": true, + "type": "string", + "location": "path", + "description": "The ID of the partner." + } + } + } + } + }, + "devices": { + "methods": { + "claimAsync": { + "path": "v1/partners/{+partnerId}/devices:claimAsync", + "id": "androiddeviceprovisioning.partners.devices.claimAsync", + "description": "Claim devices asynchronously.", + "request": { + "$ref": "ClaimDevicesRequest" + }, "response": { "$ref": "Operation" }, + "parameterOrder": [ + "partnerId" + ], + "httpMethod": "POST", "parameters": { "partnerId": { "location": "path", @@ -59,41 +109,39 @@ "type": "string" } }, - "flatPath": "v1/partners/{partnersId}/devices:claimAsync", - "id": "androiddeviceprovisioning.partners.devices.claimAsync", - "path": "v1/partners/{+partnerId}/devices:claimAsync", - "request": { - "$ref": "ClaimDevicesRequest" - }, - "description": "Claim devices asynchronously." + "flatPath": "v1/partners/{partnersId}/devices:claimAsync" }, "findByIdentifier": { - "request": { - "$ref": "FindDevicesByDeviceIdentifierRequest" - }, - "description": "Find devices by device identifier.", - "httpMethod": "POST", - "parameterOrder": [ - "partnerId" - ], "response": { "$ref": "FindDevicesByDeviceIdentifierResponse" }, + "parameterOrder": [ + "partnerId" + ], + "httpMethod": "POST", "parameters": { "partnerId": { - "format": "int64", - "required": true, - "type": "string", "location": "path", "description": "ID of the partner.", - "pattern": "^[^/]+$" + "pattern": "^[^/]+$", + "format": "int64", + "required": true, + "type": "string" } }, "flatPath": "v1/partners/{partnersId}/devices:findByIdentifier", + "path": "v1/partners/{+partnerId}/devices:findByIdentifier", "id": "androiddeviceprovisioning.partners.devices.findByIdentifier", - "path": "v1/partners/{+partnerId}/devices:findByIdentifier" + "request": { + "$ref": "FindDevicesByDeviceIdentifierRequest" + }, + "description": "Find devices by device identifier." }, "unclaimAsync": { + "request": { + "$ref": "UnclaimDevicesRequest" + }, + "description": "Unclaim devices asynchronously.", "response": { "$ref": "Operation" }, @@ -103,92 +151,88 @@ "httpMethod": "POST", "parameters": { "partnerId": { + "pattern": "^[^/]+$", "format": "int64", "required": true, "type": "string", "location": "path", - "description": "Partner ID.", - "pattern": "^[^/]+$" + "description": "Partner ID." } }, "flatPath": "v1/partners/{partnersId}/devices:unclaimAsync", "path": "v1/partners/{+partnerId}/devices:unclaimAsync", - "id": "androiddeviceprovisioning.partners.devices.unclaimAsync", - "description": "Unclaim devices asynchronously.", - "request": { - "$ref": "UnclaimDevicesRequest" - } + "id": "androiddeviceprovisioning.partners.devices.unclaimAsync" }, "metadata": { - "httpMethod": "POST", + "response": { + "$ref": "DeviceMetadata" + }, "parameterOrder": [ "metadataOwnerId", "deviceId" ], - "response": { - "$ref": "DeviceMetadata" - }, + "httpMethod": "POST", "parameters": { - "metadataOwnerId": { - "format": "int64", - "type": "string", - "required": true, - "location": "path", - "description": "The owner of the newly set metadata. Set this to the partner ID.", - "pattern": "^[^/]+$" - }, "deviceId": { - "location": "path", "description": "ID of the partner.", "pattern": "^[^/]+$", "format": "int64", "required": true, - "type": "string" + "type": "string", + "location": "path" + }, + "metadataOwnerId": { + "pattern": "^[^/]+$", + "format": "int64", + "required": true, + "type": "string", + "location": "path", + "description": "The owner of the newly set metadata. Set this to the partner ID." } }, "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata", - "id": "androiddeviceprovisioning.partners.devices.metadata", "path": "v1/partners/{+metadataOwnerId}/devices/{+deviceId}/metadata", + "id": "androiddeviceprovisioning.partners.devices.metadata", "request": { "$ref": "UpdateDeviceMetadataRequest" }, "description": "Update the metadata." }, "updateMetadataAsync": { + "path": "v1/partners/{+partnerId}/devices:updateMetadataAsync", + "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync", "request": { "$ref": "UpdateDeviceMetadataInBatchRequest" }, "description": "Set metadata in batch asynchronously.", - "httpMethod": "POST", - "parameterOrder": [ - "partnerId" - ], "response": { "$ref": "Operation" }, + "parameterOrder": [ + "partnerId" + ], + "httpMethod": "POST", "parameters": { "partnerId": { + "location": "path", "description": "Partner ID.", "pattern": "^[^/]+$", "format": "int64", "required": true, - "type": "string", - "location": "path" + "type": "string" } }, - "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync", - "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync", - "path": "v1/partners/{+partnerId}/devices:updateMetadataAsync" + "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync" }, "get": { "description": "Get a device.", "httpMethod": "GET", - "response": { - "$ref": "Device" - }, "parameterOrder": [ "name" ], + "response": { + "$ref": "Device" + }, "parameters": { "name": { "description": "Resource name in `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", @@ -203,13 +247,13 @@ "path": "v1/{+name}" }, "unclaim": { - "httpMethod": "POST", - "parameterOrder": [ - "partnerId" - ], "response": { "$ref": "Empty" }, + "parameterOrder": [ + "partnerId" + ], + "httpMethod": "POST", "parameters": { "partnerId": { "format": "int64", @@ -221,25 +265,27 @@ } }, "flatPath": "v1/partners/{partnersId}/devices:unclaim", - "id": "androiddeviceprovisioning.partners.devices.unclaim", "path": "v1/partners/{+partnerId}/devices:unclaim", + "id": "androiddeviceprovisioning.partners.devices.unclaim", "request": { "$ref": "UnclaimDeviceRequest" }, "description": "Unclaim the device identified by the `device_id` or the `deviceIdentifier`." }, "findByOwner": { + "id": "androiddeviceprovisioning.partners.devices.findByOwner", + "path": "v1/partners/{+partnerId}/devices:findByOwner", "request": { "$ref": "FindDevicesByOwnerRequest" }, "description": "Find devices by ownership.", - "response": { - "$ref": "FindDevicesByOwnerResponse" - }, + "httpMethod": "POST", "parameterOrder": [ "partnerId" ], - "httpMethod": "POST", + "response": { + "$ref": "FindDevicesByOwnerResponse" + }, "parameters": { "partnerId": { "format": "int64", @@ -250,87 +296,33 @@ "pattern": "^[^/]+$" } }, - "flatPath": "v1/partners/{partnersId}/devices:findByOwner", - "path": "v1/partners/{+partnerId}/devices:findByOwner", - "id": "androiddeviceprovisioning.partners.devices.findByOwner" + "flatPath": "v1/partners/{partnersId}/devices:findByOwner" }, "claim": { "request": { "$ref": "ClaimDeviceRequest" }, "description": "Claim the device identified by device identifier.", - "httpMethod": "POST", - "parameterOrder": [ - "partnerId" - ], "response": { "$ref": "ClaimDeviceResponse" }, - "parameters": { - "partnerId": { - "location": "path", - "description": "ID of the partner.", - "pattern": "^[^/]+$", - "format": "int64", - "required": true, - "type": "string" - } - }, - "flatPath": "v1/partners/{partnersId}/devices:claim", - "id": "androiddeviceprovisioning.partners.devices.claim", - "path": "v1/partners/{+partnerId}/devices:claim" - } - } - }, - "customers": { - "methods": { - "list": { - "description": "Lists the customers that are enrolled to the reseller identified by the\n`partnerId` argument. This list includes customers that the reseller\ncreated and customers that enrolled themselves using the portal.", - "response": { - "$ref": "ListCustomersResponse" - }, "parameterOrder": [ "partnerId" ], - "httpMethod": "GET", + "httpMethod": "POST", "parameters": { "partnerId": { + "description": "ID of the partner.", + "pattern": "^[^/]+$", "format": "int64", "type": "string", "required": true, - "location": "path", - "description": "The ID of the partner.", - "pattern": "^[^/]+$" - } - }, - "flatPath": "v1/partners/{partnersId}/customers", - "path": "v1/partners/{+partnerId}/customers", - "id": "androiddeviceprovisioning.partners.customers.list" - }, - "create": { - "response": { - "$ref": "Company" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "description": "Required. The parent resource ID in format `partners/[PARTNER_ID]` that\nidentifies the reseller.", - "required": true, - "type": "string", - "pattern": "^partners/[^/]+$", "location": "path" } }, - "flatPath": "v1/partners/{partnersId}/customers", - "path": "v1/{+parent}/customers", - "id": "androiddeviceprovisioning.partners.customers.create", - "request": { - "$ref": "CreateCustomerRequest" - }, - "description": "Creates a customer for zero-touch enrollment. After the method returns\nsuccessfully, admin and owner roles can manage devices and EMM configs\nby calling API methods or using their zero-touch enrollment portal. The API\ndoesn't notify the customer that they have access." + "flatPath": "v1/partners/{partnersId}/devices:claim", + "path": "v1/partners/{+partnerId}/devices:claim", + "id": "androiddeviceprovisioning.partners.devices.claim" } } } @@ -338,14 +330,20 @@ } }, "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", "location": "query" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", "type": "string" }, "upload_protocol": { @@ -369,11 +367,6 @@ "type": "string", "location": "query" }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, "$.xgafv": { "description": "V1 error format.", "type": "string", @@ -387,8 +380,12 @@ "2" ] }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, "alt": { - "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -401,7 +398,8 @@ "json", "media", "proto" - ] + ], + "type": "string" }, "access_token": { "description": "OAuth access token.", @@ -409,120 +407,17 @@ "location": "query" }, "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.", - "type": "string", - "location": "query" - }, - "quotaUser": { "location": "query", - "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.", + "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.", "type": "string" }, - "pp": { - "description": "Pretty-print response.", - "type": "boolean", - "default": "true", + "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.", + "type": "string", "location": "query" } }, "schemas": { - "Company": { - "description": "A customer resource in the zero-touch enrollment API.", - "type": "object", - "properties": { - "companyId": { - "description": "Output only. The ID of the company. Assigned by the server.", - "format": "int64", - "type": "string" - }, - "companyName": { - "description": "Required. The name of the company. For example _XYZ Corp_. Characters\nallowed are: Latin letters, numerals, hyphens, and spaces. Displayed to the\ncustomer's employees in the zero-touch enrollment portal.", - "type": "string" - }, - "name": { - "description": "Output only. The API resource name of the company in the format\n`partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`. Assigned by the server.", - "type": "string" - }, - "adminEmails": { - "description": "Input only. Optional. Email address of customer's users in the admin role.\nEach email address must be associated with a Google Account.", - "type": "array", - "items": { - "type": "string" - } - }, - "ownerEmails": { - "description": "Input only. Email address of customer's users in the owner role. At least\none `owner_email` is required. Each email address must be associated with a\nGoogle Account. Owners share the same access as admins but can also add,\ndelete, and edit your organization's portal users.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "id": "Company" - }, - "UpdateDeviceMetadataRequest": { - "description": "Request to set metadata for a device.", - "type": "object", - "properties": { - "deviceMetadata": { - "$ref": "DeviceMetadata", - "description": "The metdata to set." - } - }, - "id": "UpdateDeviceMetadataRequest" - }, - "PartnerUnclaim": { - "description": "Identifies one unclaim request.", - "type": "object", - "properties": { - "deviceIdentifier": { - "description": "Device identifier of the device.", - "$ref": "DeviceIdentifier" - }, - "sectionType": { - "description": "Section type to unclaim.", - "type": "string", - "enumDescriptions": [ - "Unspecified section type.", - "Zero touch section type." - ], - "enum": [ - "SECTION_TYPE_UNSPECIFIED", - "SECTION_TYPE_ZERO_TOUCH" - ] - }, - "deviceId": { - "description": "Device ID of the device.", - "format": "int64", - "type": "string" - } - }, - "id": "PartnerUnclaim" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "FindDevicesByDeviceIdentifierResponse": { - "description": "Response containing found devices.", - "type": "object", - "properties": { - "devices": { - "description": "Found devices.", - "type": "array", - "items": { - "$ref": "Device" - } - }, - "nextPageToken": { - "description": "Page token of the next page.", - "type": "string" - } - }, - "id": "FindDevicesByDeviceIdentifierResponse" - }, "PartnerClaim": { "description": "Identifies one claim request.", "type": "object", @@ -559,9 +454,14 @@ "description": "Request message to unclaim a device.", "type": "object", "properties": { + "deviceId": { + "description": "The device ID returned by `ClaimDevice`.", + "format": "int64", + "type": "string" + }, "deviceIdentifier": { - "$ref": "DeviceIdentifier", - "description": "The device identifier you used when you claimed this device." + "description": "The device identifier you used when you claimed this device.", + "$ref": "DeviceIdentifier" }, "sectionType": { "enumDescriptions": [ @@ -574,11 +474,6 @@ ], "description": "The section type to unclaim for.", "type": "string" - }, - "deviceId": { - "description": "The device ID returned by `ClaimDevice`.", - "format": "int64", - "type": "string" } }, "id": "UnclaimDeviceRequest" @@ -588,11 +483,11 @@ "type": "object", "properties": { "entries": { - "description": "Metadata entries", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Metadata entries", + "type": "object" } }, "id": "DeviceMetadata" @@ -626,8 +521,6 @@ "type": "string" }, "sectionType": { - "description": "Section type of the device claim.", - "type": "string", "enumDescriptions": [ "Unspecified section type.", "Zero touch section type." @@ -635,27 +528,16 @@ "enum": [ "SECTION_TYPE_UNSPECIFIED", "SECTION_TYPE_ZERO_TOUCH" - ] + ], + "description": "Section type of the device claim.", + "type": "string" } }, "id": "DeviceClaim" }, "PerDeviceStatusInBatch": { - "description": "Stores the processing result for each device.", - "type": "object", "properties": { - "errorMessage": { - "description": "Error message.", - "type": "string" - }, - "deviceId": { - "description": "Device ID of the device if process succeeds.", - "format": "int64", - "type": "string" - }, "status": { - "description": "Process result.", - "type": "string", "enumDescriptions": [ "Invalid code. Shouldn't be used.", "Unknown error.\nWe don't expect this error to occur here.", @@ -675,14 +557,41 @@ "SINGLE_DEVICE_STATUS_INVALID_DEVICE_IDENTIFIER", "SINGLE_DEVICE_STATUS_INVALID_SECTION_TYPE", "SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS" - ] + ], + "description": "Process result.", + "type": "string" }, "errorIdentifier": { "description": "Error identifier.", "type": "string" + }, + "errorMessage": { + "description": "Error message.", + "type": "string" + }, + "deviceId": { + "description": "Device ID of the device if process succeeds.", + "format": "int64", + "type": "string" } }, - "id": "PerDeviceStatusInBatch" + "id": "PerDeviceStatusInBatch", + "description": "Stores the processing result for each device.", + "type": "object" + }, + "ClaimDevicesRequest": { + "properties": { + "claims": { + "description": "List of claims.", + "type": "array", + "items": { + "$ref": "PartnerClaim" + } + } + }, + "id": "ClaimDevicesRequest", + "description": "Request to claim devices asynchronously in batch.", + "type": "object" }, "FindDevicesByOwnerRequest": { "description": "Request to find devices by customers.", @@ -720,43 +629,6 @@ }, "id": "FindDevicesByOwnerRequest" }, - "ClaimDevicesRequest": { - "description": "Request to claim devices asynchronously in batch.", - "type": "object", - "properties": { - "claims": { - "description": "List of claims.", - "type": "array", - "items": { - "$ref": "PartnerClaim" - } - } - }, - "id": "ClaimDevicesRequest" - }, - "DeviceIdentifier": { - "description": "Identifies a unique device.", - "type": "object", - "properties": { - "imei": { - "description": "IMEI number.", - "type": "string" - }, - "meid": { - "description": "MEID number.", - "type": "string" - }, - "manufacturer": { - "description": "Manufacturer name to match `android.os.Build.MANUFACTURER` (required).\nAllowed values listed in\n[manufacturer names](/zero-touch/resources/manufacturer-names).", - "type": "string" - }, - "serialNumber": { - "description": "Serial number (optional).", - "type": "string" - } - }, - "id": "DeviceIdentifier" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", @@ -782,19 +654,40 @@ "description": "This field will always be not set if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. In this case, error information for each device is set in `response.perDeviceStatus.result.status`." }, "metadata": { + "description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.", + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - }, - "description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.", - "type": "object" + } } }, "id": "Operation" }, - "UnclaimDevicesRequest": { - "description": "Request to unclaim devices asynchronously in batch.", + "DeviceIdentifier": { + "description": "Identifies a unique device.", "type": "object", + "properties": { + "imei": { + "description": "IMEI number.", + "type": "string" + }, + "meid": { + "description": "MEID number.", + "type": "string" + }, + "manufacturer": { + "description": "Manufacturer name to match `android.os.Build.MANUFACTURER` (required).\nAllowed values listed in\n[manufacturer names](/zero-touch/resources/manufacturer-names).", + "type": "string" + }, + "serialNumber": { + "description": "Serial number (optional).", + "type": "string" + } + }, + "id": "DeviceIdentifier" + }, + "UnclaimDevicesRequest": { "properties": { "unclaims": { "description": "List of devices to unclaim.", @@ -804,34 +697,9 @@ } } }, - "id": "UnclaimDevicesRequest" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - } - }, - "id": "Status" + "id": "UnclaimDevicesRequest", + "description": "Request to unclaim devices asynchronously in batch.", + "type": "object" }, "FindDevicesByDeviceIdentifierRequest": { "description": "Request to find devices.", @@ -843,8 +711,8 @@ "type": "string" }, "deviceIdentifier": { - "description": "The device identifier to search.", - "$ref": "DeviceIdentifier" + "$ref": "DeviceIdentifier", + "description": "The device identifier to search." }, "pageToken": { "description": "Page token.", @@ -853,10 +721,41 @@ }, "id": "FindDevicesByDeviceIdentifierRequest" }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status" + }, "OperationPerDevice": { "description": "Operation the server received for every device.", "type": "object", "properties": { + "updateMetadata": { + "description": "Request to set metadata for a device.", + "$ref": "UpdateMetadataArguments" + }, "unclaim": { "description": "Request to unclaim a device.", "$ref": "PartnerUnclaim" @@ -866,12 +765,8 @@ "description": "Processing result for every device." }, "claim": { - "$ref": "PartnerClaim", - "description": "Request to claim a device." - }, - "updateMetadata": { - "$ref": "UpdateMetadataArguments", - "description": "Request to set metadata for a device." + "description": "Request to claim a device.", + "$ref": "PartnerClaim" } }, "id": "OperationPerDevice" @@ -880,60 +775,27 @@ "description": "Response containing found devices.", "type": "object", "properties": { + "nextPageToken": { + "description": "Page token of the next page.", + "type": "string" + }, "devices": { "description": "Devices found.", "type": "array", "items": { "$ref": "Device" } - }, - "nextPageToken": { - "description": "Page token of the next page.", - "type": "string" } }, "id": "FindDevicesByOwnerResponse" }, - "DevicesLongRunningOperationMetadata": { - "description": "Long running operation metadata.", - "type": "object", - "properties": { - "progress": { - "description": "Processing progress from 0 to 100.", - "format": "int32", - "type": "integer" - }, - "devicesCount": { - "description": "Number of devices parsed in your requests.", - "format": "int32", - "type": "integer" - }, - "processingStatus": { - "description": "The overall processing status.", - "type": "string", - "enumDescriptions": [ - "Invalid code. Shouldn't be used.", - "Pending.", - "In progress.", - "Processed.\nThis doesn't mean all items were processed sucessfully, you should\ncheck the `response` field for the result of every item." - ], - "enum": [ - "BATCH_PROCESS_STATUS_UNSPECIFIED", - "BATCH_PROCESS_PENDING", - "BATCH_PROCESS_IN_PROGRESS", - "BATCH_PROCESS_PROCESSED" - ] - } - }, - "id": "DevicesLongRunningOperationMetadata" - }, "ClaimDeviceRequest": { "description": "Request message to claim a device on behalf of a customer.", "type": "object", "properties": { "deviceIdentifier": { - "$ref": "DeviceIdentifier", - "description": "The device identifier of the device to claim." + "description": "The device identifier of the device to claim.", + "$ref": "DeviceIdentifier" }, "sectionType": { "enumDescriptions": [ @@ -955,9 +817,40 @@ }, "id": "ClaimDeviceRequest" }, - "UpdateDeviceMetadataInBatchRequest": { - "description": "Request to update device metadata in batch.", + "DevicesLongRunningOperationMetadata": { + "description": "Long running operation metadata.", "type": "object", + "properties": { + "processingStatus": { + "enumDescriptions": [ + "Invalid code. Shouldn't be used.", + "Pending.", + "In progress.", + "Processed.\nThis doesn't mean all items were processed sucessfully, you should\ncheck the `response` field for the result of every item." + ], + "enum": [ + "BATCH_PROCESS_STATUS_UNSPECIFIED", + "BATCH_PROCESS_PENDING", + "BATCH_PROCESS_IN_PROGRESS", + "BATCH_PROCESS_PROCESSED" + ], + "description": "The overall processing status.", + "type": "string" + }, + "progress": { + "description": "Processing progress from 0 to 100.", + "format": "int32", + "type": "integer" + }, + "devicesCount": { + "description": "Number of devices parsed in your requests.", + "format": "int32", + "type": "integer" + } + }, + "id": "DevicesLongRunningOperationMetadata" + }, + "UpdateDeviceMetadataInBatchRequest": { "properties": { "updates": { "description": "List of metadata updates.", @@ -967,7 +860,9 @@ } } }, - "id": "UpdateDeviceMetadataInBatchRequest" + "id": "UpdateDeviceMetadataInBatchRequest", + "description": "Request to update device metadata in batch.", + "type": "object" }, "ListCustomersResponse": { "description": "Response message of all customers related to this partner.", @@ -983,15 +878,26 @@ }, "id": "ListCustomersResponse" }, + "ClaimDeviceResponse": { + "description": "Response message containing device id of the claim.", + "type": "object", + "properties": { + "deviceId": { + "description": "The device ID of the claimed device.", + "format": "int64", + "type": "string" + }, + "deviceName": { + "description": "The resource name of the device in the format\n`partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", + "type": "string" + } + }, + "id": "ClaimDeviceResponse" + }, "UpdateMetadataArguments": { "description": "Identifies metdata updates to one device.", "type": "object", "properties": { - "deviceId": { - "description": "Device ID of the device.", - "format": "int64", - "type": "string" - }, "deviceIdentifier": { "description": "Device identifier.", "$ref": "DeviceIdentifier" @@ -999,30 +905,28 @@ "deviceMetadata": { "$ref": "DeviceMetadata", "description": "The metadata to update." - } - }, - "id": "UpdateMetadataArguments" - }, - "ClaimDeviceResponse": { - "description": "Response message containing device id of the claim.", - "type": "object", - "properties": { - "deviceName": { - "description": "The resource name of the device in the format\n`partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", - "type": "string" }, "deviceId": { - "description": "The device ID of the claimed device.", + "description": "Device ID of the device.", "format": "int64", "type": "string" } }, - "id": "ClaimDeviceResponse" + "id": "UpdateMetadataArguments" }, "Device": { "description": "An Android device.", "type": "object", "properties": { + "deviceId": { + "description": "Device ID.", + "format": "int64", + "type": "string" + }, + "configuration": { + "description": "The resource name of the configuration.\nOnly set for customers.", + "type": "string" + }, "claims": { "description": "Claims.", "type": "array", @@ -1031,8 +935,8 @@ } }, "deviceIdentifier": { - "description": "Device identifier.", - "$ref": "DeviceIdentifier" + "$ref": "DeviceIdentifier", + "description": "Device identifier." }, "deviceMetadata": { "description": "Device metadata.", @@ -1041,15 +945,6 @@ "name": { "description": "Resource name in `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.", "type": "string" - }, - "deviceId": { - "description": "Device ID.", - "format": "int64", - "type": "string" - }, - "configuration": { - "description": "The resource name of the configuration.\nOnly set for customers.", - "type": "string" } }, "id": "Device" @@ -1059,17 +954,114 @@ "type": "object", "properties": { "customer": { - "$ref": "Company", - "description": "Required. The company data to populate the new customer. Must contain a\nvalue for `companyName` and at least one `owner_email` that's associated\nwith a Google Account. The values for `companyId` and `name` must be empty." + "description": "Required. The company data to populate the new customer. Must contain a\nvalue for `companyName` and at least one `owner_email` that's associated\nwith a Google Account. The values for `companyId` and `name` must be empty.", + "$ref": "Company" } }, "id": "CreateCustomerRequest" + }, + "Company": { + "properties": { + "ownerEmails": { + "description": "Input only. Email address of customer's users in the owner role. At least\none `owner_email` is required. Each email address must be associated with a\nGoogle Account. Owners share the same access as admins but can also add,\ndelete, and edit your organization's portal users.", + "type": "array", + "items": { + "type": "string" + } + }, + "companyId": { + "description": "Output only. The ID of the company. Assigned by the server.", + "format": "int64", + "type": "string" + }, + "companyName": { + "description": "Required. The name of the company. For example _XYZ Corp_. Characters\nallowed are: Latin letters, numerals, hyphens, and spaces. Displayed to the\ncustomer's employees in the zero-touch enrollment portal.", + "type": "string" + }, + "name": { + "description": "Output only. The API resource name of the company in the format\n`partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`. Assigned by the server.", + "type": "string" + }, + "adminEmails": { + "description": "Input only. Optional. Email address of customer's users in the admin role.\nEach email address must be associated with a Google Account.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "Company", + "description": "A customer resource in the zero-touch enrollment API.", + "type": "object" + }, + "UpdateDeviceMetadataRequest": { + "description": "Request to set metadata for a device.", + "type": "object", + "properties": { + "deviceMetadata": { + "$ref": "DeviceMetadata", + "description": "The metdata to set." + } + }, + "id": "UpdateDeviceMetadataRequest" + }, + "PartnerUnclaim": { + "description": "Identifies one unclaim request.", + "type": "object", + "properties": { + "deviceIdentifier": { + "description": "Device identifier of the device.", + "$ref": "DeviceIdentifier" + }, + "sectionType": { + "enumDescriptions": [ + "Unspecified section type.", + "Zero touch section type." + ], + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "SECTION_TYPE_ZERO_TOUCH" + ], + "description": "Section type to unclaim.", + "type": "string" + }, + "deviceId": { + "description": "Device ID of the device.", + "format": "int64", + "type": "string" + } + }, + "id": "PartnerUnclaim" + }, + "Empty": { + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" + }, + "FindDevicesByDeviceIdentifierResponse": { + "properties": { + "devices": { + "description": "Found devices.", + "type": "array", + "items": { + "$ref": "Device" + } + }, + "nextPageToken": { + "description": "Page token of the next page.", + "type": "string" + } + }, + "id": "FindDevicesByDeviceIdentifierResponse", + "description": "Response containing found devices.", + "type": "object" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "version": "v1", "baseUrl": "https://androiddeviceprovisioning.googleapis.com/", @@ -1077,5 +1069,13 @@ "kind": "discovery#restDescription", "description": "Automates reseller integration into zero-touch enrollment by assigning devices to customers and creating device reports.", "servicePath": "", - "rootUrl": "https://androiddeviceprovisioning.googleapis.com/" + "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "androiddeviceprovisioning", + "batchPath": "batch", + "revision": "20171014", + "id": "androiddeviceprovisioning:v1", + "documentationLink": "https://developers.google.com/zero-touch/", + "title": "Android Device Provisioning Partner API" } diff --git a/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-api.json b/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-api.json index 50d398841..a08a968b4 100644 --- a/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-api.json +++ b/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/eOnhI7vohdeU44iGbzR45SHL-EI\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/c_-peugeTpeeazYGijvbxbAUiRg\"", "discoveryVersion": "v1", "id": "androidenterprise:v1", "name": "androidenterprise", "canonicalName": "Android Enterprise", "version": "v1", - "revision": "20170911", + "revision": "20171006", "title": "Google Play EMM API", "description": "Manages the deployment of apps to Android for Work users.", "ownerDomain": "google.com", @@ -268,6 +268,10 @@ "type": "object", "description": "This represents a single version of the app.", "properties": { + "track": { + "type": "string", + "description": "The track that this app was published in. For example if track is \"alpha\", this is an alpha version of the app." + }, "versionCode": { "type": "integer", "description": "Unique increasing identifier for the app version.", @@ -493,7 +497,7 @@ "GroupLicense": { "id": "GroupLicense", "type": "object", - "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.\n\nUse 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. Iyn other words, the total number of Entitlements that exist for the product.\n\nOnly 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.", + "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.\n\nUse 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.\n\nOnly 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.", "properties": { "acquisitionKind": { "type": "string", @@ -942,6 +946,13 @@ "type": "string", "description": "The name of the author of the product (for example, the app developer)." }, + "availableTracks": { + "type": "array", + "description": "The tracks that are visible to the enterprise.", + "items": { + "type": "string" + } + }, "detailsUrl": { "type": "string", "description": "A link to the (consumer) Google Play details page for the product." @@ -1077,6 +1088,13 @@ "productSetBehavior": { "type": "string", "description": "The interpretation of this product set. \"unknown\" should never be sent and is ignored if received. \"whitelist\" means that the user is entitled to access the product set. \"includeAll\" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. \"allApproved\" means that the user is entitled to access all products that are approved for the enterprise. If the value is \"allApproved\" or \"includeAll\", the productId field is ignored. If no value is provided, it is interpreted as \"whitelist\" for backwards compatibility. Further \"allApproved\" or \"includeAll\" does not enable automatic visibility of \"alpha\" or \"beta\" tracks for Android app. Use ProductVisibility to enable \"alpha\" or \"beta\" tracks per user." + }, + "productVisibility": { + "type": "array", + "description": "Additional list of product IDs making up the product set. Unlike the productID array, in this list It's possible to specify which tracks (alpha, beta, production) of a product are visible to the user. See ProductVisibility and its fields for more information. Specifying the same product ID both here and in the productId array is not allowed and it will result in an error.", + "items": { + "$ref": "ProductVisibility" + } } } }, @@ -1094,6 +1112,24 @@ } } }, + "ProductVisibility": { + "id": "ProductVisibility", + "type": "object", + "description": "A product to be made visible to a user.", + "properties": { + "productId": { + "type": "string", + "description": "The product ID to make visible to the user. Required for each item in the productVisibility list." + }, + "tracks": { + "type": "array", + "description": "Grants visibility to the specified track(s) of the product to the user. The track available to the user is based on the following order of preference: alpha, beta, production. For example, if an app has a prod version, a beta version and an alpha version and the enterprise has been granted visibility to both the alpha and beta tracks, if tracks is {\"beta\", \"production\"} the user will be able to install the app and they will get the beta version of the app. If there are no app versions in the specified track adding the \"alpha\" and \"beta\" values to the list of tracks will have no effect. Note that the enterprise requires access to alpha and/or beta tracks before users can be granted visibility to apps in those tracks.\n\nThe allowed sets are: {} (considered equivalent to {\"production\"}) {\"production\"} {\"beta\", \"production\"} {\"alpha\", \"beta\", \"production\"} The order of elements is not relevant. Any other set of tracks will be rejected with an error.", + "items": { + "type": "string" + } + } + } + }, "ProductsApproveRequest": { "id": "ProductsApproveRequest", "type": "object", diff --git a/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-gen.go b/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-gen.go index 109451dec..4858a5ec8 100644 --- a/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-gen.go +++ b/vendor/google.golang.org/api/androidenterprise/v1/androidenterprise-gen.go @@ -601,6 +601,10 @@ func (s *AppUpdateEvent) MarshalJSON() ([]byte, error) { // AppVersion: This represents a single version of the app. type AppVersion struct { + // Track: The track that this app was published in. For example if track + // is "alpha", this is an alpha version of the app. + Track string `json:"track,omitempty"` + // VersionCode: Unique increasing identifier for the app version. VersionCode int64 `json:"versionCode,omitempty"` @@ -609,7 +613,7 @@ type AppVersion struct { // localized (for example, the string could be "1.4"). VersionString string `json:"versionString,omitempty"` - // ForceSendFields is a list of field names (e.g. "VersionCode") to + // ForceSendFields is a list of field names (e.g. "Track") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -617,10 +621,10 @@ type AppVersion struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "VersionCode") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "Track") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -1123,7 +1127,7 @@ func (s *EntitlementsListResponse) MarshalJSON() ([]byte, error) { // // 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. Iyn other words, the +// 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 @@ -1962,6 +1966,9 @@ type Product struct { // app developer). AuthorName string `json:"authorName,omitempty"` + // AvailableTracks: The tracks that are visible to the enterprise. + AvailableTracks []string `json:"availableTracks,omitempty"` + // DetailsUrl: A link to the (consumer) Google Play details page for the // product. DetailsUrl string `json:"detailsUrl,omitempty"` @@ -2210,6 +2217,14 @@ type ProductSet struct { // per user. ProductSetBehavior string `json:"productSetBehavior,omitempty"` + // ProductVisibility: Additional list of product IDs making up the + // product set. Unlike the productID array, in this list It's possible + // to specify which tracks (alpha, beta, production) of a product are + // visible to the user. See ProductVisibility and its fields for more + // information. Specifying the same product ID both here and in the + // productId array is not allowed and it will result in an error. + ProductVisibility []*ProductVisibility `json:"productVisibility,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -2271,6 +2286,53 @@ func (s *ProductSigningCertificate) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ProductVisibility: A product to be made visible to a user. +type ProductVisibility struct { + // ProductId: The product ID to make visible to the user. Required for + // each item in the productVisibility list. + ProductId string `json:"productId,omitempty"` + + // Tracks: Grants visibility to the specified track(s) of the product to + // the user. The track available to the user is based on the following + // order of preference: alpha, beta, production. For example, if an app + // has a prod version, a beta version and an alpha version and the + // enterprise has been granted visibility to both the alpha and beta + // tracks, if tracks is {"beta", "production"} the user will be able to + // install the app and they will get the beta version of the app. If + // there are no app versions in the specified track adding the "alpha" + // and "beta" values to the list of tracks will have no effect. Note + // that the enterprise requires access to alpha and/or beta tracks + // before users can be granted visibility to apps in those tracks. + // + // The allowed sets are: {} (considered equivalent to {"production"}) + // {"production"} {"beta", "production"} {"alpha", "beta", "production"} + // The order of elements is not relevant. Any other set of tracks will + // be rejected with an error. + Tracks []string `json:"tracks,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ProductId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ProductId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ProductVisibility) MarshalJSON() ([]byte, error) { + type noMethod ProductVisibility + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type ProductsApproveRequest struct { // ApprovalUrlInfo: The approval URL that was shown to the user. Only // the permissions shown to the user with that URL will be accepted, diff --git a/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-api.json b/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-api.json index d26c4af83..650df9a7c 100644 --- a/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-api.json +++ b/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-api.json @@ -670,7 +670,7 @@ "type": "object", "properties": { "userName": { - "description": "The resource name of the user of the device in the form enterprises/{enterpriseId}/users/{userId}. This is the name of the device account automatically created for this device.", + "description": "The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.", "type": "string" }, "disabledReason": { @@ -678,7 +678,7 @@ "$ref": "UserFacingMessage" }, "policyName": { - "description": "The name of the policy that is intended to be applied to the device. If empty, the policy with id default is applied. This field may be modified by an update request. The name of the policy is in the form enterprises/{enterpriseId}/policies/{policyId}. It is also permissible to only specify the policyId when updating this field as long as the policyId contains no slashes since the rest of the policy name can be inferred from context.", + "description": "The name of the policy that is intended to be applied to the device. If empty, the policy_name for the user that owns this device is applied. This field may be modified by an update request. The name of the policy is in the form enterprises/{enterpriseId}/policies/{policyId}. It is also permissible to only specify the policyId when updating this field as long as the policyId contains no slashes since the rest of the policy name can be inferred from context.", "type": "string" }, "lastPolicyComplianceReportTime": { @@ -1407,7 +1407,7 @@ "type": "boolean" }, "systemUpdate": { - "description": "The system update policy, which controls how OS updates are applied. If the update type is WINDOWED and the device has a device account, the update window will automatically apply to Play app updates as well.", + "description": "The system update policy, which controls how OS updates are applied. If the update type is WINDOWED, the update window will automatically apply to Play app updates as well.", "$ref": "SystemUpdate" }, "frpAdminEmails": { @@ -1640,7 +1640,7 @@ "format": "google-datetime" }, "policyName": { - "description": "The name of the policy that will be initially applied to the enrolled device in the form enterprises/{enterpriseId}/policies/{policyId}. If not specified, the policy with id default is applied. It is permissible to only specify the policyId when updating this field as long as the policyId contains no slashes since the rest of the policy name can be inferred from context.", + "description": "The name of the policy that will be initially applied to the enrolled device in the form enterprises/{enterpriseId}/policies/{policyId}. If not specified, the policy_name for the user that owns the device is applied. If user_name also isn't specified, the policy defaults to enterprises/{enterpriseId}/policies/default. It is permissible to only specify the policyId when updating this field as long as the policyId contains no slashes since the rest of the policy name can be inferred from context.", "type": "string" }, "name": { @@ -2178,7 +2178,7 @@ "enumDescriptions": [ "Follow the default update behavior for the device, which typically requires the user to accept system updates.", "Install automatically as soon as an update is available.", - "Install automatically within a daily maintenance window. If the device has a device account, this also configures Play apps to be updated within the window. This is strongly recommended for kiosk devices because this is the only way apps persistently pinned to the foreground can be updated by Play.", + "Install automatically within a daily maintenance window. This also configures Play apps to be updated within the window. This is strongly recommended for kiosk devices because this is the only way apps persistently pinned to the foreground can be updated by Play.", "Postpone automatic install up to a maximum of 30 days." ], "type": "string" @@ -2252,7 +2252,7 @@ "id": "HardwareStatus" } }, - "revision": "20170918", + "revision": "20171009", "basePath": "", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", diff --git a/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-gen.go b/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-gen.go index 47321b0cb..6fdcd7310 100644 --- a/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-gen.go +++ b/vendor/google.golang.org/api/androidmanagement/v1/androidmanagement-gen.go @@ -562,12 +562,13 @@ type Device struct { PolicyCompliant bool `json:"policyCompliant,omitempty"` // PolicyName: The name of the policy that is intended to be applied to - // the device. If empty, the policy with id default is applied. This - // field may be modified by an update request. The name of the policy is - // in the form enterprises/{enterpriseId}/policies/{policyId}. It is - // also permissible to only specify the policyId when updating this - // field as long as the policyId contains no slashes since the rest of - // the policy name can be inferred from context. + // the device. If empty, the policy_name for the user that owns this + // device is applied. This field may be modified by an update request. + // The name of the policy is in the form + // enterprises/{enterpriseId}/policies/{policyId}. It is also + // permissible to only specify the policyId when updating this field as + // long as the policyId contains no slashes since the rest of the policy + // name can be inferred from context. PolicyName string `json:"policyName,omitempty"` // PowerManagementEvents: Power management events on the device in @@ -604,9 +605,8 @@ type Device struct { // devices will be in this state until they have applied policy. State string `json:"state,omitempty"` - // UserName: The resource name of the user of the device in the form - // enterprises/{enterpriseId}/users/{userId}. This is the name of the - // device account automatically created for this device. + // UserName: The resource name of the user that owns this device in the + // form enterprises/{enterpriseId}/users/{userId}. UserName string `json:"userName,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -730,10 +730,12 @@ type EnrollmentToken struct { // PolicyName: The name of the policy that will be initially applied to // the enrolled device in the form // enterprises/{enterpriseId}/policies/{policyId}. If not specified, the - // policy with id default is applied. It is permissible to only specify - // the policyId when updating this field as long as the policyId - // contains no slashes since the rest of the policy name can be inferred - // from context. + // policy_name for the user that owns the device is applied. If + // user_name also isn't specified, the policy defaults to + // enterprises/{enterpriseId}/policies/default. It is permissible to + // only specify the policyId when updating this field as long as the + // policyId contains no slashes since the rest of the policy name can be + // inferred from context. PolicyName string `json:"policyName,omitempty"` // QrCode: A JSON string whose UTF-8 representation can be used to @@ -1899,9 +1901,8 @@ type Policy struct { StayOnPluggedModes []string `json:"stayOnPluggedModes,omitempty"` // SystemUpdate: The system update policy, which controls how OS updates - // are applied. If the update type is WINDOWED and the device has a - // device account, the update window will automatically apply to Play - // app updates as well. + // are applied. If the update type is WINDOWED, the update window will + // automatically apply to Play app updates as well. SystemUpdate *SystemUpdate `json:"systemUpdate,omitempty"` // UnmuteMicrophoneDisabled: Whether the microphone is muted and @@ -2238,10 +2239,10 @@ type SystemUpdate struct { // "AUTOMATIC" - Install automatically as soon as an update is // available. // "WINDOWED" - Install automatically within a daily maintenance - // window. If the device has a device account, this also configures Play - // apps to be updated within the window. This is strongly recommended - // for kiosk devices because this is the only way apps persistently - // pinned to the foreground can be updated by Play. + // window. This also configures Play apps to be updated within the + // window. This is strongly recommended for kiosk devices because this + // is the only way apps persistently pinned to the foreground can be + // updated by Play. // "POSTPONE" - Postpone automatic install up to a maximum of 30 days. Type string `json:"type,omitempty"` diff --git a/vendor/google.golang.org/api/api-list.json b/vendor/google.golang.org/api/api-list.json index a768dc260..5c9573c79 100644 --- a/vendor/google.golang.org/api/api-list.json +++ b/vendor/google.golang.org/api/api-list.json @@ -1397,6 +1397,21 @@ "documentationLink": "https://firebase.google.com/docs/storage/security", "preferred": true }, + { + "kind": "discovery#directoryItem", + "id": "firestore:v1beta1", + "name": "firestore", + "version": "v1beta1", + "title": "Google Cloud Firestore API", + "description": "", + "discoveryRestUrl": "https://firestore.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/firestore", + "preferred": true + }, { "kind": "discovery#directoryItem", "id": "fitness:v1", @@ -1757,21 +1772,6 @@ "documentationLink": "https://cloud.google.com/ml/", "preferred": true }, - { - "kind": "discovery#directoryItem", - "id": "ml:v1beta1", - "name": "ml", - "version": "v1beta1", - "title": "Google Cloud Machine Learning Engine", - "description": "An API to enable creating and using machine learning models.", - "discoveryRestUrl": "https://ml.googleapis.com/$discovery/rest?version=v1beta1", - "icons": { - "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", - "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" - }, - "documentationLink": "https://cloud.google.com/ml/", - "preferred": false - }, { "kind": "discovery#directoryItem", "id": "monitoring:v3", @@ -2114,22 +2114,6 @@ "documentationLink": "https://cloud.google.com/pubsub/docs", "preferred": false }, - { - "kind": "discovery#directoryItem", - "id": "qpxExpress:v1", - "name": "qpxExpress", - "version": "v1", - "title": "QPX Express API", - "description": "Finds the least expensive flights between an origin and a destination.", - "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/qpxExpress/v1/rest", - "discoveryLink": "./apis/qpxExpress/v1/rest", - "icons": { - "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", - "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" - }, - "documentationLink": "http://developers.google.com/qpx-express", - "preferred": true - }, { "kind": "discovery#directoryItem", "id": "replicapool:v1beta1", @@ -2782,8 +2766,8 @@ "id": "videointelligence:v1beta1", "name": "videointelligence", "version": "v1beta1", - "title": "Google Cloud Video Intelligence API", - "description": "Google Cloud Video Intelligence API.", + "title": "Cloud Video Intelligence API", + "description": "Cloud Video Intelligence API.", "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1beta1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", diff --git a/vendor/google.golang.org/api/appengine/v1/appengine-api.json b/vendor/google.golang.org/api/appengine/v1/appengine-api.json index b6e1b31ef..ae70bccc3 100644 --- a/vendor/google.golang.org/api/appengine/v1/appengine-api.json +++ b/vendor/google.golang.org/api/appengine/v1/appengine-api.json @@ -1,120 +1,17 @@ { - "baseUrl": "https://appengine.googleapis.com/", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform.read-only": { - "description": "View your data across Google Cloud Platform services" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, - "https://www.googleapis.com/auth/appengine.admin": { - "description": "View and manage your applications deployed on Google App Engine" - } - } - } - }, - "kind": "discovery#restDescription", - "servicePath": "", - "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", - "rootUrl": "https://appengine.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "appengine", - "batchPath": "batch", - "id": "appengine:v1", - "revision": "20170926", - "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", - "title": "Google App Engine Admin API", "ownerName": "Google", "discoveryVersion": "v1", "version_module": true, "resources": { "apps": { "methods": { - "patch": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/apps/{appsId}", - "id": "appengine.apps.patch", - "path": "v1/apps/{appsId}", - "request": { - "$ref": "Application" - }, - "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain - Google authentication domain for controlling user access to the application.\ndefault_cookie_expiration - Cookie expiration policy for the application." - }, - "get": { - "response": { - "$ref": "Application" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/apps/{appsId}", - "id": "appengine.apps.get", - "path": "v1/apps/{appsId}", - "description": "Gets information about an application." - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Operation" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps", - "path": "v1/apps", - "id": "appengine.apps.create", - "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", - "request": { - "$ref": "Application" - } - }, "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.", + "id": "appengine.apps.repair", + "path": "v1/apps/{appsId}:repair", "request": { "$ref": "RepairApplicationRequest" }, + "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.", "response": { "$ref": "Operation" }, @@ -122,6 +19,9 @@ "appsId" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "appsId": { "location": "path", @@ -130,395 +30,87 @@ "required": true } }, + "flatPath": "v1/apps/{appsId}:repair" + }, + "patch": { + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain - Google authentication domain for controlling user access to the application.\ndefault_cookie_expiration - Cookie expiration policy for the application.", + "request": { + "$ref": "Application" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "appsId": { + "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/apps/{appsId}:repair", - "id": "appengine.apps.repair", - "path": "v1/apps/{appsId}:repair" + "flatPath": "v1/apps/{appsId}", + "id": "appengine.apps.patch", + "path": "v1/apps/{appsId}" + }, + "get": { + "id": "appengine.apps.get", + "path": "v1/apps/{appsId}", + "description": "Gets information about an application.", + "response": { + "$ref": "Application" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/apps/{appsId}" + }, + "create": { + "request": { + "$ref": "Application" + }, + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/apps", + "id": "appengine.apps.create", + "path": "v1/apps" } }, "resources": { - "domainMappings": { - "methods": { - "patch": { - "request": { - "$ref": "DomainMapping" - }, - "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true, - "location": "path" - }, - "domainMappingsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.patch" - }, - "get": { - "response": { - "$ref": "DomainMapping" - }, - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "httpMethod": "GET", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true, - "location": "path" - }, - "domainMappingsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.get", - "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "description": "Gets the specified domain mapping." - }, - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListDomainMappingsResponse" - }, - "parameterOrder": [ - "appsId" - ], - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/apps/{appsId}/domainMappings", - "path": "v1/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.list", - "description": "Lists the domain mappings on an application." - }, - "create": { - "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", - "request": { - "$ref": "DomainMapping" - }, - "httpMethod": "POST", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/domainMappings", - "path": "v1/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.create" - }, - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "domainMappingsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.delete", - "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource." - } - } - }, - "firewall": { - "resources": { - "ingressRules": { - "methods": { - "batchUpdate": { - "httpMethod": "POST", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "BatchUpdateIngressRulesResponse" - }, - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Firewall collection to set. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/firewall/ingressRules:batchUpdate", - "path": "v1/apps/{appsId}/firewall/ingressRules:batchUpdate", - "id": "appengine.apps.firewall.ingressRules.batchUpdate", - "description": "Replaces the entire firewall ruleset in one bulk operation. This overrides and replaces the rules of an existing firewall with the new rules.If the final rule does not match traffic with the '*' wildcard IP range, then an \"allow all\" rule is explicitly added to the end of the list.", - "request": { - "$ref": "BatchUpdateIngressRulesRequest" - } - }, - "delete": { - "description": "Deletes the specified firewall rule.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "httpMethod": "DELETE", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Firewall resource to delete. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true, - "location": "path" - }, - "ingressRulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "id": "appengine.apps.firewall.ingressRules.delete", - "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}" - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "ListIngressRulesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the Firewall collection to retrieve. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "matchingAddress": { - "location": "query", - "description": "A valid IP Address. If set, only rules matching this address will be returned. The first returned rule will be the rule that fires on requests from this IP.", - "type": "string" - } - }, - "flatPath": "v1/apps/{appsId}/firewall/ingressRules", - "path": "v1/apps/{appsId}/firewall/ingressRules", - "id": "appengine.apps.firewall.ingressRules.list", - "description": "Lists the firewall rules of an application." - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "FirewallRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "description": "Part of `parent`. Name of the parent Firewall collection in which to create a new rule. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/apps/{appsId}/firewall/ingressRules", - "path": "v1/apps/{appsId}/firewall/ingressRules", - "id": "appengine.apps.firewall.ingressRules.create", - "request": { - "$ref": "FirewallRule" - }, - "description": "Creates a firewall rule for the application." - }, - "get": { - "id": "appengine.apps.firewall.ingressRules.get", - "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "description": "Gets the specified firewall rule.", - "response": { - "$ref": "FirewallRule" - }, - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Firewall resource to retrieve. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true, - "location": "path" - }, - "ingressRulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}" - }, - "patch": { - "response": { - "$ref": "FirewallRule" - }, - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "httpMethod": "PATCH", - "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `name`. Name of the Firewall resource to update. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true, - "location": "path" - }, - "ingressRulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "id": "appengine.apps.firewall.ingressRules.patch", - "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "description": "Updates the specified firewall rule.", - "request": { - "$ref": "FirewallRule" - } - } - } - } - } - }, "locations": { "methods": { "get": { @@ -530,25 +122,25 @@ "locationsId" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Resource name for the location.", - "type": "string", - "required": true - }, "locationsId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true + }, + "appsId": { + "description": "Part of `name`. Resource name for the location.", + "type": "string", + "required": true, + "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "flatPath": "v1/apps/{appsId}/locations/{locationsId}", "id": "appengine.apps.locations.get", "path": "v1/apps/{appsId}/locations/{locationsId}", @@ -569,27 +161,27 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, "filter": { - "location": "query", "description": "The standard list filter.", - "type": "string" + "type": "string", + "location": "query" }, "pageToken": { - "location": "query", "description": "The standard list page token.", - "type": "string" + "type": "string", + "location": "query" }, "appsId": { - "location": "path", "description": "Part of `name`. The resource that owns the locations collection, if applicable.", "type": "string", - "required": true + "required": true, + "location": "path" + }, + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" } }, "flatPath": "v1/apps/{appsId}/locations", @@ -601,6 +193,8 @@ "authorizedCertificates": { "methods": { "delete": { + "id": "appengine.apps.authorizedCertificates.delete", + "path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "description": "Deletes the specified SSL certificate.", "response": { "$ref": "Empty" @@ -611,120 +205,114 @@ ], "httpMethod": "DELETE", "parameters": { - "authorizedCertificatesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, "appsId": { "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.", "type": "string", "required": true, "location": "path" + }, + "authorizedCertificatesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "id": "appengine.apps.authorizedCertificates.delete", - "path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + "flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" }, "patch": { - "request": { - "$ref": "AuthorizedCertificate" - }, - "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", - "response": { - "$ref": "AuthorizedCertificate" - }, + "httpMethod": "PATCH", "parameterOrder": [ "appsId", "authorizedCertificatesId" ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "response": { + "$ref": "AuthorizedCertificate" + }, "parameters": { + "authorizedCertificatesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, "updateMask": { - "location": "query", "format": "google-fieldmask", "description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.", - "type": "string" + "type": "string", + "location": "query" }, "appsId": { "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.", "type": "string", "required": true, "location": "path" - }, - "authorizedCertificatesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "id": "appengine.apps.authorizedCertificates.patch", - "path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", + "request": { + "$ref": "AuthorizedCertificate" + } }, "get": { "response": { "$ref": "AuthorizedCertificate" }, - "httpMethod": "GET", "parameterOrder": [ "appsId", "authorizedCertificatesId" ], + "httpMethod": "GET", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", + "type": "string", + "required": true + }, + "view": { + "enum": [ + "BASIC_CERTIFICATE", + "FULL_CERTIFICATE" + ], + "description": "Controls the set of fields returned in the GET response.", + "type": "string", + "location": "query" + }, + "authorizedCertificatesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "parameters": { - "authorizedCertificatesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", - "type": "string", - "required": true, - "location": "path" - }, - "view": { - "description": "Controls the set of fields returned in the GET response.", - "type": "string", - "location": "query", - "enum": [ - "BASIC_CERTIFICATE", - "FULL_CERTIFICATE" - ] - } - }, "flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "id": "appengine.apps.authorizedCertificates.get", "path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "description": "Gets the specified SSL certificate." }, "list": { - "flatPath": "v1/apps/{appsId}/authorizedCertificates", - "path": "v1/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.list", - "description": "Lists all SSL certificates the user is authorized to administer.", - "httpMethod": "GET", "response": { "$ref": "ListAuthorizedCertificatesResponse" }, "parameterOrder": [ "appsId" ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", @@ -752,14 +340,25 @@ "type": "string" }, "appsId": { + "location": "path", "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", - "required": true, - "location": "path" + "required": true } - } + }, + "flatPath": "v1/apps/{appsId}/authorizedCertificates", + "id": "appengine.apps.authorizedCertificates.list", + "path": "v1/apps/{appsId}/authorizedCertificates", + "description": "Lists all SSL certificates the user is authorized to administer." }, "create": { + "flatPath": "v1/apps/{appsId}/authorizedCertificates", + "id": "appengine.apps.authorizedCertificates.create", + "path": "v1/apps/{appsId}/authorizedCertificates", + "request": { + "$ref": "AuthorizedCertificate" + }, + "description": "Uploads the specified SSL certificate.", "response": { "$ref": "AuthorizedCertificate" }, @@ -767,6 +366,9 @@ "appsId" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "appsId": { "location": "path", @@ -774,30 +376,14 @@ "type": "string", "required": true } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.create", - "path": "v1/apps/{appsId}/authorizedCertificates", - "description": "Uploads the specified SSL certificate.", - "request": { - "$ref": "AuthorizedCertificate" } } } }, "services": { "methods": { - "patch": { - "flatPath": "v1/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.patch", - "path": "v1/apps/{appsId}/services/{servicesId}", - "request": { - "$ref": "Service" - }, - "description": "Updates the configuration of the specified service.", + "delete": { + "httpMethod": "DELETE", "response": { "$ref": "Operation" }, @@ -805,11 +391,54 @@ "appsId", "servicesId" ], - "httpMethod": "PATCH", + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "flatPath": "v1/apps/{appsId}/services/{servicesId}", + "path": "v1/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.delete", + "description": "Deletes the specified service and all enclosed versions." + }, + "patch": { + "description": "Updates the configuration of the specified service.", + "request": { + "$ref": "Service" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "servicesId" + ], + "response": { + "$ref": "Operation" + }, "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, "appsId": { "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", "type": "string", @@ -820,60 +449,22 @@ "location": "query", "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", "type": "boolean" - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - }, - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - } - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "appsId", - "servicesId" - ], - "response": { - "$ref": "Service" - }, - "parameters": { - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true, - "location": "path" } }, "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" + "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v1/apps/{appsId}/services/{servicesId}", "path": "v1/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.get", - "description": "Gets the current configuration of the specified service." + "id": "appengine.apps.services.patch" }, - "list": { + "get": { "response": { - "$ref": "ListServicesResponse" + "$ref": "Service" }, "parameterOrder": [ - "appsId" + "appsId", + "servicesId" ], "httpMethod": "GET", "scopes": [ @@ -881,42 +472,6 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1/apps/{appsId}/services", - "id": "appengine.apps.services.list", - "path": "v1/apps/{appsId}/services", - "description": "Lists all the services in the application." - }, - "delete": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "servicesId": { "location": "path", @@ -932,14 +487,238 @@ } }, "flatPath": "v1/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.delete", + "id": "appengine.apps.services.get", "path": "v1/apps/{appsId}/services/{servicesId}", - "description": "Deletes the specified service and all enclosed versions." + "description": "Gets the current configuration of the specified service." + }, + "list": { + "description": "Lists all the services in the application.", + "httpMethod": "GET", + "response": { + "$ref": "ListServicesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + } + }, + "flatPath": "v1/apps/{appsId}/services", + "path": "v1/apps/{appsId}/services", + "id": "appengine.apps.services.list" } }, "resources": { "versions": { "methods": { + "delete": { + "id": "appengine.apps.services.versions.delete", + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "description": "Deletes an existing Version resource.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "DELETE", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", + "type": "string", + "required": true + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}" + }, + "patch": { + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.patch", + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "request": { + "$ref": "Version" + }, + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", + "type": "string", + "required": true, + "location": "path" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "get": { + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.get", + "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "response": { + "$ref": "Version" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", + "type": "string", + "required": true + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the Get response.", + "type": "string", + "location": "query" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}" + }, + "list": { + "response": { + "$ref": "ListVersionsResponse" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the List response.", + "type": "string" + }, + "servicesId": { + "description": "Part of `parent`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions", + "id": "appengine.apps.services.versions.list", + "path": "v1/apps/{appsId}/services/{servicesId}/versions", + "description": "Lists the versions of a service." + }, "create": { "request": { "$ref": "Version" @@ -964,306 +743,27 @@ "required": true }, "appsId": { - "location": "path", "description": "Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default.", "type": "string", - "required": true + "required": true, + "location": "path" } }, "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions", "id": "appengine.apps.services.versions.create", "path": "v1/apps/{appsId}/services/{servicesId}/versions" - }, - "delete": { - "description": "Deletes an existing Version resource.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.delete", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}" - }, - "patch": { - "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.", - "request": { - "$ref": "Version" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "PATCH", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", - "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "updateMask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.patch", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}" - }, - "get": { - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.get", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", - "response": { - "$ref": "Version" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "GET", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", - "type": "string", - "required": true, - "location": "path" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the Get response.", - "type": "string" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "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": { - "id": "appengine.apps.services.versions.list", - "path": "v1/apps/{appsId}/services/{servicesId}/versions", - "description": "Lists the versions of a service.", - "response": { - "$ref": "ListVersionsResponse" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "servicesId": { - "description": "Part of `parent`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the List response.", - "type": "string" - } - }, - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions" } }, "resources": { "instances": { "methods": { - "get": { - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.services.versions.instances.get", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "description": "Gets instance information.", - "response": { - "$ref": "Instance" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId", - "instancesId" - ], - "httpMethod": "GET", - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "instancesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "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 the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", - "response": { - "$ref": "ListInstancesResponse" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `parent`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "versionsId": { - "description": "Part of `parent`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", - "id": "appengine.apps.services.versions.instances.list", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances" - }, "debug": { + "id": "appengine.apps.services.versions.instances.debug", + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", + "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.", + "request": { + "$ref": "DebugInstanceRequest" + }, "response": { "$ref": "Operation" }, @@ -1274,16 +774,7 @@ "instancesId" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, "servicesId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", @@ -1291,27 +782,33 @@ "required": true }, "instancesId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true }, "appsId": { + "location": "path", "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", "type": "string", - "required": true, - "location": "path" + "required": true + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true } }, - "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", - "id": "appengine.apps.services.versions.instances.debug", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", - "request": { - "$ref": "DebugInstanceRequest" - }, - "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment." + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug" }, "delete": { + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.delete", + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", "description": "Stops a running instance.", "response": { "$ref": "Operation" @@ -1324,37 +821,132 @@ ], "httpMethod": "DELETE", "parameters": { - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "instancesId": { "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true, "location": "path" }, + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, "appsId": { "location": "path", "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", "type": "string", "required": true + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId", + "instancesId" ], + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", + "type": "string", + "required": true, + "location": "path" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.services.versions.instances.delete", - "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}" + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.get", + "description": "Gets instance information." + }, + "list": { + "response": { + "$ref": "ListInstancesResponse" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1.", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "versionsId": { + "description": "Part of `parent`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "servicesId": { + "location": "path", + "description": "Part of `parent`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", + "id": "appengine.apps.services.versions.instances.list", + "path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", + "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)." } } } @@ -1365,41 +957,41 @@ "authorizedDomains": { "methods": { "list": { + "description": "Lists all domains the user is authorized to administer.", + "httpMethod": "GET", "response": { "$ref": "ListAuthorizedDomainsResponse" }, "parameterOrder": [ "appsId" ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - } - }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + }, + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + } + }, "flatPath": "v1/apps/{appsId}/authorizedDomains", - "id": "appengine.apps.authorizedDomains.list", "path": "v1/apps/{appsId}/authorizedDomains", - "description": "Lists all domains the user is authorized to administer." + "id": "appengine.apps.authorizedDomains.list" } } }, @@ -1422,10 +1014,10 @@ ], "parameters": { "appsId": { - "location": "path", "description": "Part of `name`. The name of the operation resource.", "type": "string", - "required": true + "required": true, + "location": "path" }, "operationsId": { "description": "Part of `name`. See documentation of `appsId`.", @@ -1439,31 +1031,176 @@ "path": "v1/apps/{appsId}/operations/{operationsId}" }, "list": { - "httpMethod": "GET", - "parameterOrder": [ - "appsId" - ], "response": { "$ref": "ListOperationsResponse" }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { - "filter": { + "pageSize": { "location": "query", + "format": "int32", + "description": "The standard list page size.", + "type": "integer" + }, + "filter": { "description": "The standard list filter.", - "type": "string" + "type": "string", + "location": "query" }, "pageToken": { - "location": "query", "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. The name of the operation's parent resource.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/apps/{appsId}/operations", + "id": "appengine.apps.operations.list", + "path": "v1/apps/{appsId}/operations", + "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." + } + } + }, + "domainMappings": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true + }, + "domainMappingsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.delete", + "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource." + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "domainMappingsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.patch", + "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", + "request": { + "$ref": "DomainMapping" + } + }, + "get": { + "flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.get", + "path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}", + "description": "Gets the specified domain mapping.", + "response": { + "$ref": "DomainMapping" + }, + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "domainMappingsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true + } + } + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListDomainMappingsResponse" + }, + "parameterOrder": [ + "appsId" + ], + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", "type": "string" }, "appsId": { - "description": "Part of `name`. The name of the operation's parent resource.", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", "required": true, "location": "path" @@ -1471,14 +1208,249 @@ "pageSize": { "location": "query", "format": "int32", - "description": "The standard list page size.", + "description": "Maximum results to return per page.", "type": "integer" } }, - "flatPath": "v1/apps/{appsId}/operations", - "path": "v1/apps/{appsId}/operations", - "id": "appengine.apps.operations.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/apps/{appsId}/domainMappings", + "path": "v1/apps/{appsId}/domainMappings", + "id": "appengine.apps.domainMappings.list", + "description": "Lists the domain mappings on an application." + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/domainMappings", + "id": "appengine.apps.domainMappings.create", + "path": "v1/apps/{appsId}/domainMappings", + "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", + "request": { + "$ref": "DomainMapping" + } + } + } + }, + "firewall": { + "resources": { + "ingressRules": { + "methods": { + "create": { + "response": { + "$ref": "FirewallRule" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `parent`. Name of the parent Firewall collection in which to create a new rule. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/apps/{appsId}/firewall/ingressRules", + "id": "appengine.apps.firewall.ingressRules.create", + "path": "v1/apps/{appsId}/firewall/ingressRules", + "request": { + "$ref": "FirewallRule" + }, + "description": "Creates a firewall rule for the application." + }, + "patch": { + "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.patch", + "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "request": { + "$ref": "FirewallRule" + }, + "description": "Updates the specified firewall rule.", + "response": { + "$ref": "FirewallRule" + }, + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Firewall resource to update. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true + }, + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + } + }, + "get": { + "description": "Gets the specified firewall rule.", + "httpMethod": "GET", + "response": { + "$ref": "FirewallRule" + }, + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "parameters": { + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "description": "Part of `name`. Name of the Firewall resource to retrieve. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.get" + }, + "batchUpdate": { + "id": "appengine.apps.firewall.ingressRules.batchUpdate", + "path": "v1/apps/{appsId}/firewall/ingressRules:batchUpdate", + "description": "Replaces the entire firewall ruleset in one bulk operation. This overrides and replaces the rules of an existing firewall with the new rules.If the final rule does not match traffic with the '*' wildcard IP range, then an \"allow all\" rule is explicitly added to the end of the list.", + "request": { + "$ref": "BatchUpdateIngressRulesRequest" + }, + "response": { + "$ref": "BatchUpdateIngressRulesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Firewall collection to set. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/firewall/ingressRules:batchUpdate" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Firewall resource to delete. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true + }, + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "path": "v1/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.delete", + "description": "Deletes the specified firewall rule." + }, + "list": { + "flatPath": "v1/apps/{appsId}/firewall/ingressRules", + "id": "appengine.apps.firewall.ingressRules.list", + "path": "v1/apps/{appsId}/firewall/ingressRules", + "description": "Lists the firewall rules of an application.", + "response": { + "$ref": "ListIngressRulesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "parameters": { + "matchingAddress": { + "location": "query", + "description": "A valid IP Address. If set, only rules matching this address will be returned. The first returned rule will be the rule that fires on requests from this IP.", + "type": "string" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the Firewall collection to retrieve. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true + }, + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } } } } @@ -1486,49 +1458,28 @@ } }, "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { + "fields": { "location": "query", - "description": "OAuth 2.0 token for the current user.", + "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" + "type": "string" }, "callback": { "location": "query", @@ -1552,14 +1503,14 @@ "default": "json" }, "access_token": { + "location": "query", "description": "OAuth access token.", - "type": "string", - "location": "query" + "type": "string" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "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.", @@ -1571,6 +1522,27 @@ "default": "true", "type": "boolean", "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" } }, "schemas": { @@ -1578,55 +1550,42 @@ "description": "Response message for Instances.ListInstances.", "type": "object", "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, "instances": { "description": "The instances belonging to the requested version.", "items": { "$ref": "Instance" }, "type": "array" - } - }, - "id": "ListInstancesResponse" - }, - "ListDomainMappingsResponse": { - "properties": { - "domainMappings": { - "description": "The domain mappings for the application.", - "items": { - "$ref": "DomainMapping" - }, - "type": "array" }, "nextPageToken": { "description": "Continuation token for fetching the next page of results.", "type": "string" } }, - "id": "ListDomainMappingsResponse", + "id": "ListInstancesResponse" + }, + "ListDomainMappingsResponse": { "description": "Response message for DomainMappings.ListDomainMappings.", - "type": "object" + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "domainMappings": { + "description": "The domain mappings for the application.", + "items": { + "$ref": "DomainMapping" + }, + "type": "array" + } + }, + "id": "ListDomainMappingsResponse" }, "OperationMetadataV1Alpha": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - }, "warning": { "description": "Durable messages that persist on every operation poll. @OutputOnly", "items": { @@ -1646,6 +1605,19 @@ "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" } }, "id": "OperationMetadataV1Alpha" @@ -1673,16 +1645,16 @@ "description": "Response message for Versions.ListVersions.", "type": "object", "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, "versions": { "description": "The versions belonging to the requested service.", "items": { "$ref": "Version" }, "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" } }, "id": "ListVersionsResponse" @@ -1712,28 +1684,18 @@ "id": "Empty" }, "ApiEndpointHandler": { - "description": "Uses Google Cloud Endpoints to handle requests.", - "type": "object", "properties": { "scriptPath": { "description": "Path to the script from the application root directory.", "type": "string" } }, - "id": "ApiEndpointHandler" + "id": "ApiEndpointHandler", + "description": "Uses Google Cloud Endpoints to handle requests.", + "type": "object" }, "DomainMapping": { - "description": "A domain serving an App Engine application.", - "type": "object", "properties": { - "sslSettings": { - "description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.", - "$ref": "SslSettings" - }, - "name": { - "description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly", - "type": "string" - }, "resourceRecords": { "description": "The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly", "items": { @@ -1744,28 +1706,46 @@ "id": { "description": "Relative name of the domain serving the application. Example: example.com.", "type": "string" - } - }, - "id": "DomainMapping" - }, - "ZipInfo": { - "description": "The zip file information for a zip deployment.", - "type": "object", - "properties": { - "filesCount": { - "format": "int32", - "description": "An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.", - "type": "integer" }, - "sourceUrl": { - "description": "URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", + "sslSettings": { + "description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.", + "$ref": "SslSettings" + }, + "name": { + "description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly", "type": "string" } }, - "id": "ZipInfo" + "id": "DomainMapping", + "description": "A domain serving an App Engine application.", + "type": "object" }, "AutomaticScaling": { "properties": { + "minPendingLatency": { + "format": "google-duration", + "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", + "type": "string" + }, + "maxIdleInstances": { + "format": "int32", + "description": "Maximum number of idle instances that should be maintained for this version.", + "type": "integer" + }, + "requestUtilization": { + "description": "Target scaling by request utilization.", + "$ref": "RequestUtilization" + }, + "minIdleInstances": { + "format": "int32", + "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.", + "type": "integer" + }, + "maxTotalInstances": { + "format": "int32", + "description": "Maximum number of instances that should be started to handle requests.", + "type": "integer" + }, "minTotalInstances": { "format": "int32", "description": "Minimum number of instances that should be maintained for this version.", @@ -1795,44 +1775,34 @@ "$ref": "CpuUtilization" }, "diskUtilization": { - "description": "Target scaling by disk usage.", - "$ref": "DiskUtilization" - }, - "minPendingLatency": { - "format": "google-duration", - "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", - "type": "string" - }, - "maxIdleInstances": { - "format": "int32", - "description": "Maximum number of idle instances that should be maintained for this version.", - "type": "integer" - }, - "requestUtilization": { - "description": "Target scaling by request utilization.", - "$ref": "RequestUtilization" - }, - "minIdleInstances": { - "format": "int32", - "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.", - "type": "integer" - }, - "maxTotalInstances": { - "format": "int32", - "description": "Maximum number of instances that should be started to handle requests.", - "type": "integer" + "$ref": "DiskUtilization", + "description": "Target scaling by disk usage." } }, "id": "AutomaticScaling", "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", "type": "object" }, - "AuthorizedCertificate": { + "ZipInfo": { "properties": { - "name": { - "description": "Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly", + "sourceUrl": { + "description": "URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", "type": "string" }, + "filesCount": { + "format": "int32", + "description": "An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.", + "type": "integer" + } + }, + "id": "ZipInfo", + "description": "The zip file information for a zip deployment.", + "type": "object" + }, + "AuthorizedCertificate": { + "description": "An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.", + "type": "object", + "properties": { "domainMappingsCount": { "format": "int32", "description": "Aggregate count of the domain mappings with this certificate mapped. This count includes domain mappings on applications for which the user does not have VIEWER permissions.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly", @@ -1854,8 +1824,8 @@ "type": "string" }, "certificateRawData": { - "$ref": "CertificateRawData", - "description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority." + "description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.", + "$ref": "CertificateRawData" }, "visibleDomainMappings": { "description": "The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly", @@ -1868,21 +1838,33 @@ "format": "google-datetime", "description": "The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly", "type": "string" + }, + "name": { + "description": "Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly", + "type": "string" } }, - "id": "AuthorizedCertificate", - "description": "An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.", - "type": "object" + "id": "AuthorizedCertificate" }, "ResourceRecord": { "description": "A DNS resource record.", "type": "object", "properties": { + "rrdata": { + "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", + "type": "string" + }, "name": { "description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.", "type": "string" }, "type": { + "enumDescriptions": [ + "An unknown resource record.", + "An A resource record. Data is an IPv4 address.", + "An AAAA resource record. Data is an IPv6 address.", + "A CNAME resource record. Data is a domain name to be aliased." + ], "enum": [ "RECORD_TYPE_UNSPECIFIED", "A", @@ -1890,16 +1872,6 @@ "CNAME" ], "description": "Resource record type. Example: AAAA.", - "type": "string", - "enumDescriptions": [ - "An unknown resource record.", - "An A resource record. Data is an IPv4 address.", - "An AAAA resource record. Data is an IPv6 address.", - "A CNAME resource record. Data is a domain name to be aliased." - ] - }, - "rrdata": { - "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", "type": "string" } }, @@ -1924,16 +1896,16 @@ "description": "The response message for Locations.ListLocations.", "type": "object", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, "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" } }, "id": "ListLocationsResponse" @@ -1966,95 +1938,6 @@ }, "id": "RequestUtilization" }, - "UrlMap": { - "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", - "type": "object", - "properties": { - "script": { - "$ref": "ScriptHandler", - "description": "Executes a script to handle the request that matches this URL pattern." - }, - "urlRegex": { - "description": "URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", - "type": "string" - }, - "login": { - "enum": [ - "LOGIN_UNSPECIFIED", - "LOGIN_OPTIONAL", - "LOGIN_ADMIN", - "LOGIN_REQUIRED" - ], - "description": "Level of login required to access this resource.", - "type": "string", - "enumDescriptions": [ - "Not specified. LOGIN_OPTIONAL is assumed.", - "Does not require that the user is signed in.", - "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", - "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." - ] - }, - "apiEndpoint": { - "description": "Uses API Endpoints to handle requests.", - "$ref": "ApiEndpointHandler" - }, - "staticFiles": { - "$ref": "StaticFilesHandler", - "description": "Returns the contents of a file, such as an image, as the response." - }, - "redirectHttpResponseCode": { - "enum": [ - "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", - "REDIRECT_HTTP_RESPONSE_CODE_301", - "REDIRECT_HTTP_RESPONSE_CODE_302", - "REDIRECT_HTTP_RESPONSE_CODE_303", - "REDIRECT_HTTP_RESPONSE_CODE_307" - ], - "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", - "type": "string", - "enumDescriptions": [ - "Not specified. 302 is assumed.", - "301 Moved Permanently code.", - "302 Moved Temporarily code.", - "303 See Other code.", - "307 Temporary Redirect code." - ] - }, - "securityLevel": { - "enumDescriptions": [ - "Not specified.", - "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.", - "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", - "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.", - "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." - ], - "enum": [ - "SECURE_UNSPECIFIED", - "SECURE_DEFAULT", - "SECURE_NEVER", - "SECURE_OPTIONAL", - "SECURE_ALWAYS" - ], - "description": "Security (HTTPS) enforcement for this URL.", - "type": "string" - }, - "authFailAction": { - "enumDescriptions": [ - "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", - "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", - "Rejects request with a 401 HTTP status code and an error message." - ], - "enum": [ - "AUTH_FAIL_ACTION_UNSPECIFIED", - "AUTH_FAIL_ACTION_REDIRECT", - "AUTH_FAIL_ACTION_UNAUTHORIZED" - ], - "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string" - } - }, - "id": "UrlMap" - }, "EndpointsApiService": { "properties": { "configId": { @@ -2070,40 +1953,94 @@ "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.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).", "type": "object" }, - "Operation": { + "UrlMap": { + "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", + "type": "object", "properties": { - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "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" - }, - "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" - }, - "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" - }, - "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 have the format of operations/some/unique/name.", + "redirectHttpResponseCode": { + "enumDescriptions": [ + "Not specified. 302 is assumed.", + "301 Moved Permanently code.", + "302 Moved Temporarily code.", + "303 See Other code.", + "307 Temporary Redirect code." + ], + "enum": [ + "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", + "REDIRECT_HTTP_RESPONSE_CODE_301", + "REDIRECT_HTTP_RESPONSE_CODE_302", + "REDIRECT_HTTP_RESPONSE_CODE_303", + "REDIRECT_HTTP_RESPONSE_CODE_307" + ], + "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", "type": "string" + }, + "securityLevel": { + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "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.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "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.", + "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." + ], + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ] + }, + "authFailAction": { + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ] + }, + "script": { + "description": "Executes a script to handle the request that matches this URL pattern.", + "$ref": "ScriptHandler" + }, + "urlRegex": { + "description": "URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", + "type": "string" + }, + "login": { + "description": "Level of login required to access this resource.", + "type": "string", + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." + ], + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ] + }, + "apiEndpoint": { + "$ref": "ApiEndpointHandler", + "description": "Uses API Endpoints to handle requests." + }, + "staticFiles": { + "description": "Returns the contents of a file, such as an image, as the response.", + "$ref": "StaticFilesHandler" } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a network API call.", - "type": "object" + "id": "UrlMap" }, "ApiConfigHandler": { "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", @@ -2114,6 +2051,13 @@ "type": "string" }, "securityLevel": { + "enumDescriptions": [ + "Not specified.", + "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.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "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.", + "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." + ], "enum": [ "SECURE_UNSPECIFIED", "SECURE_DEFAULT", @@ -2122,14 +2066,7 @@ "SECURE_ALWAYS" ], "description": "Security (HTTPS) enforcement for this URL.", - "type": "string", - "enumDescriptions": [ - "Not specified.", - "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.", - "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", - "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.", - "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." - ] + "type": "string" }, "authFailAction": { "enumDescriptions": [ @@ -2150,8 +2087,6 @@ "type": "string" }, "login": { - "description": "Level of login required to access this resource. Defaults to optional.", - "type": "string", "enumDescriptions": [ "Not specified. LOGIN_OPTIONAL is assumed.", "Does not require that the user is signed in.", @@ -2163,26 +2098,52 @@ "LOGIN_OPTIONAL", "LOGIN_ADMIN", "LOGIN_REQUIRED" - ] + ], + "description": "Level of login required to access this resource. Defaults to optional.", + "type": "string" } }, "id": "ApiConfigHandler" }, + "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" + }, + "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" + }, + "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 have the format of operations/some/unique/name.", + "type": "string" + }, + "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" + } + }, + "id": "Operation", + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object" + }, "StaticFilesHandler": { "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", "type": "object", "properties": { - "applicationReadable": { - "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", - "type": "boolean" - }, - "httpHeaders": { - "description": "HTTP headers to use for all responses from these URLs.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "uploadPathRegex": { "description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", "type": "string" @@ -2203,41 +2164,40 @@ "format": "google-duration", "description": "Time a static file served by this handler should be cached by web proxies and browsers.", "type": "string" + }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "description": "HTTP headers to use for all responses from these URLs.", + "type": "object", + "additionalProperties": { + "type": "string" + } } }, "id": "StaticFilesHandler" }, "BasicScaling": { - "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", - "type": "object", "properties": { - "idleTimeout": { - "format": "google-duration", - "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", - "type": "string" - }, "maxInstances": { "format": "int32", "description": "Maximum number of instances to create for this version.", "type": "integer" + }, + "idleTimeout": { + "format": "google-duration", + "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", + "type": "string" } }, - "id": "BasicScaling" + "id": "BasicScaling", + "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", + "type": "object" }, "DiskUtilization": { - "description": "Target scaling by disk usage. Only applicable for VM runtimes.", - "type": "object", "properties": { - "targetReadOpsPerSecond": { - "format": "int32", - "description": "Target ops read per seconds.", - "type": "integer" - }, - "targetReadBytesPerSecond": { - "format": "int32", - "description": "Target bytes read per second.", - "type": "integer" - }, "targetWriteOpsPerSecond": { "format": "int32", "description": "Target ops written per second.", @@ -2247,9 +2207,21 @@ "format": "int32", "description": "Target bytes written per second.", "type": "integer" + }, + "targetReadOpsPerSecond": { + "format": "int32", + "description": "Target ops read per seconds.", + "type": "integer" + }, + "targetReadBytesPerSecond": { + "format": "int32", + "description": "Target bytes read per second.", + "type": "integer" } }, - "id": "DiskUtilization" + "id": "DiskUtilization", + "description": "Target scaling by disk usage. Only applicable for VM runtimes.", + "type": "object" }, "CpuUtilization": { "description": "Target scaling by CPU usage.", @@ -2319,8 +2291,6 @@ "id": "IdentityAwareProxy" }, "ManualScaling": { - "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "type": "object", "properties": { "instances": { "format": "int32", @@ -2328,31 +2298,27 @@ "type": "integer" } }, - "id": "ManualScaling" + "id": "ManualScaling", + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "type": "object" }, "LocationMetadata": { - "description": "Metadata for the given google.cloud.location.Location.", - "type": "object", "properties": { - "flexibleEnvironmentAvailable": { - "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", - "type": "boolean" - }, "standardEnvironmentAvailable": { "description": "App Engine Standard Environment is available in the given location.@OutputOnly", "type": "boolean" + }, + "flexibleEnvironmentAvailable": { + "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", + "type": "boolean" } }, - "id": "LocationMetadata" + "id": "LocationMetadata", + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object" }, "Service": { - "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", - "type": "object", "properties": { - "name": { - "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, "split": { "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service.", "$ref": "TrafficSplit" @@ -2360,13 +2326,17 @@ "id": { "description": "Relative name of the service within the application. Example: default.@OutputOnly", "type": "string" + }, + "name": { + "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" } }, - "id": "Service" + "id": "Service", + "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", + "type": "object" }, "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", "properties": { "nextPageToken": { "description": "The standard List next-page token.", @@ -2380,23 +2350,14 @@ "type": "array" } }, - "id": "ListOperationsResponse" + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" }, "OperationMetadata": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", "properties": { - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Timestamp that this operation completed.@OutputOnly", - "type": "string" - }, - "operationType": { - "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", - "type": "string" - }, "insertTime": { "format": "google-datetime", "description": "Timestamp that this operation was created.@OutputOnly", @@ -2409,11 +2370,22 @@ "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Timestamp that this operation completed.@OutputOnly", + "type": "string" + }, + "operationType": { + "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", + "type": "string" } }, - "id": "OperationMetadata", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "OperationMetadata" }, "FirewallRule": { "description": "A single firewall rule that is evaluated against incoming traffic and provides an action to take on matched requests.", @@ -2453,79 +2425,41 @@ "description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates.", "type": "object", "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, "certificates": { "description": "The SSL certificates the user is authorized to administer.", "items": { "$ref": "AuthorizedCertificate" }, "type": "array" - }, - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" } }, "id": "ListAuthorizedCertificatesResponse" }, "FeatureSettings": { + "description": "The feature specific settings to be used in the application. These define behaviors that are user configurable.", + "type": "object", "properties": { "splitHealthChecks": { "description": "Boolean value indicating if split health checks should be used instead of the legacy health checks. At an app.yaml level, this means defaulting to 'readiness_check' and 'liveness_check' values instead of 'health_check' ones. Once the legacy 'health_check' behavior is deprecated, and this value is always true, this setting can be removed.", "type": "boolean" } }, - "id": "FeatureSettings", - "description": "The feature specific settings to be used in the application. These define behaviors that are user configurable.", - "type": "object" - }, - "ErrorHandler": { - "description": "Custom static error page to be served when an error occurs.", - "type": "object", - "properties": { - "mimeType": { - "description": "MIME type of file. Defaults to text/html.", - "type": "string" - }, - "errorCode": { - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "ERROR_CODE_DEFAULT", - "ERROR_CODE_OVER_QUOTA", - "ERROR_CODE_DOS_API_DENIAL", - "ERROR_CODE_TIMEOUT" - ], - "description": "Error condition this handler applies to.", - "type": "string", - "enumDescriptions": [ - "Not specified. ERROR_CODE_DEFAULT is assumed.", - "All other error types.", - "Application has exceeded a resource quota.", - "Client blocked by the application's Denial of Service protection configuration.", - "Deadline reached before the application responds." - ] - }, - "staticFile": { - "description": "Static file content to be served for this error.", - "type": "string" - } - }, - "id": "ErrorHandler" - }, - "SslSettings": { - "description": "SSL configuration for a DomainMapping resource.", - "type": "object", - "properties": { - "certificateId": { - "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.", - "type": "string" - } - }, - "id": "SslSettings" + "id": "FeatureSettings" }, "OperationMetadataV1": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", "properties": { + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, "endTime": { "format": "google-datetime", "description": "Time that this operation completed.@OutputOnly", @@ -2543,38 +2477,95 @@ }, "type": "array" }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, "user": { "description": "User who requested this operation.@OutputOnly", "type": "string" }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", "type": "string" } }, - "id": "OperationMetadataV1" + "id": "OperationMetadataV1", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" + }, + "SslSettings": { + "description": "SSL configuration for a DomainMapping resource.", + "type": "object", + "properties": { + "certificateId": { + "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.", + "type": "string" + } + }, + "id": "SslSettings" + }, + "ErrorHandler": { + "description": "Custom static error page to be served when an error occurs.", + "type": "object", + "properties": { + "mimeType": { + "description": "MIME type of file. Defaults to text/html.", + "type": "string" + }, + "errorCode": { + "description": "Error condition this handler applies to.", + "type": "string", + "enumDescriptions": [ + "Not specified. ERROR_CODE_DEFAULT is assumed.", + "All other error types.", + "Application has exceeded a resource quota.", + "Client blocked by the application's Denial of Service protection configuration.", + "Deadline reached before the application responds." + ], + "enum": [ + "ERROR_CODE_UNSPECIFIED", + "ERROR_CODE_DEFAULT", + "ERROR_CODE_OVER_QUOTA", + "ERROR_CODE_DOS_API_DENIAL", + "ERROR_CODE_TIMEOUT" + ] + }, + "staticFile": { + "description": "Static file content to be served for this error.", + "type": "string" + } + }, + "id": "ErrorHandler" }, "Application": { "description": "An Application resource contains the top-level configuration of an App Engine application. Next tag: 20", "type": "object", "properties": { - "defaultCookieExpiration": { - "format": "google-duration", - "description": "Cookie expiration policy for this application.", + "defaultBucket": { + "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", + "type": "string" + }, + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly", + "items": { + "$ref": "UrlDispatchRule" + }, + "type": "array" + }, + "gcrDomain": { + "description": "The Google Container Registry domain used for storing managed build docker images for this application.", + "type": "string" + }, + "name": { + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", "type": "string" }, "id": { "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", "type": "string" }, + "defaultCookieExpiration": { + "format": "google-duration", + "description": "Cookie expiration policy for this application.", + "type": "string" + }, "locationId": { "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", "type": "string" @@ -2600,38 +2591,19 @@ "type": "string" }, "featureSettings": { - "$ref": "FeatureSettings", - "description": "The feature specific settings to be used in the application." - }, - "iap": { - "$ref": "IdentityAwareProxy" + "description": "The feature specific settings to be used in the application.", + "$ref": "FeatureSettings" }, "authDomain": { "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", "type": "string" }, + "iap": { + "$ref": "IdentityAwareProxy" + }, "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", "type": "string" - }, - "defaultBucket": { - "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", - "type": "string" - }, - "dispatchRules": { - "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly", - "items": { - "$ref": "UrlDispatchRule" - }, - "type": "array" - }, - "gcrDomain": { - "description": "The Google Container Registry domain used for storing managed build docker images for this application.", - "type": "string" - }, - "name": { - "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", - "type": "string" } }, "id": "Application" @@ -2663,26 +2635,7 @@ "id": "Network" }, "Instance": { - "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", - "type": "object", "properties": { - "qps": { - "format": "float", - "description": "Average queries per second (QPS) over the last minute.@OutputOnly", - "type": "number" - }, - "vmId": { - "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, - "name": { - "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", - "type": "string" - }, - "vmZoneName": { - "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, "averageLatency": { "format": "int32", "description": "Average latency (ms) over the last minute.@OutputOnly", @@ -2745,14 +2698,48 @@ "vmName": { "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" + }, + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "qps": { + "format": "float", + "description": "Average queries per second (QPS) over the last minute.@OutputOnly", + "type": "number" + }, + "vmZoneName": { + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", + "type": "string" } }, - "id": "Instance" + "id": "Instance", + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", + "type": "object" }, "LivenessCheck": { "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.", "type": "object", "properties": { + "checkInterval": { + "format": "google-duration", + "description": "Interval between health checks.", + "type": "string" + }, + "timeout": { + "format": "google-duration", + "description": "Time before the check is considered failed.", + "type": "string" + }, + "failureThreshold": { + "format": "uint32", + "description": "Number of consecutive failed checks required before considering the VM unhealthy.", + "type": "integer" + }, "initialDelay": { "format": "google-duration", "description": "The initial delay before starting to execute the checks.", @@ -2762,29 +2749,14 @@ "description": "The request path.", "type": "string" }, - "successThreshold": { - "format": "uint32", - "description": "Number of consecutive successful checks required before considering the VM healthy.", - "type": "integer" - }, "host": { "description": "Host header to send when performing a HTTP Liveness check. Example: \"myapp.appspot.com\"", "type": "string" }, - "checkInterval": { - "format": "google-duration", - "description": "Interval between health checks.", - "type": "string" - }, - "failureThreshold": { + "successThreshold": { "format": "uint32", - "description": "Number of consecutive failed checks required before considering the VM unhealthy.", + "description": "Number of consecutive successful checks required before considering the VM healthy.", "type": "integer" - }, - "timeout": { - "format": "google-duration", - "description": "Time before the check is considered failed.", - "type": "string" } }, "id": "LivenessCheck" @@ -2807,11 +2779,6 @@ "description": "Target scaling by network usage. Only applicable for VM runtimes.", "type": "object", "properties": { - "targetSentBytesPerSecond": { - "format": "int32", - "description": "Target bytes sent per second.", - "type": "integer" - }, "targetReceivedBytesPerSecond": { "format": "int32", "description": "Target bytes received per second.", @@ -2826,19 +2793,19 @@ "format": "int32", "description": "Target packets received per second.", "type": "integer" + }, + "targetSentBytesPerSecond": { + "format": "int32", + "description": "Target bytes sent per second.", + "type": "integer" } }, "id": "NetworkUtilization" }, "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", - "type": "object" - }, "name": { "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", "type": "string" @@ -2854,15 +2821,18 @@ }, "description": "Service-specific metadata. For example the available capacity at the given location.", "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" } }, - "id": "Location", - "description": "A resource that represents Google Cloud Platform location.", - "type": "object" + "id": "Location" }, "HealthCheck": { - "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", - "type": "object", "properties": { "unhealthyThreshold": { "format": "uint32", @@ -2898,7 +2868,9 @@ "type": "string" } }, - "id": "HealthCheck" + "id": "HealthCheck", + "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", + "type": "object" }, "ReadinessCheck": { "description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.", @@ -2913,29 +2885,29 @@ "description": "The request path.", "type": "string" }, + "host": { + "description": "Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"", + "type": "string" + }, "successThreshold": { "format": "uint32", "description": "Number of consecutive successful checks required before receiving traffic.", "type": "integer" }, - "host": { - "description": "Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"", - "type": "string" - }, "checkInterval": { "format": "google-duration", "description": "Interval between health checks.", "type": "string" }, - "failureThreshold": { - "format": "uint32", - "description": "Number of consecutive failed checks required before removing traffic.", - "type": "integer" - }, "timeout": { "format": "google-duration", "description": "Time before the check is considered failed.", "type": "string" + }, + "failureThreshold": { + "format": "uint32", + "description": "Number of consecutive failed checks required before removing traffic.", + "type": "integer" } }, "id": "ReadinessCheck" @@ -2955,14 +2927,6 @@ "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, "method": { "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", "type": "string" @@ -2976,6 +2940,14 @@ "format": "google-datetime", "description": "Timestamp that this operation completed.@OutputOnly", "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" } }, "id": "OperationMetadataV1Beta5" @@ -2984,40 +2956,6 @@ "description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", "type": "object", "properties": { - "runtime": { - "description": "Desired runtime. Example: python27.", - "type": "string" - }, - "id": { - "description": "Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", - "type": "string" - }, - "createdBy": { - "description": "Email address of the user who created this version.@OutputOnly", - "type": "string" - }, - "envVariables": { - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.", - "type": "object" - }, - "livenessCheck": { - "$ref": "LivenessCheck", - "description": "Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set." - }, - "network": { - "description": "Extra network settings. Only applicable for App Engine flexible environment versions.", - "$ref": "Network" - }, - "betaSettings": { - "additionalProperties": { - "type": "string" - }, - "description": "Metadata settings that are supplied to this version to enable beta runtime features.", - "type": "object" - }, "env": { "description": "App Engine execution environment for this version.Defaults to standard.", "type": "string" @@ -3030,8 +2968,8 @@ "type": "array" }, "automaticScaling": { - "$ref": "AutomaticScaling", - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics." + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "$ref": "AutomaticScaling" }, "diskUsageBytes": { "format": "int64", @@ -3039,8 +2977,8 @@ "type": "string" }, "healthCheck": { - "$ref": "HealthCheck", - "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." + "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.", + "$ref": "HealthCheck" }, "threadsafe": { "description": "Whether multiple requests can be dispatched to this version at once.", @@ -3063,8 +3001,8 @@ "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." }, "endpointsApiService": { - "description": "Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.", - "$ref": "EndpointsApiService" + "$ref": "EndpointsApiService", + "description": "Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app." }, "vm": { "description": "Whether to deploy this version in a container on a virtual machine.", @@ -3079,35 +3017,40 @@ "type": "string" }, "servingStatus": { + "enumDescriptions": [ + "Not specified.", + "Currently serving. Instances are created according to the scaling settings of the version.", + "Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." + ], "enum": [ "SERVING_STATUS_UNSPECIFIED", "SERVING", "STOPPED" ], "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", - "type": "string", - "enumDescriptions": [ - "Not specified.", - "Currently serving. Instances are created according to the scaling settings of the version.", - "Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." - ] + "type": "string" + }, + "deployment": { + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.", + "$ref": "Deployment" }, "runtimeApiVersion": { "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", "type": "string" }, - "deployment": { - "$ref": "Deployment", - "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." - }, "createTime": { "format": "google-datetime", "description": "Time that this version was created.@OutputOnly", "type": "string" }, + "resources": { + "description": "Machine resources for this version. Only applicable for VM runtimes.", + "$ref": "Resources" + }, "inboundServices": { "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", "items": { + "type": "string", "enum": [ "INBOUND_SERVICE_UNSPECIFIED", "INBOUND_SERVICE_MAIL", @@ -3118,8 +3061,7 @@ "INBOUND_SERVICE_XMPP_PRESENCE", "INBOUND_SERVICE_CHANNEL_PRESENCE", "INBOUND_SERVICE_WARMUP" - ], - "type": "string" + ] }, "type": "array", "enumDescriptions": [ @@ -3134,10 +3076,6 @@ "Enables warmup requests." ] }, - "resources": { - "description": "Machine resources for this version. Only applicable for VM runtimes.", - "$ref": "Resources" - }, "errorHandlers": { "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", "items": { @@ -3164,6 +3102,40 @@ "basicScaling": { "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", "$ref": "BasicScaling" + }, + "runtime": { + "description": "Desired runtime. Example: python27.", + "type": "string" + }, + "id": { + "description": "Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", + "type": "string" + }, + "createdBy": { + "description": "Email address of the user who created this version.@OutputOnly", + "type": "string" + }, + "envVariables": { + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.", + "type": "object" + }, + "livenessCheck": { + "description": "Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.", + "$ref": "LivenessCheck" + }, + "network": { + "$ref": "Network", + "description": "Extra network settings. Only applicable for App Engine flexible environment versions." + }, + "betaSettings": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata settings that are supplied to this version to enable beta runtime features.", + "type": "object" } }, "id": "Version" @@ -3189,7 +3161,20 @@ }, "id": "CertificateRawData" }, + "ScriptHandler": { + "description": "Executes a script to handle the request that matches the URL pattern.", + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ScriptHandler" + }, "FileInfo": { + "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", + "type": "object", "properties": { "sha1Sum": { "description": "The SHA1 hash of the file, in hex.", @@ -3204,23 +3189,18 @@ "type": "string" } }, - "id": "FileInfo", - "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", - "type": "object" - }, - "ScriptHandler": { - "description": "Executes a script to handle the request that matches the URL pattern.", - "type": "object", - "properties": { - "scriptPath": { - "description": "Path to the script from the application root directory.", - "type": "string" - } - }, - "id": "ScriptHandler" + "id": "FileInfo" }, "OperationMetadataExperimental": { "properties": { + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, "method": { "description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly", "type": "string" @@ -3234,14 +3214,6 @@ "format": "google-datetime", "description": "Time that this operation completed.@OutputOnly", "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" } }, "id": "OperationMetadataExperimental", @@ -3249,19 +3221,19 @@ "type": "object" }, "AuthorizedDomain": { + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", + "type": "object", "properties": { - "name": { - "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", - "type": "string" - }, "id": { "description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", "type": "string" + }, + "name": { + "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", + "type": "string" } }, - "id": "AuthorizedDomain", - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", - "type": "object" + "id": "AuthorizedDomain" }, "TrafficSplit": { "description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.", @@ -3276,12 +3248,6 @@ "type": "object" }, "shardBy": { - "enumDescriptions": [ - "Diversion method unspecified.", - "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.", - "Diversion based on applying the modulus operation to a fingerprint of the IP address.", - "Diversion based on weighted random assignment. An incoming request is randomly routed to a version in the traffic split, with probability proportional to the version's traffic share." - ], "enum": [ "UNSPECIFIED", "COOKIE", @@ -3289,15 +3255,24 @@ "RANDOM" ], "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Diversion method unspecified.", + "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.", + "Diversion based on applying the modulus operation to a fingerprint of the IP address.", + "Diversion based on weighted random assignment. An incoming request is randomly routed to a version in the traffic split, with probability proportional to the version's traffic share." + ] } }, "id": "TrafficSplit" }, "OperationMetadataV1Beta": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", "properties": { + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, "warning": { "description": "Durable messages that persist on every operation poll. @OutputOnly", "items": { @@ -3325,32 +3300,11 @@ "method": { "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" } }, - "id": "OperationMetadataV1Beta" - }, - "ListIngressRulesResponse": { - "description": "Response message for Firewall.ListIngressRules.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "ingressRules": { - "description": "The ingress FirewallRules for this application.", - "items": { - "$ref": "FirewallRule" - }, - "type": "array" - } - }, - "id": "ListIngressRulesResponse" + "id": "OperationMetadataV1Beta", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" }, "ListServicesResponse": { "description": "Response message for Services.ListServices.", @@ -3370,20 +3324,50 @@ }, "id": "ListServicesResponse" }, + "ListIngressRulesResponse": { + "description": "Response message for Firewall.ListIngressRules.", + "type": "object", + "properties": { + "ingressRules": { + "description": "The ingress FirewallRules for this application.", + "items": { + "$ref": "FirewallRule" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "id": "ListIngressRulesResponse" + }, + "Deployment": { + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object", + "properties": { + "files": { + "additionalProperties": { + "$ref": "FileInfo" + }, + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", + "type": "object" + }, + "zip": { + "description": "The zip file for this deployment, if this is a zip deployment.", + "$ref": "ZipInfo" + }, + "container": { + "$ref": "ContainerInfo", + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." + } + }, + "id": "Deployment" + }, "Resources": { "description": "Machine resources for a version.", "type": "object", "properties": { - "memoryGb": { - "format": "double", - "description": "Memory (GB) needed.", - "type": "number" - }, - "cpu": { - "format": "double", - "description": "Number of CPU cores needed.", - "type": "number" - }, "volumes": { "description": "User specified volumes.", "items": { @@ -3395,35 +3379,35 @@ "format": "double", "description": "Disk size (GB) needed.", "type": "number" + }, + "memoryGb": { + "format": "double", + "description": "Memory (GB) needed.", + "type": "number" + }, + "cpu": { + "format": "double", + "description": "Number of CPU cores needed.", + "type": "number" } }, "id": "Resources" }, - "Deployment": { - "description": "Code and application artifacts used to deploy a version to App Engine.", - "type": "object", + "BatchUpdateIngressRulesResponse": { "properties": { - "files": { - "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", - "type": "object", - "additionalProperties": { - "$ref": "FileInfo" - } - }, - "zip": { - "$ref": "ZipInfo", - "description": "The zip file for this deployment, if this is a zip deployment." - }, - "container": { - "$ref": "ContainerInfo", - "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." + "ingressRules": { + "description": "The full list of ingress FirewallRules for this application.", + "items": { + "$ref": "FirewallRule" + }, + "type": "array" } }, - "id": "Deployment" + "id": "BatchUpdateIngressRulesResponse", + "description": "Response message for Firewall.UpdateAllIngressRules.", + "type": "object" }, "Volume": { - "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", - "type": "object", "properties": { "volumeType": { "description": "Underlying volume type, e.g. 'tmpfs'.", @@ -3439,27 +3423,43 @@ "type": "string" } }, - "id": "Volume" - }, - "BatchUpdateIngressRulesResponse": { - "properties": { - "ingressRules": { - "description": "The full list of ingress FirewallRules for this application.", - "items": { - "$ref": "FirewallRule" - }, - "type": "array" - } - }, - "id": "BatchUpdateIngressRulesResponse", - "description": "Response message for Firewall.UpdateAllIngressRules.", + "id": "Volume", + "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", "type": "object" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "version": "v1" + "version": "v1", + "baseUrl": "https://appengine.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" + } + } + } + }, + "servicePath": "", + "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", + "kind": "discovery#restDescription", + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine", + "batchPath": "batch", + "revision": "20171009", + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "id": "appengine:v1", + "title": "Google App Engine Admin API" } diff --git a/vendor/google.golang.org/api/appengine/v1alpha/appengine-api.json b/vendor/google.golang.org/api/appengine/v1alpha/appengine-api.json index afb9b9ac5..f3086119c 100644 --- a/vendor/google.golang.org/api/appengine/v1alpha/appengine-api.json +++ b/vendor/google.golang.org/api/appengine/v1alpha/appengine-api.json @@ -1,11 +1,15 @@ { + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine", "batchPath": "batch", - "revision": "20170926", + "revision": "20171009", "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", "id": "appengine:v1alpha", "title": "Google App Engine Admin API", - "ownerName": "Google", "discoveryVersion": "v1", + "ownerName": "Google", "resources": { "apps": { "resources": { @@ -27,10 +31,10 @@ "location": "query" }, "appsId": { - "location": "path", "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", - "required": true + "required": true, + "location": "path" }, "pageSize": { "location": "query", @@ -53,23 +57,20 @@ "operations": { "methods": { "get": { - "path": "v1alpha/apps/{appsId}/operations/{operationsId}", - "id": "appengine.apps.operations.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.", - "httpMethod": "GET", + "response": { + "$ref": "Operation" + }, "parameterOrder": [ "appsId", "operationsId" ], - "response": { - "$ref": "Operation" - }, + "httpMethod": "GET", "parameters": { "appsId": { - "location": "path", "description": "Part of `name`. The name of the operation resource.", "type": "string", - "required": true + "required": true, + "location": "path" }, "operationsId": { "description": "Part of `name`. See documentation of `appsId`.", @@ -83,13 +84,12 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "flatPath": "v1alpha/apps/{appsId}/operations/{operationsId}" + "flatPath": "v1alpha/apps/{appsId}/operations/{operationsId}", + "id": "appengine.apps.operations.get", + "path": "v1alpha/apps/{appsId}/operations/{operationsId}", + "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." }, "list": { - "flatPath": "v1alpha/apps/{appsId}/operations", - "path": "v1alpha/apps/{appsId}/operations", - "id": "appengine.apps.operations.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.", "httpMethod": "GET", "parameterOrder": [ "appsId" @@ -98,27 +98,68 @@ "$ref": "ListOperationsResponse" }, "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, "pageToken": { + "location": "query", "description": "The standard list page token.", - "type": "string", - "location": "query" + "type": "string" }, "appsId": { - "location": "path", "description": "Part of `name`. The name of the operation's parent resource.", "type": "string", - "required": true + "required": true, + "location": "path" }, "pageSize": { - "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer" + "type": "integer", + "location": "query" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1alpha/apps/{appsId}/operations", + "path": "v1alpha/apps/{appsId}/operations", + "id": "appengine.apps.operations.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." + } + } + }, + "locations": { + "methods": { + "get": { + "flatPath": "v1alpha/apps/{appsId}/locations/{locationsId}", + "path": "v1alpha/apps/{appsId}/locations/{locationsId}", + "id": "appengine.apps.locations.get", + "description": "Get information about a location.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId", + "locationsId" + ], + "response": { + "$ref": "Location" + }, + "parameters": { + "appsId": { + "description": "Part of `name`. Resource name for the location.", + "type": "string", + "required": true, + "location": "path" + }, + "locationsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true } }, "scopes": [ @@ -126,58 +167,15 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ] - } - } - }, - "locations": { - "methods": { - "get": { - "description": "Get information about a location.", - "response": { - "$ref": "Location" - }, - "parameterOrder": [ - "appsId", - "locationsId" - ], - "httpMethod": "GET", - "parameters": { - "locationsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Resource name for the location.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1alpha/apps/{appsId}/locations/{locationsId}", - "id": "appengine.apps.locations.get", - "path": "v1alpha/apps/{appsId}/locations/{locationsId}" }, "list": { - "description": "Lists information about the supported locations for this service.", + "httpMethod": "GET", "response": { "$ref": "ListLocationsResponse" }, "parameterOrder": [ "appsId" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], "parameters": { "filter": { "location": "query", @@ -185,35 +183,38 @@ "type": "string" }, "pageToken": { - "location": "query", "description": "The standard list page token.", - "type": "string" + "type": "string", + "location": "query" }, "appsId": { - "location": "path", "description": "Part of `name`. The resource that owns the locations collection, if applicable.", "type": "string", - "required": true + "required": true, + "location": "path" }, "pageSize": { - "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer" + "type": "integer", + "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "flatPath": "v1alpha/apps/{appsId}/locations", + "path": "v1alpha/apps/{appsId}/locations", "id": "appengine.apps.locations.list", - "path": "v1alpha/apps/{appsId}/locations" + "description": "Lists information about the supported locations for this service." } } }, "domainMappings": { "methods": { "delete": { - "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.delete", - "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource.", "httpMethod": "DELETE", "parameterOrder": [ "appsId", @@ -224,28 +225,27 @@ }, "parameters": { "appsId": { + "location": "path", "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", "type": "string", - "required": true, - "location": "path" + "required": true }, "domainMappingsId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}" + "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", + "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.delete", + "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource." }, "patch": { - "request": { - "$ref": "DomainMapping" - }, - "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", "response": { "$ref": "Operation" }, @@ -258,6 +258,17 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { + "domainMappingsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "noManagedCertificate": { + "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated. Only applicable if ssl_settings.certificate_id is specified in the update mask.", + "type": "boolean", + "location": "query" + }, "updateMask": { "format": "google-fieldmask", "description": "Standard field mask for the set of fields to be updated.", @@ -269,94 +280,91 @@ "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", "type": "string", "required": true - }, + } + }, + "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.patch", + "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", + "request": { + "$ref": "DomainMapping" + }, + "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource." + }, + "get": { + "id": "appengine.apps.domainMappings.get", + "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", + "description": "Gets the specified domain mapping.", + "response": { + "$ref": "DomainMapping" + }, + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { "domainMappingsId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true }, - "noManagedCertificate": { - "location": "query", - "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated. Only applicable if ssl_settings.certificate_id is specified in the update mask.", - "type": "boolean" - } - }, - "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.patch", - "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}" - }, - "get": { - "description": "Gets the specified domain mapping.", - "httpMethod": "GET", - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "response": { - "$ref": "DomainMapping" - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { "appsId": { + "location": "path", "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", "type": "string", - "required": true, - "location": "path" - }, - "domainMappingsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" + "required": true } }, - "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", - "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.get" + "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}" }, "list": { + "path": "v1alpha/apps/{appsId}/domainMappings", + "id": "appengine.apps.domainMappings.list", "description": "Lists the domain mappings on an application.", - "response": { - "$ref": "ListDomainMappingsResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "appsId" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], + "response": { + "$ref": "ListDomainMappingsResponse" + }, "parameters": { + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + }, "pageToken": { "location": "query", "description": "Continuation token for fetching the next page of results.", "type": "string" }, "appsId": { + "location": "path", "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" + "required": true } }, - "flatPath": "v1alpha/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.list", - "path": "v1alpha/apps/{appsId}/domainMappings" + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1alpha/apps/{appsId}/domainMappings" }, "create": { + "request": { + "$ref": "DomainMapping" + }, + "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", "httpMethod": "POST", "parameterOrder": [ "appsId" @@ -368,72 +376,36 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { + "noManagedCertificate": { + "location": "query", + "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manaually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated.", + "type": "boolean" + }, "appsId": { - "location": "path", "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", - "required": true - }, - "noManagedCertificate": { - "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manaually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated.", - "type": "boolean", - "location": "query" + "required": true, + "location": "path" } }, "flatPath": "v1alpha/apps/{appsId}/domainMappings", "path": "v1alpha/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.create", - "request": { - "$ref": "DomainMapping" - }, - "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains." + "id": "appengine.apps.domainMappings.create" } } }, "authorizedCertificates": { "methods": { - "create": { - "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.create", - "path": "v1alpha/apps/{appsId}/authorizedCertificates", - "request": { - "$ref": "AuthorizedCertificate" - }, - "description": "Uploads the specified SSL certificate.", - "response": { - "$ref": "AuthorizedCertificate" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - } - } - }, "delete": { - "id": "appengine.apps.authorizedCertificates.delete", - "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "description": "Deletes the specified SSL certificate.", - "response": { - "$ref": "Empty" - }, + "httpMethod": "DELETE", "parameterOrder": [ "appsId", "authorizedCertificatesId" ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "response": { + "$ref": "Empty" + }, "parameters": { "appsId": { "location": "path", @@ -448,31 +420,29 @@ "required": true } }, - "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "id": "appengine.apps.authorizedCertificates.delete" }, "patch": { + "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "id": "appengine.apps.authorizedCertificates.patch", + "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", "request": { "$ref": "AuthorizedCertificate" }, - "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", - "response": { - "$ref": "AuthorizedCertificate" - }, + "httpMethod": "PATCH", "parameterOrder": [ "appsId", "authorizedCertificatesId" ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "response": { + "$ref": "AuthorizedCertificate" + }, "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.", - "type": "string" - }, "appsId": { "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.", "type": "string", @@ -480,17 +450,29 @@ "location": "path" }, "authorizedCertificatesId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.", + "type": "string", + "location": "query" } }, - "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "id": "appengine.apps.authorizedCertificates.patch", - "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" }, "get": { + "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "id": "appengine.apps.authorizedCertificates.get", + "description": "Gets the specified SSL certificate.", + "httpMethod": "GET", "response": { "$ref": "AuthorizedCertificate" }, @@ -498,19 +480,24 @@ "appsId", "authorizedCertificatesId" ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { - "appsId": { + "authorizedCertificatesId": { "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", + "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", + "type": "string", + "required": true, + "location": "path" + }, "view": { "location": "query", "enum": [ @@ -519,38 +506,22 @@ ], "description": "Controls the set of fields returned in the GET response.", "type": "string" - }, - "authorizedCertificatesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true } - }, - "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "id": "appengine.apps.authorizedCertificates.get", - "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "description": "Gets the specified SSL certificate." + } }, "list": { - "description": "Lists all SSL certificates the user is authorized to administer.", - "response": { - "$ref": "ListAuthorizedCertificatesResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "appsId" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], + "response": { + "$ref": "ListAuthorizedCertificatesResponse" + }, "parameters": { "pageToken": { - "location": "query", "description": "Continuation token for fetching the next page of results.", - "type": "string" + "type": "string", + "location": "query" }, "appsId": { "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", @@ -559,24 +530,57 @@ "location": "path" }, "pageSize": { - "location": "query", "format": "int32", "description": "Maximum results to return per page.", - "type": "integer" + "type": "integer", + "location": "query" }, "view": { + "description": "Controls the set of fields returned in the LIST response.", + "type": "string", + "location": "query", "enum": [ "BASIC_CERTIFICATE", "FULL_CERTIFICATE" - ], - "description": "Controls the set of fields returned in the LIST response.", + ] + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates", + "path": "v1alpha/apps/{appsId}/authorizedCertificates", + "id": "appengine.apps.authorizedCertificates.list", + "description": "Lists all SSL certificates the user is authorized to administer." + }, + "create": { + "response": { + "$ref": "AuthorizedCertificate" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", "type": "string", - "location": "query" + "required": true, + "location": "path" } }, "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.list", - "path": "v1alpha/apps/{appsId}/authorizedCertificates" + "id": "appengine.apps.authorizedCertificates.create", + "path": "v1alpha/apps/{appsId}/authorizedCertificates", + "request": { + "$ref": "AuthorizedCertificate" + }, + "description": "Uploads the specified SSL certificate." } } } @@ -584,11 +588,21 @@ } }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", @@ -601,8 +615,13 @@ "type": "string" }, "uploadType": { - "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", "type": "string" }, "$.xgafv": { @@ -618,18 +637,7 @@ "description": "V1 error format.", "type": "string" }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, "alt": { - "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", "description": "Data format for response.", "default": "json", "enum": [ @@ -637,213 +645,56 @@ "media", "proto" ], - "type": "string" + "type": "string", + "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" + }, + "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.", + "type": "string", + "location": "query" }, "access_token": { "location": "query", "description": "OAuth access token.", "type": "string" }, - "key": { - "location": "query", - "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.", - "type": "string" - }, "quotaUser": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "pp": { "description": "Pretty-print response.", "default": "true", "type": "boolean", "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" } }, "schemas": { - "OperationMetadataV1Beta5": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", - "properties": { - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "method": { - "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", - "type": "string" - }, - "insertTime": { - "format": "google-datetime", - "description": "Timestamp that this operation was created.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Timestamp that this operation completed.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1Beta5" - }, - "ListLocationsResponse": { - "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, - "locations": { - "description": "A list of locations that matches the specified filter in the request.", - "items": { - "$ref": "Location" - }, - "type": "array" - } - }, - "id": "ListLocationsResponse", - "description": "The response message for Locations.ListLocations.", - "type": "object" - }, - "ManagedCertificate": { - "properties": { - "status": { - "description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly", - "type": "string", - "enumDescriptions": [ - "", - "Certificate was successfully obtained and inserted into the serving system.", - "Certificate is under active attempts to acquire or renew.", - "Most recent renewal failed due to a system failure and will be retried. System failure is likely transient, and subsequent renewal attempts may succeed. The last successfully provisioned certificate may still be serving.", - "Most recent renewal failed due to an invalid DNS setup and will be retried. Renewal attempts will continue to fail until the certificate domain's DNS configuration is fixed. The last successfully provisioned certificate may still be serving.", - "All renewal attempts have been exhausted. Most recent renewal failed due to an invalid DNS setup and will not be retried. The last successfully provisioned certificate may still be serving." - ], - "enum": [ - "UNSPECIFIED_STATUS", - "OK", - "PENDING", - "FAILED_RETRYING_INTERNAL", - "FAILED_RETRYING_NOT_VISIBLE", - "FAILED_PERMANENTLY_NOT_VISIBLE" - ] - }, - "lastRenewalTime": { - "format": "google-datetime", - "description": "Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly", - "type": "string" - } - }, - "id": "ManagedCertificate", - "description": "A certificate managed by App Engine.", - "type": "object" - }, - "CertificateRawData": { - "properties": { - "privateKey": { - "description": "Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN RSA PRIVATE KEY----- \u003cunencrypted_key_value\u003e -----END RSA PRIVATE KEY----- \u003c/pre\u003e @InputOnly", - "type": "string" - }, - "publicCertificate": { - "description": "PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN CERTIFICATE----- \u003ccertificate_value\u003e -----END CERTIFICATE----- \u003c/pre\u003e", - "type": "string" - } - }, - "id": "CertificateRawData", - "description": "An SSL certificate obtained from a certificate authority.", - "type": "object" - }, - "OperationMetadataV1": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", - "properties": { - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1" - }, - "SslSettings": { - "description": "SSL configuration for a DomainMapping resource.", - "type": "object", - "properties": { - "isManagedCertificate": { - "description": "Whether the mapped certificate is an App Engine managed certificate. Managed certificates are created by default with a domain mapping. To opt out, specify no_managed_certificate on a CREATE or UPDATE request.@OutputOnly", - "type": "boolean" - }, - "certificateId": { - "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify no_managed_certificate on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.", - "type": "string" - } - }, - "id": "SslSettings" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "type": "object", "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" - }, "response": { + "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", "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" + } }, "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 have the format of operations/some/unique/name.", "type": "string" }, "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" }, "metadata": { "additionalProperties": { @@ -852,6 +703,10 @@ }, "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" + }, + "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" } }, "id": "Operation" @@ -874,47 +729,30 @@ }, "id": "ListDomainMappingsResponse" }, - "OperationMetadataExperimental": { + "OperationMetadataV1Alpha": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly", - "type": "string" + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" }, "insertTime": { "format": "google-datetime", "description": "Time that this operation was created.@OutputOnly", "type": "string" }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataExperimental" - }, - "OperationMetadataV1Alpha": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", - "properties": { - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, "user": { "description": "User who requested this operation.@OutputOnly", "type": "string" }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, "ephemeralMessage": { "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", "type": "string" @@ -927,36 +765,38 @@ "format": "google-datetime", "description": "Time that this operation completed.@OutputOnly", "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" + } + }, + "id": "OperationMetadataV1Alpha" + }, + "OperationMetadataExperimental": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "method": { + "description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly", + "type": "string" }, "insertTime": { "format": "google-datetime", "description": "Time that this operation was created.@OutputOnly", "type": "string" - } - }, - "id": "OperationMetadataV1Alpha" - }, - "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", - "type": "object", - "properties": { - "id": { - "description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", "type": "string" }, - "name": { - "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", "type": "string" } }, - "id": "AuthorizedDomain" + "id": "OperationMetadataExperimental" }, "ListAuthorizedDomainsResponse": { "description": "Response message for AuthorizedDomains.ListAuthorizedDomains.", @@ -983,11 +823,11 @@ "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "items": { + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - }, - "type": "object" + } }, "type": "array" }, @@ -1003,11 +843,35 @@ }, "id": "Status" }, - "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", + "AuthorizedDomain": { + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", "type": "object", - "properties": {}, - "id": "Empty" + "properties": { + "name": { + "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", + "type": "string" + }, + "id": { + "description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", + "type": "string" + } + }, + "id": "AuthorizedDomain" + }, + "LocationMetadata": { + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object", + "properties": { + "flexibleEnvironmentAvailable": { + "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", + "type": "boolean" + }, + "standardEnvironmentAvailable": { + "description": "App Engine Standard Environment is available in the given location.@OutputOnly", + "type": "boolean" + } + }, + "id": "LocationMetadata" }, "DomainMapping": { "description": "A domain serving an App Engine application.", @@ -1035,20 +899,11 @@ }, "id": "DomainMapping" }, - "LocationMetadata": { - "description": "Metadata for the given google.cloud.location.Location.", + "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", "type": "object", - "properties": { - "flexibleEnvironmentAvailable": { - "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", - "type": "boolean" - }, - "standardEnvironmentAvailable": { - "description": "App Engine Standard Environment is available in the given location.@OutputOnly", - "type": "boolean" - } - }, - "id": "LocationMetadata" + "properties": {}, + "id": "Empty" }, "OperationMetadataV1Beta": { "description": "Metadata for the given google.longrunning.Operation.", @@ -1066,14 +921,14 @@ "description": "Time that this operation was created.@OutputOnly", "type": "string" }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, "user": { "description": "User who requested this operation.@OutputOnly", "type": "string" }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, "ephemeralMessage": { "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", "type": "string" @@ -1133,8 +988,8 @@ "$ref": "CertificateRawData" }, "managedCertificate": { - "description": "Only applicable if this certificate is managed by App Engine. Managed certificates are tied to the lifecycle of a DomainMapping and cannot be updated or deleted via the AuthorizedCertificates API. If this certificate is manually administered by the user, this field will be empty.@OutputOnly", - "$ref": "ManagedCertificate" + "$ref": "ManagedCertificate", + "description": "Only applicable if this certificate is managed by App Engine. Managed certificates are tied to the lifecycle of a DomainMapping and cannot be updated or deleted via the AuthorizedCertificates API. If this certificate is manually administered by the user, this field will be empty.@OutputOnly" }, "visibleDomainMappings": { "description": "The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly", @@ -1175,27 +1030,27 @@ "description": "A DNS resource record.", "type": "object", "properties": { - "rrdata": { - "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", - "type": "string" - }, "name": { "description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.", "type": "string" }, "type": { + "enumDescriptions": [ + "An A resource record. Data is an IPv4 address.", + "An AAAA resource record. Data is an IPv6 address.", + "A CNAME resource record. Data is a domain name to be aliased." + ], "enum": [ "A", "AAAA", "CNAME" ], "description": "Resource record type. Example: AAAA.", - "type": "string", - "enumDescriptions": [ - "An A resource record. Data is an IPv4 address.", - "An AAAA resource record. Data is an IPv6 address.", - "A CNAME resource record. Data is a domain name to be aliased." - ] + "type": "string" + }, + "rrdata": { + "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", + "type": "string" } }, "id": "ResourceRecord" @@ -1222,19 +1077,6 @@ "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { - "insertTime": { - "format": "google-datetime", - "description": "Timestamp that this operation was created.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, "method": { "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", "type": "string" @@ -1247,6 +1089,19 @@ "operationType": { "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", "type": "string" + }, + "insertTime": { + "format": "google-datetime", + "description": "Timestamp that this operation was created.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" } }, "id": "OperationMetadata" @@ -1268,12 +1123,161 @@ "id": "ListAuthorizedCertificatesResponse", "description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates.", "type": "object" + }, + "OperationMetadataV1Beta5": { + "properties": { + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "method": { + "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", + "type": "string" + }, + "insertTime": { + "format": "google-datetime", + "description": "Timestamp that this operation was created.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Timestamp that this operation completed.@OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadataV1Beta5", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" + }, + "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "type": "object", + "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" + } + }, + "id": "ListLocationsResponse" + }, + "ManagedCertificate": { + "description": "A certificate managed by App Engine.", + "type": "object", + "properties": { + "lastRenewalTime": { + "format": "google-datetime", + "description": "Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly", + "type": "string" + }, + "status": { + "enum": [ + "UNSPECIFIED_STATUS", + "OK", + "PENDING", + "FAILED_RETRYING_INTERNAL", + "FAILED_RETRYING_NOT_VISIBLE", + "FAILED_PERMANENTLY_NOT_VISIBLE" + ], + "description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly", + "type": "string", + "enumDescriptions": [ + "", + "Certificate was successfully obtained and inserted into the serving system.", + "Certificate is under active attempts to acquire or renew.", + "Most recent renewal failed due to a system failure and will be retried. System failure is likely transient, and subsequent renewal attempts may succeed. The last successfully provisioned certificate may still be serving.", + "Most recent renewal failed due to an invalid DNS setup and will be retried. Renewal attempts will continue to fail until the certificate domain's DNS configuration is fixed. The last successfully provisioned certificate may still be serving.", + "All renewal attempts have been exhausted. Most recent renewal failed due to an invalid DNS setup and will not be retried. The last successfully provisioned certificate may still be serving." + ] + } + }, + "id": "ManagedCertificate" + }, + "OperationMetadataV1": { + "properties": { + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadataV1", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" + }, + "SslSettings": { + "description": "SSL configuration for a DomainMapping resource.", + "type": "object", + "properties": { + "isManagedCertificate": { + "description": "Whether the mapped certificate is an App Engine managed certificate. Managed certificates are created by default with a domain mapping. To opt out, specify no_managed_certificate on a CREATE or UPDATE request.@OutputOnly", + "type": "boolean" + }, + "certificateId": { + "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify no_managed_certificate on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.", + "type": "string" + } + }, + "id": "SslSettings" + }, + "CertificateRawData": { + "properties": { + "privateKey": { + "description": "Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN RSA PRIVATE KEY----- \u003cunencrypted_key_value\u003e -----END RSA PRIVATE KEY----- \u003c/pre\u003e @InputOnly", + "type": "string" + }, + "publicCertificate": { + "description": "PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN CERTIFICATE----- \u003ccertificate_value\u003e -----END CERTIFICATE----- \u003c/pre\u003e", + "type": "string" + } + }, + "id": "CertificateRawData", + "description": "An SSL certificate obtained from a certificate authority.", + "type": "object" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "version": "v1alpha", "baseUrl": "https://appengine.googleapis.com/", @@ -1294,9 +1298,5 @@ }, "kind": "discovery#restDescription", "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", - "servicePath": "", - "rootUrl": "https://appengine.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "appengine" + "servicePath": "" } diff --git a/vendor/google.golang.org/api/appengine/v1beta/appengine-api.json b/vendor/google.golang.org/api/appengine/v1beta/appengine-api.json index 0f271e19c..599488f48 100644 --- a/vendor/google.golang.org/api/appengine/v1beta/appengine-api.json +++ b/vendor/google.golang.org/api/appengine/v1beta/appengine-api.json @@ -1,45 +1,637 @@ { - "servicePath": "", - "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", - "kind": "discovery#restDescription", - "rootUrl": "https://appengine.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "appengine", - "batchPath": "batch", - "revision": "20170926", - "id": "appengine:v1beta", - "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", - "title": "Google App Engine Admin API", - "ownerName": "Google", "discoveryVersion": "v1", + "ownerName": "Google", "resources": { "apps": { + "methods": { + "repair": { + "httpMethod": "POST", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the application to repair. Example: apps/myapp", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}:repair", + "path": "v1beta/apps/{appsId}:repair", + "id": "appengine.apps.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.", + "request": { + "$ref": "RepairApplicationRequest" + } + }, + "patch": { + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain - Google authentication domain for controlling user access to the application.\ndefault_cookie_expiration - Cookie expiration policy for the application.", + "request": { + "$ref": "Application" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}", + "id": "appengine.apps.patch", + "path": "v1beta/apps/{appsId}" + }, + "get": { + "flatPath": "v1beta/apps/{appsId}", + "path": "v1beta/apps/{appsId}", + "id": "appengine.apps.get", + "description": "Gets information about an application.", + "httpMethod": "GET", + "response": { + "$ref": "Application" + }, + "parameterOrder": [ + "appsId" + ], + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "create": { + "request": { + "$ref": "Application" + }, + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1beta/apps", + "path": "v1beta/apps", + "id": "appengine.apps.create" + } + }, "resources": { - "locations": { + "authorizedDomains": { "methods": { - "get": { - "description": "Get information about a location.", + "list": { + "description": "Lists all domains the user is authorized to administer.", + "response": { + "$ref": "ListAuthorizedDomainsResponse" + }, "parameterOrder": [ - "appsId", - "locationsId" + "appsId" ], "httpMethod": "GET", - "response": { - "$ref": "Location" + "parameters": { + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + } }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "flatPath": "v1beta/apps/{appsId}/authorizedDomains", + "id": "appengine.apps.authorizedDomains.list", + "path": "v1beta/apps/{appsId}/authorizedDomains" + } + } + }, + "operations": { + "methods": { + "get": { + "flatPath": "v1beta/apps/{appsId}/operations/{operationsId}", + "id": "appengine.apps.operations.get", + "path": "v1beta/apps/{appsId}/operations/{operationsId}", + "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.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "operationsId" + ], + "httpMethod": "GET", "parameters": { "appsId": { - "description": "Part of `name`. Resource name for the location.", + "description": "Part of `name`. The name of the operation resource.", "type": "string", "required": true, "location": "path" }, + "operationsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "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": { + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListOperationsResponse" + }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. The name of the operation's parent resource.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/operations", + "id": "appengine.apps.operations.list", + "path": "v1beta/apps/{appsId}/operations", + "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." + } + } + }, + "domainMappings": { + "methods": { + "delete": { + "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.delete", + "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "domainMappingsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true + } + } + }, + "patch": { + "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.patch", + "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", + "request": { + "$ref": "DomainMapping" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true, + "location": "path" + }, + "domainMappingsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "id": "appengine.apps.domainMappings.get", + "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", + "description": "Gets the specified domain mapping.", + "response": { + "$ref": "DomainMapping" + }, + "parameterOrder": [ + "appsId", + "domainMappingsId" + ], + "httpMethod": "GET", + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", + "type": "string", + "required": true, + "location": "path" + }, + "domainMappingsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, + "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 the domain mappings on an application.", + "response": { + "$ref": "ListDomainMappingsResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/domainMappings", + "id": "appengine.apps.domainMappings.list", + "path": "v1beta/apps/{appsId}/domainMappings" + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}/domainMappings", + "path": "v1beta/apps/{appsId}/domainMappings", + "id": "appengine.apps.domainMappings.create", + "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", + "request": { + "$ref": "DomainMapping" + } + } + } + }, + "firewall": { + "resources": { + "ingressRules": { + "methods": { + "list": { + "description": "Lists the firewall rules of an application.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListIngressRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "matchingAddress": { + "description": "A valid IP Address. If set, only rules matching this address will be returned. The first returned rule will be the rule that fires on requests from this IP.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "description": "Part of `parent`. Name of the Firewall collection to retrieve. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", + "path": "v1beta/apps/{appsId}/firewall/ingressRules", + "id": "appengine.apps.firewall.ingressRules.list" + }, + "create": { + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", + "path": "v1beta/apps/{appsId}/firewall/ingressRules", + "id": "appengine.apps.firewall.ingressRules.create", + "request": { + "$ref": "FirewallRule" + }, + "description": "Creates a firewall rule for the application.", + "httpMethod": "POST", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "FirewallRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `parent`. Name of the parent Firewall collection in which to create a new rule. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "get": { + "description": "Gets the specified firewall rule.", + "response": { + "$ref": "FirewallRule" + }, + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Firewall resource to retrieve. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true + }, + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.get", + "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}" + }, + "patch": { + "description": "Updates the specified firewall rule.", + "request": { + "$ref": "FirewallRule" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "response": { + "$ref": "FirewallRule" + }, + "parameters": { + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Firewall resource to update. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.patch" + }, + "batchUpdate": { + "request": { + "$ref": "BatchUpdateIngressRulesRequest" + }, + "description": "Replaces the entire firewall ruleset in one bulk operation. This overrides and replaces the rules of an existing firewall with the new rules.If the final rule does not match traffic with the '*' wildcard IP range, then an \"allow all\" rule is explicitly added to the end of the list.", + "response": { + "$ref": "BatchUpdateIngressRulesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the Firewall collection to set. Example: apps/myapp/firewall/ingressRules.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate", + "id": "appengine.apps.firewall.ingressRules.batchUpdate", + "path": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "appsId", + "ingressRulesId" + ], + "httpMethod": "DELETE", + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Firewall resource to delete. Example: apps/myapp/firewall/ingressRules/100.", + "type": "string", + "required": true, + "location": "path" + }, + "ingressRulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "id": "appengine.apps.firewall.ingressRules.delete", + "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", + "description": "Deletes the specified firewall rule." + } + } + } + } + }, + "locations": { + "methods": { + "get": { + "flatPath": "v1beta/apps/{appsId}/locations/{locationsId}", + "path": "v1beta/apps/{appsId}/locations/{locationsId}", + "id": "appengine.apps.locations.get", + "description": "Get information about a location.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId", + "locationsId" + ], + "response": { + "$ref": "Location" + }, + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Resource name for the location.", + "type": "string", + "required": true + }, "locationsId": { "description": "Part of `name`. See documentation of `appsId`.", "type": "string", @@ -47,27 +639,24 @@ "location": "path" } }, - "flatPath": "v1beta/apps/{appsId}/locations/{locationsId}", - "id": "appengine.apps.locations.get", - "path": "v1beta/apps/{appsId}/locations/{locationsId}" - }, - "list": { - "flatPath": "v1beta/apps/{appsId}/locations", - "path": "v1beta/apps/{appsId}/locations", - "id": "appengine.apps.locations.list", - "description": "Lists information about the supported locations for this service.", - "httpMethod": "GET", - "parameterOrder": [ - "appsId" - ], - "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" + ] + }, + "list": { + "flatPath": "v1beta/apps/{appsId}/locations", + "id": "appengine.apps.locations.list", + "path": "v1beta/apps/{appsId}/locations", + "description": "Lists information about the supported locations for this service.", + "response": { + "$ref": "ListLocationsResponse" + }, + "parameterOrder": [ + "appsId" ], + "httpMethod": "GET", "parameters": { "filter": { "description": "The standard list filter.", @@ -75,9 +664,9 @@ "location": "query" }, "pageToken": { - "location": "query", "description": "The standard list page token.", - "type": "string" + "type": "string", + "location": "query" }, "appsId": { "location": "path", @@ -91,39 +680,17 @@ "type": "integer", "location": "query" } - } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] } } }, "authorizedCertificates": { "methods": { - "create": { - "description": "Uploads the specified SSL certificate.", - "request": { - "$ref": "AuthorizedCertificate" - }, - "httpMethod": "POST", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "AuthorizedCertificate" - }, - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}/authorizedCertificates", - "path": "v1beta/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.create" - }, "delete": { "response": { "$ref": "Empty" @@ -144,10 +711,10 @@ "required": true }, "appsId": { - "location": "path", "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.", "type": "string", - "required": true + "required": true, + "location": "path" } }, "flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", @@ -156,10 +723,6 @@ "description": "Deletes the specified SSL certificate." }, "patch": { - "request": { - "$ref": "AuthorizedCertificate" - }, - "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.", "response": { "$ref": "AuthorizedCertificate" }, @@ -173,10 +736,10 @@ ], "parameters": { "authorizedCertificatesId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true }, "updateMask": { "location": "query", @@ -193,9 +756,14 @@ }, "flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", "id": "appengine.apps.authorizedCertificates.patch", - "path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + "path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "request": { + "$ref": "AuthorizedCertificate" + }, + "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated." }, "get": { + "description": "Gets the specified SSL certificate.", "response": { "$ref": "AuthorizedCertificate" }, @@ -204,74 +772,27 @@ "authorizedCertificatesId" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], "parameters": { - "authorizedCertificatesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, "appsId": { "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.", "type": "string", "required": true, "location": "path" }, - "view": { - "enum": [ - "BASIC_CERTIFICATE", - "FULL_CERTIFICATE" - ], - "description": "Controls the set of fields returned in the GET response.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "id": "appengine.apps.authorizedCertificates.get", - "path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", - "description": "Gets the specified SSL certificate." - }, - "list": { - "description": "Lists all SSL certificates the user is authorized to administer.", - "response": { - "$ref": "ListAuthorizedCertificatesResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - }, "view": { "location": "query", "enum": [ "BASIC_CERTIFICATE", "FULL_CERTIFICATE" ], - "description": "Controls the set of fields returned in the LIST response.", + "description": "Controls the set of fields returned in the GET response.", "type": "string" + }, + "authorizedCertificatesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" } }, "scopes": [ @@ -279,13 +800,234 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "flatPath": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}", + "id": "appengine.apps.authorizedCertificates.get", + "path": "v1beta/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}" + }, + "list": { + "description": "Lists all SSL certificates the user is authorized to administer.", + "httpMethod": "GET", + "response": { + "$ref": "ListAuthorizedCertificatesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + }, + "view": { + "description": "Controls the set of fields returned in the LIST response.", + "type": "string", + "location": "query", + "enum": [ + "BASIC_CERTIFICATE", + "FULL_CERTIFICATE" + ] + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, "flatPath": "v1beta/apps/{appsId}/authorizedCertificates", - "id": "appengine.apps.authorizedCertificates.list", + "path": "v1beta/apps/{appsId}/authorizedCertificates", + "id": "appengine.apps.authorizedCertificates.list" + }, + "create": { + "request": { + "$ref": "AuthorizedCertificate" + }, + "description": "Uploads the specified SSL certificate.", + "response": { + "$ref": "AuthorizedCertificate" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/authorizedCertificates", + "id": "appengine.apps.authorizedCertificates.create", "path": "v1beta/apps/{appsId}/authorizedCertificates" } } }, "services": { + "methods": { + "delete": { + "description": "Deletes the specified service and all enclosed versions.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.delete", + "path": "v1beta/apps/{appsId}/services/{servicesId}" + }, + "patch": { + "description": "Updates the configuration of the specified service.", + "request": { + "$ref": "Service" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "servicesId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", + "type": "string", + "required": true + }, + "migrateTraffic": { + "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", + "type": "boolean", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}", + "path": "v1beta/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.patch" + }, + "get": { + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.get", + "path": "v1beta/apps/{appsId}/services/{servicesId}", + "description": "Gets the current configuration of the specified service." + }, + "list": { + "description": "Lists all the services in the application.", + "response": { + "$ref": "ListServicesResponse" + }, + "parameterOrder": [ + "appsId" + ], + "httpMethod": "GET", + "parameters": { + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + }, + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "location": "path", + "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta/apps/{appsId}/services", + "id": "appengine.apps.services.list", + "path": "v1beta/apps/{appsId}/services" + } + }, "resources": { "versions": { "methods": { @@ -299,12 +1041,21 @@ "response": { "$ref": "Operation" }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, "updateMask": { - "location": "query", "format": "google-fieldmask", "description": "Standard field mask for the set of fields to be updated.", - "type": "string" + "type": "string", + "location": "query" }, "servicesId": { "description": "Part of `name`. See documentation of `appsId`.", @@ -313,32 +1064,22 @@ "location": "path" }, "appsId": { - "location": "path", "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", "type": "string", - "required": true - }, - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", "required": true, "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", "id": "appengine.apps.services.versions.patch", - "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.", "request": { "$ref": "Version" - } + }, + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment." }, "get": { "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", - "httpMethod": "GET", "response": { "$ref": "Version" }, @@ -347,6 +1088,7 @@ "servicesId", "versionsId" ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", @@ -366,13 +1108,13 @@ "required": true }, "view": { + "description": "Controls the set of fields returned in the Get response.", + "type": "string", "location": "query", "enum": [ "BASIC", "FULL" - ], - "description": "Controls the set of fields returned in the Get response.", - "type": "string" + ] }, "versionsId": { "description": "Part of `name`. See documentation of `appsId`.", @@ -382,24 +1124,33 @@ } }, "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.get" + "id": "appengine.apps.services.versions.get", + "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}" }, "list": { - "httpMethod": "GET", + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions", + "id": "appengine.apps.services.versions.list", + "path": "v1beta/apps/{appsId}/services/{servicesId}/versions", + "description": "Lists the versions of a service.", + "response": { + "$ref": "ListVersionsResponse" + }, "parameterOrder": [ "appsId", "servicesId" ], - "response": { - "$ref": "ListVersionsResponse" - }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { "servicesId": { - "location": "path", "description": "Part of `parent`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" }, "pageToken": { "location": "query", @@ -413,36 +1164,27 @@ "required": true }, "pageSize": { - "location": "query", "format": "int32", "description": "Maximum results to return per page.", - "type": "integer" + "type": "integer", + "location": "query" }, "view": { + "description": "Controls the set of fields returned in the List response.", + "type": "string", "location": "query", "enum": [ "BASIC", "FULL" - ], - "description": "Controls the set of fields returned in the List response.", - "type": "string" + ] } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions", - "path": "v1beta/apps/{appsId}/services/{servicesId}/versions", - "id": "appengine.apps.services.versions.list", - "description": "Lists the versions of a service." + } }, "create": { - "description": "Deploys code and resource files to a new version.", "request": { "$ref": "Version" }, + "description": "Deploys code and resource files to a new version.", "httpMethod": "POST", "parameterOrder": [ "appsId", @@ -451,6 +1193,9 @@ "response": { "$ref": "Operation" }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "servicesId": { "description": "Part of `parent`. See documentation of `appsId`.", @@ -465,15 +1210,12 @@ "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions", "path": "v1beta/apps/{appsId}/services/{servicesId}/versions", "id": "appengine.apps.services.versions.create" }, "delete": { - "httpMethod": "DELETE", + "description": "Deletes an existing Version resource.", "response": { "$ref": "Operation" }, @@ -482,10 +1224,14 @@ "servicesId", "versionsId" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "httpMethod": "DELETE", "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, "appsId": { "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", "type": "string", @@ -493,72 +1239,23 @@ "location": "path" }, "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "servicesId": { "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true, "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}", "id": "appengine.apps.services.versions.delete", - "description": "Deletes an existing Version resource." + "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}" } }, "resources": { "instances": { "methods": { - "delete": { - "description": "Stops a running instance.", - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId", - "instancesId" - ], - "parameters": { - "instancesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.services.versions.instances.delete" - }, "get": { "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", "id": "appengine.apps.services.versions.instances.get", @@ -575,11 +1272,17 @@ ], "httpMethod": "GET", "parameters": { - "servicesId": { - "location": "path", + "versionsId": { "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" + }, + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" }, "instancesId": { "description": "Part of `name`. See documentation of `appsId`.", @@ -588,14 +1291,8 @@ "location": "path" }, "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", "type": "string", "required": true } @@ -607,6 +1304,9 @@ ] }, "list": { + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", + "id": "appengine.apps.services.versions.instances.list", + "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", "response": { "$ref": "ListInstancesResponse" @@ -617,11 +1317,22 @@ "versionsId" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", + "servicesId": { + "description": "Part of `parent`. See documentation of `appsId`.", "type": "string", - "location": "query" + "required": true, + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" }, "appsId": { "location": "path", @@ -636,26 +1347,12 @@ "type": "integer" }, "versionsId": { - "description": "Part of `parent`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "servicesId": { "location": "path", "description": "Part of `parent`. See documentation of `appsId`.", "type": "string", "required": true } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", - "id": "appengine.apps.services.versions.instances.list", - "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances" + } }, "debug": { "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.", @@ -680,10 +1377,10 @@ "required": true }, "instancesId": { - "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" }, "appsId": { "location": "path", @@ -692,10 +1389,10 @@ "required": true }, "versionsId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ @@ -704,771 +1401,83 @@ "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", "id": "appengine.apps.services.versions.instances.debug", "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug" + }, + "delete": { + "flatPath": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.delete", + "description": "Stops a running instance.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId", + "instancesId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", + "type": "string", + "required": true, + "location": "path" + } + } } } } } } - }, - "methods": { - "delete": { - "description": "Deletes the specified service and all enclosed versions.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "DELETE", - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true, - "location": "path" - }, - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.delete", - "path": "v1beta/apps/{appsId}/services/{servicesId}" - }, - "patch": { - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.patch", - "path": "v1beta/apps/{appsId}/services/{servicesId}", - "description": "Updates the configuration of the specified service.", - "request": { - "$ref": "Service" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "PATCH", - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - }, - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", - "type": "string", - "required": true - }, - "migrateTraffic": { - "location": "query", - "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", - "type": "boolean" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "id": "appengine.apps.services.get", - "path": "v1beta/apps/{appsId}/services/{servicesId}", - "description": "Gets the current configuration of the specified service.", - "response": { - "$ref": "Service" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "GET", - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/services/{servicesId}" - }, - "list": { - "response": { - "$ref": "ListServicesResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/services", - "id": "appengine.apps.services.list", - "path": "v1beta/apps/{appsId}/services", - "description": "Lists all the services in the application." - } - } - }, - "authorizedDomains": { - "methods": { - "list": { - "description": "Lists all domains the user is authorized to administer.", - "response": { - "$ref": "ListAuthorizedDomainsResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/authorizedDomains", - "id": "appengine.apps.authorizedDomains.list", - "path": "v1beta/apps/{appsId}/authorizedDomains" - } - } - }, - "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.", - "httpMethod": "GET", - "parameterOrder": [ - "appsId", - "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" - ], - "parameters": { - "appsId": { - "description": "Part of `name`. The name of the operation resource.", - "type": "string", - "required": true, - "location": "path" - }, - "operationsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta/apps/{appsId}/operations/{operationsId}", - "path": "v1beta/apps/{appsId}/operations/{operationsId}", - "id": "appengine.apps.operations.get" - }, - "list": { - "id": "appengine.apps.operations.list", - "path": "v1beta/apps/{appsId}/operations", - "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.", - "response": { - "$ref": "ListOperationsResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. The name of the operation's parent resource.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/operations" - } - } - }, - "domainMappings": { - "methods": { - "delete": { - "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.delete", - "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource.", - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "domainMappingsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}" - }, - "patch": { - "request": { - "$ref": "DomainMapping" - }, - "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.", - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "domainMappingsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "updateMask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", - "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.patch" - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "DomainMapping" - }, - "parameterOrder": [ - "appsId", - "domainMappingsId" - ], - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "domainMappingsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", - "path": "v1beta/apps/{appsId}/domainMappings/{domainMappingsId}", - "id": "appengine.apps.domainMappings.get", - "description": "Gets the specified domain mapping." - }, - "list": { - "path": "v1beta/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.list", - "description": "Lists the domain mappings on an application.", - "httpMethod": "GET", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "ListDomainMappingsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1beta/apps/{appsId}/domainMappings" - }, - "create": { - "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.", - "request": { - "$ref": "DomainMapping" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "POST", - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}/domainMappings", - "id": "appengine.apps.domainMappings.create", - "path": "v1beta/apps/{appsId}/domainMappings" - } - } - }, - "firewall": { - "resources": { - "ingressRules": { - "methods": { - "get": { - "response": { - "$ref": "FirewallRule" - }, - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "httpMethod": "GET", - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the Firewall resource to retrieve. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true - }, - "ingressRulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "id": "appengine.apps.firewall.ingressRules.get", - "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "description": "Gets the specified firewall rule." - }, - "patch": { - "request": { - "$ref": "FirewallRule" - }, - "description": "Updates the specified firewall rule.", - "response": { - "$ref": "FirewallRule" - }, - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `name`. Name of the Firewall resource to update. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true, - "location": "path" - }, - "ingressRulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "id": "appengine.apps.firewall.ingressRules.patch", - "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}" - }, - "batchUpdate": { - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate", - "id": "appengine.apps.firewall.ingressRules.batchUpdate", - "path": "v1beta/apps/{appsId}/firewall/ingressRules:batchUpdate", - "request": { - "$ref": "BatchUpdateIngressRulesRequest" - }, - "description": "Replaces the entire firewall ruleset in one bulk operation. This overrides and replaces the rules of an existing firewall with the new rules.If the final rule does not match traffic with the '*' wildcard IP range, then an \"allow all\" rule is explicitly added to the end of the list.", - "response": { - "$ref": "BatchUpdateIngressRulesResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Firewall collection to set. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true, - "location": "path" - } - } - }, - "delete": { - "description": "Deletes the specified firewall rule.", - "httpMethod": "DELETE", - "parameterOrder": [ - "appsId", - "ingressRulesId" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "description": "Part of `name`. Name of the Firewall resource to delete. Example: apps/myapp/firewall/ingressRules/100.", - "type": "string", - "required": true, - "location": "path" - }, - "ingressRulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "path": "v1beta/apps/{appsId}/firewall/ingressRules/{ingressRulesId}", - "id": "appengine.apps.firewall.ingressRules.delete" - }, - "list": { - "description": "Lists the firewall rules of an application.", - "response": { - "$ref": "ListIngressRulesResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "matchingAddress": { - "location": "query", - "description": "A valid IP Address. If set, only rules matching this address will be returned. The first returned rule will be the rule that fires on requests from this IP.", - "type": "string" - }, - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "description": "Part of `parent`. Name of the Firewall collection to retrieve. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true, - "location": "path" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - } - }, - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", - "id": "appengine.apps.firewall.ingressRules.list", - "path": "v1beta/apps/{appsId}/firewall/ingressRules" - }, - "create": { - "description": "Creates a firewall rule for the application.", - "request": { - "$ref": "FirewallRule" - }, - "httpMethod": "POST", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "FirewallRule" - }, - "parameters": { - "appsId": { - "description": "Part of `parent`. Name of the parent Firewall collection in which to create a new rule. Example: apps/myapp/firewall/ingressRules.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}/firewall/ingressRules", - "path": "v1beta/apps/{appsId}/firewall/ingressRules", - "id": "appengine.apps.firewall.ingressRules.create" - } - } - } - } - } - }, - "methods": { - "repair": { - "request": { - "$ref": "RepairApplicationRequest" - }, - "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.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the application to repair. Example: apps/myapp", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta/apps/{appsId}:repair", - "id": "appengine.apps.repair", - "path": "v1beta/apps/{appsId}:repair" - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps/{appsId}", - "path": "v1beta/apps/{appsId}", - "id": "appengine.apps.patch", - "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain - Google authentication domain for controlling user access to the application.\ndefault_cookie_expiration - Cookie expiration policy for the application.", - "request": { - "$ref": "Application" - } - }, - "get": { - "response": { - "$ref": "Application" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta/apps/{appsId}", - "id": "appengine.apps.get", - "path": "v1beta/apps/{appsId}", - "description": "Gets information about an application." - }, - "create": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta/apps", - "id": "appengine.apps.create", - "path": "v1beta/apps", - "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", - "request": { - "$ref": "Application" } } } } }, "parameters": { + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", @@ -1480,41 +1489,35 @@ "type": "boolean", "location": "query" }, - "uploadType": { + "fields": { "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" + "type": "string" }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -1522,7 +1525,13 @@ ], "location": "query", "description": "Data format for response.", - "default": "json" + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string" }, "key": { "location": "query", @@ -1530,245 +1539,15 @@ "type": "string" }, "access_token": { - "location": "query", "description": "OAuth access token.", - "type": "string" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", "type": "string", "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" } }, "schemas": { - "AuthorizedDomain": { - "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", - "type": "object", - "properties": { - "id": { - "description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", - "type": "string" - }, - "name": { - "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", - "type": "string" - } - }, - "id": "AuthorizedDomain" - }, - "TrafficSplit": { - "description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.", - "type": "object", - "properties": { - "allocations": { - "additionalProperties": { - "format": "double", - "type": "number" - }, - "description": "Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", - "type": "object" - }, - "shardBy": { - "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", - "type": "string", - "enumDescriptions": [ - "Diversion method unspecified.", - "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.", - "Diversion based on applying the modulus operation to a fingerprint of the IP address.", - "Diversion based on weighted random assignment. An incoming request is randomly routed to a version in the traffic split, with probability proportional to the version's traffic share." - ], - "enum": [ - "UNSPECIFIED", - "COOKIE", - "IP", - "RANDOM" - ] - } - }, - "id": "TrafficSplit" - }, - "OperationMetadataV1Beta": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", - "properties": { - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1Beta" - }, - "ListIngressRulesResponse": { - "description": "Response message for Firewall.ListIngressRules.", - "type": "object", - "properties": { - "ingressRules": { - "description": "The ingress FirewallRules for this application.", - "items": { - "$ref": "FirewallRule" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - } - }, - "id": "ListIngressRulesResponse" - }, - "ListServicesResponse": { - "description": "Response message for Services.ListServices.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "services": { - "description": "The services belonging to the requested application.", - "items": { - "$ref": "Service" - }, - "type": "array" - } - }, - "id": "ListServicesResponse" - }, - "Deployment": { - "description": "Code and application artifacts used to deploy a version to App Engine.", - "type": "object", - "properties": { - "build": { - "description": "Google Cloud Container Builder build information.", - "$ref": "BuildInfo" - }, - "files": { - "additionalProperties": { - "$ref": "FileInfo" - }, - "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", - "type": "object" - }, - "zip": { - "$ref": "ZipInfo", - "description": "The zip file for this deployment, if this is a zip deployment." - }, - "container": { - "$ref": "ContainerInfo", - "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." - } - }, - "id": "Deployment" - }, - "Resources": { - "description": "Machine resources for a version.", - "type": "object", - "properties": { - "memoryGb": { - "format": "double", - "description": "Memory (GB) needed.", - "type": "number" - }, - "cpu": { - "format": "double", - "description": "Number of CPU cores needed.", - "type": "number" - }, - "volumes": { - "description": "User specified volumes.", - "items": { - "$ref": "Volume" - }, - "type": "array" - }, - "diskGb": { - "format": "double", - "description": "Disk size (GB) needed.", - "type": "number" - } - }, - "id": "Resources" - }, - "BatchUpdateIngressRulesResponse": { - "properties": { - "ingressRules": { - "description": "The full list of ingress FirewallRules for this application.", - "items": { - "$ref": "FirewallRule" - }, - "type": "array" - } - }, - "id": "BatchUpdateIngressRulesResponse", - "description": "Response message for Firewall.UpdateAllIngressRules.", - "type": "object" - }, - "Volume": { - "properties": { - "volumeType": { - "description": "Underlying volume type, e.g. 'tmpfs'.", - "type": "string" - }, - "sizeGb": { - "format": "double", - "description": "Volume size in gigabytes.", - "type": "number" - }, - "name": { - "description": "Unique name for the volume.", - "type": "string" - } - }, - "id": "Volume", - "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", - "type": "object" - }, "ManagedCertificate": { + "description": "A certificate managed by App Engine.", + "type": "object", "properties": { "lastRenewalTime": { "format": "google-datetime", @@ -1776,6 +1555,8 @@ "type": "string" }, "status": { + "description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly", + "type": "string", "enumDescriptions": [ "", "Certificate was successfully obtained and inserted into the serving system.", @@ -1789,14 +1570,10 @@ "PENDING", "FAILED_RETRYING_NOT_VISIBLE", "FAILED_PERMANENT" - ], - "description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly", - "type": "string" + ] } }, - "id": "ManagedCertificate", - "description": "A certificate managed by App Engine.", - "type": "object" + "id": "ManagedCertificate" }, "ListInstancesResponse": { "description": "Response message for Instances.ListInstances.", @@ -1835,7 +1612,29 @@ "id": "ListDomainMappingsResponse" }, "OperationMetadataV1Alpha": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, "ephemeralMessage": { "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", "type": "string" @@ -1848,33 +1647,13 @@ "format": "google-datetime", "description": "Time that this operation completed.@OutputOnly", "type": "string" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" } }, - "id": "OperationMetadataV1Alpha", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "OperationMetadataV1Alpha" }, "UrlDispatchRule": { + "description": "Rules to match an HTTP request and dispatch that request to a service.", + "type": "object", "properties": { "path": { "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.The sum of the lengths of the domain and path may not exceed 100 characters.", @@ -1889,9 +1668,7 @@ "type": "string" } }, - "id": "UrlDispatchRule", - "description": "Rules to match an HTTP request and dispatch that request to a service.", - "type": "object" + "id": "UrlDispatchRule" }, "ListVersionsResponse": { "description": "Response message for Versions.ListVersions.", @@ -1929,38 +1706,6 @@ }, "id": "ListAuthorizedDomainsResponse" }, - "DomainMapping": { - "description": "A domain serving an App Engine application.", - "type": "object", - "properties": { - "resourceRecords": { - "description": "The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly", - "items": { - "$ref": "ResourceRecord" - }, - "type": "array" - }, - "id": { - "description": "Relative name of the domain serving the application. Example: example.com.", - "type": "string" - }, - "sslSettings": { - "description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.", - "$ref": "SslSettings" - }, - "name": { - "description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly", - "type": "string" - } - }, - "id": "DomainMapping" - }, - "Empty": { - "properties": {}, - "id": "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", - "type": "object" - }, "ApiEndpointHandler": { "description": "Uses Google Cloud Endpoints to handle requests.", "type": "object", @@ -1972,10 +1717,86 @@ }, "id": "ApiEndpointHandler" }, + "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "DomainMapping": { + "description": "A domain serving an App Engine application.", + "type": "object", + "properties": { + "sslSettings": { + "description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.", + "$ref": "SslSettings" + }, + "name": { + "description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly", + "type": "string" + }, + "resourceRecords": { + "description": "The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly", + "items": { + "$ref": "ResourceRecord" + }, + "type": "array" + }, + "id": { + "description": "Relative name of the domain serving the application. Example: example.com.", + "type": "string" + } + }, + "id": "DomainMapping" + }, + "ZipInfo": { + "description": "The zip file information for a zip deployment.", + "type": "object", + "properties": { + "sourceUrl": { + "description": "URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", + "type": "string" + }, + "filesCount": { + "format": "int32", + "description": "An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.", + "type": "integer" + } + }, + "id": "ZipInfo" + }, "AutomaticScaling": { "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", "type": "object", "properties": { + "minTotalInstances": { + "format": "int32", + "description": "Minimum number of instances that should be maintained for this version.", + "type": "integer" + }, + "networkUtilization": { + "$ref": "NetworkUtilization", + "description": "Target scaling by network usage." + }, + "maxConcurrentRequests": { + "format": "int32", + "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", + "type": "integer" + }, + "coolDownPeriod": { + "format": "google-duration", + "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", + "type": "string" + }, + "maxPendingLatency": { + "format": "google-duration", + "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", + "type": "string" + }, + "cpuUtilization": { + "$ref": "CpuUtilization", + "description": "Target scaling by CPU usage." + }, "diskUtilization": { "$ref": "DiskUtilization", "description": "Target scaling by disk usage." @@ -1985,18 +1806,18 @@ "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", "type": "string" }, + "standardSchedulerSettings": { + "$ref": "StandardSchedulerSettings", + "description": "Scheduler settings for standard environment." + }, "maxIdleInstances": { "format": "int32", "description": "Maximum number of idle instances that should be maintained for this version.", "type": "integer" }, - "standardSchedulerSettings": { - "$ref": "StandardSchedulerSettings", - "description": "Scheduler settings for standard environment." - }, "requestUtilization": { - "$ref": "RequestUtilization", - "description": "Target scaling by request utilization." + "description": "Target scaling by request utilization.", + "$ref": "RequestUtilization" }, "minIdleInstances": { "format": "int32", @@ -2007,54 +1828,10 @@ "format": "int32", "description": "Maximum number of instances that should be started to handle requests.", "type": "integer" - }, - "minTotalInstances": { - "format": "int32", - "description": "Minimum number of instances that should be maintained for this version.", - "type": "integer" - }, - "networkUtilization": { - "description": "Target scaling by network usage.", - "$ref": "NetworkUtilization" - }, - "coolDownPeriod": { - "format": "google-duration", - "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", - "type": "string" - }, - "maxConcurrentRequests": { - "format": "int32", - "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", - "type": "integer" - }, - "maxPendingLatency": { - "format": "google-duration", - "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", - "type": "string" - }, - "cpuUtilization": { - "$ref": "CpuUtilization", - "description": "Target scaling by CPU usage." } }, "id": "AutomaticScaling" }, - "ZipInfo": { - "description": "The zip file information for a zip deployment.", - "type": "object", - "properties": { - "filesCount": { - "format": "int32", - "description": "An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.", - "type": "integer" - }, - "sourceUrl": { - "description": "URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", - "type": "string" - } - }, - "id": "ZipInfo" - }, "AuthorizedCertificate": { "description": "An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.", "type": "object", @@ -2064,8 +1841,8 @@ "type": "string" }, "certificateRawData": { - "description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.", - "$ref": "CertificateRawData" + "$ref": "CertificateRawData", + "description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority." }, "managedCertificate": { "description": "Only applicable if this certificate is managed by App Engine. Managed certificates are tied to the lifecycle of a DomainMapping and cannot be updated or deleted via the AuthorizedCertificates API. If this certificate is manually administered by the user, this field will be empty.@OutputOnly", @@ -2110,10 +1887,6 @@ "description": "A DNS resource record.", "type": "object", "properties": { - "name": { - "description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.", - "type": "string" - }, "type": { "enumDescriptions": [ "An A resource record. Data is an IPv4 address.", @@ -2131,6 +1904,10 @@ "rrdata": { "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).", "type": "string" + }, + "name": { + "description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.", + "type": "string" } }, "id": "ResourceRecord" @@ -2151,22 +1928,22 @@ "id": "Library" }, "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "type": "object", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, "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" } }, - "id": "ListLocationsResponse", - "description": "The response message for Locations.ListLocations.", - "type": "object" + "id": "ListLocationsResponse" }, "ContainerInfo": { "description": "Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment.", @@ -2180,27 +1957,53 @@ "id": "ContainerInfo" }, "RequestUtilization": { + "description": "Target scaling by request utilization. Only applicable for VM runtimes.", + "type": "object", "properties": { - "targetConcurrentRequests": { - "format": "int32", - "description": "Target number of concurrent requests.", - "type": "integer" - }, "targetRequestCountPerSecond": { "format": "int32", "description": "Target requests per second.", "type": "integer" + }, + "targetConcurrentRequests": { + "format": "int32", + "description": "Target number of concurrent requests.", + "type": "integer" } }, - "id": "RequestUtilization", - "description": "Target scaling by request utilization. Only applicable for VM runtimes.", - "type": "object" + "id": "RequestUtilization" }, "UrlMap": { "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", "type": "object", "properties": { + "login": { + "enumDescriptions": [ + "Not specified. LOGIN_OPTIONAL is assumed.", + "Does not require that the user is signed in.", + "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", + "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." + ], + "enum": [ + "LOGIN_UNSPECIFIED", + "LOGIN_OPTIONAL", + "LOGIN_ADMIN", + "LOGIN_REQUIRED" + ], + "description": "Level of login required to access this resource.", + "type": "string" + }, + "apiEndpoint": { + "$ref": "ApiEndpointHandler", + "description": "Uses API Endpoints to handle requests." + }, + "staticFiles": { + "$ref": "StaticFilesHandler", + "description": "Returns the contents of a file, such as an image, as the response." + }, "redirectHttpResponseCode": { + "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", + "type": "string", "enumDescriptions": [ "Not specified. 302 is assumed.", "301 Moved Permanently code.", @@ -2214,13 +2017,9 @@ "REDIRECT_HTTP_RESPONSE_CODE_302", "REDIRECT_HTTP_RESPONSE_CODE_303", "REDIRECT_HTTP_RESPONSE_CODE_307" - ], - "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", - "type": "string" + ] }, "securityLevel": { - "description": "Security (HTTPS) enforcement for this URL.", - "type": "string", "enumDescriptions": [ "Not specified.", "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.", @@ -2234,21 +2033,23 @@ "SECURE_NEVER", "SECURE_OPTIONAL", "SECURE_ALWAYS" - ] + ], + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string" }, "authFailAction": { + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ], "enum": [ "AUTH_FAIL_ACTION_UNSPECIFIED", "AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED" ], "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string", - "enumDescriptions": [ - "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", - "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", - "Rejects request with a 401 HTTP status code and an error message." - ] + "type": "string" }, "script": { "description": "Executes a script to handle the request that matches this URL pattern.", @@ -2257,35 +2058,13 @@ "urlRegex": { "description": "URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", "type": "string" - }, - "login": { - "enum": [ - "LOGIN_UNSPECIFIED", - "LOGIN_OPTIONAL", - "LOGIN_ADMIN", - "LOGIN_REQUIRED" - ], - "description": "Level of login required to access this resource.", - "type": "string", - "enumDescriptions": [ - "Not specified. LOGIN_OPTIONAL is assumed.", - "Does not require that the user is signed in.", - "If the user is not signed in, the auth_fail_action is taken. In addition, if the user is not an administrator for the application, they are given an error message regardless of auth_fail_action. If the user is an administrator, the handler proceeds.", - "If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken." - ] - }, - "apiEndpoint": { - "$ref": "ApiEndpointHandler", - "description": "Uses API Endpoints to handle requests." - }, - "staticFiles": { - "description": "Returns the contents of a file, such as an image, as the response.", - "$ref": "StaticFilesHandler" } }, "id": "UrlMap" }, "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.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).", + "type": "object", "properties": { "configId": { "description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"", @@ -2296,48 +2075,15 @@ "type": "string" } }, - "id": "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.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).", - "type": "object" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a network API call.", - "type": "object", - "properties": { - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "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" - }, - "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" - }, - "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" - }, - "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 have the format of operations/some/unique/name.", - "type": "string" - } - }, - "id": "Operation" + "id": "EndpointsApiService" }, "ApiConfigHandler": { + "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", + "type": "object", "properties": { "securityLevel": { + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string", "enumDescriptions": [ "Not specified.", "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.", @@ -2351,11 +2097,11 @@ "SECURE_NEVER", "SECURE_OPTIONAL", "SECURE_ALWAYS" - ], - "description": "Security (HTTPS) enforcement for this URL.", - "type": "string" + ] }, "authFailAction": { + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string", "enumDescriptions": [ "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", @@ -2365,17 +2111,13 @@ "AUTH_FAIL_ACTION_UNSPECIFIED", "AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED" - ], - "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string" + ] }, "script": { "description": "Path to the script from the application root directory.", "type": "string" }, "login": { - "description": "Level of login required to access this resource. Defaults to optional.", - "type": "string", "enumDescriptions": [ "Not specified. LOGIN_OPTIONAL is assumed.", "Does not require that the user is signed in.", @@ -2387,40 +2129,56 @@ "LOGIN_OPTIONAL", "LOGIN_ADMIN", "LOGIN_REQUIRED" - ] + ], + "description": "Level of login required to access this resource. Defaults to optional.", + "type": "string" }, "url": { "description": "URL to serve the endpoint at.", "type": "string" } }, - "id": "ApiConfigHandler", - "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", - "type": "object" + "id": "ApiConfigHandler" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object", + "properties": { + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "metadata": { + "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", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "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" + }, + "response": { + "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", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "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 have the format of operations/some/unique/name.", + "type": "string" + } + }, + "id": "Operation" }, "StaticFilesHandler": { "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", "type": "object", "properties": { - "httpHeaders": { - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers to use for all responses from these URLs.", - "type": "object" - }, - "applicationReadable": { - "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", - "type": "boolean" - }, - "uploadPathRegex": { - "description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", - "type": "string" - }, - "path": { - "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", - "type": "string" - }, "mimeType": { "description": "MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.", "type": "string" @@ -2433,10 +2191,56 @@ "format": "google-duration", "description": "Time a static file served by this handler should be cached by web proxies and browsers.", "type": "string" + }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "description": "HTTP headers to use for all responses from these URLs.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "uploadPathRegex": { + "description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", + "type": "string" + }, + "path": { + "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", + "type": "string" } }, "id": "StaticFilesHandler" }, + "DiskUtilization": { + "description": "Target scaling by disk usage. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetWriteOpsPerSecond": { + "format": "int32", + "description": "Target ops written per second.", + "type": "integer" + }, + "targetWriteBytesPerSecond": { + "format": "int32", + "description": "Target bytes written per second.", + "type": "integer" + }, + "targetReadOpsPerSecond": { + "format": "int32", + "description": "Target ops read per seconds.", + "type": "integer" + }, + "targetReadBytesPerSecond": { + "format": "int32", + "description": "Target bytes read per second.", + "type": "integer" + } + }, + "id": "DiskUtilization" + }, "BasicScaling": { "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", "type": "object", @@ -2454,33 +2258,6 @@ }, "id": "BasicScaling" }, - "DiskUtilization": { - "description": "Target scaling by disk usage. Only applicable for VM runtimes.", - "type": "object", - "properties": { - "targetReadOpsPerSecond": { - "format": "int32", - "description": "Target ops read per seconds.", - "type": "integer" - }, - "targetReadBytesPerSecond": { - "format": "int32", - "description": "Target bytes read per second.", - "type": "integer" - }, - "targetWriteOpsPerSecond": { - "format": "int32", - "description": "Target ops written per second.", - "type": "integer" - }, - "targetWriteBytesPerSecond": { - "format": "int32", - "description": "Target bytes written per second.", - "type": "integer" - } - }, - "id": "DiskUtilization" - }, "CpuUtilization": { "description": "Target scaling by CPU usage.", "type": "object", @@ -2502,6 +2279,10 @@ "description": "Identity-Aware Proxy", "type": "object", "properties": { + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.", + "type": "boolean" + }, "oauth2ClientSecret": { "description": "OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly", "type": "string" @@ -2513,15 +2294,13 @@ "oauth2ClientSecretSha256": { "description": "Hex-encoded SHA-256 hash of the client secret.@OutputOnly", "type": "string" - }, - "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.", - "type": "boolean" } }, "id": "IdentityAwareProxy" }, "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", + "type": "object", "properties": { "code": { "format": "int32", @@ -2535,18 +2314,16 @@ "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "items": { - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - } + }, + "type": "object" }, "type": "array" } }, - "id": "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", - "type": "object" + "id": "Status" }, "ManualScaling": { "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", @@ -2561,6 +2338,8 @@ "id": "ManualScaling" }, "LocationMetadata": { + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object", "properties": { "standardEnvironmentAvailable": { "description": "App Engine Standard Environment is available in the given location.@OutputOnly", @@ -2571,14 +2350,16 @@ "type": "boolean" } }, - "id": "LocationMetadata", - "description": "Metadata for the given google.cloud.location.Location.", - "type": "object" + "id": "LocationMetadata" }, "Service": { "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", "type": "object", "properties": { + "name": { + "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, "split": { "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service.", "$ref": "TrafficSplit" @@ -2586,55 +2367,32 @@ "id": { "description": "Relative name of the service within the application. Example: default.@OutputOnly", "type": "string" - }, - "name": { - "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" } }, "id": "Service" }, "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", "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" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" } }, - "id": "ListOperationsResponse", - "description": "The response message for Operations.ListOperations.", - "type": "object" + "id": "ListOperationsResponse" }, "FirewallRule": { "description": "A single firewall rule that is evaluated against incoming traffic and provides an action to take on matched requests.", "type": "object", "properties": { - "priority": { - "format": "int32", - "description": "A positive integer between 1, Int32.MaxValue-1 that defines the order of rule evaluation. Rules with the lowest priority are evaluated first.A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic when no previous rule matches. Only the action of this rule can be modified by the user.", - "type": "integer" - }, - "action": { - "enum": [ - "UNSPECIFIED_ACTION", - "ALLOW", - "DENY" - ], - "description": "The action to take on matched requests.", - "type": "string", - "enumDescriptions": [ - "", - "Matching requests are allowed.", - "Matching requests are denied." - ] - }, "description": { "description": "An optional string description of this rule. This field has a maximum length of 100 characters.", "type": "string" @@ -2642,29 +2400,33 @@ "sourceRange": { "description": "IP address or range, defined using CIDR notation, of requests that this rule applies to. You can use the wildcard character \"*\" to match all IPs equivalent to \"0/0\" and \"::/0\" together. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334.\u003cp\u003eTruncation will be silently performed on addresses which are not properly truncated. For example, 1.2.3.4/24 is accepted as the same address as 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 is accepted as the same address as 2001:db8::/32.", "type": "string" + }, + "priority": { + "format": "int32", + "description": "A positive integer between 1, Int32.MaxValue-1 that defines the order of rule evaluation. Rules with the lowest priority are evaluated first.A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic when no previous rule matches. Only the action of this rule can be modified by the user.", + "type": "integer" + }, + "action": { + "description": "The action to take on matched requests.", + "type": "string", + "enumDescriptions": [ + "", + "Matching requests are allowed.", + "Matching requests are denied." + ], + "enum": [ + "UNSPECIFIED_ACTION", + "ALLOW", + "DENY" + ] } }, "id": "FirewallRule" }, "OperationMetadata": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", "properties": { - "insertTime": { - "format": "google-datetime", - "description": "Timestamp that this operation was created.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", - "type": "string" - }, "endTime": { "format": "google-datetime", "description": "Timestamp that this operation completed.@OutputOnly", @@ -2673,11 +2435,26 @@ "operationType": { "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", "type": "string" + }, + "insertTime": { + "format": "google-datetime", + "description": "Timestamp that this operation was created.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "type": "string" } }, - "id": "OperationMetadata", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "OperationMetadata" }, "ListAuthorizedCertificatesResponse": { "description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates.", @@ -2742,12 +2519,16 @@ "id": "ErrorHandler" }, "SslSettings": { + "description": "SSL configuration for a DomainMapping resource.", + "type": "object", "properties": { "pendingManagedCertificateId": { "description": "ID of the managed AuthorizedCertificate resource currently being provisioned, if applicable. Until the new managed certificate has been successfully provisioned, the previous SSL state will be preserved. Once the provisioning process completes, the certificate_id field will reflect the new managed certificate and this field will be left empty. To remove SSL support while there is still a pending managed certificate, clear the certificate_id field with an UpdateDomainMappingRequest.@OutputOnly", "type": "string" }, "sslManagementType": { + "description": "SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain.", + "type": "string", "enumDescriptions": [ "SSL support for this domain is configured automatically. The mapped SSL certificate will be automatically renewed.", "SSL support for this domain is configured manually by the user. Either the domain has no SSL support or a user-obtained SSL certificate has been explictly mapped to this domain." @@ -2755,23 +2536,32 @@ "enum": [ "AUTOMATIC", "MANUAL" - ], - "description": "SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain.", - "type": "string" + ] }, "certificateId": { "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify SslManagementType.MANUAL on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.", "type": "string" } }, - "id": "SslSettings", - "description": "SSL configuration for a DomainMapping resource.", - "type": "object" + "id": "SslSettings" }, "OperationMetadataV1": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, "warning": { "description": "Durable messages that persist on every operation poll. @OutputOnly", "items": { @@ -2791,98 +2581,13 @@ "user": { "description": "User who requested this operation.@OutputOnly", "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" } }, "id": "OperationMetadataV1" }, - "Application": { - "properties": { - "name": { - "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", - "type": "string" - }, - "defaultCookieExpiration": { - "format": "google-duration", - "description": "Cookie expiration policy for this application.", - "type": "string" - }, - "id": { - "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", - "type": "string" - }, - "locationId": { - "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", - "type": "string" - }, - "servingStatus": { - "enum": [ - "UNSPECIFIED", - "SERVING", - "USER_DISABLED", - "SYSTEM_DISABLED" - ], - "description": "Serving status of this application.", - "type": "string", - "enumDescriptions": [ - "Serving status is unspecified.", - "Application is serving.", - "Application has been disabled by the user.", - "Application has been disabled by the system." - ] - }, - "defaultHostname": { - "description": "Hostname used to reach this application, as resolved by App Engine.@OutputOnly", - "type": "string" - }, - "featureSettings": { - "$ref": "FeatureSettings", - "description": "The feature specific settings to be used in the application." - }, - "iap": { - "$ref": "IdentityAwareProxy" - }, - "authDomain": { - "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", - "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", - "type": "string" - }, - "defaultBucket": { - "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", - "type": "string" - }, - "dispatchRules": { - "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly", - "items": { - "$ref": "UrlDispatchRule" - }, - "type": "array" - }, - "gcrDomain": { - "description": "The Google Container Registry domain used for storing managed build docker images for this application.", - "type": "string" - } - }, - "id": "Application", - "description": "An Application resource contains the top-level configuration of an App Engine application. Next tag: 20", - "type": "object" - }, "Network": { + "description": "Extra network settings. Only applicable for App Engine flexible environment versions", + "type": "object", "properties": { "subnetworkName": { "description": "Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.\nIf the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the App Engine flexible environment application.", @@ -2904,18 +2609,88 @@ "type": "string" } }, - "id": "Network", - "description": "Extra network settings. Only applicable for App Engine flexible environment versions", - "type": "object" + "id": "Network" }, - "Instance": { + "Application": { + "description": "An Application resource contains the top-level configuration of an App Engine application. Next tag: 20", + "type": "object", "properties": { - "appEngineRelease": { - "description": "App Engine release this instance is running on.@OutputOnly", + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly", + "items": { + "$ref": "UrlDispatchRule" + }, + "type": "array" + }, + "gcrDomain": { + "description": "The Google Container Registry domain used for storing managed build docker images for this application.", "type": "string" }, - "vmName": { - "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "name": { + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "type": "string" + }, + "defaultCookieExpiration": { + "format": "google-duration", + "description": "Cookie expiration policy for this application.", + "type": "string" + }, + "id": { + "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", + "type": "string" + }, + "locationId": { + "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", + "type": "string" + }, + "servingStatus": { + "enumDescriptions": [ + "Serving status is unspecified.", + "Application is serving.", + "Application has been disabled by the user.", + "Application has been disabled by the system." + ], + "enum": [ + "UNSPECIFIED", + "SERVING", + "USER_DISABLED", + "SYSTEM_DISABLED" + ], + "description": "Serving status of this application.", + "type": "string" + }, + "defaultHostname": { + "description": "Hostname used to reach this application, as resolved by App Engine.@OutputOnly", + "type": "string" + }, + "featureSettings": { + "description": "The feature specific settings to be used in the application.", + "$ref": "FeatureSettings" + }, + "iap": { + "$ref": "IdentityAwareProxy" + }, + "authDomain": { + "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", + "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", + "type": "string" + }, + "defaultBucket": { + "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", + "type": "string" + } + }, + "id": "Application" + }, + "Instance": { + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", + "type": "object", + "properties": { + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" }, "qps": { @@ -2923,18 +2698,14 @@ "description": "Average queries per second (QPS) over the last minute.@OutputOnly", "type": "number" }, - "vmId": { - "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "vmZoneName": { + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" }, "name": { "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", "type": "string" }, - "vmZoneName": { - "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, "averageLatency": { "format": "int32", "description": "Average latency (ms) over the last minute.@OutputOnly", @@ -2944,20 +2715,23 @@ "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly", "type": "string" }, - "vmIp": { - "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, "memoryUsage": { "format": "int64", "description": "Total memory in use (bytes).@OutputOnly", "type": "string" }, - "vmStatus": { - "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "vmIp": { + "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" }, + "errors": { + "format": "int32", + "description": "Number of errors since this instance was started.@OutputOnly", + "type": "integer" + }, "availability": { + "description": "Availability of the instance.@OutputOnly", + "type": "string", "enumDescriptions": [ "", "", @@ -2967,14 +2741,11 @@ "UNSPECIFIED", "RESIDENT", "DYNAMIC" - ], - "description": "Availability of the instance.@OutputOnly", - "type": "string" + ] }, - "errors": { - "format": "int32", - "description": "Number of errors since this instance was started.@OutputOnly", - "type": "integer" + "vmStatus": { + "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" }, "startTime": { "format": "google-datetime", @@ -2989,14 +2760,37 @@ "format": "int32", "description": "Number of requests since this instance was started.@OutputOnly", "type": "integer" + }, + "appEngineRelease": { + "description": "App Engine release this instance is running on.@OutputOnly", + "type": "string" + }, + "vmName": { + "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" } }, - "id": "Instance", - "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", - "type": "object" + "id": "Instance" }, "LivenessCheck": { + "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.", + "type": "object", "properties": { + "checkInterval": { + "format": "google-duration", + "description": "Interval between health checks.", + "type": "string" + }, + "failureThreshold": { + "format": "uint32", + "description": "Number of consecutive failed checks required before considering the VM unhealthy.", + "type": "integer" + }, + "timeout": { + "format": "google-duration", + "description": "Time before the check is considered failed.", + "type": "string" + }, "initialDelay": { "format": "google-duration", "description": "The initial delay before starting to execute the checks.", @@ -3014,26 +2808,9 @@ "format": "uint32", "description": "Number of consecutive successful checks required before considering the VM healthy.", "type": "integer" - }, - "checkInterval": { - "format": "google-duration", - "description": "Interval between health checks.", - "type": "string" - }, - "timeout": { - "format": "google-duration", - "description": "Time before the check is considered failed.", - "type": "string" - }, - "failureThreshold": { - "format": "uint32", - "description": "Number of consecutive failed checks required before considering the VM unhealthy.", - "type": "integer" } }, - "id": "LivenessCheck", - "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.", - "type": "object" + "id": "LivenessCheck" }, "BatchUpdateIngressRulesRequest": { "description": "Request message for Firewall.BatchUpdateIngressRules.", @@ -3050,7 +2827,16 @@ "id": "BatchUpdateIngressRulesRequest" }, "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" + }, "name": { "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", "type": "string" @@ -3066,21 +2852,19 @@ }, "description": "Service-specific metadata. For example the available capacity at the given location.", "type": "object" - }, - "labels": { - "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", - "type": "object", - "additionalProperties": { - "type": "string" - } } }, - "id": "Location", - "description": "A resource that represents Google Cloud Platform location.", - "type": "object" + "id": "Location" }, "NetworkUtilization": { + "description": "Target scaling by network usage. Only applicable for VM runtimes.", + "type": "object", "properties": { + "targetReceivedPacketsPerSecond": { + "format": "int32", + "description": "Target packets received per second.", + "type": "integer" + }, "targetSentBytesPerSecond": { "format": "int32", "description": "Target bytes sent per second.", @@ -3095,21 +2879,19 @@ "format": "int32", "description": "Target packets sent per second.", "type": "integer" - }, - "targetReceivedPacketsPerSecond": { - "format": "int32", - "description": "Target packets received per second.", - "type": "integer" } }, - "id": "NetworkUtilization", - "description": "Target scaling by network usage. Only applicable for VM runtimes.", - "type": "object" + "id": "NetworkUtilization" }, "HealthCheck": { "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", "type": "object", "properties": { + "unhealthyThreshold": { + "format": "uint32", + "description": "Number of consecutive failed health checks required before removing traffic.", + "type": "integer" + }, "disableHealthCheck": { "description": "Whether to explicitly disable health checks for this instance.", "type": "boolean" @@ -3137,11 +2919,6 @@ "format": "google-duration", "description": "Time before the health check is considered failed.", "type": "string" - }, - "unhealthyThreshold": { - "format": "uint32", - "description": "Number of consecutive failed health checks required before removing traffic.", - "type": "integer" } }, "id": "HealthCheck" @@ -3150,9 +2927,9 @@ "description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.", "type": "object", "properties": { - "checkInterval": { + "timeout": { "format": "google-duration", - "description": "Interval between health checks.", + "description": "Time before the check is considered failed.", "type": "string" }, "failureThreshold": { @@ -3160,11 +2937,6 @@ "description": "Number of consecutive failed checks required before removing traffic.", "type": "integer" }, - "timeout": { - "format": "google-duration", - "description": "Time before the check is considered failed.", - "type": "string" - }, "appStartTimeout": { "format": "google-duration", "description": "A maximum time limit on application initialization, measured from moment the application successfully replies to a healthcheck until it is ready to serve traffic.", @@ -3182,14 +2954,35 @@ "host": { "description": "Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"", "type": "string" + }, + "checkInterval": { + "format": "google-duration", + "description": "Interval between health checks.", + "type": "string" } }, "id": "ReadinessCheck" }, + "DebugInstanceRequest": { + "description": "Request message for Instances.DebugInstance.", + "type": "object", + "properties": { + "sshKey": { + "description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", + "type": "string" + } + }, + "id": "DebugInstanceRequest" + }, "StandardSchedulerSettings": { "description": "Scheduler settings for standard environment.", "type": "object", "properties": { + "targetCpuUtilization": { + "format": "double", + "description": "Target CPU utilization ratio to maintain when scaling.", + "type": "number" + }, "targetThroughputUtilization": { "format": "double", "description": "Target throughput utilization ratio to maintain when scaling", @@ -3204,27 +2997,13 @@ "format": "int32", "description": "Minimum number of instances for an app version. Set to a non-positive value (0 by convention) to disable min_instances configuration.", "type": "integer" - }, - "targetCpuUtilization": { - "format": "double", - "description": "Target CPU utilization ratio to maintain when scaling.", - "type": "number" } }, "id": "StandardSchedulerSettings" }, - "DebugInstanceRequest": { - "description": "Request message for Instances.DebugInstance.", - "type": "object", - "properties": { - "sshKey": { - "description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", - "type": "string" - } - }, - "id": "DebugInstanceRequest" - }, "OperationMetadataV1Beta5": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", "properties": { "method": { "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", @@ -3249,14 +3028,32 @@ "type": "string" } }, - "id": "OperationMetadataV1Beta5", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "OperationMetadataV1Beta5" }, "Version": { "description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", "type": "object", "properties": { + "healthCheck": { + "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.", + "$ref": "HealthCheck" + }, + "threadsafe": { + "description": "Whether multiple requests can be dispatched to this version at once.", + "type": "boolean" + }, + "readinessCheck": { + "description": "Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.", + "$ref": "ReadinessCheck" + }, + "manualScaling": { + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "$ref": "ManualScaling" + }, + "name": { + "description": "Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly", + "type": "string" + }, "apiConfig": { "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.", "$ref": "ApiConfigHandler" @@ -3278,6 +3075,8 @@ "type": "string" }, "servingStatus": { + "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", + "type": "string", "enumDescriptions": [ "Not specified.", "Currently serving. Instances are created according to the scaling settings of the version.", @@ -3287,23 +3086,25 @@ "SERVING_STATUS_UNSPECIFIED", "SERVING", "STOPPED" - ], - "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", - "type": "string" + ] + }, + "deployment": { + "$ref": "Deployment", + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." }, "runtimeApiVersion": { "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", "type": "string" }, - "deployment": { - "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.", - "$ref": "Deployment" - }, "createTime": { "format": "google-datetime", "description": "Time that this version was created.@OutputOnly", "type": "string" }, + "resources": { + "$ref": "Resources", + "description": "Machine resources for this version. Only applicable for VM runtimes." + }, "inboundServices": { "enumDescriptions": [ "Not specified.", @@ -3318,6 +3119,7 @@ ], "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", "items": { + "type": "string", "enum": [ "INBOUND_SERVICE_UNSPECIFIED", "INBOUND_SERVICE_MAIL", @@ -3328,15 +3130,10 @@ "INBOUND_SERVICE_XMPP_PRESENCE", "INBOUND_SERVICE_CHANNEL_PRESENCE", "INBOUND_SERVICE_WARMUP" - ], - "type": "string" + ] }, "type": "array" }, - "resources": { - "description": "Machine resources for this version. Only applicable for VM runtimes.", - "$ref": "Resources" - }, "errorHandlers": { "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", "items": { @@ -3361,8 +3158,8 @@ "type": "string" }, "basicScaling": { - "$ref": "BasicScaling", - "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." + "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", + "$ref": "BasicScaling" }, "runtime": { "description": "Desired runtime. Example: python27.", @@ -3377,19 +3174,19 @@ "type": "string" }, "envVariables": { - "description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.", + "type": "object" }, "livenessCheck": { - "description": "Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.", - "$ref": "LivenessCheck" + "$ref": "LivenessCheck", + "description": "Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set." }, "network": { - "description": "Extra network settings. Only applicable for App Engine flexible environment versions.", - "$ref": "Network" + "$ref": "Network", + "description": "Extra network settings. Only applicable for App Engine flexible environment versions." }, "betaSettings": { "additionalProperties": { @@ -3410,33 +3207,13 @@ "type": "array" }, "automaticScaling": { - "$ref": "AutomaticScaling", - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics." + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "$ref": "AutomaticScaling" }, "diskUsageBytes": { "format": "int64", "description": "Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly", "type": "string" - }, - "healthCheck": { - "$ref": "HealthCheck", - "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." - }, - "threadsafe": { - "description": "Whether multiple requests can be dispatched to this version at once.", - "type": "boolean" - }, - "readinessCheck": { - "description": "Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.", - "$ref": "ReadinessCheck" - }, - "manualScaling": { - "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "$ref": "ManualScaling" - }, - "name": { - "description": "Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly", - "type": "string" } }, "id": "Version" @@ -3448,6 +3225,8 @@ "id": "RepairApplicationRequest" }, "CertificateRawData": { + "description": "An SSL certificate obtained from a certificate authority.", + "type": "object", "properties": { "privateKey": { "description": "Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN RSA PRIVATE KEY----- \u003cunencrypted_key_value\u003e -----END RSA PRIVATE KEY----- \u003c/pre\u003e @InputOnly", @@ -3458,9 +3237,7 @@ "type": "string" } }, - "id": "CertificateRawData", - "description": "An SSL certificate obtained from a certificate authority.", - "type": "object" + "id": "CertificateRawData" }, "BuildInfo": { "description": "Google Cloud Container Builder build information.", @@ -3474,24 +3251,20 @@ "id": "BuildInfo" }, "ScriptHandler": { + "description": "Executes a script to handle the request that matches the URL pattern.", + "type": "object", "properties": { "scriptPath": { "description": "Path to the script from the application root directory.", "type": "string" } }, - "id": "ScriptHandler", - "description": "Executes a script to handle the request that matches the URL pattern.", - "type": "object" + "id": "ScriptHandler" }, "FileInfo": { "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", "type": "object", "properties": { - "sha1Sum": { - "description": "The SHA1 hash of the file, in hex.", - "type": "string" - }, "mimeType": { "description": "The MIME type of the file.Defaults to the value from Google Cloud Storage.", "type": "string" @@ -3499,6 +3272,10 @@ "sourceUrl": { "description": "URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/\u003cbucket\u003e/\u003cobject\u003e'.", "type": "string" + }, + "sha1Sum": { + "description": "The SHA1 hash of the file, in hex.", + "type": "string" } }, "id": "FileInfo" @@ -3531,28 +3308,251 @@ } }, "id": "OperationMetadataExperimental" + }, + "AuthorizedDomain": { + "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).", + "type": "object", + "properties": { + "id": { + "description": "Fully qualified domain name of the domain authorized for use. Example: example.com.", + "type": "string" + }, + "name": { + "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly", + "type": "string" + } + }, + "id": "AuthorizedDomain" + }, + "TrafficSplit": { + "description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.", + "type": "object", + "properties": { + "allocations": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", + "type": "object" + }, + "shardBy": { + "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", + "type": "string", + "enumDescriptions": [ + "Diversion method unspecified.", + "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.", + "Diversion based on applying the modulus operation to a fingerprint of the IP address.", + "Diversion based on weighted random assignment. An incoming request is randomly routed to a version in the traffic split, with probability proportional to the version's traffic share." + ], + "enum": [ + "UNSPECIFIED", + "COOKIE", + "IP", + "RANDOM" + ] + } + }, + "id": "TrafficSplit" + }, + "OperationMetadataV1Beta": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadataV1Beta" + }, + "ListServicesResponse": { + "description": "Response message for Services.ListServices.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "services": { + "description": "The services belonging to the requested application.", + "items": { + "$ref": "Service" + }, + "type": "array" + } + }, + "id": "ListServicesResponse" + }, + "ListIngressRulesResponse": { + "description": "Response message for Firewall.ListIngressRules.", + "type": "object", + "properties": { + "ingressRules": { + "description": "The ingress FirewallRules for this application.", + "items": { + "$ref": "FirewallRule" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "id": "ListIngressRulesResponse" + }, + "Resources": { + "description": "Machine resources for a version.", + "type": "object", + "properties": { + "memoryGb": { + "format": "double", + "description": "Memory (GB) needed.", + "type": "number" + }, + "cpu": { + "format": "double", + "description": "Number of CPU cores needed.", + "type": "number" + }, + "volumes": { + "description": "User specified volumes.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "diskGb": { + "format": "double", + "description": "Disk size (GB) needed.", + "type": "number" + } + }, + "id": "Resources" + }, + "Deployment": { + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object", + "properties": { + "build": { + "$ref": "BuildInfo", + "description": "Google Cloud Container Builder build information." + }, + "files": { + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", + "type": "object", + "additionalProperties": { + "$ref": "FileInfo" + } + }, + "zip": { + "description": "The zip file for this deployment, if this is a zip deployment.", + "$ref": "ZipInfo" + }, + "container": { + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.", + "$ref": "ContainerInfo" + } + }, + "id": "Deployment" + }, + "Volume": { + "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "volumeType": { + "description": "Underlying volume type, e.g. 'tmpfs'.", + "type": "string" + }, + "sizeGb": { + "format": "double", + "description": "Volume size in gigabytes.", + "type": "number" + }, + "name": { + "description": "Unique name for the volume.", + "type": "string" + } + }, + "id": "Volume" + }, + "BatchUpdateIngressRulesResponse": { + "description": "Response message for Firewall.UpdateAllIngressRules.", + "type": "object", + "properties": { + "ingressRules": { + "description": "The full list of ingress FirewallRules for this application.", + "items": { + "$ref": "FirewallRule" + }, + "type": "array" + } + }, + "id": "BatchUpdateIngressRulesResponse" } }, - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - }, "protocol": "rest", + "icons": { + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" + }, "version": "v1beta", "baseUrl": "https://appengine.googleapis.com/", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/appengine.admin": { - "description": "View and manage your applications deployed on Google App Engine" - }, "https://www.googleapis.com/auth/cloud-platform.read-only": { "description": "View your data across Google Cloud Platform services" }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" } } } - } + }, + "kind": "discovery#restDescription", + "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", + "servicePath": "", + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine", + "batchPath": "batch", + "revision": "20171009", + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "id": "appengine:v1beta", + "title": "Google App Engine Admin API" } diff --git a/vendor/google.golang.org/api/appengine/v1beta4/appengine-api.json b/vendor/google.golang.org/api/appengine/v1beta4/appengine-api.json index bf3f93f25..4d9c56ed4 100644 --- a/vendor/google.golang.org/api/appengine/v1beta4/appengine-api.json +++ b/vendor/google.golang.org/api/appengine/v1beta4/appengine-api.json @@ -1,7 +1,11 @@ { + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine", + "batchPath": "batch", "id": "appengine:v1beta4", + "revision": "20171009", "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", - "revision": "20170926", "title": "Google App Engine Admin API", "ownerName": "Google", "discoveryVersion": "v1", @@ -16,6 +20,9 @@ "appsId" ], "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "appsId": { "location": "path", @@ -24,31 +31,21 @@ "required": true }, "mask": { + "location": "query", "format": "google-fieldmask", "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" + "type": "string" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "flatPath": "v1beta4/apps/{appsId}", "id": "appengine.apps.patch", "path": "v1beta4/apps/{appsId}", - "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)", "request": { "$ref": "Application" - } + }, + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)" }, "get": { - "response": { - "$ref": "Application" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], @@ -59,48 +56,130 @@ "location": "query" }, "appsId": { + "location": "path", "description": "Part of `name`. Name of the application to get. Example: apps/myapp.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "flatPath": "v1beta4/apps/{appsId}", - "id": "appengine.apps.get", "path": "v1beta4/apps/{appsId}", - "description": "Gets information about an application." + "id": "appengine.apps.get", + "description": "Gets information about an application.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "Application" + } }, "create": { - "path": "v1beta4/apps", - "id": "appengine.apps.create", - "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", "request": { "$ref": "Application" }, + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", "httpMethod": "POST", "parameterOrder": [], "response": { "$ref": "Operation" }, - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta4/apps" + "parameters": {}, + "flatPath": "v1beta4/apps", + "path": "v1beta4/apps", + "id": "appengine.apps.create" } }, "resources": { - "operations": { + "modules": { "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.", - "httpMethod": "GET", + "delete": { + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "type": "string", + "required": true + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.delete", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}", + "description": "Deletes the specified module and all enclosed versions.", "response": { "$ref": "Operation" }, "parameterOrder": [ "appsId", - "operationsId" + "modulesId" + ], + "httpMethod": "DELETE" + }, + "patch": { + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", + "type": "string", + "required": true, + "location": "path" + }, + "migrateTraffic": { + "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules#shardby) field in the Module resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", + "type": "boolean", + "location": "query" + }, + "mask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.patch", + "description": "Updates the configuration of the specified module.", + "request": { + "$ref": "Module" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "modulesId" + ], + "response": { + "$ref": "Operation" + } + }, + "list": { + "description": "Lists all the modules in the application.", + "httpMethod": "GET", + "response": { + "$ref": "ListModulesResponse" + }, + "parameterOrder": [ + "appsId" ], "scopes": [ "https://www.googleapis.com/auth/appengine.admin", @@ -108,12 +187,513 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, "appsId": { - "description": "Part of `name`. The name of the operation resource.", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp.", "type": "string", "required": true, "location": "path" }, + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules", + "path": "v1beta4/apps/{appsId}/modules", + "id": "appengine.apps.modules.list" + }, + "get": { + "description": "Gets the current configuration of the specified module.", + "response": { + "$ref": "Module" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "type": "string", + "required": true + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", + "id": "appengine.apps.modules.get", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}" + } + }, + "resources": { + "versions": { + "methods": { + "delete": { + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "id": "appengine.apps.modules.versions.delete", + "description": "Deletes an existing version.", + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "type": "string", + "required": true + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default/versions/1.", + "type": "string", + "required": true, + "location": "path" + }, + "mask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "versionsId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "modulesId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "id": "appengine.apps.modules.versions.patch", + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.", + "request": { + "$ref": "Version" + } + }, + "list": { + "id": "appengine.apps.modules.versions.list", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "description": "Lists the versions of a module.", + "response": { + "$ref": "ListVersionsResponse" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "view": { + "description": "Controls the set of fields returned in the List response.", + "type": "string", + "location": "query", + "enum": [ + "BASIC", + "FULL" + ] + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "Continuation token for fetching the next page of results." + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions" + }, + "get": { + "response": { + "$ref": "Version" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "type": "string", + "required": true, + "location": "path" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Controls the set of fields returned in the Get response.", + "type": "string" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "id": "appengine.apps.modules.versions.get", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", + "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource." + }, + "create": { + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", + "type": "string", + "required": true, + "location": "path" + }, + "modulesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "id": "appengine.apps.modules.versions.create", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", + "description": "Deploys code and resource files to a new version.", + "request": { + "$ref": "Version" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "modulesId" + ], + "httpMethod": "POST" + } + }, + "resources": { + "instances": { + "methods": { + "list": { + "id": "appengine.apps.modules.versions.instances.list", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances", + "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", + "response": { + "$ref": "ListInstancesResponse" + }, + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances" + }, + "get": { + "description": "Gets instance information.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "type": "string", + "required": true + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.modules.versions.instances.get" + }, + "debug": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "instancesId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. See documentation of `appsId`." + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", + "id": "appengine.apps.modules.versions.instances.debug", + "request": { + "$ref": "DebugInstanceRequest" + }, + "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.", + "httpMethod": "POST", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "response": { + "$ref": "Operation" + } + }, + "delete": { + "response": { + "$ref": "Operation" + }, + "httpMethod": "DELETE", + "parameterOrder": [ + "appsId", + "modulesId", + "versionsId", + "instancesId" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "instancesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", + "type": "string", + "required": true + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "modulesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.modules.versions.instances.delete", + "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", + "description": "Stops a running instance." + } + } + } + } + } + } + }, + "operations": { + "methods": { + "get": { + "id": "appengine.apps.operations.get", + "path": "v1beta4/apps/{appsId}/operations/{operationsId}", + "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.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "operationsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "type": "string", + "required": true, + "location": "path", + "description": "Part of `name`. The name of the operation resource." + }, "operationsId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", @@ -121,9 +701,7 @@ "required": true } }, - "flatPath": "v1beta4/apps/{appsId}/operations/{operationsId}", - "path": "v1beta4/apps/{appsId}/operations/{operationsId}", - "id": "appengine.apps.operations.get" + "flatPath": "v1beta4/apps/{appsId}/operations/{operationsId}" }, "list": { "response": { @@ -133,35 +711,35 @@ "appsId" ], "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, - "filter": { - "location": "query", - "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. The name of the operation's parent resource.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "appsId": { + "description": "Part of `name`. The name of the operation's parent resource.", + "type": "string", + "required": true, + "location": "path" + }, + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" + } + }, "flatPath": "v1beta4/apps/{appsId}/operations", "id": "appengine.apps.operations.list", "path": "v1beta4/apps/{appsId}/operations", @@ -172,55 +750,47 @@ "locations": { "methods": { "get": { + "id": "appengine.apps.locations.get", + "path": "v1beta4/apps/{appsId}/locations/{locationsId}", + "description": "Get information about a location.", "response": { "$ref": "Location" }, - "httpMethod": "GET", "parameterOrder": [ "appsId", "locationsId" ], - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], + "httpMethod": "GET", "parameters": { - "appsId": { - "description": "Part of `name`. Resource name for the location.", + "locationsId": { + "description": "Part of `name`. See documentation of `appsId`.", "type": "string", "required": true, "location": "path" }, - "locationsId": { + "appsId": { "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", + "description": "Part of `name`. Resource name for the location.", "type": "string", "required": true } }, - "flatPath": "v1beta4/apps/{appsId}/locations/{locationsId}", - "id": "appengine.apps.locations.get", - "path": "v1beta4/apps/{appsId}/locations/{locationsId}", - "description": "Get information about a location." - }, - "list": { - "flatPath": "v1beta4/apps/{appsId}/locations", - "id": "appengine.apps.locations.list", - "path": "v1beta4/apps/{appsId}/locations", - "description": "Lists information about the supported locations for this service.", - "response": { - "$ref": "ListLocationsResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "flatPath": "v1beta4/apps/{appsId}/locations/{locationsId}" + }, + "list": { + "description": "Lists information about the supported locations for this service.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListLocationsResponse" + }, "parameters": { "filter": { "description": "The standard list filter.", @@ -244,581 +814,15 @@ "type": "integer", "location": "query" } - } - } - } - }, - "modules": { - "methods": { - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId", - "modulesId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", - "type": "string", - "required": true - }, - "migrateTraffic": { - "location": "query", - "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules#shardby) field in the Module resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", - "type": "boolean" - }, - "mask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "modulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}", - "id": "appengine.apps.modules.patch", - "request": { - "$ref": "Module" - }, - "description": "Updates the configuration of the specified module." - }, - "list": { - "response": { - "$ref": "ListModulesResponse" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp.", - "type": "string", - "required": true - } }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "flatPath": "v1beta4/apps/{appsId}/modules", - "id": "appengine.apps.modules.list", - "path": "v1beta4/apps/{appsId}/modules", - "description": "Lists all the modules in the application." - }, - "get": { - "response": { - "$ref": "Module" - }, - "parameterOrder": [ - "appsId", - "modulesId" - ], - "httpMethod": "GET", - "parameters": { - "modulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", - "id": "appengine.apps.modules.get", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}", - "description": "Gets the current configuration of the specified module." - }, - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "appsId", - "modulesId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", - "type": "string", - "required": true - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}", - "id": "appengine.apps.modules.delete", - "description": "Deletes the specified module and all enclosed versions." - } - }, - "resources": { - "versions": { - "methods": { - "patch": { - "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.", - "request": { - "$ref": "Version" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId" - ], - "httpMethod": "PATCH", - "parameters": { - "mask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "modulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default/versions/1.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", - "id": "appengine.apps.modules.versions.patch", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}" - }, - "list": { - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", - "id": "appengine.apps.modules.versions.list", - "description": "Lists the versions of a module.", - "httpMethod": "GET", - "parameterOrder": [ - "appsId", - "modulesId" - ], - "response": { - "$ref": "ListVersionsResponse" - }, - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the List response.", - "type": "string" - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "pageToken": { - "location": "query", - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "get": { - "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", - "response": { - "$ref": "Version" - }, - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId" - ], - "httpMethod": "GET", - "parameters": { - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the Get response.", - "type": "string" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "modulesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", - "id": "appengine.apps.modules.versions.get", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}" - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "appsId", - "modulesId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions", - "id": "appengine.apps.modules.versions.create", - "description": "Deploys code and resource files to a new version.", - "request": { - "$ref": "Version" - } - }, - "delete": { - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}", - "id": "appengine.apps.modules.versions.delete", - "description": "Deletes an existing version.", - "httpMethod": "DELETE", - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}" - } - }, - "resources": { - "instances": { - "methods": { - "list": { - "response": { - "$ref": "ListInstancesResponse" - }, - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "pageToken": { - "location": "query", - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances", - "id": "appengine.apps.modules.versions.instances.list", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances", - "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)." - }, - "get": { - "description": "Gets instance information.", - "httpMethod": "GET", - "response": { - "$ref": "Instance" - }, - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId", - "instancesId" - ], - "parameters": { - "instancesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true - }, - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.modules.versions.instances.get" - }, - "debug": { - "httpMethod": "POST", - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId", - "instancesId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "instancesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}:debug", - "id": "appengine.apps.modules.versions.instances.debug", - "request": { - "$ref": "DebugInstanceRequest" - }, - "description": "Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in \"debug mode\", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment." - }, - "delete": { - "description": "Stops a running instance.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "modulesId", - "versionsId", - "instancesId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "instancesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.", - "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "modulesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.modules.versions.instances.delete", - "path": "v1beta4/apps/{appsId}/modules/{modulesId}/versions/{versionsId}/instances/{instancesId}" - } - } - } - } + "flatPath": "v1beta4/apps/{appsId}/locations", + "path": "v1beta4/apps/{appsId}/locations", + "id": "appengine.apps.locations.list" } } } @@ -826,8 +830,35 @@ } }, "parameters": { + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "type": "string", + "location": "query", + "description": "Selector specifying which fields to include in a partial response." + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "alt": { - "description": "Data format for response.", "default": "json", "enum": [ "json", @@ -840,6 +871,12 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], + "location": "query", + "description": "Data format for response." + }, + "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.", + "type": "string", "location": "query" }, "access_token": { @@ -847,26 +884,21 @@ "type": "string", "location": "query" }, - "key": { - "location": "query", - "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.", - "type": "string" - }, "quotaUser": { "location": "query", "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.", "type": "string" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "bearer_token": { - "location": "query", "description": "OAuth bearer token.", - "type": "string" + "type": "string", + "location": "query" }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", @@ -874,49 +906,115 @@ "location": "query" }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", "type": "boolean" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" } }, "schemas": { - "ListModulesResponse": { - "description": "Response message for Modules.ListModules.", + "TrafficSplit": { + "description": "Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions.", "type": "object", + "properties": { + "allocations": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", + "type": "object" + }, + "shardBy": { + "enumDescriptions": [ + "Diversion method unspecified.", + "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or else no diversion will occur.", + "Diversion based on applying the modulus operation to a fingerprint of the IP address." + ], + "enum": [ + "UNSPECIFIED", + "COOKIE", + "IP" + ], + "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", + "type": "string" + } + }, + "id": "TrafficSplit" + }, + "ManualScaling": { + "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "type": "object", + "properties": { + "instances": { + "type": "integer", + "format": "int32", + "description": "Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function." + } + }, + "id": "ManualScaling" + }, + "LocationMetadata": { + "description": "Metadata for the given google.cloud.location.Location.", + "type": "object", + "properties": { + "flexibleEnvironmentAvailable": { + "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", + "type": "boolean" + }, + "standardEnvironmentAvailable": { + "type": "boolean", + "description": "App Engine Standard Environment is available in the given location.@OutputOnly" + } + }, + "id": "LocationMetadata" + }, + "OperationMetadataV1Beta": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { + "ephemeralMessage": { + "type": "string", + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "type": "string", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly" + } + }, + "id": "OperationMetadataV1Beta" + }, + "ListModulesResponse": { "properties": { "nextPageToken": { "description": "Continuation token for fetching the next page of results.", @@ -930,42 +1028,12 @@ "type": "array" } }, - "id": "ListModulesResponse" - }, - "Deployment": { - "description": "Code and application artifacts used to deploy a version to App Engine.", - "type": "object", - "properties": { - "files": { - "additionalProperties": { - "$ref": "FileInfo" - }, - "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", - "type": "object" - }, - "sourceReferences": { - "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", - "items": { - "$ref": "SourceReference" - }, - "type": "array" - }, - "container": { - "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.", - "$ref": "ContainerInfo" - } - }, - "id": "Deployment" + "id": "ListModulesResponse", + "description": "Response message for Modules.ListModules.", + "type": "object" }, "Resources": { "properties": { - "volumes": { - "description": "User specified volumes.", - "items": { - "$ref": "Volume" - }, - "type": "array" - }, "diskGb": { "format": "double", "description": "Disk size (GB) needed.", @@ -980,12 +1048,44 @@ "format": "double", "description": "Number of CPU cores needed.", "type": "number" + }, + "volumes": { + "description": "User specified volumes.", + "items": { + "$ref": "Volume" + }, + "type": "array" } }, "id": "Resources", "description": "Machine resources for a version.", "type": "object" }, + "Deployment": { + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object", + "properties": { + "sourceReferences": { + "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", + "items": { + "$ref": "SourceReference" + }, + "type": "array" + }, + "container": { + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.", + "$ref": "ContainerInfo" + }, + "files": { + "additionalProperties": { + "$ref": "FileInfo" + }, + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", + "type": "object" + } + }, + "id": "Deployment" + }, "Volume": { "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", "type": "object", @@ -1007,22 +1107,22 @@ "id": "Volume" }, "ListOperationsResponse": { + "id": "ListOperationsResponse", "description": "The response message for Operations.ListOperations.", "type": "object", "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": "array", + "description": "A list of operations that matches the specified filter in the request." + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" } - }, - "id": "ListOperationsResponse" + } }, "OperationMetadata": { "description": "Metadata for the given google.longrunning.Operation.", @@ -1034,12 +1134,12 @@ "type": "string" }, "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" + "type": "string", + "description": "User who requested this operation.@OutputOnly" }, "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", - "type": "string" + "type": "string", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly" }, "method": { "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", @@ -1058,6 +1158,8 @@ "id": "OperationMetadata" }, "ListInstancesResponse": { + "description": "Response message for Instances.ListInstances.", + "type": "object", "properties": { "nextPageToken": { "description": "Continuation token for fetching the next page of results.", @@ -1071,14 +1173,50 @@ "type": "array" } }, - "id": "ListInstancesResponse", - "description": "Response message for Instances.ListInstances.", - "type": "object" + "id": "ListInstancesResponse" + }, + "ErrorHandler": { + "description": "Custom static error page to be served when an error occurs.", + "type": "object", + "properties": { + "staticFile": { + "description": "Static file content to be served for this error.", + "type": "string" + }, + "mimeType": { + "description": "MIME type of file. Defaults to text/html.", + "type": "string" + }, + "errorCode": { + "type": "string", + "enumDescriptions": [ + "Not specified. ERROR_CODE_DEFAULT is assumed.", + "All other error types.", + "Application has exceeded a resource quota.", + "Client blocked by the application's Denial of Service protection configuration.", + "Deadline reached before the application responds." + ], + "enum": [ + "ERROR_CODE_UNSPECIFIED", + "ERROR_CODE_DEFAULT", + "ERROR_CODE_OVER_QUOTA", + "ERROR_CODE_DOS_API_DENIAL", + "ERROR_CODE_TIMEOUT" + ], + "description": "Error condition this handler applies to." + } + }, + "id": "ErrorHandler" }, "OperationMetadataV1": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, "warning": { "description": "Durable messages that persist on every operation poll. @OutputOnly", "items": { @@ -1106,72 +1244,39 @@ "method": { "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" } }, "id": "OperationMetadataV1" }, - "ErrorHandler": { - "properties": { - "mimeType": { - "description": "MIME type of file. Defaults to text/html.", - "type": "string" - }, - "errorCode": { - "description": "Error condition this handler applies to.", - "type": "string", - "enumDescriptions": [ - "Not specified. ERROR_CODE_DEFAULT is assumed.", - "All other error types.", - "Application has exceeded a resource quota.", - "Client blocked by the application's Denial of Service protection configuration.", - "Deadline reached before the application responds." - ], - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "ERROR_CODE_DEFAULT", - "ERROR_CODE_OVER_QUOTA", - "ERROR_CODE_DOS_API_DENIAL", - "ERROR_CODE_TIMEOUT" - ] - }, - "staticFile": { - "description": "Static file content to be served for this error.", - "type": "string" - } - }, - "id": "ErrorHandler", - "description": "Custom static error page to be served when an error occurs.", - "type": "object" - }, "OperationMetadataV1Alpha": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", "items": { "type": "string" }, - "type": "array" + "type": "array", + "description": "Durable messages that persist on every operation poll. @OutputOnly" }, "insertTime": { "format": "google-datetime", "description": "Time that this operation was created.@OutputOnly", "type": "string" }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", "type": "string" }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, "ephemeralMessage": { "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", "type": "string" @@ -1179,67 +1284,11 @@ "method": { "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" } }, "id": "OperationMetadataV1Alpha" }, - "Application": { - "description": "An Application resource contains the top-level configuration of an App Engine application.", - "type": "object", - "properties": { - "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", - "type": "string" - }, - "location": { - "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", - "type": "string" - }, - "defaultBucket": { - "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly", - "type": "string" - }, - "dispatchRules": { - "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a module or version. Rules are order-dependent.@OutputOnly", - "items": { - "$ref": "UrlDispatchRule" - }, - "type": "array" - }, - "defaultHostname": { - "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", - "type": "string" - }, - "name": { - "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", - "type": "string" - }, - "iap": { - "$ref": "IdentityAwareProxy" - }, - "authDomain": { - "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", - "type": "string" - }, - "defaultCookieExpiration": { - "format": "google-duration", - "description": "Cookie expiration policy for this application.", - "type": "string" - }, - "id": { - "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", - "type": "string" - } - }, - "id": "Application" - }, "Network": { - "description": "Extra network settings. Only applicable for VM runtimes.", "type": "object", "properties": { "instanceTag": { @@ -1258,38 +1307,81 @@ "type": "string" } }, - "id": "Network" + "id": "Network", + "description": "Extra network settings. Only applicable for VM runtimes." }, - "Instance": { - "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", + "Application": { "type": "object", "properties": { - "qps": { - "format": "float", - "description": "Average queries per second (QPS) over the last minute.@OutputOnly", - "type": "number" - }, - "vmId": { - "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "location": { + "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", "type": "string" }, - "vmZoneName": { - "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "defaultBucket": { + "type": "string", + "description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly" + }, + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a module or version. Rules are order-dependent.@OutputOnly", + "items": { + "$ref": "UrlDispatchRule" + }, + "type": "array" + }, + "defaultHostname": { + "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", "type": "string" }, "name": { - "description": "Full path to the Instance resource in the API. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.@OutputOnly", + "type": "string", + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly" + }, + "iap": { + "$ref": "IdentityAwareProxy" + }, + "authDomain": { + "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", "type": "string" }, - "vmUnlocked": { - "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "boolean" + "defaultCookieExpiration": { + "format": "google-duration", + "description": "Cookie expiration policy for this application.", + "type": "string" }, - "averageLatency": { - "format": "int32", - "description": "Average latency (ms) over the last minute.@OutputOnly", - "type": "integer" + "id": { + "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", + "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", + "type": "string" + } + }, + "id": "Application", + "description": "An Application resource contains the top-level configuration of an App Engine application." + }, + "UrlDispatchRule": { + "description": "Rules to match an HTTP request and dispatch that request to a module.", + "type": "object", + "properties": { + "module": { + "description": "Resource ID of a module in this application that should serve the matched request. The module must already exist. Example: default.", + "type": "string" + }, + "domain": { + "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", + "type": "string" + }, + "path": { + "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.", + "type": "string" + } + }, + "id": "UrlDispatchRule" + }, + "Instance": { + "type": "object", + "properties": { "vmIp": { "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" @@ -1303,12 +1395,13 @@ "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly", "type": "string" }, - "errors": { - "format": "uint32", - "description": "Number of errors since this instance was started.@OutputOnly", - "type": "integer" + "vmStatus": { + "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" }, "availability": { + "description": "Availability of the instance.@OutputOnly", + "type": "string", "enumDescriptions": [ "", "", @@ -1318,13 +1411,12 @@ "UNSPECIFIED", "RESIDENT", "DYNAMIC" - ], - "description": "Availability of the instance.@OutputOnly", - "type": "string" + ] }, - "vmStatus": { - "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" + "errors": { + "format": "uint32", + "description": "Number of errors since this instance was started.@OutputOnly", + "type": "integer" }, "requests": { "format": "int32", @@ -1343,47 +1435,36 @@ "vmName": { "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" - } - }, - "id": "Instance" - }, - "UrlDispatchRule": { - "description": "Rules to match an HTTP request and dispatch that request to a module.", - "type": "object", - "properties": { - "path": { - "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.", + }, + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", "type": "string" }, - "module": { - "description": "Resource ID of a module in this application that should serve the matched request. The module must already exist. Example: default.", - "type": "string" + "qps": { + "format": "float", + "description": "Average queries per second (QPS) over the last minute.@OutputOnly", + "type": "number" }, - "domain": { - "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", - "type": "string" - } - }, - "id": "UrlDispatchRule" - }, - "Module": { - "description": "A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.", - "type": "object", - "properties": { - "split": { - "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the module.", - "$ref": "TrafficSplit" - }, - "id": { - "description": "Relative name of the module within the application. Example: default.@OutputOnly", - "type": "string" + "vmUnlocked": { + "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "boolean" }, "name": { - "description": "Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly", - "type": "string" + "type": "string", + "description": "Full path to the Instance resource in the API. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.@OutputOnly" + }, + "vmZoneName": { + "type": "string", + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly" + }, + "averageLatency": { + "format": "int32", + "description": "Average latency (ms) over the last minute.@OutputOnly", + "type": "integer" } }, - "id": "Module" + "id": "Instance", + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application." }, "ListVersionsResponse": { "description": "Response message for Versions.ListVersions.", @@ -1403,7 +1484,27 @@ }, "id": "ListVersionsResponse" }, + "Module": { + "description": "A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.", + "type": "object", + "properties": { + "id": { + "description": "Relative name of the module within the application. Example: default.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" + }, + "split": { + "$ref": "TrafficSplit", + "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the module." + } + }, + "id": "Module" + }, "ApiEndpointHandler": { + "id": "ApiEndpointHandler", "description": "Uses Google Cloud Endpoints to handle requests.", "type": "object", "properties": { @@ -1411,37 +1512,34 @@ "description": "Path to the script from the application root directory.", "type": "string" } - }, - "id": "ApiEndpointHandler" + } }, "AutomaticScaling": { + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "type": "object", "properties": { - "cpuUtilization": { - "description": "Target scaling by CPU usage.", - "$ref": "CpuUtilization" - }, "diskUtilization": { - "description": "Target scaling by disk usage.", - "$ref": "DiskUtilization" + "$ref": "DiskUtilization", + "description": "Target scaling by disk usage." }, "minPendingLatency": { "format": "google-duration", "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", "type": "string" }, - "requestUtilization": { - "$ref": "RequestUtilization", - "description": "Target scaling by request utilization." - }, "maxIdleInstances": { "format": "int32", "description": "Maximum number of idle instances that should be maintained for this version.", "type": "integer" }, + "requestUtilization": { + "$ref": "RequestUtilization", + "description": "Target scaling by request utilization." + }, "minIdleInstances": { + "type": "integer", "format": "int32", - "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.", - "type": "integer" + "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module." }, "maxTotalInstances": { "format": "int32", @@ -1457,45 +1555,41 @@ "$ref": "NetworkUtilization", "description": "Target scaling by network usage." }, - "coolDownPeriod": { - "format": "google-duration", - "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", - "type": "string" - }, "maxConcurrentRequests": { "format": "int32", "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", "type": "integer" }, + "coolDownPeriod": { + "format": "google-duration", + "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", + "type": "string" + }, "maxPendingLatency": { "format": "google-duration", "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", "type": "string" + }, + "cpuUtilization": { + "$ref": "CpuUtilization", + "description": "Target scaling by CPU usage." } }, - "id": "AutomaticScaling", - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", - "type": "object" + "id": "AutomaticScaling" }, "StaticDirectoryHandler": { - "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static directory handlers make it easy to serve the entire contents of a directory as static files.", "type": "object", "properties": { - "expiration": { - "format": "google-duration", - "description": "Time a static file served by this handler should be cached.", - "type": "string" - }, "applicationReadable": { - "description": "Whether files should also be uploaded as code data. By default, files declared in static directory handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", - "type": "boolean" + "type": "boolean", + "description": "Whether files should also be uploaded as code data. By default, files declared in static directory handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas." }, "httpHeaders": { + "type": "object", "additionalProperties": { "type": "string" }, - "description": "HTTP headers to use for all responses from these URLs.", - "type": "object" + "description": "HTTP headers to use for all responses from these URLs." }, "directory": { "description": "Path to the directory containing the static files from the application root directory. Everything after the end of the matched URL pattern is appended to static_dir to form the full path to the requested file.", @@ -1508,28 +1602,27 @@ "requireMatchingFile": { "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", "type": "boolean" + }, + "expiration": { + "format": "google-duration", + "description": "Time a static file served by this handler should be cached.", + "type": "string" } }, - "id": "StaticDirectoryHandler" + "id": "StaticDirectoryHandler", + "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static directory handlers make it easy to serve the entire contents of a directory as static files." }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "type": "object", "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", - "type": "object" - }, "name": { "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", "type": "string" }, "locationId": { - "description": "The canonical id for this location. For example: \"us-east1\".", - "type": "string" + "type": "string", + "description": "The canonical id for this location. For example: \"us-east1\"." }, "metadata": { "additionalProperties": { @@ -1538,6 +1631,13 @@ }, "description": "Service-specific metadata. For example the available capacity at the given location.", "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" } }, "id": "Location" @@ -1573,15 +1673,6 @@ "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", "type": "object", "properties": { - "unhealthyThreshold": { - "format": "uint32", - "description": "Number of consecutive failed health checks required before removing traffic.", - "type": "integer" - }, - "disableHealthCheck": { - "description": "Whether to explicitly disable health checks for this instance.", - "type": "boolean" - }, "host": { "description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"", "type": "string" @@ -1605,35 +1696,59 @@ "format": "google-duration", "description": "Time before the health check is considered failed.", "type": "string" + }, + "unhealthyThreshold": { + "format": "uint32", + "description": "Number of consecutive failed health checks required before removing traffic.", + "type": "integer" + }, + "disableHealthCheck": { + "type": "boolean", + "description": "Whether to explicitly disable health checks for this instance." } }, "id": "HealthCheck" }, + "SourceReference": { + "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", + "type": "object", + "properties": { + "repository": { + "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", + "type": "string" + }, + "revisionId": { + "description": "The canonical, persistent identifier of the deployed revision. Aliases that include tags or branch names are not allowed. Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"", + "type": "string" + } + }, + "id": "SourceReference" + }, "DebugInstanceRequest": { + "description": "Request message for Instances.DebugInstance.", + "type": "object", "properties": { "sshKey": { "description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).", "type": "string" } }, - "id": "DebugInstanceRequest", - "description": "Request message for Instances.DebugInstance.", - "type": "object" + "id": "DebugInstanceRequest" }, - "SourceReference": { - "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", + "Library": { + "id": "Library", + "description": "Third-party Python runtime library that is required by the application.", "type": "object", "properties": { - "revisionId": { - "description": "The canonical, persistent identifier of the deployed revision. Aliases that include tags or branch names are not allowed. Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"", + "name": { + "description": "Name of the library. Example: \"django\".", "type": "string" }, - "repository": { - "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", + "version": { + "description": "Version of the library to select, or \"latest\".", "type": "string" } - }, - "id": "SourceReference" + } }, "OperationMetadataV1Beta5": { "description": "Metadata for the given google.longrunning.Operation.", @@ -1649,9 +1764,9 @@ "type": "string" }, "endTime": { + "type": "string", "format": "google-datetime", - "description": "Timestamp that this operation completed.@OutputOnly", - "type": "string" + "description": "Timestamp that this operation completed.@OutputOnly" }, "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", @@ -1664,22 +1779,9 @@ }, "id": "OperationMetadataV1Beta5" }, - "Library": { - "description": "Third-party Python runtime library that is required by the application.", - "type": "object", - "properties": { - "version": { - "description": "Version of the library to select, or \"latest\".", - "type": "string" - }, - "name": { - "description": "Name of the library. Example: \"django\".", - "type": "string" - } - }, - "id": "Library" - }, "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "type": "object", "properties": { "nextPageToken": { "description": "The standard List next-page token.", @@ -1693,9 +1795,7 @@ "type": "array" } }, - "id": "ListLocationsResponse", - "description": "The response message for Locations.ListLocations.", - "type": "object" + "id": "ListLocationsResponse" }, "ContainerInfo": { "description": "Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment.", @@ -1709,63 +1809,10 @@ "id": "ContainerInfo" }, "Version": { + "id": "Version", "description": "A Version resource is a specific set of source code and configuration files that are deployed into a module.", "type": "object", "properties": { - "automaticScaling": { - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", - "$ref": "AutomaticScaling" - }, - "healthCheck": { - "$ref": "HealthCheck", - "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." - }, - "threadsafe": { - "description": "Whether multiple requests can be dispatched to this version at once.", - "type": "boolean" - }, - "manualScaling": { - "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "$ref": "ManualScaling" - }, - "name": { - "description": "Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly", - "type": "string" - }, - "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." - }, - "vm": { - "description": "Whether to deploy this version in a container on a virtual machine.", - "type": "boolean" - }, - "instanceClass": { - "description": "Instance class that is used to run this version. Valid values are:\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.", - "type": "string" - }, - "servingStatus": { - "enum": [ - "SERVING_STATUS_UNSPECIFIED", - "SERVING", - "STOPPED" - ], - "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", - "type": "string", - "enumDescriptions": [ - "Not specified.", - "Currently serving. Instances are created according to the scaling settings of the version.", - "Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." - ] - }, - "deployment": { - "$ref": "Deployment", - "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." - }, - "runtimeApiVersion": { - "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", - "type": "string" - }, "inboundServices": { "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", "items": { @@ -1796,8 +1843,8 @@ ] }, "resources": { - "description": "Machine resources for this version. Only applicable for VM runtimes.", - "$ref": "Resources" + "$ref": "Resources", + "description": "Machine resources for this version. Only applicable for VM runtimes." }, "errorHandlers": { "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", @@ -1812,11 +1859,11 @@ "type": "string" }, "libraries": { - "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.", "items": { "$ref": "Library" }, - "type": "array" + "type": "array", + "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set." }, "creationTime": { "format": "google-datetime", @@ -1828,8 +1875,8 @@ "type": "string" }, "basicScaling": { - "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", - "$ref": "BasicScaling" + "$ref": "BasicScaling", + "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." }, "runtime": { "description": "Desired runtime. Example: python27.", @@ -1851,11 +1898,11 @@ "$ref": "Network" }, "betaSettings": { - "description": "Metadata settings that are supplied to this version to enable beta runtime features.", "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Metadata settings that are supplied to this version to enable beta runtime features." }, "env": { "description": "App Engine execution environment to use for this version.Defaults to 1.", @@ -1871,9 +1918,62 @@ "deployer": { "description": "Email address of the user who created this version.@OutputOnly", "type": "string" + }, + "automaticScaling": { + "$ref": "AutomaticScaling", + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics." + }, + "healthCheck": { + "$ref": "HealthCheck", + "description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." + }, + "threadsafe": { + "description": "Whether multiple requests can be dispatched to this version at once.", + "type": "boolean" + }, + "manualScaling": { + "$ref": "ManualScaling", + "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time." + }, + "name": { + "description": "Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly", + "type": "string" + }, + "apiConfig": { + "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.", + "$ref": "ApiConfigHandler" + }, + "vm": { + "description": "Whether to deploy this version in a container on a virtual machine.", + "type": "boolean" + }, + "instanceClass": { + "description": "Instance class that is used to run this version. Valid values are:\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.", + "type": "string" + }, + "servingStatus": { + "enum": [ + "SERVING_STATUS_UNSPECIFIED", + "SERVING", + "STOPPED" + ], + "description": "Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "Currently serving. Instances are created according to the scaling settings of the version.", + "Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING." + ] + }, + "runtimeApiVersion": { + "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", + "type": "string" + }, + "deployment": { + "$ref": "Deployment", + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." } - }, - "id": "Version" + } }, "RequestUtilization": { "description": "Target scaling by request utilization. Only applicable for VM runtimes.", @@ -1915,6 +2015,13 @@ ] }, "securityLevel": { + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], "description": "Security (HTTPS) enforcement for this URL.", "type": "string", "enumDescriptions": [ @@ -1923,38 +2030,32 @@ "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", "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.", "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." - ], - "enum": [ - "SECURE_UNSPECIFIED", - "SECURE_DEFAULT", - "SECURE_NEVER", - "SECURE_OPTIONAL", - "SECURE_ALWAYS" ] }, "authFailAction": { - "enumDescriptions": [ - "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", - "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", - "Rejects request with a 401 HTTP status code and an error message." - ], "enum": [ "AUTH_FAIL_ACTION_UNSPECIFIED", "AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED" ], "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ] }, "script": { - "$ref": "ScriptHandler", - "description": "Executes a script to handle the request that matches this URL pattern." + "description": "Executes a script to handle the request that matches this URL pattern.", + "$ref": "ScriptHandler" }, "urlRegex": { "description": "A URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", "type": "string" }, "login": { + "type": "string", "enumDescriptions": [ "Not specified. LOGIN_OPTIONAL is assumed.", "Does not require that the user is signed in.", @@ -1967,8 +2068,7 @@ "LOGIN_ADMIN", "LOGIN_REQUIRED" ], - "description": "Level of login required to access this resource.", - "type": "string" + "description": "Level of login required to access this resource." }, "apiEndpoint": { "$ref": "ApiEndpointHandler", @@ -1986,9 +2086,28 @@ "id": "UrlMap" }, "ApiConfigHandler": { + "id": "ApiConfigHandler", "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", "type": "object", "properties": { + "authFailAction": { + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with a 401 HTTP status code and an error message." + ], + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string" + }, + "script": { + "description": "Path to the script from the application root directory.", + "type": "string" + }, "login": { "description": "Level of login required to access this resource. Defaults to optional.", "type": "string", @@ -2010,13 +2129,6 @@ "type": "string" }, "securityLevel": { - "enumDescriptions": [ - "Not specified.", - "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.", - "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", - "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.", - "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." - ], "enum": [ "SECURE_UNSPECIFIED", "SECURE_DEFAULT", @@ -2025,31 +2137,37 @@ "SECURE_ALWAYS" ], "description": "Security (HTTPS) enforcement for this URL.", - "type": "string" - }, - "authFailAction": { + "type": "string", "enumDescriptions": [ - "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", - "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", - "Rejects request with a 401 HTTP status code and an error message." - ], - "enum": [ - "AUTH_FAIL_ACTION_UNSPECIFIED", - "AUTH_FAIL_ACTION_REDIRECT", - "AUTH_FAIL_ACTION_UNAUTHORIZED" - ], - "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string" - }, - "script": { - "description": "Path to the script from the application root directory.", - "type": "string" + "Not specified.", + "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.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "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.", + "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." + ] } - }, - "id": "ApiConfigHandler" + } }, "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object", "properties": { + "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 have the format of operations/some/unique/name.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "type": "object", + "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." + }, "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" @@ -2061,81 +2179,11 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" } - }, - "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 have the format of operations/some/unique/name.", - "type": "string" - }, - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "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" } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a network API call.", - "type": "object" - }, - "StaticFilesHandler": { - "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", - "type": "object", - "properties": { - "expiration": { - "format": "google-duration", - "description": "Time a static file served by this handler should be cached.", - "type": "string" - }, - "httpHeaders": { - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers to use for all responses from these URLs.", - "type": "object" - }, - "applicationReadable": { - "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", - "type": "boolean" - }, - "uploadPathRegex": { - "description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", - "type": "string" - }, - "path": { - "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", - "type": "string" - }, - "mimeType": { - "description": "MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.", - "type": "string" - }, - "requireMatchingFile": { - "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", - "type": "boolean" - } - }, - "id": "StaticFilesHandler" - }, - "ScriptHandler": { - "description": "Executes a script to handle the request that matches the URL pattern.", - "type": "object", - "properties": { - "scriptPath": { - "description": "Path to the script from the application root directory.", - "type": "string" - } - }, - "id": "ScriptHandler" + "id": "Operation" }, "FileInfo": { - "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", - "type": "object", "properties": { "sha1Sum": { "description": "The SHA1 hash of the file, in hex.", @@ -2150,12 +2198,69 @@ "type": "string" } }, - "id": "FileInfo" + "id": "FileInfo", + "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", + "type": "object" + }, + "StaticFilesHandler": { + "properties": { + "expiration": { + "type": "string", + "format": "google-duration", + "description": "Time a static file served by this handler should be cached." + }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, + "httpHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "HTTP headers to use for all responses from these URLs." + }, + "uploadPathRegex": { + "type": "string", + "description": "Regular expression that matches the file paths for all files that should be referenced by this handler." + }, + "path": { + "description": "Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.", + "type": "string" + }, + "mimeType": { + "description": "MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.", + "type": "string" + }, + "requireMatchingFile": { + "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", + "type": "boolean" + } + }, + "id": "StaticFilesHandler", + "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", + "type": "object" + }, + "ScriptHandler": { + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ScriptHandler", + "description": "Executes a script to handle the request that matches the URL pattern." }, "DiskUtilization": { "description": "Target scaling by disk usage. Only applicable for VM runtimes.", "type": "object", "properties": { + "targetWriteOpsPerSec": { + "format": "int32", + "description": "Target ops written per second.", + "type": "integer" + }, "targetWriteBytesPerSec": { "format": "int32", "description": "Target bytes written per second.", @@ -2170,16 +2275,13 @@ "format": "int32", "description": "Target bytes read per second.", "type": "integer" - }, - "targetWriteOpsPerSec": { - "format": "int32", - "description": "Target ops written per second.", - "type": "integer" } }, "id": "DiskUtilization" }, "BasicScaling": { + "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", + "type": "object", "properties": { "maxInstances": { "format": "int32", @@ -2192,11 +2294,11 @@ "type": "string" } }, - "id": "BasicScaling", - "description": "A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", - "type": "object" + "id": "BasicScaling" }, "OperationMetadataExperimental": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", "properties": { "method": { "description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly", @@ -2208,25 +2310,22 @@ "type": "string" }, "endTime": { + "type": "string", "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" + "description": "Time that this operation completed.@OutputOnly" }, "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", "type": "string" }, "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" + "type": "string", + "description": "User who requested this operation.@OutputOnly" } }, - "id": "OperationMetadataExperimental", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "OperationMetadataExperimental" }, "CpuUtilization": { - "description": "Target scaling by CPU usage.", "type": "object", "properties": { "aggregationWindowLength": { @@ -2235,12 +2334,13 @@ "type": "string" }, "targetUtilization": { + "type": "number", "format": "double", - "description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.", - "type": "number" + "description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1." } }, - "id": "CpuUtilization" + "id": "CpuUtilization", + "description": "Target scaling by CPU usage." }, "IdentityAwareProxy": { "properties": { @@ -2269,154 +2369,54 @@ "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, "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": "string", + "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." }, "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "items": { + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - }, - "type": "object" + } }, "type": "array" - } - }, - "id": "Status" - }, - "TrafficSplit": { - "properties": { - "allocations": { - "additionalProperties": { - "format": "double", - "type": "number" - }, - "description": "Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.", - "type": "object" }, - "shardBy": { - "description": "Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.", - "type": "string", - "enumDescriptions": [ - "Diversion method unspecified.", - "Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or else no diversion will occur.", - "Diversion based on applying the modulus operation to a fingerprint of the IP address." - ], - "enum": [ - "UNSPECIFIED", - "COOKIE", - "IP" - ] - } - }, - "id": "TrafficSplit", - "description": "Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions.", - "type": "object" - }, - "ManualScaling": { - "description": "A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "type": "object", - "properties": { - "instances": { + "code": { "format": "int32", - "description": "Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.", + "description": "The status code, which should be an enum value of google.rpc.Code.", "type": "integer" } }, - "id": "ManualScaling" - }, - "LocationMetadata": { - "description": "Metadata for the given google.cloud.location.Location.", - "type": "object", - "properties": { - "flexibleEnvironmentAvailable": { - "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", - "type": "boolean" - }, - "standardEnvironmentAvailable": { - "description": "App Engine Standard Environment is available in the given location.@OutputOnly", - "type": "boolean" - } - }, - "id": "LocationMetadata" - }, - "OperationMetadataV1Beta": { - "properties": { - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1Beta", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" + "id": "Status" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "version": "v1beta4", "baseUrl": "https://appengine.googleapis.com/", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/appengine.admin": { "description": "View and manage your applications deployed on Google App Engine" }, "https://www.googleapis.com/auth/cloud-platform.read-only": { "description": "View your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } }, - "servicePath": "", - "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", "kind": "discovery#restDescription", - "rootUrl": "https://appengine.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "appengine", - "batchPath": "batch" + "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", + "servicePath": "", + "rootUrl": "https://appengine.googleapis.com/" } diff --git a/vendor/google.golang.org/api/appengine/v1beta5/appengine-api.json b/vendor/google.golang.org/api/appengine/v1beta5/appengine-api.json index 91e5dfdd0..d777014ec 100644 --- a/vendor/google.golang.org/api/appengine/v1beta5/appengine-api.json +++ b/vendor/google.golang.org/api/appengine/v1beta5/appengine-api.json @@ -1,45 +1,77 @@ { - "version": "v1beta5", - "baseUrl": "https://appengine.googleapis.com/", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/appengine.admin": { - "description": "View and manage your applications deployed on Google App Engine" - }, - "https://www.googleapis.com/auth/cloud-platform.read-only": { - "description": "View your data across Google Cloud Platform services" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "servicePath": "", - "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", - "kind": "discovery#restDescription", - "rootUrl": "https://appengine.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "appengine", "batchPath": "batch", "id": "appengine:v1beta5", "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", - "revision": "20170926", + "revision": "20171009", "title": "Google App Engine Admin API", - "discoveryVersion": "v1", "ownerName": "Google", + "discoveryVersion": "v1", "resources": { "apps": { "methods": { - "create": { - "id": "appengine.apps.create", - "path": "v1beta5/apps", - "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", + "patch": { + "flatPath": "v1beta5/apps/{appsId}", + "path": "v1beta5/apps/{appsId}", + "id": "appengine.apps.patch", "request": { "$ref": "Application" }, + "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)", + "httpMethod": "PATCH", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "appsId": { + "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + }, + "mask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + } + } + }, + "get": { + "flatPath": "v1beta5/apps/{appsId}", + "path": "v1beta5/apps/{appsId}", + "id": "appengine.apps.get", + "description": "Gets information about an application.", + "httpMethod": "GET", + "response": { + "$ref": "Application" + }, + "parameterOrder": [ + "appsId" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "ensureResourcesExist": { + "location": "query", + "description": "Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete. Note: This parameter will be deprecated in a future version of the API.", + "type": "boolean" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the application to get. Example: apps/myapp.", + "type": "string", + "required": true + } + } + }, + "create": { "response": { "$ref": "Operation" }, @@ -49,462 +81,49 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta5/apps" - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.", - "type": "string", - "required": true - }, - "mask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta5/apps/{appsId}", - "path": "v1beta5/apps/{appsId}", - "id": "appengine.apps.patch", - "description": "Updates the specified Application resource. You can update the following fields:\nauth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain)\ndefault_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)", + "flatPath": "v1beta5/apps", + "id": "appengine.apps.create", + "path": "v1beta5/apps", + "description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/).", "request": { "$ref": "Application" } - }, - "get": { - "response": { - "$ref": "Application" - }, - "parameterOrder": [ - "appsId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "ensureResourcesExist": { - "description": "Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete. Note: This parameter will be deprecated in a future version of the API.", - "type": "boolean", - "location": "query" - }, - "appsId": { - "description": "Part of `name`. Name of the application to get. Example: apps/myapp.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta5/apps/{appsId}", - "id": "appengine.apps.get", - "path": "v1beta5/apps/{appsId}", - "description": "Gets information about an application." } }, "resources": { "services": { - "methods": { - "patch": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", - "type": "string", - "required": true - }, - "migrateTraffic": { - "location": "query", - "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", - "type": "boolean" - }, - "mask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.patch", - "path": "v1beta5/apps/{appsId}/services/{servicesId}", - "request": { - "$ref": "Service" - }, - "description": "Updates the configuration of the specified service." - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "appsId" - ], - "response": { - "$ref": "ListServicesResponse" - }, - "parameters": { - "pageSize": { - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta5/apps/{appsId}/services", - "path": "v1beta5/apps/{appsId}/services", - "id": "appengine.apps.services.list", - "description": "Lists all the services in the application." - }, - "get": { - "description": "Gets the current configuration of the specified service.", - "httpMethod": "GET", - "response": { - "$ref": "Service" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", - "path": "v1beta5/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.get" - }, - "delete": { - "description": "Deletes the specified service and all enclosed versions.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", - "id": "appengine.apps.services.delete", - "path": "v1beta5/apps/{appsId}/services/{servicesId}" - } - }, "resources": { "versions": { - "methods": { - "delete": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", - "type": "string", - "required": true - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.delete", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "description": "Deletes an existing version." - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", - "type": "string", - "required": true - }, - "mask": { - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.", - "type": "string", - "location": "query" - }, - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.patch", - "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.", - "request": { - "$ref": "Version" - } - }, - "list": { - "description": "Lists the versions of a service.", - "response": { - "$ref": "ListVersionsResponse" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum results to return per page.", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the List response.", - "type": "string" - } - }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions", - "id": "appengine.apps.services.versions.list", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions" - }, - "get": { - "response": { - "$ref": "Version" - }, - "parameterOrder": [ - "appsId", - "servicesId", - "versionsId" - ], - "httpMethod": "GET", - "parameters": { - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", - "type": "string", - "required": true - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Controls the set of fields returned in the Get response.", - "type": "string" - }, - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "id": "appengine.apps.services.versions.get", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", - "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource." - }, - "create": { - "description": "Deploys new code and resource files to a new version.", - "request": { - "$ref": "Version" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "appsId", - "servicesId" - ], - "httpMethod": "POST", - "parameters": { - "servicesId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, - "appsId": { - "location": "path", - "description": "Part of `name`. Name of the resource to update. For example: \"apps/myapp/services/default\".", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions", - "id": "appengine.apps.services.versions.create", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions" - } - }, "resources": { "instances": { "methods": { "delete": { - "description": "Stops a running instance.", - "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + }, "parameterOrder": [ "appsId", "servicesId", "versionsId", "instancesId" ], - "response": { - "$ref": "Operation" - }, + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, "instancesId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", @@ -512,30 +131,16 @@ "required": true }, "appsId": { + "location": "path", "description": "Part of `name`. Name of the resource requested. For example: \"apps/myapp/services/default/versions/v1/instances/instance-1\".", "type": "string", - "required": true, - "location": "path" - }, - "versionsId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" - }, - "servicesId": { - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true, - "location": "path" + "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "id": "appengine.apps.services.versions.instances.delete", "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.services.versions.instances.delete" + "description": "Stops a running instance." }, "list": { "description": "Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).", @@ -555,15 +160,15 @@ ], "parameters": { "servicesId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true }, "pageToken": { + "location": "query", "description": "Continuation token for fetching the next page of results.", - "type": "string", - "location": "query" + "type": "string" }, "appsId": { "location": "path", @@ -578,10 +183,10 @@ "type": "integer" }, "versionsId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances", @@ -589,6 +194,9 @@ "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances" }, "get": { + "id": "appengine.apps.services.versions.instances.get", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", + "description": "Gets instance information.", "response": { "$ref": "Instance" }, @@ -599,11 +207,6 @@ "instancesId" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], "parameters": { "servicesId": { "location": "path", @@ -618,22 +221,24 @@ "required": true }, "appsId": { - "location": "path", "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", "type": "string", - "required": true + "required": true, + "location": "path" }, "versionsId": { - "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" } }, - "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "id": "appengine.apps.services.versions.instances.get", - "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}", - "description": "Gets instance information." + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}" }, "debug": { "request": { @@ -654,12 +259,6 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "versionsId": { - "location": "path", - "description": "Part of `name`. See documentation of `appsId`.", - "type": "string", - "required": true - }, "servicesId": { "location": "path", "description": "Part of `name`. See documentation of `appsId`.", @@ -667,16 +266,22 @@ "required": true }, "instancesId": { - "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" }, "appsId": { "location": "path", "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.", "type": "string", "required": true + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true } }, "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug", @@ -685,21 +290,392 @@ } } } + }, + "methods": { + "patch": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.", + "type": "string", + "required": true + }, + "mask": { + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string", + "location": "query" + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.patch", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "request": { + "$ref": "Version" + }, + "description": "Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment." + }, + "list": { + "id": "appengine.apps.services.versions.list", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "description": "Lists the versions of a service.", + "response": { + "$ref": "ListVersionsResponse" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true, + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer" + }, + "view": { + "description": "Controls the set of fields returned in the List response.", + "type": "string", + "location": "query", + "enum": [ + "BASIC", + "FULL" + ] + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions" + }, + "get": { + "description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.", + "response": { + "$ref": "Version" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", + "type": "string", + "required": true + }, + "view": { + "description": "Controls the set of fields returned in the Get response.", + "type": "string", + "location": "query", + "enum": [ + "BASIC", + "FULL" + ] + }, + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.get", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}" + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "POST", + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. For example: \"apps/myapp/services/default\".", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "id": "appengine.apps.services.versions.create", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions", + "description": "Deploys new code and resource files to a new version.", + "request": { + "$ref": "Version" + } + }, + "delete": { + "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId", + "versionsId" + ], + "parameters": { + "versionsId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "path": "v1beta5/apps/{appsId}/services/{servicesId}/versions/{versionsId}", + "id": "appengine.apps.services.versions.delete", + "description": "Deletes an existing version." + } } } + }, + "methods": { + "delete": { + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.delete", + "path": "v1beta5/apps/{appsId}/services/{servicesId}", + "description": "Deletes the specified service and all enclosed versions.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "servicesId": { + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true, + "location": "path" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "PATCH", + "parameters": { + "appsId": { + "location": "path", + "description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.", + "type": "string", + "required": true + }, + "migrateTraffic": { + "description": "Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).", + "type": "boolean", + "location": "query" + }, + "mask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.", + "type": "string" + }, + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.patch", + "path": "v1beta5/apps/{appsId}/services/{servicesId}", + "description": "Updates the configuration of the specified service.", + "request": { + "$ref": "Service" + } + }, + "list": { + "description": "Lists all the services in the application.", + "httpMethod": "GET", + "parameterOrder": [ + "appsId" + ], + "response": { + "$ref": "ListServicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string", + "location": "query" + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp.", + "type": "string", + "required": true, + "location": "path" + }, + "pageSize": { + "format": "int32", + "description": "Maximum results to return per page.", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1beta5/apps/{appsId}/services", + "path": "v1beta5/apps/{appsId}/services", + "id": "appengine.apps.services.list" + }, + "get": { + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "appsId", + "servicesId" + ], + "httpMethod": "GET", + "parameters": { + "servicesId": { + "location": "path", + "description": "Part of `name`. See documentation of `appsId`.", + "type": "string", + "required": true + }, + "appsId": { + "description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta5/apps/{appsId}/services/{servicesId}", + "id": "appengine.apps.services.get", + "path": "v1beta5/apps/{appsId}/services/{servicesId}", + "description": "Gets the current configuration of the specified service." + } } }, "operations": { "methods": { "get": { "httpMethod": "GET", + "response": { + "$ref": "Operation" + }, "parameterOrder": [ "appsId", "operationsId" ], - "response": { - "$ref": "Operation" - }, "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", @@ -713,10 +689,10 @@ "location": "path" }, "operationsId": { + "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "flatPath": "v1beta5/apps/{appsId}/operations/{operationsId}", @@ -725,13 +701,14 @@ "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." }, "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.", + "httpMethod": "GET", "response": { "$ref": "ListOperationsResponse" }, "parameterOrder": [ "appsId" ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/appengine.admin", "https://www.googleapis.com/auth/cloud-platform", @@ -755,25 +732,21 @@ "required": true }, "pageSize": { - "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer" + "type": "integer", + "location": "query" } }, "flatPath": "v1beta5/apps/{appsId}/operations", - "id": "appengine.apps.operations.list", "path": "v1beta5/apps/{appsId}/operations", - "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." + "id": "appengine.apps.operations.list" } } }, "locations": { "methods": { "get": { - "id": "appengine.apps.locations.get", - "path": "v1beta5/apps/{appsId}/locations/{locationsId}", - "description": "Get information about a location.", "response": { "$ref": "Location" }, @@ -782,12 +755,17 @@ "locationsId" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { "locationsId": { - "location": "path", "description": "Part of `name`. See documentation of `appsId`.", "type": "string", - "required": true + "required": true, + "location": "path" }, "appsId": { "description": "Part of `name`. Resource name for the location.", @@ -796,27 +774,33 @@ "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta5/apps/{appsId}/locations/{locationsId}" + "flatPath": "v1beta5/apps/{appsId}/locations/{locationsId}", + "id": "appengine.apps.locations.get", + "path": "v1beta5/apps/{appsId}/locations/{locationsId}", + "description": "Get information about a location." }, "list": { + "flatPath": "v1beta5/apps/{appsId}/locations", + "id": "appengine.apps.locations.list", + "path": "v1beta5/apps/{appsId}/locations", "description": "Lists information about the supported locations for this service.", - "httpMethod": "GET", "response": { "$ref": "ListLocationsResponse" }, "parameterOrder": [ "appsId" ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { "filter": { - "location": "query", "description": "The standard list filter.", - "type": "string" + "type": "string", + "location": "query" }, "pageToken": { "description": "The standard list page token.", @@ -830,20 +814,12 @@ "location": "path" }, "pageSize": { - "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer" + "type": "integer", + "location": "query" } - }, - "scopes": [ - "https://www.googleapis.com/auth/appengine.admin", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta5/apps/{appsId}/locations", - "path": "v1beta5/apps/{appsId}/locations", - "id": "appengine.apps.locations.list" + } } } } @@ -852,26 +828,26 @@ }, "parameters": { "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" }, "bearer_token": { "description": "OAuth bearer token.", "type": "string", "location": "query" }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", @@ -884,15 +860,20 @@ "type": "boolean" }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "$.xgafv": { "enum": [ "1", @@ -906,12 +887,12 @@ ], "location": "query" }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -920,487 +901,20 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] + "default": "json" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "access_token": { - "location": "query", "description": "OAuth access token.", - "type": "string" + "type": "string", + "location": "query" } }, "schemas": { - "ListInstancesResponse": { - "description": "Response message for Instances.ListInstances.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "instances": { - "description": "The instances belonging to the requested version.", - "items": { - "$ref": "Instance" - }, - "type": "array" - } - }, - "id": "ListInstancesResponse" - }, - "OperationMetadataV1": { - "properties": { - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - }, - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" - }, - "ErrorHandler": { - "description": "Custom static error page to be served when an error occurs.", - "type": "object", - "properties": { - "mimeType": { - "description": "MIME type of file. Defaults to text/html.", - "type": "string" - }, - "errorCode": { - "description": "Error condition this handler applies to.", - "type": "string", - "enumDescriptions": [ - "Not specified. ERROR_CODE_DEFAULT is assumed.", - "All other error types.", - "Application has exceeded a resource quota.", - "Client blocked by the application's Denial of Service protection configuration.", - "Deadline reached before the application responds." - ], - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "ERROR_CODE_DEFAULT", - "ERROR_CODE_OVER_QUOTA", - "ERROR_CODE_DOS_API_DENIAL", - "ERROR_CODE_TIMEOUT" - ] - }, - "staticFile": { - "description": "Static file content to be served for this error.", - "type": "string" - } - }, - "id": "ErrorHandler" - }, - "OperationMetadataV1Alpha": { - "properties": { - "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" - }, - "warning": { - "description": "Durable messages that persist on every operation poll. @OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "user": { - "description": "User who requested this operation.@OutputOnly", - "type": "string" - }, - "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "ephemeralMessage": { - "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", - "type": "string" - } - }, - "id": "OperationMetadataV1Alpha", - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object" - }, - "Application": { - "properties": { - "iap": { - "$ref": "IdentityAwareProxy" - }, - "authDomain": { - "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", - "type": "string" - }, - "defaultCookieExpiration": { - "format": "google-duration", - "description": "Cookie expiration policy for this application.", - "type": "string" - }, - "id": { - "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", - "type": "string" - }, - "codeBucket": { - "description": "A 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", - "type": "string" - }, - "location": { - "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", - "type": "string" - }, - "defaultBucket": { - "description": "A Google Cloud Storage bucket that can be used by the application to store content.@OutputOnly", - "type": "string" - }, - "dispatchRules": { - "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly", - "items": { - "$ref": "UrlDispatchRule" - }, - "type": "array" - }, - "defaultHostname": { - "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", - "type": "string" - }, - "name": { - "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", - "type": "string" - } - }, - "id": "Application", - "description": "An Application resource contains the top-level configuration of an App Engine application.", - "type": "object" - }, - "Network": { - "description": "Extra network settings. Only applicable for VM runtimes.", - "type": "object", - "properties": { - "subnetworkName": { - "description": "Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.\nIf the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.", - "type": "string" - }, - "instanceTag": { - "description": "Tag to apply to the VM instance during creation.", - "type": "string" - }, - "forwardedPorts": { - "description": "List of ports, or port pairs, to forward from the virtual machine to the application container.", - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.", - "type": "string" - } - }, - "id": "Network" - }, - "Instance": { - "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", - "type": "object", - "properties": { - "averageLatency": { - "format": "int32", - "description": "Average latency (ms) over the last minute.@OutputOnly", - "type": "integer" - }, - "id": { - "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly", - "type": "string" - }, - "memoryUsage": { - "format": "int64", - "description": "Total memory in use (bytes).@OutputOnly", - "type": "string" - }, - "vmIp": { - "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, - "errors": { - "format": "uint32", - "description": "Number of errors since this instance was started.@OutputOnly", - "type": "integer" - }, - "vmStatus": { - "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, - "availability": { - "enum": [ - "UNSPECIFIED", - "RESIDENT", - "DYNAMIC" - ], - "description": "Availability of the instance.@OutputOnly", - "type": "string", - "enumDescriptions": [ - "", - "", - "" - ] - }, - "requests": { - "format": "int32", - "description": "Number of requests since this instance was started.@OutputOnly", - "type": "integer" - }, - "appEngineRelease": { - "description": "App Engine release this instance is running on.@OutputOnly", - "type": "string" - }, - "startTimestamp": { - "format": "google-datetime", - "description": "Time that this instance was started.@OutputOnly", - "type": "string" - }, - "vmName": { - "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, - "vmId": { - "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - }, - "qps": { - "format": "float", - "description": "Average queries per second (QPS) over the last minute.@OutputOnly", - "type": "number" - }, - "vmUnlocked": { - "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "boolean" - }, - "name": { - "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", - "type": "string" - }, - "vmZoneName": { - "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", - "type": "string" - } - }, - "id": "Instance" - }, - "UrlDispatchRule": { - "properties": { - "service": { - "description": "Resource id of a service in this application that should serve the matched request. The service must already exist. Example: default.", - "type": "string" - }, - "domain": { - "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", - "type": "string" - }, - "path": { - "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.", - "type": "string" - } - }, - "id": "UrlDispatchRule", - "description": "Rules to match an HTTP request and dispatch that request to a service.", - "type": "object" - }, - "ListVersionsResponse": { - "description": "Response message for Versions.ListVersions.", - "type": "object", - "properties": { - "versions": { - "description": "The versions belonging to the requested service.", - "items": { - "$ref": "Version" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - } - }, - "id": "ListVersionsResponse" - }, - "ApiEndpointHandler": { - "properties": { - "scriptPath": { - "description": "Path to the script from the application root directory.", - "type": "string" - } - }, - "id": "ApiEndpointHandler", - "description": "Uses Google Cloud Endpoints to handle requests.", - "type": "object" - }, - "AutomaticScaling": { - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", - "type": "object", - "properties": { - "cpuUtilization": { - "$ref": "CpuUtilization", - "description": "Target scaling by CPU usage." - }, - "diskUtilization": { - "description": "Target scaling by disk usage.", - "$ref": "DiskUtilization" - }, - "minPendingLatency": { - "format": "google-duration", - "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", - "type": "string" - }, - "requestUtilization": { - "$ref": "RequestUtilization", - "description": "Target scaling by request utilization." - }, - "maxIdleInstances": { - "format": "int32", - "description": "Maximum number of idle instances that should be maintained for this version.", - "type": "integer" - }, - "minIdleInstances": { - "format": "int32", - "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.", - "type": "integer" - }, - "maxTotalInstances": { - "format": "int32", - "description": "Maximum number of instances that should be started to handle requests.", - "type": "integer" - }, - "minTotalInstances": { - "format": "int32", - "description": "Minimum number of instances that should be maintained for this version.", - "type": "integer" - }, - "networkUtilization": { - "$ref": "NetworkUtilization", - "description": "Target scaling by network usage." - }, - "coolDownPeriod": { - "format": "google-duration", - "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", - "type": "string" - }, - "maxConcurrentRequests": { - "format": "int32", - "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", - "type": "integer" - }, - "maxPendingLatency": { - "format": "google-duration", - "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", - "type": "string" - } - }, - "id": "AutomaticScaling" - }, - "Location": { - "description": "A resource that represents Google Cloud Platform location.", - "type": "object", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", - "type": "object" - }, - "name": { - "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", - "type": "string" - }, - "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" - } - }, - "id": "Location" - }, - "NetworkUtilization": { - "properties": { - "targetSentPacketsPerSec": { - "format": "int32", - "description": "Target packets sent per second.", - "type": "integer" - }, - "targetReceivedPacketsPerSec": { - "format": "int32", - "description": "Target packets received per second.", - "type": "integer" - }, - "targetSentBytesPerSec": { - "format": "int32", - "description": "Target bytes sent per second.", - "type": "integer" - }, - "targetReceivedBytesPerSec": { - "format": "int32", - "description": "Target bytes received per second.", - "type": "integer" - } - }, - "id": "NetworkUtilization", - "description": "Target scaling by network usage. Only applicable for VM runtimes.", - "type": "object" - }, "HealthCheck": { "description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.", "type": "object", @@ -1409,16 +923,16 @@ "description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"", "type": "string" }, - "healthyThreshold": { - "format": "uint32", - "description": "Number of consecutive successful health checks required before receiving traffic.", - "type": "integer" - }, "restartThreshold": { "format": "uint32", "description": "Number of consecutive failed health checks required before an instance is restarted.", "type": "integer" }, + "healthyThreshold": { + "format": "uint32", + "description": "Number of consecutive successful health checks required before receiving traffic.", + "type": "integer" + }, "checkInterval": { "format": "google-duration", "description": "Interval between health checks.", @@ -1442,19 +956,19 @@ "id": "HealthCheck" }, "SourceReference": { + "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", + "type": "object", "properties": { - "repository": { - "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", - "type": "string" - }, "revisionId": { "description": "The canonical, persistent identifier of the deployed revision. Aliases that include tags or branch names are not allowed. Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"", "type": "string" + }, + "repository": { + "description": "URI string identifying the repository. Example: \"https://source.developers.google.com/p/app-123/r/default\"", + "type": "string" } }, - "id": "SourceReference", - "description": "Reference to a particular snapshot of the source tree used to build and deploy the application.", - "type": "object" + "id": "SourceReference" }, "DebugInstanceRequest": { "description": "Request message for Instances.DebugInstance.", @@ -1483,8 +997,6 @@ "type": "object" }, "OperationMetadataV1Beta5": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", "properties": { "method": { "description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly", @@ -1509,22 +1021,24 @@ "type": "string" } }, - "id": "OperationMetadataV1Beta5" + "id": "OperationMetadataV1Beta5", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "type": "object", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, "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" } }, "id": "ListLocationsResponse" @@ -1541,53 +1055,15 @@ "id": "ContainerInfo" }, "Version": { + "description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", + "type": "object", "properties": { - "errorHandlers": { - "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", - "items": { - "$ref": "ErrorHandler" - }, - "type": "array" - }, - "defaultExpiration": { - "format": "google-duration", - "description": "Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.", - "type": "string" - }, - "libraries": { - "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.", - "items": { - "$ref": "Library" - }, - "type": "array" - }, - "creationTime": { - "format": "google-datetime", - "description": "Time that this version was created.@OutputOnly", - "type": "string" - }, - "nobuildFilesRegex": { - "description": "Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.", - "type": "string" - }, - "basicScaling": { - "$ref": "BasicScaling", - "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." - }, - "runtime": { - "description": "Desired runtime. Example: python27.", - "type": "string" - }, - "id": { - "description": "Relative name of the version within the module. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", - "type": "string" - }, "envVariables": { - "description": "Environment variables made available to the application.Only returned in GET requests if view=FULL is set.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Environment variables made available to the application.Only returned in GET requests if view=FULL is set.", + "type": "object" }, "network": { "$ref": "Network", @@ -1616,8 +1092,8 @@ "type": "string" }, "automaticScaling": { - "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", - "$ref": "AutomaticScaling" + "$ref": "AutomaticScaling", + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics." }, "diskUsageBytes": { "format": "int64", @@ -1625,16 +1101,16 @@ "type": "string" }, "healthCheck": { - "$ref": "HealthCheck", - "description": "Configures health checking for VM instances. Unhealthy instances are be stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set." + "description": "Configures health checking for VM instances. Unhealthy instances are be stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.", + "$ref": "HealthCheck" }, "threadsafe": { "description": "Whether multiple requests can be dispatched to this version at once.", "type": "boolean" }, "manualScaling": { - "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "$ref": "ManualScaling" + "$ref": "ManualScaling", + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time." }, "name": { "description": "Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly", @@ -1670,31 +1146,19 @@ "STOPPED" ] }, - "deployment": { - "$ref": "Deployment", - "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set." - }, "runtimeApiVersion": { "description": "The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/\u003clanguage\u003e/config/appref", "type": "string" }, + "deployment": { + "description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.", + "$ref": "Deployment" + }, + "resources": { + "description": "Machine resources for this version. Only applicable for VM runtimes.", + "$ref": "Resources" + }, "inboundServices": { - "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", - "items": { - "enum": [ - "INBOUND_SERVICE_UNSPECIFIED", - "INBOUND_SERVICE_MAIL", - "INBOUND_SERVICE_MAIL_BOUNCE", - "INBOUND_SERVICE_XMPP_ERROR", - "INBOUND_SERVICE_XMPP_MESSAGE", - "INBOUND_SERVICE_XMPP_SUBSCRIBE", - "INBOUND_SERVICE_XMPP_PRESENCE", - "INBOUND_SERVICE_CHANNEL_PRESENCE", - "INBOUND_SERVICE_WARMUP" - ], - "type": "string" - }, - "type": "array", "enumDescriptions": [ "Not specified.", "Allows an application to receive mail.", @@ -1705,16 +1169,66 @@ "Allows an application to receive a user's chat presence.", "Registers an application for notifications when a client connects or disconnects from a channel.", "Enables warmup requests." - ] + ], + "description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.", + "items": { + "type": "string", + "enum": [ + "INBOUND_SERVICE_UNSPECIFIED", + "INBOUND_SERVICE_MAIL", + "INBOUND_SERVICE_MAIL_BOUNCE", + "INBOUND_SERVICE_XMPP_ERROR", + "INBOUND_SERVICE_XMPP_MESSAGE", + "INBOUND_SERVICE_XMPP_SUBSCRIBE", + "INBOUND_SERVICE_XMPP_PRESENCE", + "INBOUND_SERVICE_CHANNEL_PRESENCE", + "INBOUND_SERVICE_WARMUP" + ] + }, + "type": "array" }, - "resources": { - "$ref": "Resources", - "description": "Machine resources for this version. Only applicable for VM runtimes." + "errorHandlers": { + "description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.", + "items": { + "$ref": "ErrorHandler" + }, + "type": "array" + }, + "defaultExpiration": { + "format": "google-duration", + "description": "Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.", + "type": "string" + }, + "libraries": { + "description": "Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.", + "items": { + "$ref": "Library" + }, + "type": "array" + }, + "nobuildFilesRegex": { + "description": "Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.", + "type": "string" + }, + "creationTime": { + "format": "google-datetime", + "description": "Time that this version was created.@OutputOnly", + "type": "string" + }, + "basicScaling": { + "$ref": "BasicScaling", + "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity." + }, + "runtime": { + "description": "Desired runtime. Example: python27.", + "type": "string" + }, + "id": { + "description": "Relative name of the version within the module. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: \"default\", \"latest\", and any name with the prefix \"ah-\".", + "type": "string" } }, - "id": "Version", - "description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.", - "type": "object" + "id": "Version" }, "RequestUtilization": { "description": "Target scaling by request utilization. Only applicable for VM runtimes.", @@ -1733,9 +1247,22 @@ }, "id": "RequestUtilization" }, - "UrlMap": { - "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code, or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", + "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.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).", "type": "object", + "properties": { + "configId": { + "description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"", + "type": "string" + }, + "name": { + "description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"", + "type": "string" + } + }, + "id": "EndpointsApiService" + }, + "UrlMap": { "properties": { "securityLevel": { "enumDescriptions": [ @@ -1756,8 +1283,6 @@ "type": "string" }, "authFailAction": { - "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string", "enumDescriptions": [ "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", @@ -1767,11 +1292,13 @@ "AUTH_FAIL_ACTION_UNSPECIFIED", "AUTH_FAIL_ACTION_REDIRECT", "AUTH_FAIL_ACTION_UNAUTHORIZED" - ] + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string" }, "script": { - "description": "Executes a script to handle the request that matches this URL pattern.", - "$ref": "ScriptHandler" + "$ref": "ScriptHandler", + "description": "Executes a script to handle the request that matches this URL pattern." }, "urlRegex": { "description": "A URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.", @@ -1794,14 +1321,21 @@ "type": "string" }, "apiEndpoint": { - "$ref": "ApiEndpointHandler", - "description": "Uses API Endpoints to handle requests." + "description": "Uses API Endpoints to handle requests.", + "$ref": "ApiEndpointHandler" }, "staticFiles": { "description": "Returns the contents of a file, such as an image, as the response.", "$ref": "StaticFilesHandler" }, "redirectHttpResponseCode": { + "enumDescriptions": [ + "Not specified. 302 is assumed.", + "301 Moved Permanently code.", + "302 Moved Temporarily code.", + "303 See Other code.", + "307 Temporary Redirect code." + ], "enum": [ "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED", "REDIRECT_HTTP_RESPONSE_CODE_301", @@ -1810,37 +1344,53 @@ "REDIRECT_HTTP_RESPONSE_CODE_307" ], "description": "30x code to use when performing redirects for the secure field. Defaults to 302.", - "type": "string", - "enumDescriptions": [ - "Not specified. 302 is assumed.", - "301 Moved Permanently code.", - "302 Moved Temporarily code.", - "303 See Other code.", - "307 Temporary Redirect code." - ] - } - }, - "id": "UrlMap" - }, - "EndpointsApiService": { - "properties": { - "configId": { - "description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"", - "type": "string" - }, - "name": { - "description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"", "type": "string" } }, - "id": "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.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": "UrlMap", + "description": "URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code, or by serving static files uploaded with the version, such as images, CSS, or JavaScript.", "type": "object" }, "ApiConfigHandler": { "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", "type": "object", "properties": { + "url": { + "description": "URL to serve the endpoint at.", + "type": "string" + }, + "securityLevel": { + "enum": [ + "SECURE_UNSPECIFIED", + "SECURE_DEFAULT", + "SECURE_NEVER", + "SECURE_OPTIONAL", + "SECURE_ALWAYS" + ], + "description": "Security (HTTPS) enforcement for this URL.", + "type": "string", + "enumDescriptions": [ + "Not specified.", + "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.", + "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", + "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.", + "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." + ] + }, + "authFailAction": { + "enum": [ + "AUTH_FAIL_ACTION_UNSPECIFIED", + "AUTH_FAIL_ACTION_REDIRECT", + "AUTH_FAIL_ACTION_UNAUTHORIZED" + ], + "description": "Action to take when users access resources that require authentication. Defaults to redirect.", + "type": "string", + "enumDescriptions": [ + "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", + "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", + "Rejects request with an401 HTTP status code and an error message." + ] + }, "script": { "description": "Path to the script from the application root directory.", "type": "string" @@ -1860,42 +1410,6 @@ ], "description": "Level of login required to access this resource. Defaults to optional.", "type": "string" - }, - "url": { - "description": "URL to serve the endpoint at.", - "type": "string" - }, - "securityLevel": { - "enumDescriptions": [ - "Not specified.", - "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.", - "Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.", - "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.", - "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." - ], - "enum": [ - "SECURE_UNSPECIFIED", - "SECURE_DEFAULT", - "SECURE_NEVER", - "SECURE_OPTIONAL", - "SECURE_ALWAYS" - ], - "description": "Security (HTTPS) enforcement for this URL.", - "type": "string" - }, - "authFailAction": { - "enumDescriptions": [ - "Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.", - "Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.", - "Rejects request with an401 HTTP status code and an error message." - ], - "enum": [ - "AUTH_FAIL_ACTION_UNSPECIFIED", - "AUTH_FAIL_ACTION_REDIRECT", - "AUTH_FAIL_ACTION_UNAUTHORIZED" - ], - "description": "Action to take when users access resources that require authentication. Defaults to redirect.", - "type": "string" } }, "id": "ApiConfigHandler" @@ -1909,24 +1423,24 @@ "description": "The error result of the operation in case of failure or cancellation." }, "metadata": { - "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", "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" }, "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" }, "response": { + "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", "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" + } }, "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 have the format of operations/some/unique/name.", @@ -1950,9 +1464,10 @@ "description": "Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.", "type": "object", "properties": { - "applicationReadable": { - "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", - "type": "boolean" + "expiration": { + "format": "google-duration", + "description": "Time a static file served by this handler should be cached.", + "type": "string" }, "httpHeaders": { "description": "HTTP headers to use for all responses from these URLs.", @@ -1961,6 +1476,10 @@ "type": "string" } }, + "applicationReadable": { + "description": "Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.", + "type": "boolean" + }, "uploadPathRegex": { "description": "Regular expression that matches the file paths for all files that should be referenced by this handler.", "type": "string" @@ -1976,16 +1495,13 @@ "requireMatchingFile": { "description": "Whether this handler should match the request if the file referenced by the handler does not exist.", "type": "boolean" - }, - "expiration": { - "format": "google-duration", - "description": "Time a static file served by this handler should be cached.", - "type": "string" } }, "id": "StaticFilesHandler" }, "FileInfo": { + "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", + "type": "object", "properties": { "sha1Sum": { "description": "The SHA1 hash of the file, in hex.", @@ -2000,23 +1516,21 @@ "type": "string" } }, - "id": "FileInfo", - "description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.", - "type": "object" + "id": "FileInfo" }, "BasicScaling": { "description": "A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.", "type": "object", "properties": { - "idleTimeout": { - "format": "google-duration", - "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", - "type": "string" - }, "maxInstances": { "format": "int32", "description": "Maximum number of instances to create for this version.", "type": "integer" + }, + "idleTimeout": { + "format": "google-duration", + "description": "Duration of time after the last request that an instance must wait before the instance is shut down.", + "type": "string" } }, "id": "BasicScaling" @@ -2025,11 +1539,6 @@ "description": "Target scaling by disk usage. Only applicable for VM runtimes.", "type": "object", "properties": { - "targetWriteBytesPerSec": { - "format": "int32", - "description": "Target bytes written per second.", - "type": "integer" - }, "targetReadOpsPerSec": { "format": "int32", "description": "Target ops read per second.", @@ -2044,14 +1553,27 @@ "format": "int32", "description": "Target ops written per second.", "type": "integer" + }, + "targetWriteBytesPerSec": { + "format": "int32", + "description": "Target bytes written per second.", + "type": "integer" } }, "id": "DiskUtilization" }, "OperationMetadataExperimental": { - "description": "Metadata for the given google.longrunning.Operation.", - "type": "object", "properties": { + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + }, "target": { "description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly", "type": "string" @@ -2063,21 +1585,15 @@ "method": { "description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly", "type": "string" - }, - "insertTime": { - "format": "google-datetime", - "description": "Time that this operation was created.@OutputOnly", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time that this operation completed.@OutputOnly", - "type": "string" } }, - "id": "OperationMetadataExperimental" + "id": "OperationMetadataExperimental", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" }, "CpuUtilization": { + "description": "Target scaling by CPU usage.", + "type": "object", "properties": { "aggregationWindowLength": { "format": "google-duration", @@ -2090,11 +1606,11 @@ "type": "number" } }, - "id": "CpuUtilization", - "description": "Target scaling by CPU usage.", - "type": "object" + "id": "CpuUtilization" }, "IdentityAwareProxy": { + "description": "Identity-Aware Proxy", + "type": "object", "properties": { "oauth2ClientSecret": { "description": "For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly", @@ -2113,14 +1629,21 @@ "type": "boolean" } }, - "id": "IdentityAwareProxy", - "description": "Identity-Aware Proxy", - "type": "object" + "id": "IdentityAwareProxy" }, "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "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" + }, "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "items": { @@ -2131,15 +1654,6 @@ "type": "object" }, "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "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" } }, "id": "Status" @@ -2174,6 +1688,8 @@ "id": "TrafficSplit" }, "ManualScaling": { + "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", + "type": "object", "properties": { "instances": { "format": "int32", @@ -2181,31 +1697,247 @@ "type": "integer" } }, - "id": "ManualScaling", - "description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.", - "type": "object" + "id": "ManualScaling" }, "LocationMetadata": { "description": "Metadata for the given google.cloud.location.Location.", "type": "object", "properties": { - "standardEnvironmentAvailable": { - "description": "App Engine Standard Environment is available in the given location.@OutputOnly", - "type": "boolean" - }, "flexibleEnvironmentAvailable": { "description": "App Engine Flexible Environment is available in the given location.@OutputOnly", "type": "boolean" + }, + "standardEnvironmentAvailable": { + "description": "App Engine Standard Environment is available in the given location.@OutputOnly", + "type": "boolean" } }, "id": "LocationMetadata" }, "OperationMetadataV1Beta": { "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, "method": { "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly", "type": "string" }, + "endTime": { + "format": "google-datetime", + "description": "Time that this operation completed.@OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadataV1Beta", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" + }, + "ListServicesResponse": { + "description": "Response message for Services.ListServices.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "services": { + "description": "The services belonging to the requested application.", + "items": { + "$ref": "Service" + }, + "type": "array" + } + }, + "id": "ListServicesResponse" + }, + "Deployment": { + "properties": { + "sourceReferences": { + "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", + "items": { + "$ref": "SourceReference" + }, + "type": "array" + }, + "container": { + "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.", + "$ref": "ContainerInfo" + }, + "files": { + "additionalProperties": { + "$ref": "FileInfo" + }, + "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", + "type": "object" + } + }, + "id": "Deployment", + "description": "Code and application artifacts used to deploy a version to App Engine.", + "type": "object" + }, + "Resources": { + "properties": { + "volumes": { + "description": "Volumes mounted within the app container.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "diskGb": { + "format": "double", + "description": "Disk size (GB) needed.", + "type": "number" + }, + "memoryGb": { + "format": "double", + "description": "Memory (GB) needed.", + "type": "number" + }, + "cpu": { + "format": "double", + "description": "Number of CPU cores needed.", + "type": "number" + } + }, + "id": "Resources", + "description": "Machine resources for a version.", + "type": "object" + }, + "Service": { + "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle other tasks such as API requests from mobile devices or backend data analysis. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", + "type": "object", + "properties": { + "id": { + "description": "Relative name of the service within the application. Example: default.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", + "type": "string" + }, + "split": { + "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service.", + "$ref": "TrafficSplit" + } + }, + "id": "Service" + }, + "Volume": { + "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "sizeGb": { + "format": "double", + "description": "Volume size in gigabytes.", + "type": "number" + }, + "name": { + "description": "Unique name for the volume.", + "type": "string" + }, + "volumeType": { + "description": "Underlying volume type, e.g. 'tmpfs'.", + "type": "string" + } + }, + "id": "Volume" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", + "properties": { + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "Operation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "id": "ListOperationsResponse" + }, + "OperationMetadata": { + "properties": { + "endTime": { + "format": "google-datetime", + "description": "Timestamp that this operation completed.@OutputOnly", + "type": "string" + }, + "operationType": { + "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", + "type": "string" + }, + "insertTime": { + "format": "google-datetime", + "description": "Timestamp that this operation was created.@OutputOnly", + "type": "string" + }, + "target": { + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", + "type": "string" + }, + "user": { + "description": "User who requested this operation.@OutputOnly", + "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "type": "string" + } + }, + "id": "OperationMetadata", + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object" + }, + "ListInstancesResponse": { + "description": "Response message for Instances.ListInstances.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + }, + "instances": { + "description": "The instances belonging to the requested version.", + "items": { + "$ref": "Instance" + }, + "type": "array" + } + }, + "id": "ListInstancesResponse" + }, + "OperationMetadataV1": { + "description": "Metadata for the given google.longrunning.Operation.", + "type": "object", + "properties": { "endTime": { "format": "google-datetime", "description": "Time that this operation completed.@OutputOnly", @@ -2234,178 +1966,446 @@ "ephemeralMessage": { "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", "type": "string" + }, + "method": { + "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly", + "type": "string" } }, - "id": "OperationMetadataV1Beta", - "description": "Metadata for the given google.longrunning.Operation.", + "id": "OperationMetadataV1" + }, + "ErrorHandler": { + "properties": { + "mimeType": { + "description": "MIME type of file. Defaults to text/html.", + "type": "string" + }, + "errorCode": { + "enumDescriptions": [ + "Not specified. ERROR_CODE_DEFAULT is assumed.", + "All other error types.", + "Application has exceeded a resource quota.", + "Client blocked by the application's Denial of Service protection configuration.", + "Deadline reached before the application responds." + ], + "enum": [ + "ERROR_CODE_UNSPECIFIED", + "ERROR_CODE_DEFAULT", + "ERROR_CODE_OVER_QUOTA", + "ERROR_CODE_DOS_API_DENIAL", + "ERROR_CODE_TIMEOUT" + ], + "description": "Error condition this handler applies to.", + "type": "string" + }, + "staticFile": { + "description": "Static file content to be served for this error.", + "type": "string" + } + }, + "id": "ErrorHandler", + "description": "Custom static error page to be served when an error occurs.", "type": "object" }, - "ListServicesResponse": { - "description": "Response message for Services.ListServices.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Continuation token for fetching the next page of results.", - "type": "string" - }, - "services": { - "description": "The services belonging to the requested application.", - "items": { - "$ref": "Service" - }, - "type": "array" - } - }, - "id": "ListServicesResponse" - }, - "Resources": { - "description": "Machine resources for a version.", - "type": "object", - "properties": { - "volumes": { - "description": "Volumes mounted within the app container.", - "items": { - "$ref": "Volume" - }, - "type": "array" - }, - "diskGb": { - "format": "double", - "description": "Disk size (GB) needed.", - "type": "number" - }, - "memoryGb": { - "format": "double", - "description": "Memory (GB) needed.", - "type": "number" - }, - "cpu": { - "format": "double", - "description": "Number of CPU cores needed.", - "type": "number" - } - }, - "id": "Resources" - }, - "Deployment": { - "description": "Code and application artifacts used to deploy a version to App Engine.", - "type": "object", - "properties": { - "sourceReferences": { - "description": "Origin of the source code for this deployment. There can be more than one source reference per version if source code is distributed among multiple repositories.", - "items": { - "$ref": "SourceReference" - }, - "type": "array" - }, - "container": { - "$ref": "ContainerInfo", - "description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment." - }, - "files": { - "additionalProperties": { - "$ref": "FileInfo" - }, - "description": "Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.", - "type": "object" - } - }, - "id": "Deployment" - }, - "Volume": { - "description": "Volumes mounted within the app container. Only applicable for VM runtimes.", - "type": "object", - "properties": { - "volumeType": { - "description": "Underlying volume type, e.g. 'tmpfs'.", - "type": "string" - }, - "sizeGb": { - "format": "double", - "description": "Volume size in gigabytes.", - "type": "number" - }, - "name": { - "description": "Unique name for the volume.", - "type": "string" - } - }, - "id": "Volume" - }, - "Service": { - "description": "A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle other tasks such as API requests from mobile devices or backend data analysis. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.", - "type": "object", - "properties": { - "name": { - "description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly", - "type": "string" - }, - "split": { - "$ref": "TrafficSplit", - "description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service." - }, - "id": { - "description": "Relative name of the service within the application. Example: default.@OutputOnly", - "type": "string" - } - }, - "id": "Service" - }, - "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", - "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" - } - }, - "id": "ListOperationsResponse" - }, - "OperationMetadata": { + "OperationMetadataV1Alpha": { "description": "Metadata for the given google.longrunning.Operation.", "type": "object", "properties": { + "warning": { + "description": "Durable messages that persist on every operation poll. @OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "insertTime": { + "format": "google-datetime", + "description": "Time that this operation was created.@OutputOnly", + "type": "string" + }, "target": { - "description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly", + "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly", "type": "string" }, "user": { "description": "User who requested this operation.@OutputOnly", "type": "string" }, + "ephemeralMessage": { + "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly", + "type": "string" + }, "method": { - "description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly", + "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly", "type": "string" }, "endTime": { "format": "google-datetime", - "description": "Timestamp that this operation completed.@OutputOnly", - "type": "string" - }, - "operationType": { - "description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly", - "type": "string" - }, - "insertTime": { - "format": "google-datetime", - "description": "Timestamp that this operation was created.@OutputOnly", + "description": "Time that this operation completed.@OutputOnly", "type": "string" } }, - "id": "OperationMetadata" + "id": "OperationMetadataV1Alpha" + }, + "Network": { + "properties": { + "subnetworkName": { + "description": "Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.\nIf the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.", + "type": "string" + }, + "instanceTag": { + "description": "Tag to apply to the VM instance during creation.", + "type": "string" + }, + "forwardedPorts": { + "description": "List of ports, or port pairs, to forward from the virtual machine to the application container.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.", + "type": "string" + } + }, + "id": "Network", + "description": "Extra network settings. Only applicable for VM runtimes.", + "type": "object" + }, + "Application": { + "properties": { + "codeBucket": { + "description": "A 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", + "type": "string" + }, + "location": { + "description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US", + "type": "string" + }, + "defaultBucket": { + "description": "A Google Cloud Storage bucket that can be used by the application to store content.@OutputOnly", + "type": "string" + }, + "dispatchRules": { + "description": "HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly", + "items": { + "$ref": "UrlDispatchRule" + }, + "type": "array" + }, + "defaultHostname": { + "description": "Hostname used to reach the application, as resolved by App Engine.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly", + "type": "string" + }, + "authDomain": { + "description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.", + "type": "string" + }, + "iap": { + "$ref": "IdentityAwareProxy" + }, + "defaultCookieExpiration": { + "format": "google-duration", + "description": "Cookie expiration policy for this application.", + "type": "string" + }, + "id": { + "description": "Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.", + "type": "string" + } + }, + "id": "Application", + "description": "An Application resource contains the top-level configuration of an App Engine application.", + "type": "object" + }, + "UrlDispatchRule": { + "description": "Rules to match an HTTP request and dispatch that request to a service.", + "type": "object", + "properties": { + "path": { + "description": "Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.", + "type": "string" + }, + "service": { + "description": "Resource id of a service in this application that should serve the matched request. The service must already exist. Example: default.", + "type": "string" + }, + "domain": { + "description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".", + "type": "string" + } + }, + "id": "UrlDispatchRule" + }, + "Instance": { + "description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.", + "type": "object", + "properties": { + "vmName": { + "description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "qps": { + "format": "float", + "description": "Average queries per second (QPS) over the last minute.@OutputOnly", + "type": "number" + }, + "vmId": { + "description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "vmZoneName": { + "description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "name": { + "description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly", + "type": "string" + }, + "vmUnlocked": { + "description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "boolean" + }, + "averageLatency": { + "format": "int32", + "description": "Average latency (ms) over the last minute.@OutputOnly", + "type": "integer" + }, + "id": { + "description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly", + "type": "string" + }, + "memoryUsage": { + "format": "int64", + "description": "Total memory in use (bytes).@OutputOnly", + "type": "string" + }, + "vmIp": { + "description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "vmStatus": { + "description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly", + "type": "string" + }, + "errors": { + "format": "uint32", + "description": "Number of errors since this instance was started.@OutputOnly", + "type": "integer" + }, + "availability": { + "enum": [ + "UNSPECIFIED", + "RESIDENT", + "DYNAMIC" + ], + "description": "Availability of the instance.@OutputOnly", + "type": "string", + "enumDescriptions": [ + "", + "", + "" + ] + }, + "requests": { + "format": "int32", + "description": "Number of requests since this instance was started.@OutputOnly", + "type": "integer" + }, + "appEngineRelease": { + "description": "App Engine release this instance is running on.@OutputOnly", + "type": "string" + }, + "startTimestamp": { + "format": "google-datetime", + "description": "Time that this instance was started.@OutputOnly", + "type": "string" + } + }, + "id": "Instance" + }, + "ListVersionsResponse": { + "properties": { + "versions": { + "description": "The versions belonging to the requested service.", + "items": { + "$ref": "Version" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "id": "ListVersionsResponse", + "description": "Response message for Versions.ListVersions.", + "type": "object" + }, + "ApiEndpointHandler": { + "description": "Uses Google Cloud Endpoints to handle requests.", + "type": "object", + "properties": { + "scriptPath": { + "description": "Path to the script from the application root directory.", + "type": "string" + } + }, + "id": "ApiEndpointHandler" + }, + "AutomaticScaling": { + "properties": { + "maxTotalInstances": { + "format": "int32", + "description": "Maximum number of instances that should be started to handle requests.", + "type": "integer" + }, + "minTotalInstances": { + "format": "int32", + "description": "Minimum number of instances that should be maintained for this version.", + "type": "integer" + }, + "networkUtilization": { + "$ref": "NetworkUtilization", + "description": "Target scaling by network usage." + }, + "maxConcurrentRequests": { + "format": "int32", + "description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.", + "type": "integer" + }, + "coolDownPeriod": { + "format": "google-duration", + "description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.", + "type": "string" + }, + "maxPendingLatency": { + "format": "google-duration", + "description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.", + "type": "string" + }, + "cpuUtilization": { + "$ref": "CpuUtilization", + "description": "Target scaling by CPU usage." + }, + "diskUtilization": { + "description": "Target scaling by disk usage.", + "$ref": "DiskUtilization" + }, + "minPendingLatency": { + "format": "google-duration", + "description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.", + "type": "string" + }, + "maxIdleInstances": { + "format": "int32", + "description": "Maximum number of idle instances that should be maintained for this version.", + "type": "integer" + }, + "requestUtilization": { + "$ref": "RequestUtilization", + "description": "Target scaling by request utilization." + }, + "minIdleInstances": { + "format": "int32", + "description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.", + "type": "integer" + } + }, + "id": "AutomaticScaling", + "description": "Automatic scaling is based on request rate, response latencies, and other application metrics.", + "type": "object" + }, + "NetworkUtilization": { + "description": "Target scaling by network usage. Only applicable for VM runtimes.", + "type": "object", + "properties": { + "targetReceivedBytesPerSec": { + "format": "int32", + "description": "Target bytes received per second.", + "type": "integer" + }, + "targetSentPacketsPerSec": { + "format": "int32", + "description": "Target packets sent per second.", + "type": "integer" + }, + "targetReceivedPacketsPerSec": { + "format": "int32", + "description": "Target packets received per second.", + "type": "integer" + }, + "targetSentBytesPerSec": { + "format": "int32", + "description": "Target bytes sent per second.", + "type": "integer" + } + }, + "id": "NetworkUtilization" + }, + "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", + "properties": { + "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" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"", + "type": "string" + } + }, + "id": "Location" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" - } + }, + "protocol": "rest", + "version": "v1beta5", + "baseUrl": "https://appengine.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" + }, + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud Platform services" + } + } + } + }, + "kind": "discovery#restDescription", + "description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.", + "servicePath": "", + "rootUrl": "https://appengine.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "appengine" } diff --git a/vendor/google.golang.org/api/bigquery/v2/bigquery-api.json b/vendor/google.golang.org/api/bigquery/v2/bigquery-api.json index 5f92829ab..ee4c60034 100644 --- a/vendor/google.golang.org/api/bigquery/v2/bigquery-api.json +++ b/vendor/google.golang.org/api/bigquery/v2/bigquery-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/RJ9KKUbfMw7IvtOPKrwn45TxAuo\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/Yjz730WZUqb4y3BERqr_d1RRnuI\"", "discoveryVersion": "v1", "id": "bigquery:v2", "name": "bigquery", "version": "v2", - "revision": "20170910", + "revision": "20171015", "title": "BigQuery API", "description": "A data platform for customers to create, manage, share and query data.", "ownerDomain": "google.com", @@ -897,7 +897,7 @@ }, "schemaUpdateOptions": { "type": "array", - "description": "[Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", + "description": "Allows the schema of the desitination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", "items": { "type": "string" } @@ -920,7 +920,7 @@ }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "[Experimental] If specified, configures time-based partitioning for the destination table." + "description": "If specified, configures time-based partitioning for the destination table." }, "writeDisposition": { "type": "string", @@ -994,7 +994,7 @@ }, "schemaUpdateOptions": { "type": "array", - "description": "[Experimental] Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", + "description": "Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", "items": { "type": "string" } @@ -1008,7 +1008,7 @@ }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "[Experimental] If specified, configures time-based partitioning for the destination table." + "description": "If specified, configures time-based partitioning for the destination table." }, "useLegacySql": { "type": "boolean", @@ -1712,7 +1712,7 @@ }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "[Experimental] If specified, configures time-based partitioning for this table." + "description": "If specified, configures time-based partitioning for this table." }, "type": { "type": "string", @@ -1888,6 +1888,16 @@ "items": { "type": "object", "properties": { + "creationTime": { + "type": "string", + "description": "The time when this table was created, in milliseconds since the epoch.", + "format": "int64" + }, + "expirationTime": { + "type": "string", + "description": "[Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.", + "format": "int64" + }, "friendlyName": { "type": "string", "description": "The user-friendly name for this table." @@ -1914,7 +1924,7 @@ }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "[Experimental] The time-based partitioning for this table." + "description": "The time-based partitioning for this table." }, "type": { "type": "string", diff --git a/vendor/google.golang.org/api/bigquery/v2/bigquery-gen.go b/vendor/google.golang.org/api/bigquery/v2/bigquery-gen.go index 916c77cdc..315da7f7a 100644 --- a/vendor/google.golang.org/api/bigquery/v2/bigquery-gen.go +++ b/vendor/google.golang.org/api/bigquery/v2/bigquery-gen.go @@ -1451,10 +1451,10 @@ type JobConfigurationLoad struct { // property. SchemaInlineFormat string `json:"schemaInlineFormat,omitempty"` - // SchemaUpdateOptions: [Experimental] Allows the schema of the - // desitination table to be updated as a side effect of the load job if - // a schema is autodetected or supplied in the job configuration. Schema - // update options are supported in two cases: when writeDisposition is + // SchemaUpdateOptions: Allows the schema of the desitination table to + // be updated as a side effect of the load job if a schema is + // autodetected or supplied in the job configuration. Schema update + // options are supported in two cases: when writeDisposition is // WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the // destination table is a partition of a table, specified by partition // decorators. For normal tables, WRITE_TRUNCATE will always overwrite @@ -1487,8 +1487,8 @@ type JobConfigurationLoad struct { // not allowed. SourceUris []string `json:"sourceUris,omitempty"` - // TimePartitioning: [Experimental] If specified, configures time-based - // partitioning for the destination table. + // TimePartitioning: If specified, configures time-based partitioning + // for the destination table. TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"` // WriteDisposition: [Optional] Specifies the action that occurs if the @@ -1602,16 +1602,15 @@ type JobConfigurationQuery struct { // QueryParameters: Query parameters for standard SQL queries. QueryParameters []*QueryParameter `json:"queryParameters,omitempty"` - // SchemaUpdateOptions: [Experimental] Allows the schema of the - // destination table to be updated as a side effect of the query job. - // Schema update options are supported in two cases: when - // writeDisposition is WRITE_APPEND; when writeDisposition is - // WRITE_TRUNCATE and the destination table is a partition of a table, - // specified by partition decorators. For normal tables, WRITE_TRUNCATE - // will always overwrite the schema. One or more of the following values - // are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to - // the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field - // in the original schema to nullable. + // SchemaUpdateOptions: Allows the schema of the destination table to be + // updated as a side effect of the query job. Schema update options are + // supported in two cases: when writeDisposition is WRITE_APPEND; when + // writeDisposition is WRITE_TRUNCATE and the destination table is a + // partition of a table, specified by partition decorators. For normal + // tables, WRITE_TRUNCATE will always overwrite the schema. One or more + // of the following values are specified: ALLOW_FIELD_ADDITION: allow + // adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow + // relaxing a required field in the original schema to nullable. SchemaUpdateOptions []string `json:"schemaUpdateOptions,omitempty"` // TableDefinitions: [Optional] If querying an external data source @@ -1620,8 +1619,8 @@ type JobConfigurationQuery struct { // source can then be queried as if it were a standard BigQuery table. TableDefinitions map[string]ExternalDataConfiguration `json:"tableDefinitions,omitempty"` - // TimePartitioning: [Experimental] If specified, configures time-based - // partitioning for the destination table. + // TimePartitioning: If specified, configures time-based partitioning + // for the destination table. TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"` // UseLegacySql: Specifies whether to use BigQuery's legacy SQL dialect @@ -2638,8 +2637,8 @@ type Table struct { // TableReference: [Required] Reference describing the ID of this table. TableReference *TableReference `json:"tableReference,omitempty"` - // TimePartitioning: [Experimental] If specified, configures time-based - // partitioning for this table. + // TimePartitioning: If specified, configures time-based partitioning + // for this table. TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"` // Type: [Output-only] Describes the table type. The following values @@ -2991,6 +2990,16 @@ func (s *TableList) MarshalJSON() ([]byte, error) { } type TableListTables struct { + // CreationTime: The time when this table was created, in milliseconds + // since the epoch. + CreationTime int64 `json:"creationTime,omitempty,string"` + + // ExpirationTime: [Optional] The time when this table expires, in + // milliseconds since the epoch. If not present, the table will persist + // indefinitely. Expired tables will be deleted and their storage + // reclaimed. + ExpirationTime int64 `json:"expirationTime,omitempty,string"` + // FriendlyName: The user-friendly name for this table. FriendlyName string `json:"friendlyName,omitempty"` @@ -3007,8 +3016,7 @@ type TableListTables struct { // TableReference: A reference uniquely identifying the table. TableReference *TableReference `json:"tableReference,omitempty"` - // TimePartitioning: [Experimental] The time-based partitioning for this - // table. + // TimePartitioning: The time-based partitioning for this table. TimePartitioning *TimePartitioning `json:"timePartitioning,omitempty"` // Type: The type of table. Possible values are: TABLE, VIEW. @@ -3017,7 +3025,7 @@ type TableListTables struct { // View: Additional details for a view. View *TableListTablesView `json:"view,omitempty"` - // ForceSendFields is a list of field names (e.g. "FriendlyName") to + // ForceSendFields is a list of field names (e.g. "CreationTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -3025,7 +3033,7 @@ type TableListTables struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FriendlyName") to include + // NullFields is a list of field names (e.g. "CreationTime") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as diff --git a/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json index f9916907d..a2ac5ccd7 100644 --- a/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json +++ b/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json @@ -1,19 +1,41 @@ { + "canonicalName": "BigQuery Data Transfer", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/bigquery": { + "description": "View and manage your data in Google BigQuery" + }, + "https://www.googleapis.com/auth/cloud-platform.read-only": { + "description": "View your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "rootUrl": "https://bigquerydatatransfer.googleapis.com/", + "ownerDomain": "google.com", + "name": "bigquerydatatransfer", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "BigQuery Data Transfer API", + "ownerName": "Google", "resources": { "projects": { "resources": { - "transferConfigs": { + "locations": { "methods": { "list": { - "flatPath": "v1/projects/{projectsId}/transferConfigs", - "id": "bigquerydatatransfer.projects.transferConfigs.list", - "path": "v1/{+parent}/transferConfigs", - "description": "Returns information about all data transfers in the project.", + "path": "v1/{+name}/locations", + "id": "bigquerydatatransfer.projects.locations.list", + "description": "Lists information about the supported locations for this service.", "response": { - "$ref": "ListTransferConfigsResponse" + "$ref": "ListLocationsResponse" }, "parameterOrder": [ - "parent" + "name" ], "httpMethod": "GET", "scopes": [ @@ -22,252 +44,94 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { - "dataSourceIds": { - "description": "When specified, only configurations of requested data sources are returned.", - "type": "string", - "repeated": true, - "location": "query" - }, - "parent": { - "description": "The BigQuery project id for which data sources\nshould be returned: `projects/{project_id}`.", - "type": "string", - "required": true, + "name": { "pattern": "^projects/[^/]+$", - "location": "path" + "location": "path", + "description": "The resource that owns the locations collection, if applicable.", + "required": true, + "type": "string" }, "pageToken": { - "description": "Pagination token, which can be used to request a specific page\nof `ListTransfersRequest` list results. For multiple-page\nresults, `ListTransfersResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", - "type": "string", - "location": "query" + "location": "query", + "description": "The standard list page token.", + "type": "string" }, "pageSize": { "location": "query", + "description": "The standard list page size.", "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results.", "type": "integer" - } - } - }, - "create": { - "description": "Creates a new data transfer configuration.", - "request": { - "$ref": "TransferConfig" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "TransferConfig" - }, - "parameters": { - "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nThis is required if new credentials are needed, as indicated by\n`CheckValidCreds`.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", + }, + "filter": { + "description": "The standard list filter.", "type": "string", "location": "query" - }, - "parent": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The BigQuery project id where the transfer configuration should be created.\nMust be in the format /projects/{project_id}/locations/{location_id}\nor\n/projects/{project_id}/locations/-\nIn case when '-' is specified as location_id, location is infered from\nthe destination dataset region.", - "type": "string", - "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/transferConfigs", - "path": "v1/{+parent}/transferConfigs", - "id": "bigquerydatatransfer.projects.transferConfigs.create" - }, - "scheduleRuns": { - "request": { - "$ref": "ScheduleTransferRunsRequest" - }, - "description": "Creates transfer runs for a time range [range_start_time, range_end_time].\nFor each date - or whatever granularity the data source supports - in the\nrange, one transfer run is created.\nNote that runs are created per UTC time in the time range.", - "response": { - "$ref": "ScheduleTransferRunsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "parent": { - "description": "Transfer configuration name in the form:\n`projects/{project_id}/transferConfigs/{config_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns", - "id": "bigquerydatatransfer.projects.transferConfigs.scheduleRuns", - "path": "v1/{+parent}:scheduleRuns" - }, - "patch": { - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", - "path": "v1/{+name}", - "id": "bigquerydatatransfer.projects.transferConfigs.patch", - "description": "Updates a data transfer configuration.\nAll fields must be set, even if they are not updated.", - "request": { - "$ref": "TransferConfig" - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "TransferConfig" - }, - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required list of fields to be updated in this request.", - "type": "string" - }, - "name": { - "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", - "location": "path" - }, - "authorizationCode": { - "type": "string", - "location": "query", - "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nIf it is provided, the transfer configuration will be associated with the\ngaia id of the authorizing user.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ] + "flatPath": "v1/projects/{projectsId}/locations" }, "get": { - "id": "bigquerydatatransfer.projects.transferConfigs.get", - "path": "v1/{+name}", - "description": "Returns information about a data transfer config.", "response": { - "$ref": "TransferConfig" + "$ref": "Location" }, "parameterOrder": [ "name" ], "httpMethod": "GET", - "parameters": { - "name": { - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", - "location": "path" - } - }, "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}" - }, - "delete": { - "description": "Deletes a data transfer configuration,\nincluding any associated transfer runs and logs.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", "parameters": { "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+$", "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`" + "description": "Resource name for the location.", + "required": true, + "type": "string" } }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", - "id": "bigquerydatatransfer.projects.transferConfigs.delete", - "path": "v1/{+name}" + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.locations.get", + "description": "Get information about a location." } }, "resources": { - "runs": { - "resources": { - "transferLogs": { - "methods": { - "list": { - "parameters": { - "parent": { - "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", - "location": "path", - "description": "Transfer run name in the form:\n`projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.", - "type": "string", - "required": true - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Pagination token, which can be used to request a specific page\nof `ListTransferLogsRequest` list results. For multiple-page\nresults, `ListTransferLogsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results." - }, - "pageSize": { - "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results.", - "type": "integer", - "location": "query" - }, - "messageTypes": { - "description": "Message types to return. If not populated - INFO, WARNING and ERROR\nmessages are returned.", - "type": "string", - "repeated": true, - "location": "query", - "enum": [ - "MESSAGE_SEVERITY_UNSPECIFIED", - "INFO", - "WARNING", - "ERROR" - ] - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", - "path": "v1/{+parent}/transferLogs", - "id": "bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list", - "description": "Returns user facing log messages for the data transfer run.", - "httpMethod": "GET", - "response": { - "$ref": "ListTransferLogsResponse" - }, - "parameterOrder": [ - "parent" - ] - } - } - } - }, + "dataSources": { "methods": { - "list": { - "description": "Returns information about running and completed jobs.", + "get": { + "description": "Retrieves a supported data source and returns its settings,\nwhich can be used for UI rendering.", "response": { - "$ref": "ListTransferRunsResponse" + "$ref": "DataSource" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/dataSources/{data_source_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.locations.dataSources.get" + }, + "list": { + "description": "Lists supported data sources and returns their settings,\nwhich can be used for UI rendering.", + "response": { + "$ref": "ListDataSourcesResponse" }, "parameterOrder": [ "parent" @@ -280,61 +144,40 @@ ], "parameters": { "pageToken": { - "description": "Pagination token, which can be used to request a specific page\nof `ListTransferRunsRequest` list results. For multiple-page\nresults, `ListTransferRunsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", - "type": "string", - "location": "query" + "location": "query", + "description": "Pagination token, which can be used to request a specific page\nof `ListDataSourcesRequest` list results. For multiple-page\nresults, `ListDataSourcesResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "type": "string" }, "pageSize": { - "location": "query", - "format": "int32", "description": "Page size. The default page size is the maximum value of 1000 results.", - "type": "integer" - }, - "states": { - "enum": [ - "TRANSFER_STATE_UNSPECIFIED", - "INACTIVE", - "PENDING", - "RUNNING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ], - "description": "When specified, only transfer runs with requested states are returned.", - "type": "string", - "repeated": true, - "location": "query" - }, - "runAttempt": { - "enum": [ - "RUN_ATTEMPT_UNSPECIFIED", - "LATEST" - ], - "description": "Indicates how run attempts are to be pulled.", - "type": "string", + "format": "int32", + "type": "integer", "location": "query" }, "parent": { "location": "path", - "description": "Name of transfer configuration for which transfer runs should be retrieved.\nFormat of transfer configuration resource name is:\n`projects/{project_id}/transferConfigs/{config_id}`.", - "type": "string", + "description": "The BigQuery project id for which data sources should be returned.\nMust be in the form: `projects/{project_id}`", "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$" } }, - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs", - "id": "bigquerydatatransfer.projects.transferConfigs.runs.list", - "path": "v1/{+parent}/runs" + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources", + "path": "v1/{+parent}/dataSources", + "id": "bigquerydatatransfer.projects.locations.dataSources.list" }, - "get": { - "description": "Returns information about the particular transfer run.", - "response": { - "$ref": "TransferRun" + "checkValidCreds": { + "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config.", + "request": { + "$ref": "CheckValidCredsRequest" }, + "httpMethod": "POST", "parameterOrder": [ "name" ], - "httpMethod": "GET", + "response": { + "$ref": "CheckValidCredsResponse" + }, "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform", @@ -342,16 +185,87 @@ ], "parameters": { "name": { - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$", + "location": "path", + "description": "The data source in the form:\n`projects/{project_id}/dataSources/{data_source_id}`" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds", + "id": "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds", + "path": "v1/{+name}:checkValidCreds" + } + } + }, + "transferConfigs": { + "methods": { + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "TransferConfig" + }, + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", "location": "path" } }, - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", - "id": "bigquerydatatransfer.projects.transferConfigs.runs.get", - "path": "v1/{+name}" + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.get", + "path": "v1/{+name}", + "description": "Returns information about a data transfer config." + }, + "patch": { + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.patch", + "path": "v1/{+name}", + "request": { + "$ref": "TransferConfig" + }, + "description": "Updates a data transfer configuration.\nAll fields must be set, even if they are not updated.", + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "TransferConfig" + }, + "parameters": { + "authorizationCode": { + "location": "query", + "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nIf it is provided, the transfer configuration will be associated with the\ngaia id of the authorizing user.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", + "type": "string" + }, + "updateMask": { + "location": "query", + "description": "Required list of fields to be updated in this request.", + "format": "google-fieldmask", + "type": "string" + }, + "name": { + "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] }, "delete": { "response": { @@ -361,23 +275,307 @@ "name" ], "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "name": { - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", - "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", + "location": "path", + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", "required": true, - "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", - "location": "path" + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.delete", + "description": "Deletes a data transfer configuration,\nincluding any associated transfer runs and logs." + }, + "list": { + "response": { + "$ref": "ListTransferConfigsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "Pagination token, which can be used to request a specific page\nof `ListTransfersRequest` list results. For multiple-page\nresults, `ListTransfersResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "type": "string", + "location": "query" + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", + "format": "int32" + }, + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "The BigQuery project id for which data sources\nshould be returned: `projects/{project_id}`.", + "required": true, + "type": "string" + }, + "dataSourceIds": { + "description": "When specified, only configurations of requested data sources are returned.", + "type": "string", + "repeated": true, + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs", + "path": "v1/{+parent}/transferConfigs", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.list", + "description": "Returns information about all data transfers in the project." + }, + "create": { + "response": { + "$ref": "TransferConfig" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "authorizationCode": { + "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nThis is required if new credentials are needed, as indicated by\n`CheckValidCreds`.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", + "type": "string", + "location": "query" + }, + "parent": { + "location": "path", + "description": "The BigQuery project id where the transfer configuration should be created.\nMust be in the format /projects/{project_id}/locations/{location_id}\nor\n/projects/{project_id}/locations/-\nIn case when '-' is specified as location_id, location is infered from\nthe destination dataset region.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$" } }, "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", - "id": "bigquerydatatransfer.projects.transferConfigs.runs.delete", - "path": "v1/{+name}", - "description": "Deletes the specified transfer run." + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs", + "path": "v1/{+parent}/transferConfigs", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.create", + "request": { + "$ref": "TransferConfig" + }, + "description": "Creates a new data transfer configuration." + }, + "scheduleRuns": { + "response": { + "$ref": "ScheduleTransferRunsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", + "location": "path", + "description": "Transfer configuration name in the form:\n`projects/{project_id}/transferConfigs/{config_id}`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns", + "path": "v1/{+parent}:scheduleRuns", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns", + "request": { + "$ref": "ScheduleTransferRunsRequest" + }, + "description": "Creates transfer runs for a time range [range_start_time, range_end_time].\nFor each date - or whatever granularity the data source supports - in the\nrange, one transfer run is created.\nNote that runs are created per UTC time in the time range." + } + }, + "resources": { + "runs": { + "methods": { + "delete": { + "description": "Deletes the specified transfer run.", + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.delete", + "path": "v1/{+name}" + }, + "get": { + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.get", + "description": "Returns information about the particular transfer run.", + "response": { + "$ref": "TransferRun" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET" + }, + "list": { + "response": { + "$ref": "ListTransferRunsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "states": { + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "TRANSFER_STATE_UNSPECIFIED", + "INACTIVE", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "description": "When specified, only transfer runs with requested states are returned." + }, + "pageSize": { + "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", + "format": "int32", + "type": "integer" + }, + "runAttempt": { + "description": "Indicates how run attempts are to be pulled.", + "type": "string", + "location": "query", + "enum": [ + "RUN_ATTEMPT_UNSPECIFIED", + "LATEST" + ] + }, + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", + "location": "path", + "description": "Name of transfer configuration for which transfer runs should be retrieved.\nFormat of transfer configuration resource name is:\n`projects/{project_id}/transferConfigs/{config_id}`.", + "required": true, + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Pagination token, which can be used to request a specific page\nof `ListTransferRunsRequest` list results. For multiple-page\nresults, `ListTransferRunsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs", + "path": "v1/{+parent}/runs", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.list", + "description": "Returns information about running and completed jobs." + } + }, + "resources": { + "transferLogs": { + "methods": { + "list": { + "description": "Returns user facing log messages for the data transfer run.", + "response": { + "$ref": "ListTransferLogsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Pagination token, which can be used to request a specific page\nof `ListTransferLogsRequest` list results. For multiple-page\nresults, `ListTransferLogsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results." + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", + "format": "int32" + }, + "messageTypes": { + "description": "Message types to return. If not populated - INFO, WARNING and ERROR\nmessages are returned.", + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "MESSAGE_SEVERITY_UNSPECIFIED", + "INFO", + "WARNING", + "ERROR" + ] + }, + "parent": { + "location": "path", + "description": "Transfer run name in the form:\n`projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", + "path": "v1/{+parent}/transferLogs", + "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list" + } + } + } + } } } } @@ -385,35 +583,32 @@ }, "dataSources": { "methods": { - "checkValidCreds": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "CheckValidCredsResponse" + "get": { + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/dataSources/{data_source_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/dataSources/[^/]+$", + "location": "path" + } }, "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "parameters": { - "name": { - "description": "The data source in the form:\n`projects/{project_id}/dataSources/{data_source_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/dataSources/[^/]+$", - "location": "path" - } + "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}", + "id": "bigquerydatatransfer.projects.dataSources.get", + "path": "v1/{+name}", + "description": "Retrieves a supported data source and returns its settings,\nwhich can be used for UI rendering.", + "httpMethod": "GET", + "response": { + "$ref": "DataSource" }, - "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds", - "path": "v1/{+name}:checkValidCreds", - "id": "bigquerydatatransfer.projects.dataSources.checkValidCreds", - "request": { - "$ref": "CheckValidCredsRequest" - }, - "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config." + "parameterOrder": [ + "name" + ] }, "list": { "response": { @@ -429,119 +624,82 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ], "parameters": { - "pageSize": { - "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results.", - "type": "integer", - "location": "query" - }, - "parent": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The BigQuery project id for which data sources should be returned.\nMust be in the form: `projects/{project_id}`" - }, "pageToken": { "description": "Pagination token, which can be used to request a specific page\nof `ListDataSourcesRequest` list results. For multiple-page\nresults, `ListDataSourcesResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", "type": "string", "location": "query" - } - }, - "flatPath": "v1/projects/{projectsId}/dataSources", - "id": "bigquerydatatransfer.projects.dataSources.list", - "path": "v1/{+parent}/dataSources", - "description": "Lists supported data sources and returns their settings,\nwhich can be used for UI rendering." - }, - "get": { - "id": "bigquerydatatransfer.projects.dataSources.get", - "path": "v1/{+name}", - "description": "Retrieves a supported data source and returns its settings,\nwhich can be used for UI rendering.", - "response": { - "$ref": "DataSource" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/dataSources/{data_source_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/dataSources/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}" - } - } - }, - "locations": { - "methods": { - "get": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", - "id": "bigquerydatatransfer.projects.locations.get", - "path": "v1/{+name}", - "description": "Get information about a location.", - "response": { - "$ref": "Location" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "Resource name for the location.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "list": { - "response": { - "$ref": "ListLocationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The resource that owns the locations collection, if applicable." }, "pageSize": { "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", "format": "int32", - "description": "The standard list page size.", "type": "integer" + }, + "parent": { + "description": "The BigQuery project id for which data sources should be returned.\nMust be in the form: `projects/{project_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/dataSources", + "path": "v1/{+parent}/dataSources", + "id": "bigquerydatatransfer.projects.dataSources.list", + "description": "Lists supported data sources and returns their settings,\nwhich can be used for UI rendering." + }, + "checkValidCreds": { + "response": { + "$ref": "CheckValidCredsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "name": { + "location": "path", + "description": "The data source in the form:\n`projects/{project_id}/dataSources/{data_source_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/dataSources/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds", + "path": "v1/{+name}:checkValidCreds", + "id": "bigquerydatatransfer.projects.dataSources.checkValidCreds", + "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config.", + "request": { + "$ref": "CheckValidCredsRequest" + } + } + } + }, + "transferConfigs": { + "methods": { + "get": { + "id": "bigquerydatatransfer.projects.transferConfigs.get", + "path": "v1/{+name}", + "description": "Returns information about a data transfer config.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "TransferConfig" + }, + "parameters": { + "name": { + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", + "location": "path" } }, "scopes": [ @@ -549,261 +707,186 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "flatPath": "v1/projects/{projectsId}/locations", - "id": "bigquerydatatransfer.projects.locations.list", - "path": "v1/{+name}/locations", - "description": "Lists information about the supported locations for this service." + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}" + }, + "patch": { + "description": "Updates a data transfer configuration.\nAll fields must be set, even if they are not updated.", + "request": { + "$ref": "TransferConfig" + }, + "response": { + "$ref": "TransferConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", + "location": "path", + "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig." + }, + "authorizationCode": { + "location": "query", + "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nIf it is provided, the transfer configuration will be associated with the\ngaia id of the authorizing user.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", + "type": "string" + }, + "updateMask": { + "description": "Required list of fields to be updated in this request.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.transferConfigs.patch" + }, + "delete": { + "description": "Deletes a data transfer configuration,\nincluding any associated transfer runs and logs.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", + "location": "path", + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}", + "id": "bigquerydatatransfer.projects.transferConfigs.delete", + "path": "v1/{+name}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListTransferConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Pagination token, which can be used to request a specific page\nof `ListTransfersRequest` list results. For multiple-page\nresults, `ListTransfersResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results." + }, + "pageSize": { + "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "The BigQuery project id for which data sources\nshould be returned: `projects/{project_id}`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "dataSourceIds": { + "repeated": true, + "location": "query", + "description": "When specified, only configurations of requested data sources are returned.", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs", + "id": "bigquerydatatransfer.projects.transferConfigs.list", + "path": "v1/{+parent}/transferConfigs", + "description": "Returns information about all data transfers in the project." + }, + "create": { + "path": "v1/{+parent}/transferConfigs", + "id": "bigquerydatatransfer.projects.transferConfigs.create", + "description": "Creates a new data transfer configuration.", + "request": { + "$ref": "TransferConfig" + }, + "response": { + "$ref": "TransferConfig" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "authorizationCode": { + "type": "string", + "location": "query", + "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nThis is required if new credentials are needed, as indicated by\n`CheckValidCreds`.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application." + }, + "parent": { + "description": "The BigQuery project id where the transfer configuration should be created.\nMust be in the format /projects/{project_id}/locations/{location_id}\nor\n/projects/{project_id}/locations/-\nIn case when '-' is specified as location_id, location is infered from\nthe destination dataset region.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs" + }, + "scheduleRuns": { + "response": { + "$ref": "ScheduleTransferRunsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "location": "path", + "description": "Transfer configuration name in the form:\n`projects/{project_id}/transferConfigs/{config_id}`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns", + "path": "v1/{+parent}:scheduleRuns", + "id": "bigquerydatatransfer.projects.transferConfigs.scheduleRuns", + "request": { + "$ref": "ScheduleTransferRunsRequest" + }, + "description": "Creates transfer runs for a time range [range_start_time, range_end_time].\nFor each date - or whatever granularity the data source supports - in the\nrange, one transfer run is created.\nNote that runs are created per UTC time in the time range." } }, "resources": { - "transferConfigs": { - "resources": { - "runs": { - "methods": { - "list": { - "response": { - "$ref": "ListTransferRunsResponse" - }, - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "pageSize": { - "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results.", - "type": "integer", - "location": "query" - }, - "states": { - "description": "When specified, only transfer runs with requested states are returned.", - "type": "string", - "repeated": true, - "location": "query", - "enum": [ - "TRANSFER_STATE_UNSPECIFIED", - "INACTIVE", - "PENDING", - "RUNNING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ] - }, - "runAttempt": { - "enum": [ - "RUN_ATTEMPT_UNSPECIFIED", - "LATEST" - ], - "description": "Indicates how run attempts are to be pulled.", - "type": "string", - "location": "query" - }, - "parent": { - "description": "Name of transfer configuration for which transfer runs should be retrieved.\nFormat of transfer configuration resource name is:\n`projects/{project_id}/transferConfigs/{config_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "Pagination token, which can be used to request a specific page\nof `ListTransferRunsRequest` list results. For multiple-page\nresults, `ListTransferRunsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", - "type": "string" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.list", - "path": "v1/{+parent}/runs", - "description": "Returns information about running and completed jobs." - }, - "get": { - "description": "Returns information about the particular transfer run.", - "response": { - "$ref": "TransferRun" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", - "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.get", - "path": "v1/{+name}" - }, - "delete": { - "description": "Deletes the specified transfer run.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$", - "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.delete", - "path": "v1/{+name}" - } - }, - "resources": { - "transferLogs": { - "methods": { - "list": { - "parameters": { - "pageToken": { - "location": "query", - "description": "Pagination token, which can be used to request a specific page\nof `ListTransferLogsRequest` list results. For multiple-page\nresults, `ListTransferLogsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", - "type": "string" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results." - }, - "messageTypes": { - "enum": [ - "MESSAGE_SEVERITY_UNSPECIFIED", - "INFO", - "WARNING", - "ERROR" - ], - "description": "Message types to return. If not populated - INFO, WARNING and ERROR\nmessages are returned.", - "type": "string", - "repeated": true, - "location": "query" - }, - "parent": { - "location": "path", - "description": "Transfer run name in the form:\n`projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list", - "path": "v1/{+parent}/transferLogs", - "description": "Returns user facing log messages for the data transfer run.", - "response": { - "$ref": "ListTransferLogsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET" - } - } - } - } - } - }, + "runs": { "methods": { - "get": { - "response": { - "$ref": "TransferConfig" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", - "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.get", - "path": "v1/{+name}", - "description": "Returns information about a data transfer config." - }, - "patch": { - "path": "v1/{+name}", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.patch", - "request": { - "$ref": "TransferConfig" - }, - "description": "Updates a data transfer configuration.\nAll fields must be set, even if they are not updated.", - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "TransferConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required list of fields to be updated in this request.", - "type": "string" - }, - "name": { - "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", - "location": "path" - }, - "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nIf it is provided, the transfer configuration will be associated with the\ngaia id of the authorizing user.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}" - }, "delete": { - "description": "Deletes a data transfer configuration,\nincluding any associated transfer runs and logs.", "response": { "$ref": "Empty" }, @@ -817,221 +900,161 @@ ], "parameters": { "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}`", + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", + "required": true, "type": "string", - "required": true + "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$" } }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.delete", - "path": "v1/{+name}" + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.transferConfigs.runs.delete", + "description": "Deletes the specified transfer run." + }, + "get": { + "response": { + "$ref": "TransferRun" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "name": { + "location": "path", + "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}", + "path": "v1/{+name}", + "id": "bigquerydatatransfer.projects.transferConfigs.runs.get", + "description": "Returns information about the particular transfer run." }, "list": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs", - "path": "v1/{+parent}/transferConfigs", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.list", - "description": "Returns information about all data transfers in the project.", - "httpMethod": "GET", "response": { - "$ref": "ListTransferConfigsResponse" + "$ref": "ListTransferRunsResponse" }, "parameterOrder": [ "parent" ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { - "dataSourceIds": { - "type": "string", - "repeated": true, - "location": "query", - "description": "When specified, only configurations of requested data sources are returned." - }, - "parent": { - "description": "The BigQuery project id for which data sources\nshould be returned: `projects/{project_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - }, "pageToken": { "location": "query", - "description": "Pagination token, which can be used to request a specific page\nof `ListTransfersRequest` list results. For multiple-page\nresults, `ListTransfersResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "description": "Pagination token, which can be used to request a specific page\nof `ListTransferRunsRequest` list results. For multiple-page\nresults, `ListTransferRunsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "type": "string" + }, + "states": { + "repeated": true, + "location": "query", + "enum": [ + "TRANSFER_STATE_UNSPECIFIED", + "INACTIVE", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "description": "When specified, only transfer runs with requested states are returned.", "type": "string" }, "pageSize": { - "location": "query", - "format": "int32", "description": "Page size. The default page size is the maximum value of 1000 results.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "create": { - "id": "bigquerydatatransfer.projects.locations.transferConfigs.create", - "path": "v1/{+parent}/transferConfigs", - "description": "Creates a new data transfer configuration.", - "request": { - "$ref": "TransferConfig" - }, - "response": { - "$ref": "TransferConfig" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration.\nThis is required if new credentials are needed, as indicated by\n`CheckValidCreds`.\nIn order to obtain authorization_code, please make a\nrequest to\nhttps://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=\u003cdatatransferapiclientid\u003e&scope=\u003cdata_source_scopes\u003e&redirect_uri=\u003credirect_uri\u003e\n\n* client_id should be OAuth client_id of BigQuery DTS API for the given\n data source returned by ListDataSources method.\n* data_source_scopes are the scopes returned by ListDataSources method.\n* redirect_uri is an optional parameter. If not specified, then\n authorization code is posted to the opener of authorization flow window.\n Otherwise it will be sent to the redirect uri. A special value of\n urn:ietf:wg:oauth:2.0:oob means that authorization code should be\n returned in the title bar of the browser, with the page text prompting\n the user to copy the code and paste it in the application.", - "type": "string", - "location": "query" - }, - "parent": { - "description": "The BigQuery project id where the transfer configuration should be created.\nMust be in the format /projects/{project_id}/locations/{location_id}\nor\n/projects/{project_id}/locations/-\nIn case when '-' is specified as location_id, location is infered from\nthe destination dataset region.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs" - }, - "scheduleRuns": { - "description": "Creates transfer runs for a time range [range_start_time, range_end_time].\nFor each date - or whatever granularity the data source supports - in the\nrange, one transfer run is created.\nNote that runs are created per UTC time in the time range.", - "request": { - "$ref": "ScheduleTransferRunsRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "ScheduleTransferRunsResponse" - }, - "parameters": { - "parent": { - "location": "path", - "description": "Transfer configuration name in the form:\n`projects/{project_id}/transferConfigs/{config_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns", - "path": "v1/{+parent}:scheduleRuns", - "id": "bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns" - } - } - }, - "dataSources": { - "methods": { - "list": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources", - "path": "v1/{+parent}/dataSources", - "id": "bigquerydatatransfer.projects.locations.dataSources.list", - "description": "Lists supported data sources and returns their settings,\nwhich can be used for UI rendering.", - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "ListDataSourcesResponse" - }, - "parameters": { - "pageToken": { - "description": "Pagination token, which can be used to request a specific page\nof `ListDataSourcesRequest` list results. For multiple-page\nresults, `ListDataSourcesResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", - "type": "string", - "location": "query" - }, - "pageSize": { "format": "int32", - "description": "Page size. The default page size is the maximum value of 1000 results.", "type": "integer", "location": "query" }, + "runAttempt": { + "location": "query", + "enum": [ + "RUN_ATTEMPT_UNSPECIFIED", + "LATEST" + ], + "description": "Indicates how run attempts are to be pulled.", + "type": "string" + }, "parent": { - "description": "The BigQuery project id for which data sources should be returned.\nMust be in the form: `projects/{project_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "get": { - "description": "Retrieves a supported data source and returns its settings,\nwhich can be used for UI rendering.", - "response": { - "$ref": "DataSource" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$", "location": "path", - "description": "The field will contain name of the resource requested, for example:\n`projects/{project_id}/dataSources/{data_source_id}`", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}", - "id": "bigquerydatatransfer.projects.locations.dataSources.get", - "path": "v1/{+name}" - }, - "checkValidCreds": { - "response": { - "$ref": "CheckValidCredsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "The data source in the form:\n`projects/{project_id}/dataSources/{data_source_id}`", - "type": "string", + "description": "Name of transfer configuration for which transfer runs should be retrieved.\nFormat of transfer configuration resource name is:\n`projects/{project_id}/transferConfigs/{config_id}`.", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+$" } }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds", - "id": "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds", - "path": "v1/{+name}:checkValidCreds", - "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config.", - "request": { - "$ref": "CheckValidCredsRequest" + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs", + "path": "v1/{+parent}/runs", + "id": "bigquerydatatransfer.projects.transferConfigs.runs.list", + "description": "Returns information about running and completed jobs." + } + }, + "resources": { + "transferLogs": { + "methods": { + "list": { + "description": "Returns user facing log messages for the data transfer run.", + "response": { + "$ref": "ListTransferLogsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageSize": { + "location": "query", + "description": "Page size. The default page size is the maximum value of 1000 results.", + "format": "int32", + "type": "integer" + }, + "messageTypes": { + "location": "query", + "enum": [ + "MESSAGE_SEVERITY_UNSPECIFIED", + "INFO", + "WARNING", + "ERROR" + ], + "description": "Message types to return. If not populated - INFO, WARNING and ERROR\nmessages are returned.", + "type": "string", + "repeated": true + }, + "parent": { + "location": "path", + "description": "Transfer run name in the form:\n`projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$" + }, + "pageToken": { + "location": "query", + "description": "Pagination token, which can be used to request a specific page\nof `ListTransferLogsRequest` list results. For multiple-page\nresults, `ListTransferLogsResponse` outputs\na `next_page` token, which can be used as the\n`page_token` value to request the next page of list results.", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs", + "path": "v1/{+parent}/transferLogs", + "id": "bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list" + } } } } @@ -1042,11 +1065,70 @@ } }, "parameters": { + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, "pp": { "location": "query", "description": "Pretty-print response.", - "default": "true", - "type": "boolean" + "type": "boolean", + "default": "true" }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", @@ -1064,68 +1146,9 @@ "location": "query" }, "prettyPrint": { - "default": "true", + "description": "Returns response with indentations and line breaks.", "type": "boolean", - "location": "query", - "description": "Returns response with indentations and line breaks." - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, - "callback": { - "type": "string", - "location": "query", - "description": "JSONP" - }, - "$.xgafv": { - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ] - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "key": { - "type": "string", - "location": "query", - "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." - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", + "default": "true", "location": "query" } }, @@ -1135,60 +1158,315 @@ "description": "Transfers data from partner SaaS applications to Google BigQuery on a scheduled, managed basis.", "kind": "discovery#restDescription", "basePath": "", - "revision": "20170927", - "id": "bigquerydatatransfer:v1", + "revision": "20171016", "documentationLink": "https://cloud.google.com/bigquery/", + "id": "bigquerydatatransfer:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { + "DataSource": { + "description": "Represents data source metadata. Metadata is sufficient to\nrender UI and request proper OAuth tokens.", + "type": "object", + "properties": { + "parameters": { + "description": "Data source parameters.", + "type": "array", + "items": { + "$ref": "DataSourceParameter" + } + }, + "helpUrl": { + "description": "Url for the help document for this data source.", + "type": "string" + }, + "defaultSchedule": { + "description": "Default data transfer schedule.\nExamples of valid schedules include:\n`1st,3rd monday of month 15:30`,\n`every wed,fri of jan,jun 13:15`, and\n`first sunday of quarter 00:00`.", + "type": "string" + }, + "supportsMultipleTransfers": { + "description": "Indicates whether the data source supports multiple transfers\nto different BigQuery targets.", + "type": "boolean" + }, + "manualRunsDisabled": { + "description": "Disables backfilling and manual run scheduling\nfor the data source.", + "type": "boolean" + }, + "defaultDataRefreshWindowDays": { + "description": "Default data refresh window on days.\nOnly meaningful when `data_refresh_type` = `SLIDING_WINDOW`.", + "format": "int32", + "type": "integer" + }, + "transferType": { + "enumDescriptions": [ + "Invalid or Unknown transfer type placeholder.", + "Batch data transfer.", + "Streaming data transfer. Streaming data source currently doesn't\nsupport multiple transfer configs per project." + ], + "enum": [ + "TRANSFER_TYPE_UNSPECIFIED", + "BATCH", + "STREAMING" + ], + "description": "Transfer type. Currently supports only batch transfers,\nwhich are transfers that use the BigQuery batch APIs (load or\nquery) to ingest the data.", + "type": "string" + }, + "description": { + "type": "string", + "description": "User friendly data source description string." + }, + "dataSourceId": { + "description": "Data source id.", + "type": "string" + }, + "scopes": { + "description": "Api auth scopes for which refresh token needs to be obtained. Only valid\nwhen `client_id` is specified. Ignored otherwise. These are scopes needed\nby a data source to prepare data and ingest them into BigQuery,\ne.g., https://www.googleapis.com/auth/bigquery", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Data source resource name." + }, + "minimumScheduleInterval": { + "description": "The minimum interval between two consecutive scheduled runs.", + "format": "google-duration", + "type": "string" + }, + "clientId": { + "description": "Data source client id which should be used to receive refresh token.\nWhen not supplied, no offline credentials are populated for data transfer.", + "type": "string" + }, + "authorizationType": { + "type": "string", + "enumDescriptions": [ + "Type unspecified.", + "Use OAuth 2 authorization codes that can be exchanged\nfor a refresh token on the backend.", + "Return an authorization code for a given Google+ page that can then be\nexchanged for a refresh token on the backend." + ], + "enum": [ + "AUTHORIZATION_TYPE_UNSPECIFIED", + "AUTHORIZATION_CODE", + "GOOGLE_PLUS_AUTHORIZATION_CODE" + ], + "description": "Indicates the type of authorization." + }, + "supportsCustomSchedule": { + "type": "boolean", + "description": "Specifies whether the data source supports a user defined schedule, or\noperates on the default schedule.\nWhen set to `true`, user can override default schedule." + }, + "displayName": { + "type": "string", + "description": "User friendly data source name." + }, + "updateDeadlineSeconds": { + "description": "The number of seconds to wait for an update from the data source\nbefore BigQuery marks the transfer as failed.", + "format": "int32", + "type": "integer" + }, + "dataRefreshType": { + "type": "string", + "enumDescriptions": [ + "The data source won't support data auto refresh, which is default value.", + "The data source supports data auto refresh, and runs will be scheduled\nfor the past few days. Does not allow custom values to be set for each\ntransfer config.", + "The data source supports data auto refresh, and runs will be scheduled\nfor the past few days. Allows custom values to be set for each transfer\nconfig." + ], + "enum": [ + "DATA_REFRESH_TYPE_UNSPECIFIED", + "SLIDING_WINDOW", + "CUSTOM_SLIDING_WINDOW" + ], + "description": "Specifies whether the data source supports automatic data refresh for the\npast few days, and how it's supported.\nFor some data sources, data might not be complete until a few days later,\nso it's useful to refresh data automatically." + } + }, + "id": "DataSource" + }, + "ScheduleTransferRunsRequest": { + "description": "A request to schedule transfer runs for a time range.", + "type": "object", + "properties": { + "endTime": { + "description": "End time of the range of transfer runs. For example,\n`\"2017-05-30T00:00:00+00:00\"`.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start time of the range of transfer runs. For example,\n`\"2017-05-25T00:00:00+00:00\"`.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "ScheduleTransferRunsRequest" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`" + }, + "locationId": { + "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "type": "string" + }, + "metadata": { + "description": "Service-specific metadata. For example the available capacity at the given\nlocation.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + } + }, + "id": "Location" + }, + "TransferConfig": { + "description": "Represents a data transfer configuration. A transfer configuration\ncontains all metadata needed to perform a data transfer. For example,\n`destination_dataset_id` specifies where data should be stored.\nWhen a new transfer configuration is created, the specified\n`destination_dataset_id` is created when needed and shared with the\nappropriate data source service account.", + "type": "object", + "properties": { + "state": { + "type": "string", + "enumDescriptions": [ + "State placeholder.", + "Data transfer is inactive.", + "Data transfer is scheduled and is waiting to be picked up by\ndata transfer backend.", + "Data transfer is in progress.", + "Data transfer completed successsfully.", + "Data transfer failed.", + "Data transfer is cancelled." + ], + "enum": [ + "TRANSFER_STATE_UNSPECIFIED", + "INACTIVE", + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "description": "Output only. State of the most recently updated transfer run." + }, + "name": { + "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.", + "type": "string" + }, + "destinationDatasetId": { + "description": "The BigQuery target dataset id.", + "type": "string" + }, + "userId": { + "description": "Output only. Unique ID of the user on whose behalf transfer is done.\nApplicable only to data sources that do not support service accounts.\nWhen set to 0, the data source service account credentials are used.", + "format": "int64", + "type": "string" + }, + "params": { + "description": "Data transfer specific parameters.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + } + }, + "datasetRegion": { + "description": "Output only. Region in which BigQuery dataset is located.", + "type": "string" + }, + "displayName": { + "description": "User specified display name for the data transfer.", + "type": "string" + }, + "nextRunTime": { + "description": "Output only. Next time when data transfer will run.", + "format": "google-datetime", + "type": "string" + }, + "disabled": { + "description": "Is this config disabled. When set to true, no runs are scheduled\nfor a given transfer.", + "type": "boolean" + }, + "schedule": { + "description": "Data transfer schedule.\nIf the data source does not support a custom schedule, this should be\nempty. If it is empty, the default value for the data source will be\nused.\nThe specified times are in UTC.\nExamples of valid format:\n`1st,3rd monday of month 15:30`,\n`every wed,fri of jan,jun 13:15`, and\n`first sunday of quarter 00:00`.\nSee more explanation about the format here:\nhttps://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format\nNOTE: the granularity should be at least 8 hours, or less frequent.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Data transfer modification time. Ignored by server on input.", + "format": "google-datetime", + "type": "string" + }, + "dataRefreshWindowDays": { + "description": "The number of days to look back to automatically refresh the data.\nFor example, if `data_refresh_window_days = 10`, then every day\nBigQuery reingests data for [today-10, today-1], rather than ingesting data\nfor just [today-1].\nOnly valid if the data source supports the feature. Set the value to 0\nto use the default value.", + "format": "int32", + "type": "integer" + }, + "dataSourceId": { + "description": "Data source id. Cannot be changed once data transfer is created.", + "type": "string" + } + }, + "id": "TransferConfig" + }, "TransferRun": { - "id": "TransferRun", "description": "Represents a data transfer run.", "type": "object", "properties": { "params": { + "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" }, - "description": "Data transfer specific parameters.", - "type": "object" + "description": "Data transfer specific parameters." }, "endTime": { + "description": "Output only. Time when transfer run ended.\nParameter ignored by server for input requests.", "format": "google-datetime", - "description": "Time when transfer run ended. Parameter ignored by server for input\nrequests.\nOutput only.", - "type": "string" - }, - "datasetRegion": { - "description": "Region in which BigQuery dataset is located. Currently possible values are:\n\"US\" and \"EU\".\nOutput only.", "type": "string" }, "startTime": { + "description": "Output only. Time when transfer run was started.\nParameter ignored by server for input requests.", "format": "google-datetime", - "description": "Time when transfer run was started. Parameter ignored by server for input\nrequests.\nOutput only.", + "type": "string" + }, + "datasetRegion": { + "description": "Output only. Region in which BigQuery dataset is located.", "type": "string" }, "scheduleTime": { - "format": "google-datetime", "description": "Minimum time after which a transfer run can be started.", + "format": "google-datetime", "type": "string" }, "updateTime": { + "description": "Output only. Last time the data transfer run state was updated.", "format": "google-datetime", - "description": "Last time the data transfer run state was updated.\nOutput only.", "type": "string" }, "schedule": { - "description": "Describes the schedule of this transfer run if it was created as part of\na regular schedule. For batch transfer runs that are directly created,\nthis is empty.\nNOTE: the system might choose to delay the schedule depending on the\ncurrent load, so `schedule_time` doesn't always matches this.\nOutput only.", + "description": "Output only. Describes the schedule of this transfer run if it was\ncreated as part of a regular schedule. For batch transfer runs that are\nscheduled manually, this is empty.\nNOTE: the system might choose to delay the schedule depending on the\ncurrent load, so `schedule_time` doesn't always matches this.", "type": "string" }, "runTime": { - "format": "google-datetime", + "type": "string", "description": "For batch transfer runs, specifies the date and time that\ndata should be ingested.", - "type": "string" + "format": "google-datetime" }, "dataSourceId": { - "description": "Data source id.\nOutput only.", + "description": "Output only. Data source id.", "type": "string" }, "state": { @@ -1210,29 +1488,30 @@ "FAILED", "CANCELLED" ], - "description": "Data transfer run state. Ignored for input requests.\nOutput only.", + "description": "Output only. Data transfer run state. Ignored for input requests.", "type": "string" }, - "userId": { - "format": "int64", - "description": "Unique ID of the user on whose behalf transfer is done. Applicable only\nto data sources that do not support service accounts. When set to 0,\nthe data source service account credentials are used.\nOutput only.", + "destinationDatasetId": { + "description": "The BigQuery target dataset id.", "type": "string" }, "name": { "description": "The resource name of the transfer run.\nTransfer run names have the form\n`projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`.\nThe name is ignored when creating a transfer run.", "type": "string" }, - "destinationDatasetId": { - "description": "The BigQuery target dataset id.", + "userId": { + "description": "Output only. Unique ID of the user on whose behalf transfer is done.\nApplicable only to data sources that do not support service accounts.\nWhen set to 0, the data source service account credentials are used.", + "format": "int64", "type": "string" } - } + }, + "id": "TransferRun" }, "CheckValidCredsRequest": { + "id": "CheckValidCredsRequest", "description": "A request to determine whether the user has valid credentials. This method\nis used to limit the number of OAuth popups in the user interface. The\nuser id is inferred from the API call context.\nIf the data source has the Google+ authorization type, this method\nreturns false, as it cannot be determined whether the credentials are\nalready valid merely based on the user id.", "type": "object", - "properties": {}, - "id": "CheckValidCredsRequest" + "properties": {} }, "CheckValidCredsResponse": { "description": "A response indicating whether the credentials exist and are valid.", @@ -1246,43 +1525,45 @@ "id": "CheckValidCredsResponse" }, "ScheduleTransferRunsResponse": { - "description": "A response to schedule transfer runs for a time range.", "type": "object", "properties": { "runs": { "description": "The transfer runs that were scheduled.", + "type": "array", "items": { "$ref": "TransferRun" - }, - "type": "array" + } } }, - "id": "ScheduleTransferRunsResponse" + "id": "ScheduleTransferRunsResponse", + "description": "A response to schedule transfer runs for a time range." }, "ListTransferLogsResponse": { + "description": "The returned list transfer run messages.", "type": "object", "properties": { + "nextPageToken": { + "description": "Output only. The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`GetTransferRunLogRequest.page_token`\nto request the next page of list results.", + "type": "string" + }, "transferMessages": { - "description": "The stored pipeline transfer messages.\nOutput only.", + "description": "Output only. The stored pipeline transfer messages.", + "type": "array", "items": { "$ref": "TransferMessage" - }, - "type": "array" - }, - "nextPageToken": { - "description": "The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`GetTransferRunLogRequest.page_token`\nto request the next page of list results.\nOutput only.", - "type": "string" + } } }, - "id": "ListTransferLogsResponse", - "description": "The returned list transfer run messages." + "id": "ListTransferLogsResponse" }, "TransferMessage": { + "id": "TransferMessage", "description": "Represents a user facing message for a particular data transfer run.", "type": "object", "properties": { - "messageText": { - "description": "Message text.", + "messageTime": { + "description": "Time when message was logged.", + "format": "google-datetime", "type": "string" }, "severity": { @@ -1301,31 +1582,29 @@ "description": "Message severity.", "type": "string" }, - "messageTime": { - "format": "google-datetime", - "description": "Time when message was logged.", + "messageText": { + "description": "Message text.", "type": "string" } - }, - "id": "TransferMessage" + } }, "ListDataSourcesResponse": { - "description": "Returns list of supported data sources and their metadata.", "type": "object", "properties": { "dataSources": { "description": "List of supported data sources and their transfer settings.", + "type": "array", "items": { "$ref": "DataSource" - }, - "type": "array" + } }, "nextPageToken": { - "description": "The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListDataSourcesRequest.page_token`\nto request the next page of list results.\nOutput only.", + "description": "Output only. The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListDataSourcesRequest.page_token`\nto request the next page of list results.", "type": "string" } }, - "id": "ListDataSourcesResponse" + "id": "ListDataSourcesResponse", + "description": "Returns list of supported data sources and their metadata." }, "DataSourceParameter": { "description": "Represents a data source parameter with validation rules, so that\nparameters can be rendered in the UI. These parameters are given to us by\nsupported data sources, and include all needed information for rendering\nand validation.\nThus, whoever uses this api can decide to generate either generic ui,\nor custom data source specific forms.", @@ -1333,15 +1612,15 @@ "properties": { "fields": { "description": "When parameter is a record, describes child fields.", + "type": "array", "items": { "$ref": "DataSourceParameter" - }, - "type": "array" + } }, "maxValue": { - "type": "number", + "description": "For integer and double values specifies maxminum allowed value.", "format": "double", - "description": "For integer and double values specifies maxminum allowed value." + "type": "number" }, "type": { "enumDescriptions": [ @@ -1375,14 +1654,14 @@ }, "allowedValues": { "description": "All possible values for the parameter.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "minValue": { - "format": "double", "description": "For integer and double values specifies minimum allowed value.", + "format": "double", "type": "number" }, "validationHelpUrl": { @@ -1398,8 +1677,8 @@ "type": "string" }, "required": { - "type": "boolean", - "description": "Is parameter required." + "description": "Is parameter required.", + "type": "boolean" }, "repeated": { "description": "Can parameter have multiple values.", @@ -1409,13 +1688,13 @@ "description": "Parameter display name in the user interface.", "type": "string" }, + "immutable": { + "description": "Cannot be changed after initial creation.", + "type": "boolean" + }, "validationDescription": { "description": "Description of the requirements for this field, in case the user input does\nnot fulfill the regex pattern or min/max values.", "type": "string" - }, - "immutable": { - "type": "boolean", - "description": "Cannot be changed after initial creation." } }, "id": "DataSourceParameter" @@ -1425,338 +1704,59 @@ "type": "object", "properties": { "transferRuns": { - "description": "The stored pipeline transfer runs.\nOutput only.", + "description": "Output only. The stored pipeline transfer runs.", + "type": "array", "items": { "$ref": "TransferRun" - }, - "type": "array" + } }, "nextPageToken": { - "description": "The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListTransferRunsRequest.page_token`\nto request the next page of list results.\nOutput only.", + "description": "Output only. The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListTransferRunsRequest.page_token`\nto request the next page of list results.", "type": "string" } }, "id": "ListTransferRunsResponse" }, "ListLocationsResponse": { + "id": "ListLocationsResponse", + "description": "The response message for Locations.ListLocations.", + "type": "object", "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" + }, + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Location" + } } - }, - "id": "ListLocationsResponse", - "description": "The response message for Locations.ListLocations.", - "type": "object" + } }, "ListTransferConfigsResponse": { - "description": "The returned list of pipelines in the project.", - "type": "object", "properties": { "transferConfigs": { - "description": "The stored pipeline transfer configurations.\nOutput only.", + "description": "Output only. The stored pipeline transfer configurations.", + "type": "array", "items": { "$ref": "TransferConfig" - }, - "type": "array" + } }, "nextPageToken": { "type": "string", - "description": "The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListTransferConfigsRequest.page_token`\nto request the next page of list results.\nOutput only." + "description": "Output only. The next-pagination token. For multiple-page list results,\nthis token can be used as the\n`ListTransferConfigsRequest.page_token`\nto request the next page of list results." } }, - "id": "ListTransferConfigsResponse" - }, - "DataSource": { - "id": "DataSource", - "description": "Represents data source metadata. Metadata is sufficient to\nrender UI and request proper OAuth tokens.", - "type": "object", - "properties": { - "dataSourceId": { - "description": "Data source id.", - "type": "string" - }, - "scopes": { - "description": "Api auth scopes for which refresh token needs to be obtained. Only valid\nwhen `client_id` is specified. Ignored otherwise. These are scopes needed\nby a data source to prepare data and ingest them into BigQuery,\ne.g., https://www.googleapis.com/auth/bigquery", - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Data source resource name.", - "type": "string" - }, - "minimumScheduleInterval": { - "format": "google-duration", - "description": "The minimum interval between two consecutive scheduled runs.", - "type": "string" - }, - "clientId": { - "description": "Data source client id which should be used to receive refresh token.\nWhen not supplied, no offline credentials are populated for data transfer.", - "type": "string" - }, - "authorizationType": { - "description": "Indicates the type of authorization.", - "type": "string", - "enumDescriptions": [ - "Type unspecified.", - "Use OAuth 2 authorization codes that can be exchanged\nfor a refresh token on the backend.", - "Return an authorization code for a given Google+ page that can then be\nexchanged for a refresh token on the backend." - ], - "enum": [ - "AUTHORIZATION_TYPE_UNSPECIFIED", - "AUTHORIZATION_CODE", - "GOOGLE_PLUS_AUTHORIZATION_CODE" - ] - }, - "supportsCustomSchedule": { - "description": "Specifies whether the data source supports a user defined schedule, or\noperates on the default schedule.\nWhen set to `true`, user can override default schedule.", - "type": "boolean" - }, - "displayName": { - "description": "User friendly data source name.", - "type": "string" - }, - "updateDeadlineSeconds": { - "format": "int32", - "description": "The number of seconds to wait for an update from the data source\nbefore BigQuery marks the transfer as failed.", - "type": "integer" - }, - "dataRefreshType": { - "enumDescriptions": [ - "The data source won't support data auto refresh, which is default value.", - "The data source supports data auto refresh, and runs will be scheduled\nfor the past few days. Does not allow custom values to be set for each\ntransfer config.", - "The data source supports data auto refresh, and runs will be scheduled\nfor the past few days. Allows custom values to be set for each transfer\nconfig." - ], - "enum": [ - "DATA_REFRESH_TYPE_UNSPECIFIED", - "SLIDING_WINDOW", - "CUSTOM_SLIDING_WINDOW" - ], - "description": "Specifies whether the data source supports automatic data refresh for the\npast few days, and how it's supported.\nFor some data sources, data might not be complete until a few days later,\nso it's useful to refresh data automatically.", - "type": "string" - }, - "parameters": { - "description": "Data source parameters.", - "items": { - "$ref": "DataSourceParameter" - }, - "type": "array" - }, - "helpUrl": { - "description": "Url for the help document for this data source.", - "type": "string" - }, - "defaultSchedule": { - "description": "Default data transfer schedule.\nExamples of valid schedules include:\n`1st,3rd monday of month 15:30`,\n`every wed,fri of jan,jun 13:15`, and\n`first sunday of quarter 00:00`.", - "type": "string" - }, - "supportsMultipleTransfers": { - "description": "Indicates whether the data source supports multiple transfers\nto different BigQuery targets.", - "type": "boolean" - }, - "defaultDataRefreshWindowDays": { - "format": "int32", - "description": "Default data refresh window on days.\nOnly meaningful when `data_refresh_type` = `SLIDING_WINDOW`.", - "type": "integer" - }, - "manualRunsDisabled": { - "description": "Disables backfilling and manual run scheduling\nfor the data source.", - "type": "boolean" - }, - "transferType": { - "type": "string", - "enumDescriptions": [ - "Invalid or Unknown transfer type placeholder.", - "Batch data transfer.", - "Streaming data transfer. Streaming data source currently doesn't\nsupport multiple transfer configs per project." - ], - "enum": [ - "TRANSFER_TYPE_UNSPECIFIED", - "BATCH", - "STREAMING" - ], - "description": "Transfer type. Currently supports only batch transfers,\nwhich are transfers that use the BigQuery batch APIs (load or\nquery) to ingest the data." - }, - "description": { - "description": "User friendly data source description string.", - "type": "string" - } - } - }, - "ScheduleTransferRunsRequest": { - "description": "A request to schedule transfer runs for a time range.", - "type": "object", - "properties": { - "endTime": { - "format": "google-datetime", - "description": "End time of the range of transfer runs. For example,\n`\"2017-05-30T00:00:00+00:00\"`.", - "type": "string" - }, - "startTime": { - "type": "string", - "format": "google-datetime", - "description": "Start time of the range of transfer runs. For example,\n`\"2017-05-25T00:00:00+00:00\"`." - } - }, - "id": "ScheduleTransferRunsRequest" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "Location": { - "description": "A resource that represents Google Cloud Platform location.", - "type": "object", - "properties": { - "name": { - "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", - "type": "string" - }, - "locationId": { - "type": "string", - "description": "The canonical id for this location. For example: `\"us-east1\"`." - }, - "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\nlocation.", - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object" - } - }, - "id": "Location" - }, - "TransferConfig": { - "id": "TransferConfig", - "description": "Represents a data transfer configuration. A transfer configuration\ncontains all metadata needed to perform a data transfer. For example,\n`destination_dataset_id` specifies where data should be stored.\nWhen a new transfer configuration is created, the specified\n`destination_dataset_id` is created when needed and shared with the\nappropriate data source service account.", - "type": "object", - "properties": { - "params": { - "additionalProperties": { - "type": "any", - "description": "Properties of the object." - }, - "description": "Data transfer specific parameters.", - "type": "object" - }, - "datasetRegion": { - "description": "Region in which BigQuery dataset is located. Currently possible values are:\n\"US\" and \"EU\".\nOutput only.", - "type": "string" - }, - "displayName": { - "description": "User specified display name for the data transfer.", - "type": "string" - }, - "disabled": { - "description": "Is this config disabled. When set to true, no runs are scheduled\nfor a given transfer.", - "type": "boolean" - }, - "nextRunTime": { - "format": "google-datetime", - "description": "Next time when data transfer will run.\nOutput only.", - "type": "string" - }, - "schedule": { - "description": "Data transfer schedule.\nIf the data source does not support a custom schedule, this should be\nempty. If it is empty, the default value for the data source will be\nused.\nThe specified times are in UTC.\nExamples of valid format:\n`1st,3rd monday of month 15:30`,\n`every wed,fri of jan,jun 13:15`, and\n`first sunday of quarter 00:00`.\nSee more explanation about the format here:\nhttps://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format\nNOTE: the granularity should be at least 8 hours, or less frequent.", - "type": "string" - }, - "updateTime": { - "type": "string", - "format": "google-datetime", - "description": "Data transfer modification time. Ignored by server on input.\nOutput only." - }, - "dataRefreshWindowDays": { - "format": "int32", - "description": "The number of days to look back to automatically refresh the data.\nFor example, if `data_refresh_window_days = 10`, then every day\nBigQuery reingests data for [today-10, today-1], rather than ingesting data\nfor just [today-1].\nOnly valid if the data source supports the feature. Set the value to 0\nto use the default value.", - "type": "integer" - }, - "dataSourceId": { - "description": "Data source id. Cannot be changed once data transfer is created.", - "type": "string" - }, - "state": { - "enumDescriptions": [ - "State placeholder.", - "Data transfer is inactive.", - "Data transfer is scheduled and is waiting to be picked up by\ndata transfer backend.", - "Data transfer is in progress.", - "Data transfer completed successsfully.", - "Data transfer failed.", - "Data transfer is cancelled." - ], - "enum": [ - "TRANSFER_STATE_UNSPECIFIED", - "INACTIVE", - "PENDING", - "RUNNING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ], - "description": "State of the most recently updated transfer run.\nOutput only.", - "type": "string" - }, - "userId": { - "format": "int64", - "description": "Unique ID of the user on whose behalf transfer is done. Applicable only\nto data sources that do not support service accounts. When set to 0,\nthe data source service account credentials are used.\nOutput only.", - "type": "string" - }, - "destinationDatasetId": { - "description": "The BigQuery target dataset id.", - "type": "string" - }, - "name": { - "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.", - "type": "string" - } - } + "id": "ListTransferConfigsResponse", + "description": "The returned list of pipelines in the project.", + "type": "object" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, - "canonicalName": "BigQuery Data Transfer", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/bigquery": { - "description": "View and manage your data in Google BigQuery" - }, - "https://www.googleapis.com/auth/cloud-platform.read-only": { - "description": "View your data across Google Cloud Platform services" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "rootUrl": "https://bigquerydatatransfer.googleapis.com/", - "ownerDomain": "google.com", - "name": "bigquerydatatransfer", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "BigQuery Data Transfer API", - "ownerName": "Google" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + } } diff --git a/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go b/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go index ec153414b..892140cb8 100644 --- a/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go +++ b/vendor/google.golang.org/api/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go @@ -531,12 +531,11 @@ type ListDataSourcesResponse struct { // settings. DataSources []*DataSource `json:"dataSources,omitempty"` - // NextPageToken: The next-pagination token. For multiple-page list - // results, + // NextPageToken: Output only. The next-pagination token. For + // multiple-page list results, // this token can be used as the // `ListDataSourcesRequest.page_token` // to request the next page of list results. - // Output only. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -606,17 +605,16 @@ func (s *ListLocationsResponse) MarshalJSON() ([]byte, error) { // ListTransferConfigsResponse: The returned list of pipelines in the // project. type ListTransferConfigsResponse struct { - // NextPageToken: The next-pagination token. For multiple-page list - // results, + // NextPageToken: Output only. The next-pagination token. For + // multiple-page list results, // this token can be used as // the // `ListTransferConfigsRequest.page_token` // to request the next page of list results. - // Output only. NextPageToken string `json:"nextPageToken,omitempty"` - // TransferConfigs: The stored pipeline transfer configurations. - // Output only. + // TransferConfigs: Output only. The stored pipeline transfer + // configurations. TransferConfigs []*TransferConfig `json:"transferConfigs,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -648,17 +646,15 @@ func (s *ListTransferConfigsResponse) MarshalJSON() ([]byte, error) { // ListTransferLogsResponse: The returned list transfer run messages. type ListTransferLogsResponse struct { - // NextPageToken: The next-pagination token. For multiple-page list - // results, + // NextPageToken: Output only. The next-pagination token. For + // multiple-page list results, // this token can be used as // the // `GetTransferRunLogRequest.page_token` // to request the next page of list results. - // Output only. NextPageToken string `json:"nextPageToken,omitempty"` - // TransferMessages: The stored pipeline transfer messages. - // Output only. + // TransferMessages: Output only. The stored pipeline transfer messages. TransferMessages []*TransferMessage `json:"transferMessages,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -691,16 +687,14 @@ func (s *ListTransferLogsResponse) MarshalJSON() ([]byte, error) { // ListTransferRunsResponse: The returned list of pipelines in the // project. type ListTransferRunsResponse struct { - // NextPageToken: The next-pagination token. For multiple-page list - // results, + // NextPageToken: Output only. The next-pagination token. For + // multiple-page list results, // this token can be used as the // `ListTransferRunsRequest.page_token` // to request the next page of list results. - // Output only. NextPageToken string `json:"nextPageToken,omitempty"` - // TransferRuns: The stored pipeline transfer runs. - // Output only. + // TransferRuns: Output only. The stored pipeline transfer runs. TransferRuns []*TransferRun `json:"transferRuns,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -874,10 +868,8 @@ type TransferConfig struct { // created. DataSourceId string `json:"dataSourceId,omitempty"` - // DatasetRegion: Region in which BigQuery dataset is located. Currently - // possible values are: - // "US" and "EU". - // Output only. + // DatasetRegion: Output only. Region in which BigQuery dataset is + // located. DatasetRegion string `json:"datasetRegion,omitempty"` // DestinationDatasetId: The BigQuery target dataset id. @@ -901,8 +893,7 @@ type TransferConfig struct { // config. Name string `json:"name,omitempty"` - // NextRunTime: Next time when data transfer will run. - // Output only. + // NextRunTime: Output only. Next time when data transfer will run. NextRunTime string `json:"nextRunTime,omitempty"` // Params: Data transfer specific parameters. @@ -926,8 +917,7 @@ type TransferConfig struct { // NOTE: the granularity should be at least 8 hours, or less frequent. Schedule string `json:"schedule,omitempty"` - // State: State of the most recently updated transfer run. - // Output only. + // State: Output only. State of the most recently updated transfer run. // // Possible values: // "TRANSFER_STATE_UNSPECIFIED" - State placeholder. @@ -941,17 +931,15 @@ type TransferConfig struct { // "CANCELLED" - Data transfer is cancelled. State string `json:"state,omitempty"` - // UpdateTime: Data transfer modification time. Ignored by server on - // input. - // Output only. + // UpdateTime: Output only. Data transfer modification time. Ignored by + // server on input. UpdateTime string `json:"updateTime,omitempty"` - // UserId: Unique ID of the user on whose behalf transfer is done. - // Applicable only - // to data sources that do not support service accounts. When set to - // 0, - // the data source service account credentials are used. - // Output only. + // UserId: Output only. Unique ID of the user on whose behalf transfer + // is done. + // Applicable only to data sources that do not support service + // accounts. + // When set to 0, the data source service account credentials are used. UserId int64 `json:"userId,omitempty,string"` // ServerResponse contains the HTTP response code and headers from the @@ -1026,23 +1014,18 @@ func (s *TransferMessage) MarshalJSON() ([]byte, error) { // TransferRun: Represents a data transfer run. type TransferRun struct { - // DataSourceId: Data source id. - // Output only. + // DataSourceId: Output only. Data source id. DataSourceId string `json:"dataSourceId,omitempty"` - // DatasetRegion: Region in which BigQuery dataset is located. Currently - // possible values are: - // "US" and "EU". - // Output only. + // DatasetRegion: Output only. Region in which BigQuery dataset is + // located. DatasetRegion string `json:"datasetRegion,omitempty"` // DestinationDatasetId: The BigQuery target dataset id. DestinationDatasetId string `json:"destinationDatasetId,omitempty"` - // EndTime: Time when transfer run ended. Parameter ignored by server - // for input - // requests. - // Output only. + // EndTime: Output only. Time when transfer run ended. + // Parameter ignored by server for input requests. EndTime string `json:"endTime,omitempty"` // Name: The resource name of the transfer run. @@ -1061,28 +1044,25 @@ type TransferRun struct { // data should be ingested. RunTime string `json:"runTime,omitempty"` - // Schedule: Describes the schedule of this transfer run if it was - // created as part of - // a regular schedule. For batch transfer runs that are directly - // created, - // this is empty. + // Schedule: Output only. Describes the schedule of this transfer run if + // it was + // created as part of a regular schedule. For batch transfer runs that + // are + // scheduled manually, this is empty. // NOTE: the system might choose to delay the schedule depending on // the // current load, so `schedule_time` doesn't always matches this. - // Output only. Schedule string `json:"schedule,omitempty"` // ScheduleTime: Minimum time after which a transfer run can be started. ScheduleTime string `json:"scheduleTime,omitempty"` - // StartTime: Time when transfer run was started. Parameter ignored by - // server for input - // requests. - // Output only. + // StartTime: Output only. Time when transfer run was started. + // Parameter ignored by server for input requests. StartTime string `json:"startTime,omitempty"` - // State: Data transfer run state. Ignored for input requests. - // Output only. + // State: Output only. Data transfer run state. Ignored for input + // requests. // // Possible values: // "TRANSFER_STATE_UNSPECIFIED" - State placeholder. @@ -1096,16 +1076,15 @@ type TransferRun struct { // "CANCELLED" - Data transfer is cancelled. State string `json:"state,omitempty"` - // UpdateTime: Last time the data transfer run state was updated. - // Output only. + // UpdateTime: Output only. Last time the data transfer run state was + // updated. UpdateTime string `json:"updateTime,omitempty"` - // UserId: Unique ID of the user on whose behalf transfer is done. - // Applicable only - // to data sources that do not support service accounts. When set to - // 0, - // the data source service account credentials are used. - // Output only. + // UserId: Output only. Unique ID of the user on whose behalf transfer + // is done. + // Applicable only to data sources that do not support service + // accounts. + // When set to 0, the data source service account credentials are used. UserId int64 `json:"userId,omitempty,string"` // ServerResponse contains the HTTP response code and headers from the diff --git a/vendor/google.golang.org/api/calendar/v3/calendar-api.json b/vendor/google.golang.org/api/calendar/v3/calendar-api.json index b659f5a74..d649aaae0 100644 --- a/vendor/google.golang.org/api/calendar/v3/calendar-api.json +++ b/vendor/google.golang.org/api/calendar/v3/calendar-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/uAzZjTyNjvCXQxJAVHPs_CfUo-M\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/IR4BQMr8Q3ird-zy2LyAA9diRwI\"", "discoveryVersion": "v1", "id": "calendar:v3", "name": "calendar", "version": "v3", - "revision": "20170905", + "revision": "20171010", "title": "Calendar API", "description": "Manipulates events and other calendar data.", "ownerDomain": "google.com", @@ -1253,6 +1253,11 @@ "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.", "required": true, "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the calendar sharing change. Optional. The default is True.", + "location": "query" } }, "parameterOrder": [ @@ -1331,6 +1336,11 @@ "description": "ACL rule identifier.", "required": true, "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", + "location": "query" } }, "parameterOrder": [ @@ -1364,6 +1374,11 @@ "description": "ACL rule identifier.", "required": true, "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", + "location": "query" } }, "parameterOrder": [ diff --git a/vendor/google.golang.org/api/calendar/v3/calendar-gen.go b/vendor/google.golang.org/api/calendar/v3/calendar-gen.go index b77935f60..4a419af81 100644 --- a/vendor/google.golang.org/api/calendar/v3/calendar-gen.go +++ b/vendor/google.golang.org/api/calendar/v3/calendar-gen.go @@ -2096,6 +2096,14 @@ func (r *AclService) Insert(calendarId string, aclrule *AclRule) *AclInsertCall return c } +// SendNotifications sets the optional parameter "sendNotifications": +// Whether to send notifications about the calendar sharing change. The +// default is True. +func (c *AclInsertCall) SendNotifications(sendNotifications bool) *AclInsertCall { + c.urlParams_.Set("sendNotifications", fmt.Sprint(sendNotifications)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -2194,6 +2202,11 @@ func (c *AclInsertCall) Do(opts ...googleapi.CallOption) (*AclRule, error) { // "location": "path", // "required": true, // "type": "string" + // }, + // "sendNotifications": { + // "description": "Whether to send notifications about the calendar sharing change. Optional. The default is True.", + // "location": "query", + // "type": "boolean" // } // }, // "path": "calendars/{calendarId}/acl", @@ -2453,6 +2466,15 @@ func (r *AclService) Patch(calendarId string, ruleId string, aclrule *AclRule) * return c } +// SendNotifications sets the optional parameter "sendNotifications": +// Whether to send notifications about the calendar sharing change. Note +// that there are no notifications on access removal. The default is +// True. +func (c *AclPatchCall) SendNotifications(sendNotifications bool) *AclPatchCall { + c.urlParams_.Set("sendNotifications", fmt.Sprint(sendNotifications)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -2559,6 +2581,11 @@ func (c *AclPatchCall) Do(opts ...googleapi.CallOption) (*AclRule, error) { // "location": "path", // "required": true, // "type": "string" + // }, + // "sendNotifications": { + // "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", + // "location": "query", + // "type": "boolean" // } // }, // "path": "calendars/{calendarId}/acl/{ruleId}", @@ -2596,6 +2623,15 @@ func (r *AclService) Update(calendarId string, ruleId string, aclrule *AclRule) return c } +// SendNotifications sets the optional parameter "sendNotifications": +// Whether to send notifications about the calendar sharing change. Note +// that there are no notifications on access removal. The default is +// True. +func (c *AclUpdateCall) SendNotifications(sendNotifications bool) *AclUpdateCall { + c.urlParams_.Set("sendNotifications", fmt.Sprint(sendNotifications)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -2702,6 +2738,11 @@ func (c *AclUpdateCall) Do(opts ...googleapi.CallOption) (*AclRule, error) { // "location": "path", // "required": true, // "type": "string" + // }, + // "sendNotifications": { + // "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.", + // "location": "query", + // "type": "boolean" // } // }, // "path": "calendars/{calendarId}/acl/{ruleId}", diff --git a/vendor/google.golang.org/api/classroom/v1/classroom-api.json b/vendor/google.golang.org/api/classroom/v1/classroom-api.json index 3b25e702a..171dfcf46 100644 --- a/vendor/google.golang.org/api/classroom/v1/classroom-api.json +++ b/vendor/google.golang.org/api/classroom/v1/classroom-api.json @@ -1,88 +1,24 @@ { - "basePath": "", "ownerDomain": "google.com", "name": "classroom", "batchPath": "batch", "id": "classroom:v1", "documentationLink": "https://developers.google.com/classroom/", - "revision": "20170926", + "revision": "20171017", "title": "Google Classroom API", "ownerName": "Google", "discoveryVersion": "v1", "resources": { "invitations": { "methods": { - "delete": { - "path": "v1/invitations/{id}", - "id": "classroom.invitations.delete", - "description": "Deletes an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "id" - ], - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters" - ], - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the invitation to delete.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/invitations/{id}" - }, - "list": { - "response": { - "$ref": "ListInvitationsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating\nthat the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", - "type": "string" - }, - "userId": { - "type": "string", - "location": "query", - "description": "Restricts returned invitations to those for a specific user. The identifier\ncan be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer" - }, - "courseId": { - "location": "query", - "description": "Restricts returned invitations to those for a course with the specified\nidentifier.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "flatPath": "v1/invitations", - "id": "classroom.invitations.list", - "path": "v1/invitations", - "description": "Returns a list of invitations that the requesting user is permitted to\nview, restricted to those that match the list request.\n\n*Note:* At least one of `user_id` or `course_id` must be supplied. Both\nfields can be supplied.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors." - }, "get": { - "description": "Returns an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID.", "response": { "$ref": "Invitation" }, - "httpMethod": "GET", "parameterOrder": [ "id" ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/classroom.rosters", "https://www.googleapis.com/auth/classroom.rosters.readonly" @@ -91,19 +27,60 @@ "id": { "location": "path", "description": "Identifier of the invitation to return.", - "type": "string", - "required": true + "required": true, + "type": "string" } }, "flatPath": "v1/invitations/{id}", + "path": "v1/invitations/{id}", "id": "classroom.invitations.get", - "path": "v1/invitations/{id}" + "description": "Returns an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID." + }, + "list": { + "path": "v1/invitations", + "id": "classroom.invitations.list", + "description": "Returns a list of invitations that the requesting user is permitted to\nview, restricted to those that match the list request.\n\n*Note:* At least one of `user_id` or `course_id` must be supplied. Both\nfields can be supplied.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors.", + "response": { + "$ref": "ListInvitationsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "userId": { + "location": "query", + "description": "Restricts returned invitations to those for a specific user. The identifier\ncan be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + }, + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating\nthat the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "courseId": { + "type": "string", + "location": "query", + "description": "Restricts returned invitations to those for a course with the specified\nidentifier." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" + ], + "flatPath": "v1/invitations" }, "create": { + "path": "v1/invitations", + "id": "classroom.invitations.create", + "description": "Creates an invitation. Only one invitation for a user and course may exist\nat a time. Delete and re-create an invitation to make changes.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ninvitations for this course or for access errors.\n* `NOT_FOUND` if the course or the user does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled or if\nthe user already has this role or a role with greater permissions.\n* `ALREADY_EXISTS` if an invitation for the specified user and course\nalready exists.", "request": { "$ref": "Invitation" }, - "description": "Creates an invitation. Only one invitation for a user and course may exist\nat a time. Delete and re-create an invitation to make changes.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ninvitations for this course or for access errors.\n* `NOT_FOUND` if the course or the user does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled or if\nthe user already has this role or a role with greater permissions.\n* `ALREADY_EXISTS` if an invitation for the specified user and course\nalready exists.", "response": { "$ref": "Invitation" }, @@ -113,9 +90,7 @@ "https://www.googleapis.com/auth/classroom.rosters" ], "parameters": {}, - "flatPath": "v1/invitations", - "id": "classroom.invitations.create", - "path": "v1/invitations" + "flatPath": "v1/invitations" }, "accept": { "response": { @@ -132,62 +107,1382 @@ "id": { "location": "path", "description": "Identifier of the invitation to accept.", - "type": "string", - "required": true + "required": true, + "type": "string" } }, "flatPath": "v1/invitations/{id}:accept", - "id": "classroom.invitations.accept", "path": "v1/invitations/{id}:accept", + "id": "classroom.invitations.accept", "description": "Accepts an invitation, removing it and adding the invited user to the\nteachers or students (as appropriate) of the specified course. Only the\ninvited user may accept an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to accept the\nrequested invitation or for access errors.\n* `FAILED_PRECONDITION` for the following request errors:\n * CourseMemberLimitReached\n * CourseNotModifiable\n * CourseTeacherLimitReached\n * UserGroupsMembershipLimitReached\n* `NOT_FOUND` if no invitation exists with the requested ID." - } - } - }, - "registrations": { - "methods": { - "create": { - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "parameters": {}, - "flatPath": "v1/registrations", - "path": "v1/registrations", - "id": "classroom.registrations.create", - "request": { - "$ref": "Registration" - }, - "description": "Creates a `Registration`, causing Classroom to start sending notifications\nfrom the provided `feed` to the provided `destination`.\n\nReturns the created `Registration`. Currently, this will be the same as\nthe argument, but with server-assigned fields such as `expiry_time` and\n`id` filled in.\n\nNote that any value specified for the `expiry_time` or `id` fields will be\nignored.\n\nWhile Classroom may validate the `destination` and return errors on a best\neffort basis, it is the caller's responsibility to ensure that it exists\nand that Classroom has permission to publish to it.\n\nThis method may return the following error codes:\n\n* `PERMISSION_DENIED` if:\n * the authenticated user does not have permission to receive\n notifications from the requested field; or\n * the credential provided does not include the appropriate scope for the\n requested feed.\n * another access error is encountered.\n* `INVALID_ARGUMENT` if:\n * no `destination` is specified, or the specified `destination` is not\n valid; or\n * no `feed` is specified, or the specified `feed` is not valid.\n* `NOT_FOUND` if:\n * the specified `feed` cannot be located, or the requesting user does not\n have permission to determine whether or not it exists; or\n * the specified `destination` cannot be located, or Classroom has not\n been granted permission to publish to it.", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Registration" - } }, "delete": { - "parameters": { - "registrationId": { - "location": "path", - "description": "The `registration_id` of the `Registration` to be deleted.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "flatPath": "v1/registrations/{registrationId}", - "id": "classroom.registrations.delete", - "path": "v1/registrations/{registrationId}", - "description": "Deletes a `Registration`, causing Classroom to stop sending notifications\nfor that `Registration`.", "response": { "$ref": "Empty" }, "parameterOrder": [ - "registrationId" + "id" ], - "httpMethod": "DELETE" + "httpMethod": "DELETE", + "parameters": { + "id": { + "description": "Identifier of the invitation to delete.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.rosters" + ], + "flatPath": "v1/invitations/{id}", + "path": "v1/invitations/{id}", + "id": "classroom.invitations.delete", + "description": "Deletes an invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested invitation or for access errors.\n* `NOT_FOUND` if no invitation exists with the requested ID." + } + } + }, + "courses": { + "methods": { + "get": { + "response": { + "$ref": "Course" + }, + "parameterOrder": [ + "id" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses", + "https://www.googleapis.com/auth/classroom.courses.readonly" + ], + "parameters": { + "id": { + "location": "path", + "description": "Identifier of the course to return.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/courses/{id}", + "path": "v1/courses/{id}", + "id": "classroom.courses.get", + "description": "Returns a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID." + }, + "patch": { + "response": { + "$ref": "Course" + }, + "parameterOrder": [ + "id" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update will fail if invalid\nfields are specified. The following fields are valid:\n\n* `name`\n* `section`\n* `descriptionHeading`\n* `description`\n* `room`\n* `courseState`\n* `ownerId`\n\nNote: patches to ownerId are treated as being effective immediately, but in\npractice it may take some time for the ownership transfer of all affected\nresources to complete.\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "id": { + "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "flatPath": "v1/courses/{id}", + "path": "v1/courses/{id}", + "id": "classroom.courses.patch", + "request": { + "$ref": "Course" + }, + "description": "Updates one or more fields in a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `INVALID_ARGUMENT` if invalid fields are specified in the update mask or\nif no update mask is supplied.\n* `FAILED_PRECONDITION` for the following request errors:\n * CourseNotModifiable" + }, + "update": { + "request": { + "$ref": "Course" + }, + "description": "Updates a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `FAILED_PRECONDITION` for the following request errors:\n * CourseNotModifiable", + "response": { + "$ref": "Course" + }, + "parameterOrder": [ + "id" + ], + "httpMethod": "PUT", + "parameters": { + "id": { + "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "flatPath": "v1/courses/{id}", + "path": "v1/courses/{id}", + "id": "classroom.courses.update" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "id" + ], + "httpMethod": "DELETE", + "parameters": { + "id": { + "description": "Identifier of the course to delete.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "flatPath": "v1/courses/{id}", + "path": "v1/courses/{id}", + "id": "classroom.courses.delete", + "description": "Deletes a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID." + }, + "list": { + "description": "Returns a list of courses that the requesting user is permitted to view,\nrestricted to those that match the request. Returned courses are ordered by\ncreation time, with the most recently created coming first.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors.\n* `INVALID_ARGUMENT` if the query argument is malformed.\n* `NOT_FOUND` if any users specified in the query arguments do not exist.", + "response": { + "$ref": "ListCoursesResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses", + "https://www.googleapis.com/auth/classroom.courses.readonly" + ], + "parameters": { + "studentId": { + "location": "query", + "description": "Restricts returned courses to those having a student with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "teacherId": { + "location": "query", + "description": "Restricts returned courses to those having a teacher with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + }, + "courseStates": { + "description": "Restricts returned courses to those in one of the specified states\nThe default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.", + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "COURSE_STATE_UNSPECIFIED", + "ACTIVE", + "ARCHIVED", + "PROVISIONED", + "DECLINED", + "SUSPENDED" + ] + } + }, + "flatPath": "v1/courses", + "path": "v1/courses", + "id": "classroom.courses.list" + }, + "create": { + "response": { + "$ref": "Course" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "parameters": {}, + "flatPath": "v1/courses", + "path": "v1/courses", + "id": "classroom.courses.create", + "description": "Creates a course.\n\nThe user specified in `ownerId` is the owner of the created course\nand added as a teacher.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ncourses or for access errors.\n* `NOT_FOUND` if the primary teacher is not a valid user.\n* `FAILED_PRECONDITION` if the course owner's account is disabled or for\nthe following request errors:\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if an alias was specified in the `id` and\nalready exists.", + "request": { + "$ref": "Course" + } + } + }, + "resources": { + "announcements": { + "methods": { + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements" + ], + "parameters": { + "courseId": { + "required": true, + "type": "string", + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." + }, + "id": { + "description": "Identifier of the announcement to delete.\nThis identifier is a Classroom-assigned identifier.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/announcements/{id}", + "path": "v1/courses/{courseId}/announcements/{id}", + "id": "classroom.courses.announcements.delete", + "description": "Deletes an announcement.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding announcement item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID." + }, + "list": { + "response": { + "$ref": "ListAnnouncementsResponse" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements", + "https://www.googleapis.com/auth/classroom.announcements.readonly" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "announcementStates": { + "description": "Restriction on the `state` of announcements returned.\nIf this argument is left unspecified, the default value is `PUBLISHED`.", + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "ANNOUNCEMENT_STATE_UNSPECIFIED", + "PUBLISHED", + "DRAFT", + "DELETED" + ] + }, + "orderBy": { + "type": "string", + "location": "query", + "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported field is `updateTime`.\nSupported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `updateTime asc`, `updateTime`" + }, + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1/courses/{courseId}/announcements", + "path": "v1/courses/{courseId}/announcements", + "id": "classroom.courses.announcements.list", + "description": "Returns a list of announcements that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` announcements. Course teachers\nand domain administrators may view all announcements.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist." + }, + "create": { + "flatPath": "v1/courses/{courseId}/announcements", + "id": "classroom.courses.announcements.create", + "path": "v1/courses/{courseId}/announcements", + "request": { + "$ref": "Announcement" + }, + "description": "Creates an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create announcements in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n * AttachmentNotVisible", + "httpMethod": "POST", + "parameterOrder": [ + "courseId" + ], + "response": { + "$ref": "Announcement" + }, + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements" + ] + }, + "modifyAssignees": { + "description": "Modifies assignee mode and options of an announcement.\n\nOnly a teacher of the course that contains the announcement may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.", + "request": { + "$ref": "ModifyAnnouncementAssigneesRequest" + }, + "response": { + "$ref": "Announcement" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "location": "path", + "description": "Identifier of the announcement.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/courses/{courseId}/announcements/{id}:modifyAssignees", + "path": "v1/courses/{courseId}/announcements/{id}:modifyAssignees", + "id": "classroom.courses.announcements.modifyAssignees" + }, + "get": { + "httpMethod": "GET", + "response": { + "$ref": "Announcement" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the announcement.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements", + "https://www.googleapis.com/auth/classroom.announcements.readonly" + ], + "flatPath": "v1/courses/{courseId}/announcements/{id}", + "id": "classroom.courses.announcements.get", + "path": "v1/courses/{courseId}/announcements/{id}", + "description": "Returns an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or announcement, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or announcement does not exist." + }, + "patch": { + "response": { + "$ref": "Announcement" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/classroom.announcements" + ], + "parameters": { + "id": { + "location": "path", + "description": "Identifier of the announcement.", + "required": true, + "type": "string" + }, + "updateMask": { + "location": "query", + "description": "Mask that identifies which fields on the announcement to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the Announcement object. If\na field that does not support empty values is included in the update mask\nand not set in the Announcement object, an `INVALID_ARGUMENT` error will be\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `text`\n* `state`\n* `scheduled_time`", + "format": "google-fieldmask", + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/announcements/{id}", + "path": "v1/courses/{courseId}/announcements/{id}", + "id": "classroom.courses.announcements.patch", + "description": "Updates one or more fields of an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if the requested course or announcement does not exist", + "request": { + "$ref": "Announcement" + } + } + } + }, + "aliases": { + "methods": { + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "alias" + ], + "httpMethod": "DELETE", + "parameters": { + "alias": { + "location": "path", + "description": "Alias to delete.\nThis may not be the Classroom-assigned identifier.", + "required": true, + "type": "string" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course whose alias should be deleted.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "flatPath": "v1/courses/{courseId}/aliases/{alias}", + "path": "v1/courses/{courseId}/aliases/{alias}", + "id": "classroom.courses.aliases.delete", + "description": "Deletes an alias of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to remove the\nalias or for access errors.\n* `NOT_FOUND` if the alias does not exist.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n requesting user or course (for example, if a user not in a domain\n attempts to delete a domain-scoped alias)." + }, + "list": { + "description": "Returns a list of aliases for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\ncourse or for access errors.\n* `NOT_FOUND` if the course does not exist.", + "response": { + "$ref": "ListCourseAliasesResponse" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses", + "https://www.googleapis.com/auth/classroom.courses.readonly" + ], + "parameters": { + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer" + }, + "courseId": { + "location": "path", + "description": "The identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/courses/{courseId}/aliases", + "path": "v1/courses/{courseId}/aliases", + "id": "classroom.courses.aliases.list" + }, + "create": { + "description": "Creates an alias for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create the\nalias or for access errors.\n* `NOT_FOUND` if the course does not exist.\n* `ALREADY_EXISTS` if the alias already exists.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n requesting user or course (for example, if a user not in a domain\n attempts to access a domain-scoped alias).", + "request": { + "$ref": "CourseAlias" + }, + "response": { + "$ref": "CourseAlias" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.courses" + ], + "parameters": { + "courseId": { + "description": "Identifier of the course to alias.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/aliases", + "path": "v1/courses/{courseId}/aliases", + "id": "classroom.courses.aliases.create" + } + } + }, + "students": { + "methods": { + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "userId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/classroom.rosters" + ], + "parameters": { + "userId": { + "location": "path", + "description": "Identifier of the student to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/students/{userId}", + "path": "v1/courses/{courseId}/students/{userId}", + "id": "classroom.courses.students.delete", + "description": "Deletes a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist." + }, + "get": { + "flatPath": "v1/courses/{courseId}/students/{userId}", + "id": "classroom.courses.students.get", + "path": "v1/courses/{courseId}/students/{userId}", + "description": "Returns a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist.", + "httpMethod": "GET", + "response": { + "$ref": "Student" + }, + "parameterOrder": [ + "courseId", + "userId" + ], + "parameters": { + "userId": { + "location": "path", + "description": "Identifier of the student to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" + ] + }, + "list": { + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" + ], + "parameters": { + "pageSize": { + "location": "query", + "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/courses/{courseId}/students", + "path": "v1/courses/{courseId}/students", + "id": "classroom.courses.students.list", + "description": "Returns a list of students of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.", + "response": { + "$ref": "ListStudentsResponse" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "GET" + }, + "create": { + "flatPath": "v1/courses/{courseId}/students", + "path": "v1/courses/{courseId}/students", + "id": "classroom.courses.students.create", + "description": "Adds a user as a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\nstudents in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n * CourseMemberLimitReached\n * CourseNotModifiable\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a student or teacher in the\ncourse.", + "request": { + "$ref": "Student" + }, + "response": { + "$ref": "Student" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course to create the student in.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "enrollmentCode": { + "location": "query", + "description": "Enrollment code of the course to create the student in.\nThis code is required if userId\ncorresponds to the requesting user; it may be omitted if the requesting\nuser has administrative permissions to create students for any user.", + "type": "string" + } + } + } + } + }, + "courseWork": { + "methods": { + "modifyAssignees": { + "parameters": { + "courseId": { + "required": true, + "type": "string", + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." + }, + "id": { + "description": "Identifier of the coursework.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "flatPath": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees", + "path": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees", + "id": "classroom.courses.courseWork.modifyAssignees", + "request": { + "$ref": "ModifyCourseWorkAssigneesRequest" + }, + "description": "Modifies assignee mode and options of a coursework.\n\nOnly a teacher of the course that contains the coursework may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.", + "response": { + "$ref": "CourseWork" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "POST" + }, + "get": { + "description": "Returns course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.", + "response": { + "$ref": "CourseWork" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.me.readonly", + "https://www.googleapis.com/auth/classroom.coursework.students", + "https://www.googleapis.com/auth/classroom.coursework.students.readonly" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/courseWork/{id}", + "path": "v1/courses/{courseId}/courseWork/{id}", + "id": "classroom.courses.courseWork.get" + }, + "patch": { + "response": { + "$ref": "CourseWork" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "parameters": { + "updateMask": { + "location": "query", + "description": "Mask that identifies which fields on the course work to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the CourseWork object. If a\nfield that does not support empty values is included in the update mask and\nnot set in the CourseWork object, an `INVALID_ARGUMENT` error will be\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `title`\n* `description`\n* `state`\n* `due_date`\n* `due_time`\n* `max_points`\n* `scheduled_time`\n* `submission_modification_mode`", + "format": "google-fieldmask", + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + }, + "id": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/courseWork/{id}", + "path": "v1/courses/{courseId}/courseWork/{id}", + "id": "classroom.courses.courseWork.patch", + "description": "Updates one or more fields of a course work.\n\nSee google.classroom.v1.CourseWork for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "request": { + "$ref": "CourseWork" + } + }, + "delete": { + "flatPath": "v1/courses/{courseId}/courseWork/{id}", + "path": "v1/courses/{courseId}/courseWork/{id}", + "id": "classroom.courses.courseWork.delete", + "description": "Deletes a course work.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "id" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the course work to delete.\nThis identifier is a Classroom-assigned identifier.", + "required": true, + "type": "string", + "location": "path" + } + } + }, + "list": { + "response": { + "$ref": "ListCourseWorkResponse" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "GET", + "parameters": { + "orderBy": { + "location": "query", + "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported fields are `updateTime`\nand `dueDate`. Supported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`", + "type": "string" + }, + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "courseWorkStates": { + "repeated": true, + "location": "query", + "enum": [ + "COURSE_WORK_STATE_UNSPECIFIED", + "PUBLISHED", + "DRAFT", + "DELETED" + ], + "description": "Restriction on the work status to return. Only courseWork that matches\nis returned. If unspecified, items with a work status of `PUBLISHED`\nis returned.", + "type": "string" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.me.readonly", + "https://www.googleapis.com/auth/classroom.coursework.students", + "https://www.googleapis.com/auth/classroom.coursework.students.readonly" + ], + "flatPath": "v1/courses/{courseId}/courseWork", + "path": "v1/courses/{courseId}/courseWork", + "id": "classroom.courses.courseWork.list", + "description": "Returns a list of course work that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` course work. Course teachers\nand domain administrators may view all course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist." + }, + "create": { + "request": { + "$ref": "CourseWork" + }, + "description": "Creates course work.\n\nThe resulting course work (and corresponding student submissions) are\nassociated with the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\nmake the request. Classroom API requests to modify course work and student\nsubmissions must be made with an OAuth client ID from the associated\nDeveloper Console project.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create course work in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n * AttachmentNotVisible", + "httpMethod": "POST", + "parameterOrder": [ + "courseId" + ], + "response": { + "$ref": "CourseWork" + }, + "parameters": { + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "flatPath": "v1/courses/{courseId}/courseWork", + "id": "classroom.courses.courseWork.create", + "path": "v1/courses/{courseId}/courseWork" + } + }, + "resources": { + "studentSubmissions": { + "methods": { + "get": { + "httpMethod": "GET", + "response": { + "$ref": "StudentSubmission" + }, + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "parameters": { + "courseWorkId": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "location": "path", + "description": "Identifier of the student submission.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.me.readonly", + "https://www.googleapis.com/auth/classroom.coursework.students", + "https://www.googleapis.com/auth/classroom.coursework.students.readonly", + "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly", + "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly" + ], + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", + "id": "classroom.courses.courseWork.studentSubmissions.get", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", + "description": "Returns a student submission.\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, course work, or student submission or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist." + }, + "patch": { + "id": "classroom.courses.courseWork.studentSubmissions.patch", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", + "request": { + "$ref": "StudentSubmission" + }, + "description": "Updates one or more fields of a student submission.\n\nSee google.classroom.v1.StudentSubmission for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "httpMethod": "PATCH", + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "response": { + "$ref": "StudentSubmission" + }, + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the student submission.", + "required": true, + "type": "string", + "location": "path" + }, + "updateMask": { + "type": "string", + "location": "query", + "description": "Mask that identifies which fields on the student submission to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified.\n\nThe following fields may be specified by teachers:\n\n* `draft_grade`\n* `assigned_grade`", + "format": "google-fieldmask" + }, + "courseWorkId": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}" + }, + "return": { + "request": { + "$ref": "ReturnStudentSubmissionRequest" + }, + "description": "Returns a student submission.\n\nReturning a student submission transfers ownership of attached Drive\nfiles to the student and may also update the submission state.\nUnlike the Classroom application, returning a student submission does not\nset assignedGrade to the draftGrade value.\n\nOnly a teacher of the course that contains the requested student submission\nmay call this method.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, return the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "httpMethod": "POST", + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the student submission.", + "required": true, + "type": "string", + "location": "path" + }, + "courseWorkId": { + "location": "path", + "description": "Identifier of the course work.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return", + "id": "classroom.courses.courseWork.studentSubmissions.return" + }, + "reclaim": { + "description": "Reclaims a student submission on behalf of the student that owns it.\n\nReclaiming a student submission transfers ownership of attached Drive\nfiles to the student and update the submission state.\n\nOnly the student that owns the requested student submission may call this\nmethod, and only for a student submission that has been turned in.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, unsubmit the requested student submission,\nor for access errors.\n* `FAILED_PRECONDITION` if the student submission has not been turned in.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "request": { + "$ref": "ReclaimStudentSubmissionRequest" + }, + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me" + ], + "parameters": { + "courseWorkId": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the student submission.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", + "id": "classroom.courses.courseWork.studentSubmissions.reclaim" + }, + "turnIn": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me" + ], + "parameters": { + "courseWorkId": { + "description": "Identifier of the course work.", + "required": true, + "type": "string", + "location": "path" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "required": true, + "type": "string", + "location": "path", + "description": "Identifier of the student submission." + } + }, + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", + "id": "classroom.courses.courseWork.studentSubmissions.turnIn", + "description": "Turns in a student submission.\n\nTurning in a student submission transfers ownership of attached Drive\nfiles to the teacher and may also update the submission state.\n\nThis may only be called by the student that owns the specified student\nsubmission.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, turn in the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "request": { + "$ref": "TurnInStudentSubmissionRequest" + } + }, + "modifyAttachments": { + "request": { + "$ref": "ModifyAttachmentsRequest" + }, + "description": "Modifies attachments of student submission.\n\nAttachments may only be added to student submissions belonging to course\nwork objects with a `workType` of `ASSIGNMENT`.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, if the user is not permitted to modify\nattachments on the requested student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", + "httpMethod": "POST", + "parameterOrder": [ + "courseId", + "courseWorkId", + "id" + ], + "response": { + "$ref": "StudentSubmission" + }, + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + }, + "id": { + "description": "Identifier of the student submission.", + "required": true, + "type": "string", + "location": "path" + }, + "courseWorkId": { + "location": "path", + "description": "Identifier of the course work.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.students" + ], + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments", + "id": "classroom.courses.courseWork.studentSubmissions.modifyAttachments", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments" + }, + "list": { + "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions", + "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions", + "id": "classroom.courses.courseWork.studentSubmissions.list", + "description": "Returns a list of student submissions that the requester is permitted to\nview, factoring in the OAuth scopes of the request.\n`-` may be specified as the `course_work_id` to include student\nsubmissions for multiple course work items.\n\nCourse students may only view their own work. Course teachers\nand domain administrators may view all student submissions.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.", + "response": { + "$ref": "ListStudentSubmissionsResponse" + }, + "parameterOrder": [ + "courseId", + "courseWorkId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/classroom.coursework.me", + "https://www.googleapis.com/auth/classroom.coursework.me.readonly", + "https://www.googleapis.com/auth/classroom.coursework.students", + "https://www.googleapis.com/auth/classroom.coursework.students.readonly", + "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly", + "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "states": { + "description": "Requested submission states. If specified, returned student submissions\nmatch one of the specified submission states.", + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "SUBMISSION_STATE_UNSPECIFIED", + "NEW", + "CREATED", + "TURNED_IN", + "RETURNED", + "RECLAIMED_BY_STUDENT" + ] + }, + "userId": { + "location": "query", + "description": "Optional argument to restrict returned student work to those owned by the\nstudent with the specified identifier. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + }, + "courseWorkId": { + "description": "Identifier of the student work to request.\nThis may be set to the string literal `\"-\"` to request student work for\nall course work in the specified course.", + "required": true, + "type": "string", + "location": "path" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + }, + "late": { + "enum": [ + "LATE_VALUES_UNSPECIFIED", + "LATE_ONLY", + "NOT_LATE_ONLY" + ], + "description": "Requested lateness value. If specified, returned student submissions are\nrestricted by the requested value.\nIf unspecified, submissions are returned regardless of `late` value.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string" + } + } + } + } + } + } + }, + "teachers": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "courseId", + "userId" + ], + "parameters": { + "userId": { + "description": "Identifier of the teacher to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string", + "location": "path" + }, + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.rosters" + ], + "flatPath": "v1/courses/{courseId}/teachers/{userId}", + "id": "classroom.courses.teachers.delete", + "path": "v1/courses/{courseId}/teachers/{userId}", + "description": "Deletes a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist.\n* `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher\nof this course." + }, + "get": { + "response": { + "$ref": "Teacher" + }, + "parameterOrder": [ + "courseId", + "userId" + ], + "httpMethod": "GET", + "parameters": { + "userId": { + "location": "path", + "description": "Identifier of the teacher to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string" + }, + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" + ], + "flatPath": "v1/courses/{courseId}/teachers/{userId}", + "path": "v1/courses/{courseId}/teachers/{userId}", + "id": "classroom.courses.teachers.get", + "description": "Returns a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist." + }, + "list": { + "description": "Returns a list of teachers of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.", + "httpMethod": "GET", + "response": { + "$ref": "ListTeachersResponse" + }, + "parameterOrder": [ + "courseId" + ], + "parameters": { + "courseId": { + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string", + "location": "path" + }, + "pageToken": { + "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" + ], + "flatPath": "v1/courses/{courseId}/teachers", + "id": "classroom.courses.teachers.list", + "path": "v1/courses/{courseId}/teachers" + }, + "create": { + "description": "Creates a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\nteachers in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n * CourseMemberLimitReached\n * CourseNotModifiable\n * CourseTeacherLimitReached\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a teacher or student in the\ncourse.", + "request": { + "$ref": "Teacher" + }, + "response": { + "$ref": "Teacher" + }, + "parameterOrder": [ + "courseId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/classroom.profile.emails", + "https://www.googleapis.com/auth/classroom.profile.photos", + "https://www.googleapis.com/auth/classroom.rosters" + ], + "parameters": { + "courseId": { + "location": "path", + "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/courses/{courseId}/teachers", + "path": "v1/courses/{courseId}/teachers", + "id": "classroom.courses.teachers.create" + } + } } } }, @@ -210,200 +1505,94 @@ ], "parameters": { "userId": { + "location": "path", "description": "Identifier of the profile to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", "required": true, - "location": "path" + "type": "string" } }, "flatPath": "v1/userProfiles/{userId}", - "id": "classroom.userProfiles.get", - "path": "v1/userProfiles/{userId}" + "path": "v1/userProfiles/{userId}", + "id": "classroom.userProfiles.get" } }, "resources": { - "guardians": { - "methods": { - "delete": { - "id": "classroom.userProfiles.guardians.delete", - "path": "v1/userProfiles/{studentId}/guardians/{guardianId}", - "description": "Deletes a guardian.\n\nThe guardian will no longer receive guardian notifications and the guardian\nwill no longer be accessible via the API.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n is visible to the requesting user, if the requesting user is not\n permitted to manage guardians for the student identified by the\n `student_id`, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API).\n* `NOT_FOUND` if the requesting user is permitted to modify guardians for\n the requested `student_id`, but no `Guardian` record exists for that\n student with the provided `guardian_id`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "studentId", - "guardianId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.students" - ], - "parameters": { - "guardianId": { - "location": "path", - "description": "The `id` field from a `Guardian`.", - "type": "string", - "required": true - }, - "studentId": { - "location": "path", - "description": "The student whose guardian is to be deleted. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true - } - }, - "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}" - }, - "get": { - "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}", - "path": "v1/userProfiles/{studentId}/guardians/{guardianId}", - "id": "classroom.userProfiles.guardians.get", - "description": "Returns a specific guardian.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n is visible to the requesting user, if the requesting user is not\n permitted to view guardian information for the student identified by the\n `student_id`, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`).\n* `NOT_FOUND` if the requesting user is permitted to view guardians for\n the requested `student_id`, but no `Guardian` record exists for that\n student that matches the provided `guardian_id`.", - "httpMethod": "GET", - "parameterOrder": [ - "studentId", - "guardianId" - ], - "response": { - "$ref": "Guardian" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly", - "https://www.googleapis.com/auth/classroom.guardianlinks.students", - "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" - ], - "parameters": { - "studentId": { - "location": "path", - "description": "The student whose guardian is being requested. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true - }, - "guardianId": { - "description": "The `id` field from a `Guardian`.", - "type": "string", - "required": true, - "location": "path" - } - } - }, - "list": { - "description": "Returns a list of guardians that the requesting user is permitted to\nview, restricted to those that match the request.\n\nTo list guardians for any student that the requesting user may view\nguardians for, use the literal character `-` for the student ID.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n user is not permitted to view guardian information for that student, if\n `\"-\"` is specified as the `student_id` and the user is not a domain\n administrator, if guardians are not enabled for the domain in question,\n if the `invited_email_address` filter is set by a user who is not a\n domain administrator, or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`). May also be returned if an invalid\n `page_token` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n recognized, but Classroom has no record of that student.", - "httpMethod": "GET", - "parameterOrder": [ - "studentId" - ], - "response": { - "$ref": "ListGuardiansResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly", - "https://www.googleapis.com/auth/classroom.guardianlinks.students", - "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" - ], - "parameters": { - "studentId": { - "location": "path", - "description": "Filter results by the student who the guardian is linked to.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n all students that the requesting user has access to view.", - "type": "string", - "required": true - }, - "pageToken": { - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer" - }, - "invitedEmailAddress": { - "description": "Filter results by the email address that the original invitation was sent\nto, resulting in this guardian link.\nThis filter can only be used by domain administrators.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1/userProfiles/{studentId}/guardians", - "path": "v1/userProfiles/{studentId}/guardians", - "id": "classroom.userProfiles.guardians.list" - } - } - }, "guardianInvitations": { "methods": { - "create": { - "response": { - "$ref": "GuardianInvitation" - }, - "parameterOrder": [ - "studentId" - ], - "httpMethod": "POST", + "list": { "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.students" + "https://www.googleapis.com/auth/classroom.guardianlinks.students", + "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" ], "parameters": { "studentId": { - "description": "ID of the student (in standard format)", - "type": "string", + "description": "The ID of the student whose guardian invitations are to be returned.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n all students that the requesting user is permitted to view guardian\n invitations.", "required": true, + "type": "string", "location": "path" + }, + "pageToken": { + "location": "query", + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string" + }, + "invitedEmailAddress": { + "description": "If specified, only results with the specified `invited_email_address`\nwill be returned.", + "type": "string", + "location": "query" + }, + "states": { + "description": "If specified, only results with the specified `state` values will be\nreturned. Otherwise, results with a `state` of `PENDING` will be returned.", + "type": "string", + "repeated": true, + "location": "query", + "enum": [ + "GUARDIAN_INVITATION_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ] + }, + "pageSize": { + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32", + "type": "integer", + "location": "query" } }, "flatPath": "v1/userProfiles/{studentId}/guardianInvitations", - "id": "classroom.userProfiles.guardianInvitations.create", "path": "v1/userProfiles/{studentId}/guardianInvitations", - "request": { - "$ref": "GuardianInvitation" - }, - "description": "Creates a guardian invitation, and sends an email to the guardian asking\nthem to confirm that they are the student's guardian.\n\nOnce the guardian accepts the invitation, their `state` will change to\n`COMPLETED` and they will start receiving guardian notifications. A\n`Guardian` resource will also be created to represent the active guardian.\n\nThe request object must have the `student_id` and\n`invited_email_address` fields set. Failing to set these fields, or\nsetting any other fields in the request, will result in an error.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n manage guardians, if the guardian in question has already rejected\n too many requests for that student, if guardians are not enabled for the\n domain in question, or for other access errors.\n* `RESOURCE_EXHAUSTED` if the student or guardian has exceeded the guardian\n link limit.\n* `INVALID_ARGUMENT` if the guardian email address is not valid (for\n example, if it is too long), or if the format of the student ID provided\n cannot be recognized (it is not an email address, nor a `user_id` from\n this API). This error will also be returned if read-only fields are set,\n or if the `state` field is set to to a value other than `PENDING`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n Classroom has no record of that student.\n* `ALREADY_EXISTS` if there is already a pending guardian invitation for\n the student and `invited_email_address` provided, or if the provided\n `invited_email_address` matches the Google account of an existing\n `Guardian` for this user." - }, - "patch": { - "request": { - "$ref": "GuardianInvitation" - }, - "description": "Modifies a guardian invitation.\n\nCurrently, the only valid modification is to change the `state` from\n`PENDING` to `COMPLETE`. This has the effect of withdrawing the invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n manage guardians, if guardians are not enabled for the domain in question\n or for other access errors.\n* `FAILED_PRECONDITION` if the guardian link is not in the `PENDING` state.\n* `INVALID_ARGUMENT` if the format of the student ID provided\n cannot be recognized (it is not an email address, nor a `user_id` from\n this API), or if the passed `GuardianInvitation` has a `state` other than\n `COMPLETE`, or if it modifies fields other than `state`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n Classroom has no record of that student, or if the `id` field does not\n refer to a guardian invitation known to Classroom.", - "httpMethod": "PATCH", - "parameterOrder": [ - "studentId", - "invitationId" - ], + "id": "classroom.userProfiles.guardianInvitations.list", + "description": "Returns a list of guardian invitations that the requesting user is\npermitted to view, filtered by the parameters provided.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n user is not permitted to view guardian invitations for that student, if\n `\"-\"` is specified as the `student_id` and the user is not a domain\n administrator, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`). May also be returned if an invalid\n `page_token` or `state` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n recognized, but Classroom has no record of that student.", "response": { - "$ref": "GuardianInvitation" + "$ref": "ListGuardianInvitationsResponse" }, + "parameterOrder": [ + "studentId" + ], + "httpMethod": "GET" + }, + "get": { "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.students" + "https://www.googleapis.com/auth/classroom.guardianlinks.students", + "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" ], "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update will fail if invalid\nfields are specified. The following fields are valid:\n\n* `state`\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`", - "type": "string", - "location": "query" - }, "invitationId": { - "description": "The `id` field of the `GuardianInvitation` to be modified.", - "type": "string", "required": true, - "location": "path" + "type": "string", + "location": "path", + "description": "The `id` field of the `GuardianInvitation` being requested." }, "studentId": { - "location": "path", - "description": "The ID of the student whose guardian invitation is to be modified.", + "description": "The ID of the student whose guardian invitation is being requested.", + "required": true, "type": "string", - "required": true + "location": "path" } }, "flatPath": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}", "path": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}", - "id": "classroom.userProfiles.guardianInvitations.patch" - }, - "get": { "id": "classroom.userProfiles.guardianInvitations.get", - "path": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}", "description": "Returns a specific guardian invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\n guardian invitations for the student identified by the `student_id`, if\n guardians are not enabled for the domain in question, or for other\n access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`).\n* `NOT_FOUND` if Classroom cannot find any record of the given student or\n `invitation_id`. May also be returned if the student exists, but the\n requesting user does not have access to see that student.", "response": { "$ref": "GuardianInvitation" @@ -412,1423 +1601,233 @@ "studentId", "invitationId" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/classroom.guardianlinks.students", - "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" + "httpMethod": "GET" + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "studentId", + "invitationId" ], + "response": { + "$ref": "GuardianInvitation" + }, + "parameters": { + "invitationId": { + "description": "The `id` field of the `GuardianInvitation` to be modified.", + "required": true, + "type": "string", + "location": "path" + }, + "updateMask": { + "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update will fail if invalid\nfields are specified. The following fields are valid:\n\n* `state`\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "studentId": { + "location": "path", + "description": "The ID of the student whose guardian invitation is to be modified.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.guardianlinks.students" + ], + "flatPath": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}", + "id": "classroom.userProfiles.guardianInvitations.patch", + "path": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}", + "request": { + "$ref": "GuardianInvitation" + }, + "description": "Modifies a guardian invitation.\n\nCurrently, the only valid modification is to change the `state` from\n`PENDING` to `COMPLETE`. This has the effect of withdrawing the invitation.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n manage guardians, if guardians are not enabled for the domain in question\n or for other access errors.\n* `FAILED_PRECONDITION` if the guardian link is not in the `PENDING` state.\n* `INVALID_ARGUMENT` if the format of the student ID provided\n cannot be recognized (it is not an email address, nor a `user_id` from\n this API), or if the passed `GuardianInvitation` has a `state` other than\n `COMPLETE`, or if it modifies fields other than `state`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n Classroom has no record of that student, or if the `id` field does not\n refer to a guardian invitation known to Classroom." + }, + "create": { + "request": { + "$ref": "GuardianInvitation" + }, + "description": "Creates a guardian invitation, and sends an email to the guardian asking\nthem to confirm that they are the student's guardian.\n\nOnce the guardian accepts the invitation, their `state` will change to\n`COMPLETED` and they will start receiving guardian notifications. A\n`Guardian` resource will also be created to represent the active guardian.\n\nThe request object must have the `student_id` and\n`invited_email_address` fields set. Failing to set these fields, or\nsetting any other fields in the request, will result in an error.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the current user does not have permission to\n manage guardians, if the guardian in question has already rejected\n too many requests for that student, if guardians are not enabled for the\n domain in question, or for other access errors.\n* `RESOURCE_EXHAUSTED` if the student or guardian has exceeded the guardian\n link limit.\n* `INVALID_ARGUMENT` if the guardian email address is not valid (for\n example, if it is too long), or if the format of the student ID provided\n cannot be recognized (it is not an email address, nor a `user_id` from\n this API). This error will also be returned if read-only fields are set,\n or if the `state` field is set to to a value other than `PENDING`.\n* `NOT_FOUND` if the student ID provided is a valid student ID, but\n Classroom has no record of that student.\n* `ALREADY_EXISTS` if there is already a pending guardian invitation for\n the student and `invited_email_address` provided, or if the provided\n `invited_email_address` matches the Google account of an existing\n `Guardian` for this user.", + "httpMethod": "POST", + "parameterOrder": [ + "studentId" + ], + "response": { + "$ref": "GuardianInvitation" + }, + "parameters": { + "studentId": { + "required": true, + "type": "string", + "location": "path", + "description": "ID of the student (in standard format)" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/classroom.guardianlinks.students" + ], + "flatPath": "v1/userProfiles/{studentId}/guardianInvitations", + "id": "classroom.userProfiles.guardianInvitations.create", + "path": "v1/userProfiles/{studentId}/guardianInvitations" + } + } + }, + "guardians": { + "methods": { + "delete": { "parameters": { "studentId": { "location": "path", - "description": "The ID of the student whose guardian invitation is being requested.", - "type": "string", - "required": true + "description": "The student whose guardian is to be deleted. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string" }, - "invitationId": { + "guardianId": { "location": "path", - "description": "The `id` field of the `GuardianInvitation` being requested.", - "type": "string", - "required": true + "description": "The `id` field from a `Guardian`.", + "required": true, + "type": "string" } }, - "flatPath": "v1/userProfiles/{studentId}/guardianInvitations/{invitationId}" + "scopes": [ + "https://www.googleapis.com/auth/classroom.guardianlinks.students" + ], + "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}", + "path": "v1/userProfiles/{studentId}/guardians/{guardianId}", + "id": "classroom.userProfiles.guardians.delete", + "description": "Deletes a guardian.\n\nThe guardian will no longer receive guardian notifications and the guardian\nwill no longer be accessible via the API.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n is visible to the requesting user, if the requesting user is not\n permitted to manage guardians for the student identified by the\n `student_id`, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API).\n* `NOT_FOUND` if the requesting user is permitted to modify guardians for\n the requested `student_id`, but no `Guardian` record exists for that\n student with the provided `guardian_id`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "studentId", + "guardianId" + ], + "httpMethod": "DELETE" }, "list": { + "flatPath": "v1/userProfiles/{studentId}/guardians", + "path": "v1/userProfiles/{studentId}/guardians", + "id": "classroom.userProfiles.guardians.list", + "description": "Returns a list of guardians that the requesting user is permitted to\nview, restricted to those that match the request.\n\nTo list guardians for any student that the requesting user may view\nguardians for, use the literal character `-` for the student ID.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n user is not permitted to view guardian information for that student, if\n `\"-\"` is specified as the `student_id` and the user is not a domain\n administrator, if guardians are not enabled for the domain in question,\n if the `invited_email_address` filter is set by a user who is not a\n domain administrator, or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`). May also be returned if an invalid\n `page_token` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n recognized, but Classroom has no record of that student.", "response": { - "$ref": "ListGuardianInvitationsResponse" + "$ref": "ListGuardiansResponse" }, "parameterOrder": [ "studentId" ], "httpMethod": "GET", "scopes": [ + "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly", "https://www.googleapis.com/auth/classroom.guardianlinks.students", "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" ], "parameters": { - "pageSize": { - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer", - "location": "query" - }, - "states": { - "type": "string", - "repeated": true, + "pageToken": { "location": "query", - "enum": [ - "GUARDIAN_INVITATION_STATE_UNSPECIFIED", - "PENDING", - "COMPLETE" - ], - "description": "If specified, only results with the specified `state` values will be\nreturned. Otherwise, results with a `state` of `PENDING` will be returned." + "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "type": "string" }, "invitedEmailAddress": { - "description": "If specified, only results with the specified `invited_email_address`\nwill be returned.", - "type": "string", - "location": "query" + "location": "query", + "description": "Filter results by the email address that the original invitation was sent\nto, resulting in this guardian link.\nThis filter can only be used by domain administrators.", + "type": "string" + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", + "format": "int32" }, "studentId": { - "location": "path", - "description": "The ID of the student whose guardian invitations are to be returned.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n all students that the requesting user is permitted to view guardian\n invitations.", + "description": "Filter results by the student who the guardian is linked to.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n* the string literal `\"-\"`, indicating that results should be returned for\n all students that the requesting user has access to view.", + "required": true, "type": "string", - "required": true + "location": "path" + } + } + }, + "get": { + "description": "Returns a specific guardian.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if no user that matches the provided `student_id`\n is visible to the requesting user, if the requesting user is not\n permitted to view guardian information for the student identified by the\n `student_id`, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`).\n* `NOT_FOUND` if the requesting user is permitted to view guardians for\n the requested `student_id`, but no `Guardian` record exists for that\n student that matches the provided `guardian_id`.", + "response": { + "$ref": "Guardian" + }, + "parameterOrder": [ + "studentId", + "guardianId" + ], + "httpMethod": "GET", + "parameters": { + "studentId": { + "description": "The student whose guardian is being requested. One of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "required": true, + "type": "string", + "location": "path" }, - "pageToken": { - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", + "guardianId": { + "description": "The `id` field from a `Guardian`.", + "required": true, "type": "string", - "location": "query" + "location": "path" } }, - "flatPath": "v1/userProfiles/{studentId}/guardianInvitations", - "id": "classroom.userProfiles.guardianInvitations.list", - "path": "v1/userProfiles/{studentId}/guardianInvitations", - "description": "Returns a list of guardian invitations that the requesting user is\npermitted to view, filtered by the parameters provided.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if a `student_id` is specified, and the requesting\n user is not permitted to view guardian invitations for that student, if\n `\"-\"` is specified as the `student_id` and the user is not a domain\n administrator, if guardians are not enabled for the domain in question,\n or for other access errors.\n* `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot\n be recognized (it is not an email address, nor a `student_id` from the\n API, nor the literal string `me`). May also be returned if an invalid\n `page_token` or `state` is provided.\n* `NOT_FOUND` if a `student_id` is specified, and its format can be\n recognized, but Classroom has no record of that student." + "scopes": [ + "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly", + "https://www.googleapis.com/auth/classroom.guardianlinks.students", + "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly" + ], + "flatPath": "v1/userProfiles/{studentId}/guardians/{guardianId}", + "path": "v1/userProfiles/{studentId}/guardians/{guardianId}", + "id": "classroom.userProfiles.guardians.get" } } } } }, - "courses": { + "registrations": { "methods": { - "list": { - "description": "Returns a list of courses that the requesting user is permitted to view,\nrestricted to those that match the request. Returned courses are ordered by\ncreation time, with the most recently created coming first.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` for access errors.\n* `INVALID_ARGUMENT` if the query argument is malformed.\n* `NOT_FOUND` if any users specified in the query arguments do not exist.", - "httpMethod": "GET", + "delete": { + "description": "Deletes a `Registration`, causing Classroom to stop sending notifications\nfor that `Registration`.", "response": { - "$ref": "ListCoursesResponse" + "$ref": "Empty" }, - "parameterOrder": [], + "parameterOrder": [ + "registrationId" + ], + "httpMethod": "DELETE", "scopes": [ - "https://www.googleapis.com/auth/classroom.courses", - "https://www.googleapis.com/auth/classroom.courses.readonly" + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" ], "parameters": { - "studentId": { - "location": "query", - "description": "Restricts returned courses to those having a student with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer" - }, - "courseStates": { - "repeated": true, - "location": "query", - "enum": [ - "COURSE_STATE_UNSPECIFIED", - "ACTIVE", - "ARCHIVED", - "PROVISIONED", - "DECLINED", - "SUSPENDED" - ], - "description": "Restricts returned courses to those in one of the specified states\nThe default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.", - "type": "string" - }, - "teacherId": { + "registrationId": { + "description": "The `registration_id` of the `Registration` to be deleted.", + "required": true, "type": "string", - "location": "query", - "description": "Restricts returned courses to those having a teacher with the specified\nidentifier. The identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user" + "location": "path" } }, - "flatPath": "v1/courses", - "path": "v1/courses", - "id": "classroom.courses.list" + "flatPath": "v1/registrations/{registrationId}", + "path": "v1/registrations/{registrationId}", + "id": "classroom.registrations.delete" }, "create": { "response": { - "$ref": "Course" + "$ref": "Registration" }, "parameterOrder": [], "httpMethod": "POST", "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" + "https://www.googleapis.com/auth/classroom.rosters", + "https://www.googleapis.com/auth/classroom.rosters.readonly" ], "parameters": {}, - "flatPath": "v1/courses", - "id": "classroom.courses.create", - "path": "v1/courses", + "flatPath": "v1/registrations", + "path": "v1/registrations", + "id": "classroom.registrations.create", + "description": "Creates a `Registration`, causing Classroom to start sending notifications\nfrom the provided `feed` to the provided `destination`.\n\nReturns the created `Registration`. Currently, this will be the same as\nthe argument, but with server-assigned fields such as `expiry_time` and\n`id` filled in.\n\nNote that any value specified for the `expiry_time` or `id` fields will be\nignored.\n\nWhile Classroom may validate the `destination` and return errors on a best\neffort basis, it is the caller's responsibility to ensure that it exists\nand that Classroom has permission to publish to it.\n\nThis method may return the following error codes:\n\n* `PERMISSION_DENIED` if:\n * the authenticated user does not have permission to receive\n notifications from the requested field; or\n * the credential provided does not include the appropriate scope for the\n requested feed.\n * another access error is encountered.\n* `INVALID_ARGUMENT` if:\n * no `destination` is specified, or the specified `destination` is not\n valid; or\n * no `feed` is specified, or the specified `feed` is not valid.\n* `NOT_FOUND` if:\n * the specified `feed` cannot be located, or the requesting user does not\n have permission to determine whether or not it exists; or\n * the specified `destination` cannot be located, or Classroom has not\n been granted permission to publish to it.", "request": { - "$ref": "Course" - }, - "description": "Creates a course.\n\nThe user specified in `ownerId` is the owner of the created course\nand added as a teacher.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\ncourses or for access errors.\n* `NOT_FOUND` if the primary teacher is not a valid user.\n* `FAILED_PRECONDITION` if the course owner's account is disabled or for\nthe following request errors:\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if an alias was specified in the `id` and\nalready exists." - }, - "get": { - "response": { - "$ref": "Course" - }, - "httpMethod": "GET", - "parameterOrder": [ - "id" - ], - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses", - "https://www.googleapis.com/auth/classroom.courses.readonly" - ], - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the course to return.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{id}", - "id": "classroom.courses.get", - "path": "v1/courses/{id}", - "description": "Returns a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID." - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "id" - ], - "response": { - "$ref": "Course" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" - ], - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "updateMask": { - "type": "string", - "location": "query", - "format": "google-fieldmask", - "description": "Mask that identifies which fields on the course to update.\nThis field is required to do an update. The update will fail if invalid\nfields are specified. The following fields are valid:\n\n* `name`\n* `section`\n* `descriptionHeading`\n* `description`\n* `room`\n* `courseState`\n* `ownerId`\n\nNote: patches to ownerId are treated as being effective immediately, but in\npractice it may take some time for the ownership transfer of all affected\nresources to complete.\n\nWhen set in a query parameter, this field should be specified as\n\n`updateMask=\u003cfield1\u003e,\u003cfield2\u003e,...`" - } - }, - "flatPath": "v1/courses/{id}", - "path": "v1/courses/{id}", - "id": "classroom.courses.patch", - "request": { - "$ref": "Course" - }, - "description": "Updates one or more fields in a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `INVALID_ARGUMENT` if invalid fields are specified in the update mask or\nif no update mask is supplied.\n* `FAILED_PRECONDITION` for the following request errors:\n * CourseNotModifiable" - }, - "update": { - "flatPath": "v1/courses/{id}", - "path": "v1/courses/{id}", - "id": "classroom.courses.update", - "request": { - "$ref": "Course" - }, - "description": "Updates a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to modify the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID.\n* `FAILED_PRECONDITION` for the following request errors:\n * CourseNotModifiable", - "httpMethod": "PUT", - "parameterOrder": [ - "id" - ], - "response": { - "$ref": "Course" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" - ], - "parameters": { - "id": { - "description": "Identifier of the course to update.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - } - } - }, - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "id" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the course to delete.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" - ], - "flatPath": "v1/courses/{id}", - "path": "v1/courses/{id}", - "id": "classroom.courses.delete", - "description": "Deletes a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete the\nrequested course or for access errors.\n* `NOT_FOUND` if no course exists with the requested ID." - } - }, - "resources": { - "courseWork": { - "methods": { - "delete": { - "description": "Deletes a course work.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "courseId", - "id" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the course work to delete.\nThis identifier is a Classroom-assigned identifier.", - "type": "string", - "required": true - }, - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{id}", - "id": "classroom.courses.courseWork.delete", - "path": "v1/courses/{courseId}/courseWork/{id}" - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "courseId" - ], - "response": { - "$ref": "ListCourseWorkResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.me.readonly", - "https://www.googleapis.com/auth/classroom.coursework.students", - "https://www.googleapis.com/auth/classroom.coursework.students.readonly" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", - "type": "string" - }, - "orderBy": { - "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported fields are `updateTime`\nand `dueDate`. Supported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer", - "location": "query" - }, - "courseWorkStates": { - "description": "Restriction on the work status to return. Only courseWork that matches\nis returned. If unspecified, items with a work status of `PUBLISHED`\nis returned.", - "type": "string", - "repeated": true, - "location": "query", - "enum": [ - "COURSE_WORK_STATE_UNSPECIFIED", - "PUBLISHED", - "DRAFT", - "DELETED" - ] - }, - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork", - "path": "v1/courses/{courseId}/courseWork", - "id": "classroom.courses.courseWork.list", - "description": "Returns a list of course work that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` course work. Course teachers\nand domain administrators may view all course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist." - }, - "create": { - "id": "classroom.courses.courseWork.create", - "path": "v1/courses/{courseId}/courseWork", - "request": { - "$ref": "CourseWork" - }, - "description": "Creates course work.\n\nThe resulting course work (and corresponding student submissions) are\nassociated with the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\nmake the request. Classroom API requests to modify course work and student\nsubmissions must be made with an OAuth client ID from the associated\nDeveloper Console project.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create course work in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n * AttachmentNotVisible", - "response": { - "$ref": "CourseWork" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork" - }, - "modifyAssignees": { - "httpMethod": "POST", - "parameterOrder": [ - "courseId", - "id" - ], - "response": { - "$ref": "CourseWork" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "parameters": { - "courseId": { - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - }, - "id": { - "location": "path", - "description": "Identifier of the coursework.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees", - "path": "v1/courses/{courseId}/courseWork/{id}:modifyAssignees", - "id": "classroom.courses.courseWork.modifyAssignees", - "request": { - "$ref": "ModifyCourseWorkAssigneesRequest" - }, - "description": "Modifies assignee mode and options of a coursework.\n\nOnly a teacher of the course that contains the coursework may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist." - }, - "patch": { - "flatPath": "v1/courses/{courseId}/courseWork/{id}", - "path": "v1/courses/{courseId}/courseWork/{id}", - "id": "classroom.courses.courseWork.patch", - "description": "Updates one or more fields of a course work.\n\nSee google.classroom.v1.CourseWork for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested course work has already been\ndeleted.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", - "request": { - "$ref": "CourseWork" - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "courseId", - "id" - ], - "response": { - "$ref": "CourseWork" - }, - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "description": "Identifier of the course work.", - "type": "string", - "required": true, - "location": "path" - }, - "updateMask": { - "format": "google-fieldmask", - "description": "Mask that identifies which fields on the course work to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the CourseWork object. If a\nfield that does not support empty values is included in the update mask and\nnot set in the CourseWork object, an `INVALID_ARGUMENT` error will be\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `title`\n* `description`\n* `state`\n* `due_date`\n* `due_time`\n* `max_points`\n* `scheduled_time`\n* `submission_modification_mode`", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.students" - ] - }, - "get": { - "description": "Returns course work.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.", - "response": { - "$ref": "CourseWork" - }, - "parameterOrder": [ - "courseId", - "id" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.me.readonly", - "https://www.googleapis.com/auth/classroom.coursework.students", - "https://www.googleapis.com/auth/classroom.coursework.students.readonly" - ], - "parameters": { - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - }, - "id": { - "description": "Identifier of the course work.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{id}", - "id": "classroom.courses.courseWork.get", - "path": "v1/courses/{courseId}/courseWork/{id}" - } - }, - "resources": { - "studentSubmissions": { - "methods": { - "get": { - "description": "Returns a student submission.\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, course work, or student submission or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", - "httpMethod": "GET", - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "response": { - "$ref": "StudentSubmission" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.me.readonly", - "https://www.googleapis.com/auth/classroom.coursework.students", - "https://www.googleapis.com/auth/classroom.coursework.students.readonly", - "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly", - "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly" - ], - "parameters": { - "courseWorkId": { - "location": "path", - "description": "Identifier of the course work.", - "type": "string", - "required": true - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - }, - "id": { - "location": "path", - "description": "Identifier of the student submission.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", - "id": "classroom.courses.courseWork.studentSubmissions.get" - }, - "patch": { - "response": { - "$ref": "StudentSubmission" - }, - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "httpMethod": "PATCH", - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the student submission.", - "type": "string", - "required": true - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Mask that identifies which fields on the student submission to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified.\n\nThe following fields may be specified by teachers:\n\n* `draft_grade`\n* `assigned_grade`", - "type": "string" - }, - "courseWorkId": { - "description": "Identifier of the course work.", - "type": "string", - "required": true, - "location": "path" - }, - "courseId": { - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", - "id": "classroom.courses.courseWork.studentSubmissions.patch", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}", - "description": "Updates one or more fields of a student submission.\n\nSee google.classroom.v1.StudentSubmission for details\nof which fields may be updated and who may change them.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding course work, if the user is not permitted to make the\nrequested modification to the student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", - "request": { - "$ref": "StudentSubmission" - } - }, - "return": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "parameters": { - "courseWorkId": { - "location": "path", - "description": "Identifier of the course work.", - "type": "string", - "required": true - }, - "courseId": { - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - }, - "id": { - "description": "Identifier of the student submission.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return", - "id": "classroom.courses.courseWork.studentSubmissions.return", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return", - "request": { - "$ref": "ReturnStudentSubmissionRequest" - }, - "description": "Returns a student submission.\n\nReturning a student submission transfers ownership of attached Drive\nfiles to the student and may also update the submission state.\nUnlike the Classroom application, returning a student submission does not\nset assignedGrade to the draftGrade value.\n\nOnly a teacher of the course that contains the requested student submission\nmay call this method.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, return the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist." - }, - "reclaim": { - "httpMethod": "POST", - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the student submission." - }, - "courseWorkId": { - "description": "Identifier of the course work.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me" - ], - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim", - "id": "classroom.courses.courseWork.studentSubmissions.reclaim", - "description": "Reclaims a student submission on behalf of the student that owns it.\n\nReclaiming a student submission transfers ownership of attached Drive\nfiles to the student and update the submission state.\n\nOnly the student that owns the requested student submission may call this\nmethod, and only for a student submission that has been turned in.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, unsubmit the requested student submission,\nor for access errors.\n* `FAILED_PRECONDITION` if the student submission has not been turned in.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", - "request": { - "$ref": "ReclaimStudentSubmissionRequest" - } - }, - "turnIn": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me" - ], - "parameters": { - "courseWorkId": { - "location": "path", - "description": "Identifier of the course work.", - "type": "string", - "required": true - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - }, - "id": { - "location": "path", - "description": "Identifier of the student submission.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", - "id": "classroom.courses.courseWork.studentSubmissions.turnIn", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn", - "request": { - "$ref": "TurnInStudentSubmissionRequest" - }, - "description": "Turns in a student submission.\n\nTurning in a student submission transfers ownership of attached Drive\nfiles to the teacher and may also update the submission state.\n\nThis may only be called by the student that owns the specified student\nsubmission.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, turn in the requested student submission,\nor for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist." - }, - "modifyAttachments": { - "request": { - "$ref": "ModifyAttachmentsRequest" - }, - "description": "Modifies attachments of student submission.\n\nAttachments may only be added to student submissions belonging to course\nwork objects with a `workType` of `ASSIGNMENT`.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding course work item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, if the user is not permitted to modify\nattachments on the requested student submission, or for\naccess errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course, course work, or student submission\ndoes not exist.", - "response": { - "$ref": "StudentSubmission" - }, - "parameterOrder": [ - "courseId", - "courseWorkId", - "id" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.students" - ], - "parameters": { - "courseWorkId": { - "location": "path", - "description": "Identifier of the course work.", - "type": "string", - "required": true - }, - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "location": "path", - "description": "Identifier of the student submission.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments", - "id": "classroom.courses.courseWork.studentSubmissions.modifyAttachments", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments" - }, - "list": { - "description": "Returns a list of student submissions that the requester is permitted to\nview, factoring in the OAuth scopes of the request.\n`-` may be specified as the `course_work_id` to include student\nsubmissions for multiple course work items.\n\nCourse students may only view their own work. Course teachers\nand domain administrators may view all student submissions.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.", - "httpMethod": "GET", - "parameterOrder": [ - "courseId", - "courseWorkId" - ], - "response": { - "$ref": "ListStudentSubmissionsResponse" - }, - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "late": { - "location": "query", - "enum": [ - "LATE_VALUES_UNSPECIFIED", - "LATE_ONLY", - "NOT_LATE_ONLY" - ], - "description": "Requested lateness value. If specified, returned student submissions are\nrestricted by the requested value.\nIf unspecified, submissions are returned regardless of `late` value.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer", - "location": "query" - }, - "states": { - "repeated": true, - "location": "query", - "enum": [ - "SUBMISSION_STATE_UNSPECIFIED", - "NEW", - "CREATED", - "TURNED_IN", - "RETURNED", - "RECLAIMED_BY_STUDENT" - ], - "description": "Requested submission states. If specified, returned student submissions\nmatch one of the specified submission states.", - "type": "string" - }, - "userId": { - "description": "Optional argument to restrict returned student work to those owned by the\nstudent with the specified identifier. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "location": "query" - }, - "courseWorkId": { - "location": "path", - "description": "Identifier of the student work to request.\nThis may be set to the string literal `\"-\"` to request student work for\nall course work in the specified course.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.coursework.me", - "https://www.googleapis.com/auth/classroom.coursework.me.readonly", - "https://www.googleapis.com/auth/classroom.coursework.students", - "https://www.googleapis.com/auth/classroom.coursework.students.readonly", - "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly", - "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly" - ], - "flatPath": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions", - "path": "v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions", - "id": "classroom.courses.courseWork.studentSubmissions.list" - } - } - } - } - }, - "teachers": { - "methods": { - "delete": { - "description": "Deletes a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist.\n* `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher\nof this course.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "courseId", - "userId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters" - ], - "parameters": { - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - }, - "userId": { - "description": "Identifier of the teacher to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/courses/{courseId}/teachers/{userId}", - "id": "classroom.courses.teachers.delete", - "path": "v1/courses/{courseId}/teachers/{userId}" - }, - "list": { - "description": "Returns a list of teachers of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.", - "response": { - "$ref": "ListTeachersResponse" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer" - }, - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "flatPath": "v1/courses/{courseId}/teachers", - "id": "classroom.courses.teachers.list", - "path": "v1/courses/{courseId}/teachers" - }, - "get": { - "response": { - "$ref": "Teacher" - }, - "parameterOrder": [ - "courseId", - "userId" - ], - "httpMethod": "GET", - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "userId": { - "location": "path", - "description": "Identifier of the teacher to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "flatPath": "v1/courses/{courseId}/teachers/{userId}", - "id": "classroom.courses.teachers.get", - "path": "v1/courses/{courseId}/teachers/{userId}", - "description": "Returns a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nteachers of this course or for access errors.\n* `NOT_FOUND` if no teacher of this course has the requested ID or if the\ncourse does not exist." - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "courseId" - ], - "response": { - "$ref": "Teacher" - }, - "parameters": { - "courseId": { - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters" - ], - "flatPath": "v1/courses/{courseId}/teachers", - "path": "v1/courses/{courseId}/teachers", - "id": "classroom.courses.teachers.create", - "description": "Creates a teacher of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\nteachers in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n * CourseMemberLimitReached\n * CourseNotModifiable\n * CourseTeacherLimitReached\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a teacher or student in the\ncourse.", - "request": { - "$ref": "Teacher" - } - } - } - }, - "announcements": { - "methods": { - "delete": { - "description": "Deletes an announcement.\n\nThis request must be made by the Developer Console project of the\n[OAuth client ID](https://support.google.com/cloud/answer/6158849) used to\ncreate the corresponding announcement item.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement, if the requesting user is not permitted\nto delete the requested course or for access errors.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if no course exists with the requested ID.", - "httpMethod": "DELETE", - "parameterOrder": [ - "courseId", - "id" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "id": { - "location": "path", - "description": "Identifier of the announcement to delete.\nThis identifier is a Classroom-assigned identifier.", - "type": "string", - "required": true - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements" - ], - "flatPath": "v1/courses/{courseId}/announcements/{id}", - "path": "v1/courses/{courseId}/announcements/{id}", - "id": "classroom.courses.announcements.delete" - }, - "list": { - "flatPath": "v1/courses/{courseId}/announcements", - "id": "classroom.courses.announcements.list", - "path": "v1/courses/{courseId}/announcements", - "description": "Returns a list of announcements that the requester is permitted to view.\n\nCourse students may only view `PUBLISHED` announcements. Course teachers\nand domain administrators may view all announcements.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access\nthe requested course or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.", - "response": { - "$ref": "ListAnnouncementsResponse" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements", - "https://www.googleapis.com/auth/classroom.announcements.readonly" - ], - "parameters": { - "announcementStates": { - "enum": [ - "ANNOUNCEMENT_STATE_UNSPECIFIED", - "PUBLISHED", - "DRAFT", - "DELETED" - ], - "description": "Restriction on the `state` of announcements returned.\nIf this argument is left unspecified, the default value is `PUBLISHED`.", - "type": "string", - "repeated": true, - "location": "query" - }, - "pageToken": { - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token.", - "type": "string", - "location": "query" - }, - "orderBy": { - "location": "query", - "description": "Optional sort ordering for results. A comma-separated list of fields with\nan optional sort direction keyword. Supported field is `updateTime`.\nSupported direction keywords are `asc` and `desc`.\nIf not specified, `updateTime desc` is the default behavior.\nExamples: `updateTime asc`, `updateTime`", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer" - }, - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - } - }, - "create": { - "response": { - "$ref": "Announcement" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements" - ], - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/courses/{courseId}/announcements", - "id": "classroom.courses.announcements.create", - "path": "v1/courses/{courseId}/announcements", - "request": { - "$ref": "Announcement" - }, - "description": "Creates an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course, create announcements in the requested course, share a\nDrive attachment, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course does not exist.\n* `FAILED_PRECONDITION` for the following request error:\n * AttachmentNotVisible" - }, - "modifyAssignees": { - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "location": "path", - "description": "Identifier of the announcement.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements" - ], - "flatPath": "v1/courses/{courseId}/announcements/{id}:modifyAssignees", - "path": "v1/courses/{courseId}/announcements/{id}:modifyAssignees", - "id": "classroom.courses.announcements.modifyAssignees", - "description": "Modifies assignee mode and options of an announcement.\n\nOnly a teacher of the course that contains the announcement may\ncall this method.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or course work or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or course work does not exist.", - "request": { - "$ref": "ModifyAnnouncementAssigneesRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "courseId", - "id" - ], - "response": { - "$ref": "Announcement" - } - }, - "get": { - "id": "classroom.courses.announcements.get", - "path": "v1/courses/{courseId}/announcements/{id}", - "description": "Returns an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\nrequested course or announcement, or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `NOT_FOUND` if the requested course or announcement does not exist.", - "response": { - "$ref": "Announcement" - }, - "parameterOrder": [ - "courseId", - "id" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements", - "https://www.googleapis.com/auth/classroom.announcements.readonly" - ], - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "description": "Identifier of the announcement.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/courses/{courseId}/announcements/{id}" - }, - "patch": { - "response": { - "$ref": "Announcement" - }, - "parameterOrder": [ - "courseId", - "id" - ], - "httpMethod": "PATCH", - "parameters": { - "courseId": { - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - }, - "id": { - "location": "path", - "description": "Identifier of the announcement.", - "type": "string", - "required": true - }, - "updateMask": { - "format": "google-fieldmask", - "description": "Mask that identifies which fields on the announcement to update.\nThis field is required to do an update. The update fails if invalid\nfields are specified. If a field supports empty values, it can be cleared\nby specifying it in the update mask and not in the Announcement object. If\na field that does not support empty values is included in the update mask\nand not set in the Announcement object, an `INVALID_ARGUMENT` error will be\nreturned.\n\nThe following fields may be specified by teachers:\n\n* `text`\n* `state`\n* `scheduled_time`", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.announcements" - ], - "flatPath": "v1/courses/{courseId}/announcements/{id}", - "id": "classroom.courses.announcements.patch", - "path": "v1/courses/{courseId}/announcements/{id}", - "description": "Updates one or more fields of an announcement.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting developer project did not create\nthe corresponding announcement or for access errors.\n* `INVALID_ARGUMENT` if the request is malformed.\n* `FAILED_PRECONDITION` if the requested announcement has already been\ndeleted.\n* `NOT_FOUND` if the requested course or announcement does not exist", - "request": { - "$ref": "Announcement" - } - } - } - }, - "aliases": { - "methods": { - "list": { - "description": "Returns a list of aliases for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to access the\ncourse or for access errors.\n* `NOT_FOUND` if the course does not exist.", - "httpMethod": "GET", - "parameterOrder": [ - "courseId" - ], - "response": { - "$ref": "ListCourseAliasesResponse" - }, - "parameters": { - "pageSize": { - "format": "int32", - "description": "Maximum number of items to return. Zero or unspecified indicates that the\nserver may assign a maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer", - "location": "query" - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "The identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call,\nindicating that the subsequent page of results should be returned.\n\nThe list request\nmust be otherwise identical to the one that resulted in this token." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses", - "https://www.googleapis.com/auth/classroom.courses.readonly" - ], - "flatPath": "v1/courses/{courseId}/aliases", - "path": "v1/courses/{courseId}/aliases", - "id": "classroom.courses.aliases.list" - }, - "create": { - "description": "Creates an alias for a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create the\nalias or for access errors.\n* `NOT_FOUND` if the course does not exist.\n* `ALREADY_EXISTS` if the alias already exists.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n requesting user or course (for example, if a user not in a domain\n attempts to access a domain-scoped alias).", - "request": { - "$ref": "CourseAlias" - }, - "response": { - "$ref": "CourseAlias" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "POST", - "parameters": { - "courseId": { - "description": "Identifier of the course to alias.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" - ], - "flatPath": "v1/courses/{courseId}/aliases", - "id": "classroom.courses.aliases.create", - "path": "v1/courses/{courseId}/aliases" - }, - "delete": { - "description": "Deletes an alias of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to remove the\nalias or for access errors.\n* `NOT_FOUND` if the alias does not exist.\n* `FAILED_PRECONDITION` if the alias requested does not make sense for the\n requesting user or course (for example, if a user not in a domain\n attempts to delete a domain-scoped alias).", - "httpMethod": "DELETE", - "parameterOrder": [ - "courseId", - "alias" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "alias": { - "location": "path", - "description": "Alias to delete.\nThis may not be the Classroom-assigned identifier.", - "type": "string", - "required": true - }, - "courseId": { - "location": "path", - "description": "Identifier of the course whose alias should be deleted.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.courses" - ], - "flatPath": "v1/courses/{courseId}/aliases/{alias}", - "path": "v1/courses/{courseId}/aliases/{alias}", - "id": "classroom.courses.aliases.delete" - } - } - }, - "students": { - "methods": { - "create": { - "request": { - "$ref": "Student" - }, - "description": "Adds a user as a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to create\nstudents in this course or for access errors.\n* `NOT_FOUND` if the requested course ID does not exist.\n* `FAILED_PRECONDITION` if the requested user's account is disabled,\nfor the following request errors:\n * CourseMemberLimitReached\n * CourseNotModifiable\n * UserGroupsMembershipLimitReached\n* `ALREADY_EXISTS` if the user is already a student or teacher in the\ncourse.", - "httpMethod": "POST", - "parameterOrder": [ - "courseId" - ], - "response": { - "$ref": "Student" - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters" - ], - "parameters": { - "courseId": { - "description": "Identifier of the course to create the student in.\nThis identifier can be either the Classroom-assigned identifier or an\nalias.", - "type": "string", - "required": true, - "location": "path" - }, - "enrollmentCode": { - "location": "query", - "description": "Enrollment code of the course to create the student in.\nThis code is required if userId\ncorresponds to the requesting user; it may be omitted if the requesting\nuser has administrative permissions to create students for any user.", - "type": "string" - } - }, - "flatPath": "v1/courses/{courseId}/students", - "path": "v1/courses/{courseId}/students", - "id": "classroom.courses.students.create" - }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/classroom.rosters" - ], - "parameters": { - "userId": { - "description": "Identifier of the student to delete. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true, - "location": "path" - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - } - }, - "flatPath": "v1/courses/{courseId}/students/{userId}", - "id": "classroom.courses.students.delete", - "path": "v1/courses/{courseId}/students/{userId}", - "description": "Deletes a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to delete\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "courseId", - "userId" - ], - "httpMethod": "DELETE" - }, - "list": { - "description": "Returns a list of students of this course that the requester\nis permitted to view.\n\nThis method returns the following error codes:\n\n* `NOT_FOUND` if the course does not exist.\n* `PERMISSION_DENIED` for access errors.", - "response": { - "$ref": "ListStudentsResponse" - }, - "parameterOrder": [ - "courseId" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "description": "nextPageToken\nvalue returned from a previous\nlist call, indicating that\nthe subsequent page of results should be returned.\n\nThe list request must be\notherwise identical to the one that resulted in this token.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of items to return. Zero means no maximum.\n\nThe server may return fewer than the specified number of results.", - "type": "integer", - "location": "query" - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "flatPath": "v1/courses/{courseId}/students", - "id": "classroom.courses.students.list", - "path": "v1/courses/{courseId}/students" - }, - "get": { - "flatPath": "v1/courses/{courseId}/students/{userId}", - "id": "classroom.courses.students.get", - "path": "v1/courses/{courseId}/students/{userId}", - "description": "Returns a student of a course.\n\nThis method returns the following error codes:\n\n* `PERMISSION_DENIED` if the requesting user is not permitted to view\nstudents of this course or for access errors.\n* `NOT_FOUND` if no student of this course has the requested ID or if the\ncourse does not exist.", - "response": { - "$ref": "Student" - }, - "httpMethod": "GET", - "parameterOrder": [ - "courseId", - "userId" - ], - "scopes": [ - "https://www.googleapis.com/auth/classroom.profile.emails", - "https://www.googleapis.com/auth/classroom.profile.photos", - "https://www.googleapis.com/auth/classroom.rosters", - "https://www.googleapis.com/auth/classroom.rosters.readonly" - ], - "parameters": { - "userId": { - "description": "Identifier of the student to return. The identifier can be one of the\nfollowing:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string", - "required": true, - "location": "path" - }, - "courseId": { - "type": "string", - "required": true, - "location": "path", - "description": "Identifier of the course.\nThis identifier can be either the Classroom-assigned identifier or an\nalias." - } - } - } + "$ref": "Registration" } } } @@ -1836,27 +1835,28 @@ }, "parameters": { "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "type": "boolean", + "default": "true" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, "$.xgafv": { + "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", @@ -1866,8 +1866,7 @@ "enum": [ "1", "2" - ], - "description": "V1 error format." + ] }, "callback": { "location": "query", @@ -1875,6 +1874,7 @@ "type": "string" }, "alt": { + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -1887,18 +1887,17 @@ "json", "media", "proto" - ], - "type": "string" + ] }, "access_token": { - "type": "string", "location": "query", - "description": "OAuth access token." + "description": "OAuth access token.", + "type": "string" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "quotaUser": { "location": "query", @@ -1906,1113 +1905,53 @@ "type": "string" }, "pp": { - "default": "true", "type": "boolean", + "default": "true", "location": "query", "description": "Pretty-print response." }, - "bearer_token": { + "oauth_token": { "location": "query", - "description": "OAuth bearer token.", + "description": "OAuth 2.0 token for the current user.", "type": "string" }, - "oauth_token": { + "bearer_token": { + "description": "OAuth bearer token.", "type": "string", - "location": "query", - "description": "OAuth 2.0 token for the current user." + "location": "query" } }, "schemas": { - "Date": { - "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", - "type": "object", - "properties": { - "month": { - "format": "int32", - "description": "Month of year. Must be from 1 to 12.", - "type": "integer" - }, - "day": { - "format": "int32", - "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", - "type": "integer" - }, - "year": { - "format": "int32", - "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", - "type": "integer" - } - }, - "id": "Date" - }, - "Name": { - "description": "Details of the user's name.", - "type": "object", - "properties": { - "familyName": { - "description": "The user's last name.\n\nRead-only.", - "type": "string" - }, - "givenName": { - "description": "The user's first name.\n\nRead-only.", - "type": "string" - }, - "fullName": { - "description": "The user's full name formed by concatenating the first and last name\nvalues.\n\nRead-only.", - "type": "string" - } - }, - "id": "Name" - }, - "Assignment": { - "description": "Additional details for assignments.", - "type": "object", - "properties": { - "studentWorkFolder": { - "$ref": "DriveFolder", - "description": "Drive folder where attachments from student submissions are placed.\nThis is only populated for course teachers and administrators." - } - }, - "id": "Assignment" - }, - "SharedDriveFile": { - "properties": { - "shareMode": { - "enumDescriptions": [ - "No sharing mode specified. This should never be returned.", - "Students can view the shared file.", - "Students can edit the shared file.", - "Students have a personal copy of the shared file." - ], - "enum": [ - "UNKNOWN_SHARE_MODE", - "VIEW", - "EDIT", - "STUDENT_COPY" - ], - "description": "Mechanism by which students access the Drive item.", - "type": "string" - }, - "driveFile": { - "$ref": "DriveFile", - "description": "Drive file details." - } - }, - "id": "SharedDriveFile", - "description": "Drive file that is used as material for course work.", - "type": "object" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "ModifyAnnouncementAssigneesRequest": { - "id": "ModifyAnnouncementAssigneesRequest", - "description": "Request to modify assignee mode and options of an announcement.", - "type": "object", - "properties": { - "assigneeMode": { - "enum": [ - "ASSIGNEE_MODE_UNSPECIFIED", - "ALL_STUDENTS", - "INDIVIDUAL_STUDENTS" - ], - "description": "Mode of the announcement describing whether it will be accessible by all\nstudents or specified individual students.", - "type": "string", - "enumDescriptions": [ - "No mode specified. This is never returned.", - "All students can see the item.\nThis is the default state.", - "A subset of the students can see the item." - ] - }, - "modifyIndividualStudentsOptions": { - "$ref": "ModifyIndividualStudentsOptions", - "description": "Set which students can view or cannot view the announcement.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`." - } - } - }, - "GlobalPermission": { - "properties": { - "permission": { - "description": "Permission value.", - "type": "string", - "enumDescriptions": [ - "No permission is specified. This is not returned and is not a\nvalid value.", - "User is permitted to create a course." - ], - "enum": [ - "PERMISSION_UNSPECIFIED", - "CREATE_COURSE" - ] - } - }, - "id": "GlobalPermission", - "description": "Global user permission description.", - "type": "object" - }, - "Teacher": { - "description": "Teacher of a course.", - "type": "object", - "properties": { - "courseId": { - "description": "Identifier of the course.\n\nRead-only.", - "type": "string" - }, - "profile": { - "$ref": "UserProfile", - "description": "Global user information for the teacher.\n\nRead-only." - }, - "userId": { - "type": "string", - "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user" - } - }, - "id": "Teacher" - }, - "GradeHistory": { - "description": "The history of each grade on this submission.", - "type": "object", - "properties": { - "actorUserId": { - "type": "string", - "description": "The teacher who made the grade change." - }, - "gradeChangeType": { - "enumDescriptions": [ - "No grade change type specified. This should never be returned.", - "A change in the numerator of the draft grade.", - "A change in the numerator of the assigned grade.", - "A change in the denominator of the grade." - ], - "enum": [ - "UNKNOWN_GRADE_CHANGE_TYPE", - "DRAFT_GRADE_POINTS_EARNED_CHANGE", - "ASSIGNED_GRADE_POINTS_EARNED_CHANGE", - "MAX_POINTS_CHANGE" - ], - "description": "The type of grade change at this time in the submission grade history.", - "type": "string" - }, - "gradeTimestamp": { - "format": "google-datetime", - "description": "When the grade of the submission was changed.", - "type": "string" - }, - "maxPoints": { - "format": "double", - "description": "The denominator of the grade at this time in the submission grade\nhistory.", - "type": "number" - }, - "pointsEarned": { - "format": "double", - "description": "The numerator of the grade at this time in the submission grade history.", - "type": "number" - } - }, - "id": "GradeHistory" - }, - "AssignmentSubmission": { - "description": "Student work for an assignment.", - "type": "object", - "properties": { - "attachments": { - "items": { - "$ref": "Attachment" - }, - "type": "array", - "description": "Attachments added by the student.\nDrive files that correspond to materials with a share mode of\nSTUDENT_COPY may not exist yet if the student has not accessed the\nassignment in Classroom.\n\nSome attachment metadata is only populated if the requesting user has\npermission to access it. Identifier and alternate_link fields are always\navailable, but others (e.g. title) may not be." - } - }, - "id": "AssignmentSubmission" - }, - "Material": { - "description": "Material attached to course work.\n\nWhen creating attachments, setting the `form` field is not supported.", - "type": "object", - "properties": { - "link": { - "$ref": "Link", - "description": "Link material. On creation, will be upgraded to a more appropriate type\nif possible, and this will be reflected in the response." - }, - "youtubeVideo": { - "$ref": "YouTubeVideo", - "description": "YouTube video material." - }, - "driveFile": { - "description": "Google Drive file material.", - "$ref": "SharedDriveFile" - }, - "form": { - "$ref": "Form", - "description": "Google Forms material." - } - }, - "id": "Material" - }, - "Feed": { - "properties": { - "courseRosterChangesInfo": { - "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.\nThis field must be specified if `feed_type` is `COURSE_ROSTER_CHANGES`.", - "$ref": "CourseRosterChangesInfo" - }, - "feedType": { - "type": "string", - "enumDescriptions": [ - "Should never be returned or provided.", - "All roster changes for a particular domain.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation.", - "All roster changes for a particular course.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation." - ], - "enum": [ - "FEED_TYPE_UNSPECIFIED", - "DOMAIN_ROSTER_CHANGES", - "COURSE_ROSTER_CHANGES" - ], - "description": "The type of feed." - } - }, - "id": "Feed", - "description": "A class of notifications that an application can register to receive.\nFor example: \"all roster changes for a domain\".", - "type": "object" - }, - "Student": { - "description": "Student in a course.", - "type": "object", - "properties": { - "studentWorkFolder": { - "$ref": "DriveFolder", - "description": "Information about a Drive Folder for this student's work in this course.\nOnly visible to the student and domain administrators.\n\nRead-only." - }, - "profile": { - "description": "Global user information for the student.\n\nRead-only.", - "$ref": "UserProfile" - }, - "userId": { - "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string" - }, - "courseId": { - "description": "Identifier of the course.\n\nRead-only.", - "type": "string" - } - }, - "id": "Student" - }, - "Invitation": { - "description": "An invitation to join a course.", - "type": "object", - "properties": { - "id": { - "description": "Identifier assigned by Classroom.\n\nRead-only.", - "type": "string" - }, - "role": { - "enum": [ - "COURSE_ROLE_UNSPECIFIED", - "STUDENT", - "TEACHER", - "OWNER" - ], - "description": "Role to invite the user to have.\nMust not be `COURSE_ROLE_UNSPECIFIED`.", - "type": "string", - "enumDescriptions": [ - "No course role.", - "Student in the course.", - "Teacher of the course.", - "Owner of the course." - ] - }, - "userId": { - "description": "Identifier of the invited user.\n\nWhen specified as a parameter of a request, this identifier can be set to\none of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", - "type": "string" - }, - "courseId": { - "description": "Identifier of the course to invite the user to.", - "type": "string" - } - }, - "id": "Invitation" - }, - "TurnInStudentSubmissionRequest": { - "properties": {}, - "id": "TurnInStudentSubmissionRequest", - "description": "Request to turn in a student submission.", - "type": "object" - }, - "ListCourseWorkResponse": { - "description": "Response when listing course work.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "courseWork": { - "description": "Course work items that match the request.", - "items": { - "$ref": "CourseWork" - }, - "type": "array" - } - }, - "id": "ListCourseWorkResponse" - }, - "Attachment": { - "description": "Attachment added to student assignment work.\n\nWhen creating attachments, setting the `form` field is not supported.", - "type": "object", - "properties": { - "youTubeVideo": { - "$ref": "YouTubeVideo", - "description": "Youtube video attachment." - }, - "driveFile": { - "description": "Google Drive file attachment.", - "$ref": "DriveFile" - }, - "form": { - "$ref": "Form", - "description": "Google Forms attachment." - }, - "link": { - "$ref": "Link", - "description": "Link attachment." - } - }, - "id": "Attachment" - }, - "ListAnnouncementsResponse": { - "description": "Response when listing course work.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "announcements": { - "description": "Announcement items that match the request.", - "items": { - "$ref": "Announcement" - }, - "type": "array" - } - }, - "id": "ListAnnouncementsResponse" - }, - "TimeOfDay": { - "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.", - "type": "object", - "properties": { - "hours": { - "format": "int32", - "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.", - "type": "integer" - }, - "nanos": { - "format": "int32", - "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", - "type": "integer" - }, - "seconds": { - "type": "integer", - "format": "int32", - "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds." - }, - "minutes": { - "format": "int32", - "description": "Minutes of hour of day. Must be from 0 to 59.", - "type": "integer" - } - }, - "id": "TimeOfDay" - }, - "ListCoursesResponse": { - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "courses": { - "description": "Courses that match the list request.", - "items": { - "$ref": "Course" - }, - "type": "array" - } - }, - "id": "ListCoursesResponse", - "description": "Response when listing courses.", - "type": "object" - }, - "Form": { - "id": "Form", - "description": "Google Forms item.", - "type": "object", - "properties": { - "formUrl": { - "description": "URL of the form.", - "type": "string" - }, - "title": { - "type": "string", - "description": "Title of the Form.\n\nRead-only." - }, - "thumbnailUrl": { - "description": "URL of a thumbnail image of the Form.\n\nRead-only.", - "type": "string" - }, - "responseUrl": { - "description": "URL of the form responses document.\nOnly set if respsonses have been recorded and only when the\nrequesting user is an editor of the form.\n\nRead-only.", - "type": "string" - } - } - }, - "ModifyCourseWorkAssigneesRequest": { - "id": "ModifyCourseWorkAssigneesRequest", - "description": "Request to modify assignee mode and options of a coursework.", - "type": "object", - "properties": { - "assigneeMode": { - "description": "Mode of the coursework describing whether it will be assigned to all\nstudents or specified individual students.", - "type": "string", - "enumDescriptions": [ - "No mode specified. This is never returned.", - "All students can see the item.\nThis is the default state.", - "A subset of the students can see the item." - ], - "enum": [ - "ASSIGNEE_MODE_UNSPECIFIED", - "ALL_STUDENTS", - "INDIVIDUAL_STUDENTS" - ] - }, - "modifyIndividualStudentsOptions": { - "$ref": "ModifyIndividualStudentsOptions", - "description": "Set which students are assigned or not assigned to the coursework.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`." - } - } - }, - "ListGuardiansResponse": { - "description": "Response when listing guardians.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "guardians": { - "description": "Guardians on this page of results that met the criteria specified in\nthe request.", - "items": { - "$ref": "Guardian" - }, - "type": "array" - } - }, - "id": "ListGuardiansResponse" - }, - "CourseAlias": { - "description": "Alternative identifier for a course.\n\nAn alias uniquely identifies a course. It must be unique within one of the\nfollowing scopes:\n\n* domain: A domain-scoped alias is visible to all users within the alias\ncreator's domain and can be created only by a domain admin. A domain-scoped\nalias is often used when a course has an identifier external to Classroom.\n\n* project: A project-scoped alias is visible to any request from an\napplication using the Developer Console project ID that created the alias\nand can be created by any project. A project-scoped alias is often used when\nan application has alternative identifiers. A random value can also be used\nto avoid duplicate courses in the event of transmission failures, as retrying\na request will return `ALREADY_EXISTS` if a previous one has succeeded.", - "type": "object", - "properties": { - "alias": { - "description": "Alias string. The format of the string indicates the desired alias scoping.\n\n* `d:\u003cname\u003e` indicates a domain-scoped alias.\n Example: `d:math_101`\n* `p:\u003cname\u003e` indicates a project-scoped alias.\n Example: `p:abc123`\n\nThis field has a maximum length of 256 characters.", - "type": "string" - } - }, - "id": "CourseAlias" - }, - "ListCourseAliasesResponse": { - "description": "Response when listing course aliases.", - "type": "object", - "properties": { - "aliases": { - "items": { - "$ref": "CourseAlias" - }, - "type": "array", - "description": "The course aliases." - }, - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - } - }, - "id": "ListCourseAliasesResponse" - }, - "ListGuardianInvitationsResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "guardianInvitations": { - "items": { - "$ref": "GuardianInvitation" - }, - "type": "array", - "description": "Guardian invitations that matched the list request." - } - }, - "id": "ListGuardianInvitationsResponse", - "description": "Response when listing guardian invitations." - }, - "IndividualStudentsOptions": { - "description": "Assignee details about a coursework/announcement.\nThis field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.", - "type": "object", - "properties": { - "studentIds": { - "description": "Identifiers for the students that have access to the\ncoursework/announcement.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "IndividualStudentsOptions" - }, - "MultipleChoiceSubmission": { - "description": "Student work for a multiple-choice question.", - "type": "object", - "properties": { - "answer": { - "description": "Student's select choice.", - "type": "string" - } - }, - "id": "MultipleChoiceSubmission" - }, - "Registration": { - "description": "An instruction to Classroom to send notifications from the `feed` to the\nprovided `destination`.", - "type": "object", - "properties": { - "feed": { - "description": "Specification for the class of notifications that Classroom should deliver\nto the `destination`.", - "$ref": "Feed" - }, - "registrationId": { - "description": "A server-generated unique identifier for this `Registration`.\n\nRead-only.", - "type": "string" - }, - "expiryTime": { - "format": "google-datetime", - "description": "The time until which the `Registration` is effective.\n\nThis is a read-only field assigned by the server.", - "type": "string" - }, - "cloudPubsubTopic": { - "$ref": "CloudPubsubTopic", - "description": "The Cloud Pub/Sub topic that notifications are to be sent to." - } - }, - "id": "Registration" - }, - "CourseMaterial": { - "type": "object", - "properties": { - "form": { - "$ref": "Form", - "description": "Google Forms attachment." - }, - "link": { - "description": "Link atatchment.", - "$ref": "Link" - }, - "youTubeVideo": { - "$ref": "YouTubeVideo", - "description": "Youtube video attachment." - }, - "driveFile": { - "$ref": "DriveFile", - "description": "Google Drive file attachment." - } - }, - "id": "CourseMaterial", - "description": "A material attached to a course as part of a material set." - }, - "MultipleChoiceQuestion": { - "id": "MultipleChoiceQuestion", - "description": "Additional details for multiple-choice questions.", - "type": "object", - "properties": { - "choices": { - "description": "Possible choices.", - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "Course": { - "properties": { - "creationTime": { - "type": "string", - "format": "google-datetime", - "description": "Creation time of the course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only." - }, - "name": { - "description": "Name of the course.\nFor example, \"10th Grade Biology\".\nThe name is required. It must be between 1 and 750 characters and a valid\nUTF-8 string.", - "type": "string" - }, - "teacherFolder": { - "$ref": "DriveFolder", - "description": "Information about a Drive Folder that is shared with all teachers of the\ncourse.\n\nThis field will only be set for teachers of the course and domain administrators.\n\nRead-only." - }, - "section": { - "description": "Section of the course.\nFor example, \"Period 2\".\nIf set, this field must be a valid UTF-8 string and no longer than 2800\ncharacters.", - "type": "string" - }, - "id": { - "description": "Identifier for this course assigned by Classroom.\n\nWhen\ncreating a course,\nyou may optionally set this identifier to an\nalias string in the\nrequest to create a corresponding alias. The `id` is still assigned by\nClassroom and cannot be updated after the course is created.\n\nSpecifying this field in a course update mask results in an error.", - "type": "string" - }, - "room": { - "description": "Optional room location.\nFor example, \"301\".\nIf set, this field must be a valid UTF-8 string and no longer than 650\ncharacters.", - "type": "string" - }, - "courseGroupEmail": { - "description": "The email address of a Google group containing all members of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only.", - "type": "string" - }, - "enrollmentCode": { - "description": "Enrollment code to use when joining this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.", - "type": "string" - }, - "courseMaterialSets": { - "description": "Sets of materials that appear on the \"about\" page of this course.\n\nRead-only.", - "items": { - "$ref": "CourseMaterialSet" - }, - "type": "array" - }, - "descriptionHeading": { - "description": "Optional heading for the description.\nFor example, \"Welcome to 10th Grade Biology.\"\nIf set, this field must be a valid UTF-8 string and no longer than 3600\ncharacters.", - "type": "string" - }, - "updateTime": { - "type": "string", - "format": "google-datetime", - "description": "Time of the most recent update to this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only." - }, - "calendarId": { - "description": "The Calendar ID for a calendar that all course members can see, to which\nClassroom adds events for course work and announcements in the course.\n\nRead-only.", - "type": "string" - }, - "alternateLink": { - "description": "Absolute link to this course in the Classroom web UI.\n\nRead-only.", - "type": "string" - }, - "guardiansEnabled": { - "description": "Whether or not guardian notifications are enabled for this course.\n\nRead-only.", - "type": "boolean" - }, - "ownerId": { - "type": "string", - "description": "The identifier of the owner of a course.\n\nWhen specified as a parameter of a\ncreate course request, this\nfield is required.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n\nThis must be set in a create request. Admins can also specify this field\nin a patch course request to\ntransfer ownership. In other contexts, it is read-only." - }, - "courseState": { - "enumDescriptions": [ - "No course state. No returned Course message will use this value.", - "The course is active.", - "The course has been archived. You cannot modify it except to change it\nto a different state.", - "The course has been created, but not yet activated. It is accessible by\nthe primary teacher and domain administrators, who may modify it or\nchange it to the `ACTIVE` or `DECLINED` states.\nA course may only be changed to `PROVISIONED` if it is in the `DECLINED`\nstate.", - "The course has been created, but declined. It is accessible by the\ncourse owner and domain administrators, though it will not be\ndisplayed in the web UI. You cannot modify the course except to change it\nto the `PROVISIONED` state.\nA course may only be changed to `DECLINED` if it is in the `PROVISIONED`\nstate.", - "The course has been suspended. You cannot modify the course, and only the\nuser identified by the `owner_id` can view the course.\nA course may be placed in this state if it potentially violates the\nTerms of Service." - ], - "enum": [ - "COURSE_STATE_UNSPECIFIED", - "ACTIVE", - "ARCHIVED", - "PROVISIONED", - "DECLINED", - "SUSPENDED" - ], - "description": "State of the course.\nIf unspecified, the default state is `PROVISIONED`.", - "type": "string" - }, - "description": { - "description": "Optional description.\nFor example, \"We'll be learning about the structure of living\ncreatures from a combination of textbooks, guest lectures, and lab work.\nExpect to be excited!\"\nIf set, this field must be a valid UTF-8 string and no longer than 30,000\ncharacters.", - "type": "string" - }, - "teacherGroupEmail": { - "description": "The email address of a Google group containing all teachers of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only.", - "type": "string" - } - }, - "id": "Course", - "description": "A Course in Classroom.", - "type": "object" - }, - "DriveFile": { - "description": "Representation of a Google Drive file.", - "type": "object", - "properties": { - "alternateLink": { - "description": "URL that can be used to access the Drive item.\n\nRead-only.", - "type": "string" - }, - "thumbnailUrl": { - "description": "URL of a thumbnail image of the Drive item.\n\nRead-only.", - "type": "string" - }, - "id": { - "type": "string", - "description": "Drive API resource ID." - }, - "title": { - "description": "Title of the Drive item.\n\nRead-only.", - "type": "string" - } - }, - "id": "DriveFile" - }, - "ReturnStudentSubmissionRequest": { - "description": "Request to return a student submission.", - "type": "object", - "properties": {}, - "id": "ReturnStudentSubmissionRequest" - }, - "ReclaimStudentSubmissionRequest": { - "properties": {}, - "id": "ReclaimStudentSubmissionRequest", - "description": "Request to reclaim a student submission.", - "type": "object" - }, - "CourseRosterChangesInfo": { - "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.", - "type": "object", - "properties": { - "courseId": { - "description": "The `course_id` of the course to subscribe to roster changes for.", - "type": "string" - } - }, - "id": "CourseRosterChangesInfo" - }, - "CourseWork": { - "description": "Course work created by a teacher for students of the course.", - "type": "object", - "properties": { - "courseId": { - "description": "Identifier of the course.\n\nRead-only.", - "type": "string" - }, - "id": { - "description": "Classroom-assigned identifier of this course work, unique per course.\n\nRead-only.", - "type": "string" - }, - "dueTime": { - "$ref": "TimeOfDay", - "description": "Optional time of day, in UTC, that submissions for this this course work\nare due.\nThis must be specified if `due_date` is specified." - }, - "title": { - "description": "Title of this course work.\nThe title must be a valid UTF-8 string containing between 1 and 3000\ncharacters.", - "type": "string" - }, - "associatedWithDeveloper": { - "type": "boolean", - "description": "Whether this course work item is associated with the Developer Console\nproject making the request.\n\nSee google.classroom.Work.CreateCourseWork for more\ndetails.\n\nRead-only." - }, - "materials": { - "description": "Additional materials.\n\nCourseWork must have no more than 20 material items.", - "items": { - "$ref": "Material" - }, - "type": "array" - }, - "updateTime": { - "type": "string", - "format": "google-datetime", - "description": "Timestamp of the most recent change to this course work.\n\nRead-only." - }, - "assigneeMode": { - "type": "string", - "enumDescriptions": [ - "No mode specified. This is never returned.", - "All students can see the item.\nThis is the default state.", - "A subset of the students can see the item." - ], - "enum": [ - "ASSIGNEE_MODE_UNSPECIFIED", - "ALL_STUDENTS", - "INDIVIDUAL_STUDENTS" - ], - "description": "Assignee mode of the coursework.\nIf unspecified, the default value is `ALL_STUDENTS`." - }, - "alternateLink": { - "description": "Absolute link to this course work in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.", - "type": "string" - }, - "maxPoints": { - "type": "number", - "format": "double", - "description": "Maximum grade for this course work.\nIf zero or unspecified, this assignment is considered ungraded.\nThis must be a non-negative integer value." - }, - "workType": { - "description": "Type of this course work.\n\nThe type is set when the course work is created and cannot be changed.", - "type": "string", - "enumDescriptions": [ - "No work type specified. This is never returned.", - "An assignment.", - "A short answer question.", - "A multiple-choice question." - ], - "enum": [ - "COURSE_WORK_TYPE_UNSPECIFIED", - "ASSIGNMENT", - "SHORT_ANSWER_QUESTION", - "MULTIPLE_CHOICE_QUESTION" - ] - }, - "assignment": { - "$ref": "Assignment", - "description": "Assignment details.\nThis is populated only when `work_type` is `ASSIGNMENT`.\n\nRead-only." - }, - "multipleChoiceQuestion": { - "description": "Multiple choice question details.\nFor read operations, this field is populated only when `work_type` is\n`MULTIPLE_CHOICE_QUESTION`.\nFor write operations, this field must be specified when creating course\nwork with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be\nset otherwise.", - "$ref": "MultipleChoiceQuestion" - }, - "description": { - "description": "Optional description of this course work.\nIf set, the description must be a valid UTF-8 string containing no more\nthan 30,000 characters.", - "type": "string" - }, - "scheduledTime": { - "format": "google-datetime", - "description": "Optional timestamp when this course work is scheduled to be published.", - "type": "string" - }, - "creationTime": { - "format": "google-datetime", - "description": "Timestamp when this course work was created.\n\nRead-only.", - "type": "string" - }, - "dueDate": { - "$ref": "Date", - "description": "Optional date, in UTC, that submissions for this this course work are due.\nThis must be specified if `due_time` is specified." - }, - "individualStudentsOptions": { - "description": "Identifiers of students with access to the coursework.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students\nspecified in this field will be assigned the coursework.", - "$ref": "IndividualStudentsOptions" - }, - "creatorUserId": { - "description": "Identifier for the user that created the coursework.\n\nRead-only.", - "type": "string" - }, - "state": { - "description": "Status of this course work.\nIf unspecified, the default state is `DRAFT`.", - "type": "string", - "enumDescriptions": [ - "No state specified. This is never returned.", - "Status for work that has been published.\nThis is the default state.", - "Status for work that is not yet published.\nWork in this state is visible only to course teachers and domain\nadministrators.", - "Status for work that was published but is now deleted.\nWork in this state is visible only to course teachers and domain\nadministrators.\nWork in this state is deleted after some time." - ], - "enum": [ - "COURSE_WORK_STATE_UNSPECIFIED", - "PUBLISHED", - "DRAFT", - "DELETED" - ] - }, - "submissionModificationMode": { - "enumDescriptions": [ - "No modification mode specified. This is never returned.", - "Submisisons can be modified before being turned in.", - "Submisisons can be modified at any time." - ], - "enum": [ - "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED", - "MODIFIABLE_UNTIL_TURNED_IN", - "MODIFIABLE" - ], - "description": "Setting to determine when students are allowed to modify submissions.\nIf unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.", - "type": "string" - } - }, - "id": "CourseWork" - }, - "Guardian": { - "id": "Guardian", - "description": "Association between a student and a guardian of that student. The guardian\nmay receive information about the student's course work.", - "type": "object", - "properties": { - "invitedEmailAddress": { - "description": "The email address to which the initial guardian invitation was sent.\nThis field is only visible to domain administrators.", - "type": "string" - }, - "guardianId": { - "description": "Identifier for the guardian.", - "type": "string" - }, - "guardianProfile": { - "$ref": "UserProfile", - "description": "User profile for the guardian." - }, - "studentId": { - "description": "Identifier for the student to whom the guardian relationship applies.", - "type": "string" - } - } - }, - "UserProfile": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user.\n\nRead-only.", - "$ref": "Name" - }, - "id": { - "description": "Identifier of the user.\n\nRead-only.", - "type": "string" - }, - "verifiedTeacher": { - "description": "Represents whether a G Suite for Education user's domain administrator has\nexplicitly verified them as being a teacher. If the user is not a member of\na G Suite for Education domain, than this field will always be false.\n\nRead-only", - "type": "boolean" - }, - "emailAddress": { - "description": "Email address of the user.\n\nRead-only.", - "type": "string" - }, - "photoUrl": { - "description": "URL of user's profile photo.\n\nRead-only.", - "type": "string" - }, - "permissions": { - "description": "Global permissions of the user.\n\nRead-only.", - "items": { - "$ref": "GlobalPermission" - }, - "type": "array" - } - }, - "id": "UserProfile", - "description": "Global information for a user." - }, - "ListStudentsResponse": { - "properties": { - "nextPageToken": { - "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", - "type": "string" - }, - "students": { - "items": { - "$ref": "Student" - }, - "type": "array", - "description": "Students who match the list request." - } - }, - "id": "ListStudentsResponse", - "description": "Response when listing students.", - "type": "object" - }, - "Announcement": { - "description": "Announcement created by a teacher for students of the course", - "type": "object", - "properties": { - "text": { - "description": "Description of this announcement.\nThe text must be a valid UTF-8 string containing no more\nthan 30,000 characters.", - "type": "string" - }, - "courseId": { - "description": "Identifier of the course.\n\nRead-only.", - "type": "string" - }, - "id": { - "description": "Classroom-assigned identifier of this announcement, unique per course.\n\nRead-only.", - "type": "string" - }, - "materials": { - "description": "Additional materials.\n\nAnnouncements must have no more than 20 material items.", - "items": { - "$ref": "Material" - }, - "type": "array" - }, - "updateTime": { - "format": "google-datetime", - "description": "Timestamp of the most recent change to this announcement.\n\nRead-only.", - "type": "string" - }, - "alternateLink": { - "description": "Absolute link to this announcement in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.", - "type": "string" - }, - "assigneeMode": { - "enumDescriptions": [ - "No mode specified. This is never returned.", - "All students can see the item.\nThis is the default state.", - "A subset of the students can see the item." - ], - "enum": [ - "ASSIGNEE_MODE_UNSPECIFIED", - "ALL_STUDENTS", - "INDIVIDUAL_STUDENTS" - ], - "description": "Assignee mode of the announcement.\nIf unspecified, the default value is `ALL_STUDENTS`.", - "type": "string" - }, - "scheduledTime": { - "format": "google-datetime", - "description": "Optional timestamp when this announcement is scheduled to be published.", - "type": "string" - }, - "creationTime": { - "format": "google-datetime", - "description": "Timestamp when this announcement was created.\n\nRead-only.", - "type": "string" - }, - "individualStudentsOptions": { - "$ref": "IndividualStudentsOptions", - "description": "Identifiers of students with access to the announcement.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students specified in this\nfield will be able to see the announcement." - }, - "creatorUserId": { - "description": "Identifier for the user that created the announcement.\n\nRead-only.", - "type": "string" - }, - "state": { - "enum": [ - "ANNOUNCEMENT_STATE_UNSPECIFIED", - "PUBLISHED", - "DRAFT", - "DELETED" - ], - "description": "Status of this announcement.\nIf unspecified, the default state is `DRAFT`.", - "type": "string", - "enumDescriptions": [ - "No state specified. This is never returned.", - "Status for announcement that has been published.\nThis is the default state.", - "Status for an announcement that is not yet published.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.", - "Status for announcement that was published but is now deleted.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.\nAnnouncement in this state is deleted after some time." - ] - } - }, - "id": "Announcement" - }, "ModifyIndividualStudentsOptions": { "description": "Contains fields to add or remove students from a course work or announcement\nwhere the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.", "type": "object", "properties": { "addStudentIds": { + "description": "Ids of students to be added as having access to this\ncoursework/announcement.", + "type": "array", "items": { "type": "string" - }, - "type": "array", - "description": "Ids of students to be added as having access to this\ncoursework/announcement." + } }, "removeStudentIds": { "description": "Ids of students to be removed from having access to this\ncoursework/announcement.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, "id": "ModifyIndividualStudentsOptions" }, "DriveFolder": { + "id": "DriveFolder", "description": "Representation of a Google Drive folder.", "type": "object", "properties": { + "id": { + "description": "Drive API resource ID.", + "type": "string" + }, "title": { "description": "Title of the Drive folder.\n\nRead-only.", "type": "string" @@ -3020,25 +1959,20 @@ "alternateLink": { "description": "URL that can be used to access the Drive folder.\n\nRead-only.", "type": "string" - }, - "id": { - "description": "Drive API resource ID.", - "type": "string" } - }, - "id": "DriveFolder" + } }, "SubmissionHistory": { "description": "The history of the submission. This currently includes state and grade\nhistories.", "type": "object", "properties": { - "gradeHistory": { - "$ref": "GradeHistory", - "description": "The grade history information of the submission, if present." - }, "stateHistory": { "$ref": "StateHistory", "description": "The state history information of the submission, if present." + }, + "gradeHistory": { + "$ref": "GradeHistory", + "description": "The grade history information of the submission, if present." } }, "id": "SubmissionHistory" @@ -3058,75 +1992,12 @@ "description": "Student submission for course work.\n\nStudentSubmission items are generated when a CourseWork item is created.\n\nStudentSubmissions that have never been accessed (i.e. with `state` = NEW)\nmay not have a creation time or update time.", "type": "object", "properties": { - "assignedGrade": { - "format": "double", - "description": "Optional grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (i.e. non-integer) values are\nallowed, but will be rounded to two decimal places.\n\nThis may be modified only by course teachers.", - "type": "number" - }, - "multipleChoiceSubmission": { - "description": "Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.", - "$ref": "MultipleChoiceSubmission" - }, - "assignmentSubmission": { - "$ref": "AssignmentSubmission", - "description": "Submission content when course_work_type is ASSIGNMENT.\n\nStudents can modify this content using\ngoogle.classroom.Work.ModifyAttachments." - }, - "shortAnswerSubmission": { - "$ref": "ShortAnswerSubmission", - "description": "Submission content when course_work_type is SHORT_ANSWER_QUESTION." - }, - "associatedWithDeveloper": { - "description": "Whether this student submission is associated with the Developer Console\nproject making the request.\n\nSee google.classroom.Work.CreateCourseWork for more\ndetails.\n\nRead-only.", - "type": "boolean" - }, - "updateTime": { - "format": "google-datetime", - "description": "Last update time of this submission.\nThis may be unset if the student has not accessed this item.\n\nRead-only.", - "type": "string" - }, - "alternateLink": { - "description": "Absolute link to the submission in the Classroom web UI.\n\nRead-only.", - "type": "string" - }, - "late": { - "description": "Whether this submission is late.\n\nRead-only.", - "type": "boolean" - }, - "draftGrade": { - "format": "double", - "description": "Optional pending grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (i.e. non-integer) values are\nallowed, but will be rounded to two decimal places.\n\nThis is only visible to and modifiable by course teachers.", - "type": "number" - }, - "courseWorkType": { - "enum": [ - "COURSE_WORK_TYPE_UNSPECIFIED", - "ASSIGNMENT", - "SHORT_ANSWER_QUESTION", - "MULTIPLE_CHOICE_QUESTION" - ], - "description": "Type of course work this submission is for.\n\nRead-only.", - "type": "string", - "enumDescriptions": [ - "No work type specified. This is never returned.", - "An assignment.", - "A short answer question.", - "A multiple-choice question." - ] - }, "creationTime": { - "format": "google-datetime", "description": "Creation time of this submission.\nThis may be unset if the student has not accessed this item.\n\nRead-only.", + "format": "google-datetime", "type": "string" }, "state": { - "enum": [ - "SUBMISSION_STATE_UNSPECIFIED", - "NEW", - "CREATED", - "TURNED_IN", - "RETURNED", - "RECLAIMED_BY_STUDENT" - ], "description": "State of this submission.\n\nRead-only.", "type": "string", "enumDescriptions": [ @@ -3136,6 +2007,14 @@ "Has been turned in to the teacher.", "Has been returned to the student.", "Student chose to \"unsubmit\" the assignment." + ], + "enum": [ + "SUBMISSION_STATE_UNSPECIFIED", + "NEW", + "CREATED", + "TURNED_IN", + "RETURNED", + "RECLAIMED_BY_STUDENT" ] }, "userId": { @@ -3156,17 +2035,70 @@ }, "submissionHistory": { "description": "The history of the submission (includes state and grade histories).\n\nRead-only.", + "type": "array", "items": { "$ref": "SubmissionHistory" - }, - "type": "array" + } + }, + "assignedGrade": { + "description": "Optional grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (i.e. non-integer) values are\nallowed, but will be rounded to two decimal places.\n\nThis may be modified only by course teachers.", + "format": "double", + "type": "number" + }, + "multipleChoiceSubmission": { + "description": "Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.", + "$ref": "MultipleChoiceSubmission" + }, + "assignmentSubmission": { + "$ref": "AssignmentSubmission", + "description": "Submission content when course_work_type is ASSIGNMENT.\n\nStudents can modify this content using\ngoogle.classroom.Work.ModifyAttachments." + }, + "associatedWithDeveloper": { + "description": "Whether this student submission is associated with the Developer Console\nproject making the request.\n\nSee google.classroom.Work.CreateCourseWork for more\ndetails.\n\nRead-only.", + "type": "boolean" + }, + "shortAnswerSubmission": { + "$ref": "ShortAnswerSubmission", + "description": "Submission content when course_work_type is SHORT_ANSWER_QUESTION." + }, + "updateTime": { + "description": "Last update time of this submission.\nThis may be unset if the student has not accessed this item.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "alternateLink": { + "description": "Absolute link to the submission in the Classroom web UI.\n\nRead-only.", + "type": "string" + }, + "draftGrade": { + "description": "Optional pending grade. If unset, no grade was set.\nThis value must be non-negative. Decimal (i.e. non-integer) values are\nallowed, but will be rounded to two decimal places.\n\nThis is only visible to and modifiable by course teachers.", + "format": "double", + "type": "number" + }, + "late": { + "description": "Whether this submission is late.\n\nRead-only.", + "type": "boolean" + }, + "courseWorkType": { + "enumDescriptions": [ + "No work type specified. This is never returned.", + "An assignment.", + "A short answer question.", + "A multiple-choice question." + ], + "enum": [ + "COURSE_WORK_TYPE_UNSPECIFIED", + "ASSIGNMENT", + "SHORT_ANSWER_QUESTION", + "MULTIPLE_CHOICE_QUESTION" + ], + "description": "Type of course work this submission is for.\n\nRead-only.", + "type": "string" } }, "id": "StudentSubmission" }, "ListStudentSubmissionsResponse": { - "description": "Response when listing student submissions.", - "type": "object", "properties": { "nextPageToken": { "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", @@ -3174,13 +2106,15 @@ }, "studentSubmissions": { "description": "Student work that matches the request.", + "type": "array", "items": { "$ref": "StudentSubmission" - }, - "type": "array" + } } }, - "id": "ListStudentSubmissionsResponse" + "id": "ListStudentSubmissionsResponse", + "description": "Response when listing student submissions.", + "type": "object" }, "ModifyAttachmentsRequest": { "description": "Request to modify the attachments of a student submission.", @@ -3188,16 +2122,20 @@ "properties": { "addAttachments": { "description": "Attachments to add.\nA student submission may not have more than 20 attachments.\n\nForm attachments are not supported.", + "type": "array", "items": { "$ref": "Attachment" - }, - "type": "array" + } } }, "id": "ModifyAttachmentsRequest" }, "YouTubeVideo": { "properties": { + "thumbnailUrl": { + "type": "string", + "description": "URL of a thumbnail image of the YouTube video.\n\nRead-only." + }, "id": { "description": "YouTube API resource ID.", "type": "string" @@ -3209,10 +2147,6 @@ "alternateLink": { "description": "URL that can be used to view the YouTube video.\n\nRead-only.", "type": "string" - }, - "thumbnailUrl": { - "description": "URL of a thumbnail image of the YouTube video.\n\nRead-only.", - "type": "string" } }, "id": "YouTubeVideo", @@ -3229,10 +2163,10 @@ }, "invitations": { "description": "Invitations that match the list request.", + "type": "array", "items": { "$ref": "Invitation" - }, - "type": "array" + } } }, "id": "ListInvitationsResponse" @@ -3249,19 +2183,11 @@ "id": "CloudPubsubTopic" }, "GuardianInvitation": { + "description": "An invitation to become the guardian of a specified user, sent to a specified\nemail address.", "type": "object", "properties": { - "invitedEmailAddress": { - "description": "Email address that the invitation was sent to.\nThis field is only visible to domain administrators.", - "type": "string" - }, - "creationTime": { - "format": "google-datetime", - "description": "The time that this invitation was created.\n\nRead-only.", - "type": "string" - }, - "invitationId": { - "description": "Unique identifier for this invitation.\n\nRead-only.", + "studentId": { + "description": "ID of the student (in standard format)", "type": "string" }, "state": { @@ -3278,13 +2204,21 @@ "The invitation is no longer active. It may have been accepted, declined,\nwithdrawn or it may have expired." ] }, - "studentId": { + "invitedEmailAddress": { + "description": "Email address that the invitation was sent to.\nThis field is only visible to domain administrators.", + "type": "string" + }, + "creationTime": { "type": "string", - "description": "ID of the student (in standard format)" + "description": "The time that this invitation was created.\n\nRead-only.", + "format": "google-datetime" + }, + "invitationId": { + "type": "string", + "description": "Unique identifier for this invitation.\n\nRead-only." } }, - "id": "GuardianInvitation", - "description": "An invitation to become the guardian of a specified user, sent to a specified\nemail address." + "id": "GuardianInvitation" }, "StateHistory": { "description": "The history of each state this submission has been in.", @@ -3311,8 +2245,8 @@ ] }, "stateTimestamp": { - "format": "google-datetime", "description": "When the submission entered this state.", + "format": "google-datetime", "type": "string" }, "actorUserId": { @@ -3326,16 +2260,16 @@ "description": "A set of materials that appears on the \"About\" page of the course.\nThese materials might include a syllabus, schedule, or other background\ninformation relating to the course as a whole.", "type": "object", "properties": { - "materials": { - "description": "Materials attached to this set.", - "items": { - "$ref": "CourseMaterial" - }, - "type": "array" - }, "title": { "description": "Title for this set.", "type": "string" + }, + "materials": { + "description": "Materials attached to this set.", + "type": "array", + "items": { + "$ref": "CourseMaterial" + } } }, "id": "CourseMaterialSet" @@ -3350,17 +2284,15 @@ }, "teachers": { "description": "Teachers who match the list request.", + "type": "array", "items": { "$ref": "Teacher" - }, - "type": "array" + } } }, "id": "ListTeachersResponse" }, "Link": { - "description": "URL item.", - "type": "object", "properties": { "title": { "description": "Title of the target of the URL.\n\nRead-only.", @@ -3371,23 +2303,1099 @@ "type": "string" }, "url": { - "description": "URL to link to.\nThis must be a valid UTF-8 string containing between 1 and 2024 characters.", + "type": "string", + "description": "URL to link to.\nThis must be a valid UTF-8 string containing between 1 and 2024 characters." + } + }, + "id": "Link", + "description": "URL item.", + "type": "object" + }, + "Date": { + "properties": { + "year": { + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "format": "int32", + "type": "integer" + }, + "day": { + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of year. Must be from 1 to 12.", + "format": "int32", + "type": "integer" + } + }, + "id": "Date", + "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", + "type": "object" + }, + "Name": { + "id": "Name", + "description": "Details of the user's name.", + "type": "object", + "properties": { + "givenName": { + "description": "The user's first name.\n\nRead-only.", + "type": "string" + }, + "familyName": { + "description": "The user's last name.\n\nRead-only.", + "type": "string" + }, + "fullName": { + "description": "The user's full name formed by concatenating the first and last name\nvalues.\n\nRead-only.", + "type": "string" + } + } + }, + "Assignment": { + "description": "Additional details for assignments.", + "type": "object", + "properties": { + "studentWorkFolder": { + "$ref": "DriveFolder", + "description": "Drive folder where attachments from student submissions are placed.\nThis is only populated for course teachers and administrators." + } + }, + "id": "Assignment" + }, + "SharedDriveFile": { + "description": "Drive file that is used as material for course work.", + "type": "object", + "properties": { + "driveFile": { + "$ref": "DriveFile", + "description": "Drive file details." + }, + "shareMode": { + "enum": [ + "UNKNOWN_SHARE_MODE", + "VIEW", + "EDIT", + "STUDENT_COPY" + ], + "description": "Mechanism by which students access the Drive item.", + "type": "string", + "enumDescriptions": [ + "No sharing mode specified. This should never be returned.", + "Students can view the shared file.", + "Students can edit the shared file.", + "Students have a personal copy of the shared file." + ] + } + }, + "id": "SharedDriveFile" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "ModifyAnnouncementAssigneesRequest": { + "description": "Request to modify assignee mode and options of an announcement.", + "type": "object", + "properties": { + "assigneeMode": { + "enum": [ + "ASSIGNEE_MODE_UNSPECIFIED", + "ALL_STUDENTS", + "INDIVIDUAL_STUDENTS" + ], + "description": "Mode of the announcement describing whether it will be accessible by all\nstudents or specified individual students.", + "type": "string", + "enumDescriptions": [ + "No mode specified. This is never returned.", + "All students can see the item.\nThis is the default state.", + "A subset of the students can see the item." + ] + }, + "modifyIndividualStudentsOptions": { + "$ref": "ModifyIndividualStudentsOptions", + "description": "Set which students can view or cannot view the announcement.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`." + } + }, + "id": "ModifyAnnouncementAssigneesRequest" + }, + "GlobalPermission": { + "description": "Global user permission description.", + "type": "object", + "properties": { + "permission": { + "enum": [ + "PERMISSION_UNSPECIFIED", + "CREATE_COURSE" + ], + "description": "Permission value.", + "type": "string", + "enumDescriptions": [ + "No permission is specified. This is not returned and is not a\nvalid value.", + "User is permitted to create a course." + ] + } + }, + "id": "GlobalPermission" + }, + "Teacher": { + "properties": { + "profile": { + "description": "Global user information for the teacher.\n\nRead-only.", + "$ref": "UserProfile" + }, + "userId": { + "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\n\nRead-only.", "type": "string" } }, - "id": "Link" + "id": "Teacher", + "description": "Teacher of a course.", + "type": "object" + }, + "GradeHistory": { + "description": "The history of each grade on this submission.", + "type": "object", + "properties": { + "actorUserId": { + "description": "The teacher who made the grade change.", + "type": "string" + }, + "gradeTimestamp": { + "description": "When the grade of the submission was changed.", + "format": "google-datetime", + "type": "string" + }, + "gradeChangeType": { + "enumDescriptions": [ + "No grade change type specified. This should never be returned.", + "A change in the numerator of the draft grade.", + "A change in the numerator of the assigned grade.", + "A change in the denominator of the grade." + ], + "enum": [ + "UNKNOWN_GRADE_CHANGE_TYPE", + "DRAFT_GRADE_POINTS_EARNED_CHANGE", + "ASSIGNED_GRADE_POINTS_EARNED_CHANGE", + "MAX_POINTS_CHANGE" + ], + "description": "The type of grade change at this time in the submission grade history.", + "type": "string" + }, + "maxPoints": { + "description": "The denominator of the grade at this time in the submission grade\nhistory.", + "format": "double", + "type": "number" + }, + "pointsEarned": { + "description": "The numerator of the grade at this time in the submission grade history.", + "format": "double", + "type": "number" + } + }, + "id": "GradeHistory" + }, + "AssignmentSubmission": { + "description": "Student work for an assignment.", + "type": "object", + "properties": { + "attachments": { + "description": "Attachments added by the student.\nDrive files that correspond to materials with a share mode of\nSTUDENT_COPY may not exist yet if the student has not accessed the\nassignment in Classroom.\n\nSome attachment metadata is only populated if the requesting user has\npermission to access it. Identifier and alternate_link fields are always\navailable, but others (e.g. title) may not be.", + "type": "array", + "items": { + "$ref": "Attachment" + } + } + }, + "id": "AssignmentSubmission" + }, + "Material": { + "description": "Material attached to course work.\n\nWhen creating attachments, setting the `form` field is not supported.", + "type": "object", + "properties": { + "youtubeVideo": { + "$ref": "YouTubeVideo", + "description": "YouTube video material." + }, + "driveFile": { + "description": "Google Drive file material.", + "$ref": "SharedDriveFile" + }, + "form": { + "description": "Google Forms material.", + "$ref": "Form" + }, + "link": { + "$ref": "Link", + "description": "Link material. On creation, will be upgraded to a more appropriate type\nif possible, and this will be reflected in the response." + } + }, + "id": "Material" + }, + "Feed": { + "type": "object", + "properties": { + "feedType": { + "type": "string", + "enumDescriptions": [ + "Should never be returned or provided.", + "All roster changes for a particular domain.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation.", + "All roster changes for a particular course.\n\nNotifications will be generated whenever a user joins or leaves a course.\n\nNo notifications will be generated when an invitation is created or\ndeleted, but notifications will be generated when a user joins a course\nby accepting an invitation." + ], + "enum": [ + "FEED_TYPE_UNSPECIFIED", + "DOMAIN_ROSTER_CHANGES", + "COURSE_ROSTER_CHANGES" + ], + "description": "The type of feed." + }, + "courseRosterChangesInfo": { + "$ref": "CourseRosterChangesInfo", + "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.\nThis field must be specified if `feed_type` is `COURSE_ROSTER_CHANGES`." + } + }, + "id": "Feed", + "description": "A class of notifications that an application can register to receive.\nFor example: \"all roster changes for a domain\"." + }, + "Student": { + "id": "Student", + "description": "Student in a course.", + "type": "object", + "properties": { + "courseId": { + "description": "Identifier of the course.\n\nRead-only.", + "type": "string" + }, + "profile": { + "description": "Global user information for the student.\n\nRead-only.", + "$ref": "UserProfile" + }, + "studentWorkFolder": { + "$ref": "DriveFolder", + "description": "Information about a Drive Folder for this student's work in this course.\nOnly visible to the student and domain administrators.\n\nRead-only." + }, + "userId": { + "description": "Identifier of the user.\n\nWhen specified as a parameter of a request, this identifier can be one of\nthe following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + } + } + }, + "Invitation": { + "description": "An invitation to join a course.", + "type": "object", + "properties": { + "courseId": { + "description": "Identifier of the course to invite the user to.", + "type": "string" + }, + "id": { + "description": "Identifier assigned by Classroom.\n\nRead-only.", + "type": "string" + }, + "role": { + "enumDescriptions": [ + "No course role.", + "Student in the course.", + "Teacher of the course.", + "Owner of the course." + ], + "enum": [ + "COURSE_ROLE_UNSPECIFIED", + "STUDENT", + "TEACHER", + "OWNER" + ], + "description": "Role to invite the user to have.\nMust not be `COURSE_ROLE_UNSPECIFIED`.", + "type": "string" + }, + "userId": { + "description": "Identifier of the invited user.\n\nWhen specified as a parameter of a request, this identifier can be set to\none of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user", + "type": "string" + } + }, + "id": "Invitation" + }, + "TurnInStudentSubmissionRequest": { + "description": "Request to turn in a student submission.", + "type": "object", + "properties": {}, + "id": "TurnInStudentSubmissionRequest" + }, + "ListCourseWorkResponse": { + "id": "ListCourseWorkResponse", + "description": "Response when listing course work.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + }, + "courseWork": { + "description": "Course work items that match the request.", + "type": "array", + "items": { + "$ref": "CourseWork" + } + } + } + }, + "Attachment": { + "properties": { + "driveFile": { + "description": "Google Drive file attachment.", + "$ref": "DriveFile" + }, + "youTubeVideo": { + "$ref": "YouTubeVideo", + "description": "Youtube video attachment." + }, + "form": { + "$ref": "Form", + "description": "Google Forms attachment." + }, + "link": { + "$ref": "Link", + "description": "Link attachment." + } + }, + "id": "Attachment", + "description": "Attachment added to student assignment work.\n\nWhen creating attachments, setting the `form` field is not supported.", + "type": "object" + }, + "ListAnnouncementsResponse": { + "description": "Response when listing course work.", + "type": "object", + "properties": { + "announcements": { + "description": "Announcement items that match the request.", + "type": "array", + "items": { + "$ref": "Announcement" + } + }, + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + } + }, + "id": "ListAnnouncementsResponse" + }, + "TimeOfDay": { + "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.", + "type": "object", + "properties": { + "nanos": { + "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" + }, + "minutes": { + "description": "Minutes of hour of day. Must be from 0 to 59.", + "format": "int32", + "type": "integer" + }, + "hours": { + "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.", + "format": "int32", + "type": "integer" + } + }, + "id": "TimeOfDay" + }, + "ListCoursesResponse": { + "description": "Response when listing courses.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + }, + "courses": { + "description": "Courses that match the list request.", + "type": "array", + "items": { + "$ref": "Course" + } + } + }, + "id": "ListCoursesResponse" + }, + "Form": { + "type": "object", + "properties": { + "thumbnailUrl": { + "description": "URL of a thumbnail image of the Form.\n\nRead-only.", + "type": "string" + }, + "responseUrl": { + "description": "URL of the form responses document.\nOnly set if respsonses have been recorded and only when the\nrequesting user is an editor of the form.\n\nRead-only.", + "type": "string" + }, + "formUrl": { + "description": "URL of the form.", + "type": "string" + }, + "title": { + "description": "Title of the Form.\n\nRead-only.", + "type": "string" + } + }, + "id": "Form", + "description": "Google Forms item." + }, + "ModifyCourseWorkAssigneesRequest": { + "description": "Request to modify assignee mode and options of a coursework.", + "type": "object", + "properties": { + "assigneeMode": { + "description": "Mode of the coursework describing whether it will be assigned to all\nstudents or specified individual students.", + "type": "string", + "enumDescriptions": [ + "No mode specified. This is never returned.", + "All students can see the item.\nThis is the default state.", + "A subset of the students can see the item." + ], + "enum": [ + "ASSIGNEE_MODE_UNSPECIFIED", + "ALL_STUDENTS", + "INDIVIDUAL_STUDENTS" + ] + }, + "modifyIndividualStudentsOptions": { + "description": "Set which students are assigned or not assigned to the coursework.\nMust be specified only when `assigneeMode` is `INDIVIDUAL_STUDENTS`.", + "$ref": "ModifyIndividualStudentsOptions" + } + }, + "id": "ModifyCourseWorkAssigneesRequest" + }, + "ListGuardiansResponse": { + "description": "Response when listing guardians.", + "type": "object", + "properties": { + "guardians": { + "description": "Guardians on this page of results that met the criteria specified in\nthe request.", + "type": "array", + "items": { + "$ref": "Guardian" + } + }, + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + } + }, + "id": "ListGuardiansResponse" + }, + "CourseAlias": { + "description": "Alternative identifier for a course.\n\nAn alias uniquely identifies a course. It must be unique within one of the\nfollowing scopes:\n\n* domain: A domain-scoped alias is visible to all users within the alias\ncreator's domain and can be created only by a domain admin. A domain-scoped\nalias is often used when a course has an identifier external to Classroom.\n\n* project: A project-scoped alias is visible to any request from an\napplication using the Developer Console project ID that created the alias\nand can be created by any project. A project-scoped alias is often used when\nan application has alternative identifiers. A random value can also be used\nto avoid duplicate courses in the event of transmission failures, as retrying\na request will return `ALREADY_EXISTS` if a previous one has succeeded.", + "type": "object", + "properties": { + "alias": { + "description": "Alias string. The format of the string indicates the desired alias scoping.\n\n* `d:\u003cname\u003e` indicates a domain-scoped alias.\n Example: `d:math_101`\n* `p:\u003cname\u003e` indicates a project-scoped alias.\n Example: `p:abc123`\n\nThis field has a maximum length of 256 characters.", + "type": "string" + } + }, + "id": "CourseAlias" + }, + "ListCourseAliasesResponse": { + "type": "object", + "properties": { + "aliases": { + "description": "The course aliases.", + "type": "array", + "items": { + "$ref": "CourseAlias" + } + }, + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + } + }, + "id": "ListCourseAliasesResponse", + "description": "Response when listing course aliases." + }, + "ListGuardianInvitationsResponse": { + "description": "Response when listing guardian invitations.", + "type": "object", + "properties": { + "guardianInvitations": { + "description": "Guardian invitations that matched the list request.", + "type": "array", + "items": { + "$ref": "GuardianInvitation" + } + }, + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + } + }, + "id": "ListGuardianInvitationsResponse" + }, + "IndividualStudentsOptions": { + "description": "Assignee details about a coursework/announcement.\nThis field is set if and only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.", + "type": "object", + "properties": { + "studentIds": { + "description": "Identifiers for the students that have access to the\ncoursework/announcement.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "IndividualStudentsOptions" + }, + "Registration": { + "description": "An instruction to Classroom to send notifications from the `feed` to the\nprovided `destination`.", + "type": "object", + "properties": { + "feed": { + "$ref": "Feed", + "description": "Specification for the class of notifications that Classroom should deliver\nto the `destination`." + }, + "registrationId": { + "type": "string", + "description": "A server-generated unique identifier for this `Registration`.\n\nRead-only." + }, + "cloudPubsubTopic": { + "$ref": "CloudPubsubTopic", + "description": "The Cloud Pub/Sub topic that notifications are to be sent to." + }, + "expiryTime": { + "description": "The time until which the `Registration` is effective.\n\nThis is a read-only field assigned by the server.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "Registration" + }, + "MultipleChoiceSubmission": { + "description": "Student work for a multiple-choice question.", + "type": "object", + "properties": { + "answer": { + "description": "Student's select choice.", + "type": "string" + } + }, + "id": "MultipleChoiceSubmission" + }, + "CourseMaterial": { + "description": "A material attached to a course as part of a material set.", + "type": "object", + "properties": { + "form": { + "description": "Google Forms attachment.", + "$ref": "Form" + }, + "link": { + "description": "Link atatchment.", + "$ref": "Link" + }, + "driveFile": { + "$ref": "DriveFile", + "description": "Google Drive file attachment." + }, + "youTubeVideo": { + "$ref": "YouTubeVideo", + "description": "Youtube video attachment." + } + }, + "id": "CourseMaterial" + }, + "MultipleChoiceQuestion": { + "description": "Additional details for multiple-choice questions.", + "type": "object", + "properties": { + "choices": { + "description": "Possible choices.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "MultipleChoiceQuestion" + }, + "Course": { + "type": "object", + "properties": { + "calendarId": { + "description": "The Calendar ID for a calendar that all course members can see, to which\nClassroom adds events for course work and announcements in the course.\n\nRead-only.", + "type": "string" + }, + "updateTime": { + "description": "Time of the most recent update to this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "alternateLink": { + "description": "Absolute link to this course in the Classroom web UI.\n\nRead-only.", + "type": "string" + }, + "guardiansEnabled": { + "description": "Whether or not guardian notifications are enabled for this course.\n\nRead-only.", + "type": "boolean" + }, + "courseState": { + "enumDescriptions": [ + "No course state. No returned Course message will use this value.", + "The course is active.", + "The course has been archived. You cannot modify it except to change it\nto a different state.", + "The course has been created, but not yet activated. It is accessible by\nthe primary teacher and domain administrators, who may modify it or\nchange it to the `ACTIVE` or `DECLINED` states.\nA course may only be changed to `PROVISIONED` if it is in the `DECLINED`\nstate.", + "The course has been created, but declined. It is accessible by the\ncourse owner and domain administrators, though it will not be\ndisplayed in the web UI. You cannot modify the course except to change it\nto the `PROVISIONED` state.\nA course may only be changed to `DECLINED` if it is in the `PROVISIONED`\nstate.", + "The course has been suspended. You cannot modify the course, and only the\nuser identified by the `owner_id` can view the course.\nA course may be placed in this state if it potentially violates the\nTerms of Service." + ], + "enum": [ + "COURSE_STATE_UNSPECIFIED", + "ACTIVE", + "ARCHIVED", + "PROVISIONED", + "DECLINED", + "SUSPENDED" + ], + "description": "State of the course.\nIf unspecified, the default state is `PROVISIONED`.", + "type": "string" + }, + "ownerId": { + "description": "The identifier of the owner of a course.\n\nWhen specified as a parameter of a\ncreate course request, this\nfield is required.\nThe identifier can be one of the following:\n\n* the numeric identifier for the user\n* the email address of the user\n* the string literal `\"me\"`, indicating the requesting user\n\nThis must be set in a create request. Admins can also specify this field\nin a patch course request to\ntransfer ownership. In other contexts, it is read-only.", + "type": "string" + }, + "description": { + "type": "string", + "description": "Optional description.\nFor example, \"We'll be learning about the structure of living\ncreatures from a combination of textbooks, guest lectures, and lab work.\nExpect to be excited!\"\nIf set, this field must be a valid UTF-8 string and no longer than 30,000\ncharacters." + }, + "teacherGroupEmail": { + "description": "The email address of a Google group containing all teachers of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only.", + "type": "string" + }, + "creationTime": { + "description": "Creation time of the course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Name of the course.\nFor example, \"10th Grade Biology\".\nThe name is required. It must be between 1 and 750 characters and a valid\nUTF-8 string.", + "type": "string" + }, + "teacherFolder": { + "$ref": "DriveFolder", + "description": "Information about a Drive Folder that is shared with all teachers of the\ncourse.\n\nThis field will only be set for teachers of the course and domain administrators.\n\nRead-only." + }, + "section": { + "description": "Section of the course.\nFor example, \"Period 2\".\nIf set, this field must be a valid UTF-8 string and no longer than 2800\ncharacters.", + "type": "string" + }, + "id": { + "description": "Identifier for this course assigned by Classroom.\n\nWhen\ncreating a course,\nyou may optionally set this identifier to an\nalias string in the\nrequest to create a corresponding alias. The `id` is still assigned by\nClassroom and cannot be updated after the course is created.\n\nSpecifying this field in a course update mask results in an error.", + "type": "string" + }, + "room": { + "description": "Optional room location.\nFor example, \"301\".\nIf set, this field must be a valid UTF-8 string and no longer than 650\ncharacters.", + "type": "string" + }, + "courseGroupEmail": { + "type": "string", + "description": "The email address of a Google group containing all members of the course.\nThis group does not accept email and can only be used for permissions.\n\nRead-only." + }, + "courseMaterialSets": { + "type": "array", + "items": { + "$ref": "CourseMaterialSet" + }, + "description": "Sets of materials that appear on the \"about\" page of this course.\n\nRead-only." + }, + "enrollmentCode": { + "description": "Enrollment code to use when joining this course.\nSpecifying this field in a course update mask results in an error.\n\nRead-only.", + "type": "string" + }, + "descriptionHeading": { + "type": "string", + "description": "Optional heading for the description.\nFor example, \"Welcome to 10th Grade Biology.\"\nIf set, this field must be a valid UTF-8 string and no longer than 3600\ncharacters." + } + }, + "id": "Course", + "description": "A Course in Classroom." + }, + "DriveFile": { + "description": "Representation of a Google Drive file.", + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title of the Drive item.\n\nRead-only." + }, + "alternateLink": { + "type": "string", + "description": "URL that can be used to access the Drive item.\n\nRead-only." + }, + "thumbnailUrl": { + "description": "URL of a thumbnail image of the Drive item.\n\nRead-only.", + "type": "string" + }, + "id": { + "description": "Drive API resource ID.", + "type": "string" + } + }, + "id": "DriveFile" + }, + "ReturnStudentSubmissionRequest": { + "description": "Request to return a student submission.", + "type": "object", + "properties": {}, + "id": "ReturnStudentSubmissionRequest" + }, + "ReclaimStudentSubmissionRequest": { + "description": "Request to reclaim a student submission.", + "type": "object", + "properties": {}, + "id": "ReclaimStudentSubmissionRequest" + }, + "CourseRosterChangesInfo": { + "description": "Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.", + "type": "object", + "properties": { + "courseId": { + "description": "The `course_id` of the course to subscribe to roster changes for.", + "type": "string" + } + }, + "id": "CourseRosterChangesInfo" + }, + "CourseWork": { + "description": "Course work created by a teacher for students of the course.", + "type": "object", + "properties": { + "workType": { + "description": "Type of this course work.\n\nThe type is set when the course work is created and cannot be changed.", + "type": "string", + "enumDescriptions": [ + "No work type specified. This is never returned.", + "An assignment.", + "A short answer question.", + "A multiple-choice question." + ], + "enum": [ + "COURSE_WORK_TYPE_UNSPECIFIED", + "ASSIGNMENT", + "SHORT_ANSWER_QUESTION", + "MULTIPLE_CHOICE_QUESTION" + ] + }, + "assignment": { + "description": "Assignment details.\nThis is populated only when `work_type` is `ASSIGNMENT`.\n\nRead-only.", + "$ref": "Assignment" + }, + "multipleChoiceQuestion": { + "$ref": "MultipleChoiceQuestion", + "description": "Multiple choice question details.\nFor read operations, this field is populated only when `work_type` is\n`MULTIPLE_CHOICE_QUESTION`.\nFor write operations, this field must be specified when creating course\nwork with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be\nset otherwise." + }, + "description": { + "description": "Optional description of this course work.\nIf set, the description must be a valid UTF-8 string containing no more\nthan 30,000 characters.", + "type": "string" + }, + "scheduledTime": { + "description": "Optional timestamp when this course work is scheduled to be published.", + "format": "google-datetime", + "type": "string" + }, + "creationTime": { + "description": "Timestamp when this course work was created.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "dueDate": { + "$ref": "Date", + "description": "Optional date, in UTC, that submissions for this this course work are due.\nThis must be specified if `due_time` is specified." + }, + "individualStudentsOptions": { + "$ref": "IndividualStudentsOptions", + "description": "Identifiers of students with access to the coursework.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students\nspecified in this field will be assigned the coursework." + }, + "creatorUserId": { + "description": "Identifier for the user that created the coursework.\n\nRead-only.", + "type": "string" + }, + "submissionModificationMode": { + "enumDescriptions": [ + "No modification mode specified. This is never returned.", + "Submisisons can be modified before being turned in.", + "Submisisons can be modified at any time." + ], + "enum": [ + "SUBMISSION_MODIFICATION_MODE_UNSPECIFIED", + "MODIFIABLE_UNTIL_TURNED_IN", + "MODIFIABLE" + ], + "description": "Setting to determine when students are allowed to modify submissions.\nIf unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.", + "type": "string" + }, + "state": { + "type": "string", + "enumDescriptions": [ + "No state specified. This is never returned.", + "Status for work that has been published.\nThis is the default state.", + "Status for work that is not yet published.\nWork in this state is visible only to course teachers and domain\nadministrators.", + "Status for work that was published but is now deleted.\nWork in this state is visible only to course teachers and domain\nadministrators.\nWork in this state is deleted after some time." + ], + "enum": [ + "COURSE_WORK_STATE_UNSPECIFIED", + "PUBLISHED", + "DRAFT", + "DELETED" + ], + "description": "Status of this course work.\nIf unspecified, the default state is `DRAFT`." + }, + "courseId": { + "description": "Identifier of the course.\n\nRead-only.", + "type": "string" + }, + "id": { + "description": "Classroom-assigned identifier of this course work, unique per course.\n\nRead-only.", + "type": "string" + }, + "dueTime": { + "$ref": "TimeOfDay", + "description": "Optional time of day, in UTC, that submissions for this this course work\nare due.\nThis must be specified if `due_date` is specified." + }, + "title": { + "description": "Title of this course work.\nThe title must be a valid UTF-8 string containing between 1 and 3000\ncharacters.", + "type": "string" + }, + "materials": { + "description": "Additional materials.\n\nCourseWork must have no more than 20 material items.", + "type": "array", + "items": { + "$ref": "Material" + } + }, + "associatedWithDeveloper": { + "description": "Whether this course work item is associated with the Developer Console\nproject making the request.\n\nSee google.classroom.Work.CreateCourseWork for more\ndetails.\n\nRead-only.", + "type": "boolean" + }, + "updateTime": { + "description": "Timestamp of the most recent change to this course work.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "alternateLink": { + "description": "Absolute link to this course work in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.", + "type": "string" + }, + "assigneeMode": { + "type": "string", + "enumDescriptions": [ + "No mode specified. This is never returned.", + "All students can see the item.\nThis is the default state.", + "A subset of the students can see the item." + ], + "enum": [ + "ASSIGNEE_MODE_UNSPECIFIED", + "ALL_STUDENTS", + "INDIVIDUAL_STUDENTS" + ], + "description": "Assignee mode of the coursework.\nIf unspecified, the default value is `ALL_STUDENTS`." + }, + "maxPoints": { + "description": "Maximum grade for this course work.\nIf zero or unspecified, this assignment is considered ungraded.\nThis must be a non-negative integer value.", + "format": "double", + "type": "number" + } + }, + "id": "CourseWork" + }, + "Guardian": { + "description": "Association between a student and a guardian of that student. The guardian\nmay receive information about the student's course work.", + "type": "object", + "properties": { + "studentId": { + "description": "Identifier for the student to whom the guardian relationship applies.", + "type": "string" + }, + "guardianId": { + "type": "string", + "description": "Identifier for the guardian." + }, + "invitedEmailAddress": { + "description": "The email address to which the initial guardian invitation was sent.\nThis field is only visible to domain administrators.", + "type": "string" + }, + "guardianProfile": { + "$ref": "UserProfile", + "description": "User profile for the guardian." + } + }, + "id": "Guardian" + }, + "UserProfile": { + "description": "Global information for a user.", + "type": "object", + "properties": { + "name": { + "$ref": "Name", + "description": "Name of the user.\n\nRead-only." + }, + "id": { + "description": "Identifier of the user.\n\nRead-only.", + "type": "string" + }, + "verifiedTeacher": { + "type": "boolean", + "description": "Represents whether a G Suite for Education user's domain administrator has\nexplicitly verified them as being a teacher. If the user is not a member of\na G Suite for Education domain, than this field will always be false.\n\nRead-only" + }, + "emailAddress": { + "description": "Email address of the user.\n\nRead-only.", + "type": "string" + }, + "photoUrl": { + "description": "URL of user's profile photo.\n\nRead-only.", + "type": "string" + }, + "permissions": { + "description": "Global permissions of the user.\n\nRead-only.", + "type": "array", + "items": { + "$ref": "GlobalPermission" + } + } + }, + "id": "UserProfile" + }, + "ListStudentsResponse": { + "description": "Response when listing students.", + "type": "object", + "properties": { + "students": { + "description": "Students who match the list request.", + "type": "array", + "items": { + "$ref": "Student" + } + }, + "nextPageToken": { + "description": "Token identifying the next page of results to return. If empty, no further\nresults are available.", + "type": "string" + } + }, + "id": "ListStudentsResponse" + }, + "Announcement": { + "description": "Announcement created by a teacher for students of the course", + "type": "object", + "properties": { + "creationTime": { + "description": "Timestamp when this announcement was created.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "creatorUserId": { + "description": "Identifier for the user that created the announcement.\n\nRead-only.", + "type": "string" + }, + "individualStudentsOptions": { + "$ref": "IndividualStudentsOptions", + "description": "Identifiers of students with access to the announcement.\nThis field is set only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.\nIf the `assigneeMode` is `INDIVIDUAL_STUDENTS`, then only students specified in this\nfield will be able to see the announcement." + }, + "state": { + "description": "Status of this announcement.\nIf unspecified, the default state is `DRAFT`.", + "type": "string", + "enumDescriptions": [ + "No state specified. This is never returned.", + "Status for announcement that has been published.\nThis is the default state.", + "Status for an announcement that is not yet published.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.", + "Status for announcement that was published but is now deleted.\nAnnouncement in this state is visible only to course teachers and domain\nadministrators.\nAnnouncement in this state is deleted after some time." + ], + "enum": [ + "ANNOUNCEMENT_STATE_UNSPECIFIED", + "PUBLISHED", + "DRAFT", + "DELETED" + ] + }, + "text": { + "description": "Description of this announcement.\nThe text must be a valid UTF-8 string containing no more\nthan 30,000 characters.", + "type": "string" + }, + "courseId": { + "description": "Identifier of the course.\n\nRead-only.", + "type": "string" + }, + "id": { + "type": "string", + "description": "Classroom-assigned identifier of this announcement, unique per course.\n\nRead-only." + }, + "materials": { + "description": "Additional materials.\n\nAnnouncements must have no more than 20 material items.", + "type": "array", + "items": { + "$ref": "Material" + } + }, + "updateTime": { + "description": "Timestamp of the most recent change to this announcement.\n\nRead-only.", + "format": "google-datetime", + "type": "string" + }, + "alternateLink": { + "description": "Absolute link to this announcement in the Classroom web UI.\nThis is only populated if `state` is `PUBLISHED`.\n\nRead-only.", + "type": "string" + }, + "assigneeMode": { + "description": "Assignee mode of the announcement.\nIf unspecified, the default value is `ALL_STUDENTS`.", + "type": "string", + "enumDescriptions": [ + "No mode specified. This is never returned.", + "All students can see the item.\nThis is the default state.", + "A subset of the students can see the item." + ], + "enum": [ + "ASSIGNEE_MODE_UNSPECIFIED", + "ALL_STUDENTS", + "INDIVIDUAL_STUDENTS" + ] + }, + "scheduledTime": { + "description": "Optional timestamp when this announcement is scheduled to be published.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "Announcement" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1", "baseUrl": "https://classroom.googleapis.com/", "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/classroom.coursework.me.readonly": { + "description": "View your course work and grades in Google Classroom" + }, + "https://www.googleapis.com/auth/classroom.profile.emails": { + "description": "View the email addresses of people in your classes" + }, + "https://www.googleapis.com/auth/classroom.coursework.me": { + "description": "Manage your course work and view your grades in Google Classroom" + }, "https://www.googleapis.com/auth/classroom.rosters": { "description": "Manage your Google Classroom class rosters" }, @@ -3421,29 +3429,21 @@ "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly": { "description": "View your course work and grades in Google Classroom" }, - "https://www.googleapis.com/auth/classroom.coursework.students": { - "description": "Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer" + "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly": { + "description": "View your Google Classroom guardians" }, "https://www.googleapis.com/auth/classroom.coursework.students.readonly": { "description": "View course work and grades for students in the Google Classroom classes you teach or administer" }, - "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly": { - "description": "View your Google Classroom guardians" - }, - "https://www.googleapis.com/auth/classroom.coursework.me.readonly": { - "description": "View your course work and grades in Google Classroom" - }, - "https://www.googleapis.com/auth/classroom.profile.emails": { - "description": "View the email addresses of people in your classes" - }, - "https://www.googleapis.com/auth/classroom.coursework.me": { - "description": "Manage your course work and view your grades in Google Classroom" + "https://www.googleapis.com/auth/classroom.coursework.students": { + "description": "Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer" } } } }, - "servicePath": "", - "description": "Manages classes, rosters, and invitations in Google Classroom.", "kind": "discovery#restDescription", - "rootUrl": "https://classroom.googleapis.com/" + "description": "Manages classes, rosters, and invitations in Google Classroom.", + "servicePath": "", + "rootUrl": "https://classroom.googleapis.com/", + "basePath": "" } diff --git a/vendor/google.golang.org/api/classroom/v1/classroom-gen.go b/vendor/google.golang.org/api/classroom/v1/classroom-gen.go index b7a7959e9..da48b07ae 100644 --- a/vendor/google.golang.org/api/classroom/v1/classroom-gen.go +++ b/vendor/google.golang.org/api/classroom/v1/classroom-gen.go @@ -10209,24 +10209,24 @@ type RegistrationsCreateCall struct { // This method may return the following error codes: // // * `PERMISSION_DENIED` if: -// * the authenticated user does not have permission to receive -// notifications from the requested field; or -// * the credential provided does not include the appropriate scope +// * the authenticated user does not have permission to receive +// notifications from the requested field; or +// * the credential provided does not include the appropriate scope // for the -// requested feed. -// * another access error is encountered. +// requested feed. +// * another access error is encountered. // * `INVALID_ARGUMENT` if: -// * no `destination` is specified, or the specified `destination` is -// not -// valid; or -// * no `feed` is specified, or the specified `feed` is not valid. +// * no `destination` is specified, or the specified `destination` +// is not +// valid; or +// * no `feed` is specified, or the specified `feed` is not valid. // * `NOT_FOUND` if: -// * the specified `feed` cannot be located, or the requesting user +// * the specified `feed` cannot be located, or the requesting user // does not -// have permission to determine whether or not it exists; or -// * the specified `destination` cannot be located, or Classroom has +// have permission to determine whether or not it exists; or +// * the specified `destination` cannot be located, or Classroom has // not -// been granted permission to publish to it. +// been granted permission to publish to it. func (r *RegistrationsService) Create(registration *Registration) *RegistrationsCreateCall { c := &RegistrationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.registration = registration @@ -10316,7 +10316,7 @@ func (c *RegistrationsCreateCall) Do(opts ...googleapi.CallOption) (*Registratio } return ret, nil // { - // "description": "Creates a `Registration`, causing Classroom to start sending notifications\nfrom the provided `feed` to the provided `destination`.\n\nReturns the created `Registration`. Currently, this will be the same as\nthe argument, but with server-assigned fields such as `expiry_time` and\n`id` filled in.\n\nNote that any value specified for the `expiry_time` or `id` fields will be\nignored.\n\nWhile Classroom may validate the `destination` and return errors on a best\neffort basis, it is the caller's responsibility to ensure that it exists\nand that Classroom has permission to publish to it.\n\nThis method may return the following error codes:\n\n* `PERMISSION_DENIED` if:\n * the authenticated user does not have permission to receive\n notifications from the requested field; or\n * the credential provided does not include the appropriate scope for the\n requested feed.\n * another access error is encountered.\n* `INVALID_ARGUMENT` if:\n * no `destination` is specified, or the specified `destination` is not\n valid; or\n * no `feed` is specified, or the specified `feed` is not valid.\n* `NOT_FOUND` if:\n * the specified `feed` cannot be located, or the requesting user does not\n have permission to determine whether or not it exists; or\n * the specified `destination` cannot be located, or Classroom has not\n been granted permission to publish to it.", + // "description": "Creates a `Registration`, causing Classroom to start sending notifications\nfrom the provided `feed` to the provided `destination`.\n\nReturns the created `Registration`. Currently, this will be the same as\nthe argument, but with server-assigned fields such as `expiry_time` and\n`id` filled in.\n\nNote that any value specified for the `expiry_time` or `id` fields will be\nignored.\n\nWhile Classroom may validate the `destination` and return errors on a best\neffort basis, it is the caller's responsibility to ensure that it exists\nand that Classroom has permission to publish to it.\n\nThis method may return the following error codes:\n\n* `PERMISSION_DENIED` if:\n * the authenticated user does not have permission to receive\n notifications from the requested field; or\n * the credential provided does not include the appropriate scope for the\n requested feed.\n * another access error is encountered.\n* `INVALID_ARGUMENT` if:\n * no `destination` is specified, or the specified `destination` is not\n valid; or\n * no `feed` is specified, or the specified `feed` is not valid.\n* `NOT_FOUND` if:\n * the specified `feed` cannot be located, or the requesting user does not\n have permission to determine whether or not it exists; or\n * the specified `destination` cannot be located, or Classroom has not\n been granted permission to publish to it.", // "flatPath": "v1/registrations", // "httpMethod": "POST", // "id": "classroom.registrations.create", diff --git a/vendor/google.golang.org/api/cloudbuild/v1/cloudbuild-api.json b/vendor/google.golang.org/api/cloudbuild/v1/cloudbuild-api.json index 3661b7a83..6ecfcc5f1 100644 --- a/vendor/google.golang.org/api/cloudbuild/v1/cloudbuild-api.json +++ b/vendor/google.golang.org/api/cloudbuild/v1/cloudbuild-api.json @@ -1,568 +1,25 @@ { - "canonicalName": "Cloud Build", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "rootUrl": "https://cloudbuild.googleapis.com/", - "ownerDomain": "google.com", - "name": "cloudbuild", - "batchPath": "batch", - "title": "Google Cloud Container Builder API", - "ownerName": "Google", - "resources": { - "projects": { - "resources": { - "builds": { - "methods": { - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "ID of the project.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/builds", - "path": "v1/projects/{projectId}/builds", - "id": "cloudbuild.projects.builds.create", - "description": "Starts a build with the specified configuration.\n\nThe long-running Operation returned by this method will include the ID of\nthe build, which can be passed to GetBuild to determine its status (e.g.,\nsuccess or failure).", - "request": { - "$ref": "Build" - } - }, - "cancel": { - "id": "cloudbuild.projects.builds.cancel", - "path": "v1/projects/{projectId}/builds/{id}:cancel", - "description": "Cancels a requested build in progress.", - "request": { - "$ref": "CancelBuildRequest" - }, - "response": { - "$ref": "Build" - }, - "parameterOrder": [ - "projectId", - "id" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "ID of the project.", - "type": "string", - "required": true - }, - "id": { - "location": "path", - "description": "ID of the build.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/builds/{id}:cancel" - }, - "list": { - "description": "Lists previously requested builds.\n\nPreviously requested builds may still be in-progress, or may have finished\nsuccessfully or unsuccessfully.", - "response": { - "$ref": "ListBuildsResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "The raw filter text to constrain the results.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Token to provide to skip to a particular spot in the list.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Number of results to return in the list.", - "type": "integer", - "location": "query" - }, - "projectId": { - "location": "path", - "description": "ID of the project.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/builds", - "id": "cloudbuild.projects.builds.list", - "path": "v1/projects/{projectId}/builds" - }, - "get": { - "id": "cloudbuild.projects.builds.get", - "path": "v1/projects/{projectId}/builds/{id}", - "description": "Returns information about a previously requested build.\n\nThe Build that is returned includes its status (e.g., success or failure,\nor in-progress), and timing information.", - "parameterOrder": [ - "projectId", - "id" - ], - "response": { - "$ref": "Build" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "ID of the project.", - "type": "string", - "required": true - }, - "id": { - "location": "path", - "description": "ID of the build.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/builds/{id}" - } - } - }, - "triggers": { - "methods": { - "create": { - "flatPath": "v1/projects/{projectId}/triggers", - "id": "cloudbuild.projects.triggers.create", - "path": "v1/projects/{projectId}/triggers", - "description": "Creates a new BuildTrigger.\n\nThis API is experimental.", - "request": { - "$ref": "BuildTrigger" - }, - "response": { - "$ref": "BuildTrigger" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "ID of the project for which to configure automatic builds.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "id": "cloudbuild.projects.triggers.delete", - "path": "v1/projects/{projectId}/triggers/{triggerId}", - "description": "Deletes an BuildTrigger by its project ID and trigger ID.\n\nThis API is experimental.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "projectId", - "triggerId" - ], - "httpMethod": "DELETE", - "parameters": { - "triggerId": { - "description": "ID of the BuildTrigger to delete.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "ID of the project that owns the trigger.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/triggers/{triggerId}" - }, - "patch": { - "response": { - "$ref": "BuildTrigger" - }, - "parameterOrder": [ - "projectId", - "triggerId" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "triggerId": { - "location": "path", - "description": "ID of the BuildTrigger to update.", - "type": "string", - "required": true - }, - "projectId": { - "description": "ID of the project that owns the trigger.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", - "id": "cloudbuild.projects.triggers.patch", - "path": "v1/projects/{projectId}/triggers/{triggerId}", - "request": { - "$ref": "BuildTrigger" - }, - "description": "Updates an BuildTrigger by its project ID and trigger ID.\n\nThis API is experimental." - }, - "list": { - "path": "v1/projects/{projectId}/triggers", - "id": "cloudbuild.projects.triggers.list", - "description": "Lists existing BuildTrigger.\n\nThis API is experimental.", - "httpMethod": "GET", - "parameterOrder": [ - "projectId" - ], - "response": { - "$ref": "ListBuildTriggersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "ID of the project for which to list BuildTriggers.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{projectId}/triggers" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "projectId", - "triggerId" - ], - "response": { - "$ref": "BuildTrigger" - }, - "parameters": { - "triggerId": { - "location": "path", - "description": "ID of the BuildTrigger to get.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "ID of the project that owns the trigger.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", - "path": "v1/projects/{projectId}/triggers/{triggerId}", - "id": "cloudbuild.projects.triggers.get", - "description": "Gets information about a BuildTrigger.\n\nThis API is experimental." - } - } - } - } - }, - "operations": { - "methods": { - "get": { - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^operations/.+$", - "location": "path" - } - }, - "flatPath": "v1/operations/{operationsId}", - "path": "v1/{+name}", - "id": "cloudbuild.operations.get" - }, - "list": { - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ListOperationsResponse" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "filter": { - "location": "query", - "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "name": { - "description": "The name of the operation's parent resource.", - "type": "string", - "required": true, - "pattern": "^operations$", - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "The standard list page size.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1/operations", - "id": "cloudbuild.operations.list", - "path": "v1/{+name}" - }, - "cancel": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^operations/.+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/operations/{operationsId}:cancel", - "id": "cloudbuild.operations.cancel", - "path": "v1/{+name}:cancel", - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", - "request": { - "$ref": "CancelOperationRequest" - } - } - } - } - }, - "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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", - "description": "Data format for response.", - "default": "json" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - } - }, - "version": "v1", - "baseUrl": "https://cloudbuild.googleapis.com/", - "servicePath": "", - "description": "Builds container images in the cloud.", "kind": "discovery#restDescription", + "description": "Builds container images in the cloud.", + "servicePath": "", "basePath": "", "id": "cloudbuild:v1", - "revision": "20170928", "documentationLink": "https://cloud.google.com/container-builder/docs/", + "revision": "20171019", "discoveryVersion": "v1", "version_module": true, "schemas": { - "StorageSource": { - "description": "StorageSource describes the location of the source in an archive file in\nGoogle Cloud Storage.", - "type": "object", - "properties": { - "bucket": { - "description": "Google Cloud Storage bucket containing source (see\n[Bucket Name\nRequirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", - "type": "string" - }, - "object": { - "description": "Google Cloud Storage object containing source.\n\nThis object must be a gzipped archive file (.tar.gz) containing source to\nbuild.", - "type": "string" - }, - "generation": { - "format": "int64", - "description": "Google Cloud Storage generation for the object. If the generation is\nomitted, the latest generation will be used.", - "type": "string" - } - }, - "id": "StorageSource" - }, - "Results": { - "description": "Results describes the artifacts created by the build pipeline.", - "type": "object", - "properties": { - "buildStepImages": { - "description": "List of build step digests, in order corresponding to build step indices.", - "items": { - "type": "string" - }, - "type": "array" - }, - "images": { - "description": "Images that were built as a part of the build.", - "items": { - "$ref": "BuiltImage" - }, - "type": "array" - } - }, - "id": "Results" - }, - "BuildOperationMetadata": { - "properties": { - "build": { - "description": "The build that the operation is tracking.", - "$ref": "Build" - } - }, - "id": "BuildOperationMetadata", - "description": "Metadata for build operations.", - "type": "object" - }, "SourceProvenance": { - "id": "SourceProvenance", "description": "Provenance of the source. Ways to find the original source, or verify that\nsome source was used for this build.", "type": "object", "properties": { + "fileHashes": { + "additionalProperties": { + "$ref": "FileHashes" + }, + "description": "Hash(es) of the build source, which can be used to verify that the original\nsource integrity was maintained in the build. Note that FileHashes will\nonly be populated if BuildOptions has requested a SourceProvenanceHash.\n\nThe keys to this map are file paths used as build source and the values\ncontain the hash values for those files.\n\nIf the build source came in a single package such as a gzipped tarfile\n(.tar.gz), the FileHash will be for the single path to that file.\n@OutputOnly", + "type": "object" + }, "resolvedRepoSource": { "$ref": "RepoSource", "description": "A copy of the build's source.repo_source, if exists, with any\nrevisions resolved." @@ -570,15 +27,9 @@ "resolvedStorageSource": { "description": "A copy of the build's source.storage_source, if exists, with any\ngenerations resolved.", "$ref": "StorageSource" - }, - "fileHashes": { - "type": "object", - "additionalProperties": { - "$ref": "FileHashes" - }, - "description": "Hash(es) of the build source, which can be used to verify that the original\nsource integrity was maintained in the build. Note that FileHashes will\nonly be populated if BuildOptions has requested a SourceProvenanceHash.\n\nThe keys to this map are file paths used as build source and the values\ncontain the hash values for those files.\n\nIf the build source came in a single package such as a gzipped tarfile\n(.tar.gz), the FileHash will be for the single path to that file.\n@OutputOnly" } - } + }, + "id": "SourceProvenance" }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", @@ -592,25 +43,18 @@ "properties": { "triggers": { "description": "BuildTriggers for the project, sorted by create_time descending.", + "type": "array", "items": { "$ref": "BuildTrigger" - }, - "type": "array" + } } }, "id": "ListBuildTriggersResponse" }, "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { - "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, "name": { "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", "type": "string" @@ -630,110 +74,32 @@ "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." + "id": "Operation" }, "BuiltImage": { - "description": "BuiltImage describes an image built by the pipeline.", - "type": "object", "properties": { "name": { - "type": "string", - "description": "Name used to push the container image to Google Container Registry, as\npresented to `docker push`." + "description": "Name used to push the container image to Google Container Registry, as\npresented to `docker push`.", + "type": "string" }, "digest": { "description": "Docker Registry 2.0 digest.", "type": "string" } }, - "id": "BuiltImage" - }, - "BuildStep": { - "description": "BuildStep describes a step to perform in the build pipeline.", - "type": "object", - "properties": { - "entrypoint": { - "type": "string", - "description": "Optional entrypoint to be used instead of the build step image's default\nIf unset, the image's default will be used." - }, - "secretEnv": { - "items": { - "type": "string" - }, - "type": "array", - "description": "A list of environment variables which are encrypted using a Cloud KMS\ncrypto key. These values must be specified in the build's secrets." - }, - "id": { - "description": "Optional unique identifier for this build step, used in wait_for to\nreference this build step as a dependency.", - "type": "string" - }, - "volumes": { - "description": "List of volumes to mount into the build step.\n\nEach volume will be created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents will\nbe discarded.\n\nUsing a named volume in only one step is not valid as it is indicative\nof a mis-configured build request.", - "items": { - "$ref": "Volume" - }, - "type": "array" - }, - "dir": { - "description": "Working directory (relative to project source root) to use when running\nthis operation's container.", - "type": "string" - }, - "waitFor": { - "description": "The ID(s) of the step(s) that this build step depends on.\nThis build step will not start until all the build steps in wait_for\nhave completed successfully. If wait_for is empty, this build step will\nstart when all previous build steps in the Build.Steps list have completed\nsuccessfully.", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "A list of environment variable definitions to be used when running a step.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\"\nbeing given the value \"VALUE\".", - "items": { - "type": "string" - }, - "type": "array" - }, - "args": { - "description": "A list of arguments that will be presented to the step when it is started.\n\nIf the image used to run the step's container has an entrypoint, these args\nwill be used as arguments to that entrypoint. If the image does not define\nan entrypoint, the first element in args will be used as the entrypoint,\nand the remainder will be used as arguments.", - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "The name of the container image that will run this particular build step.\n\nIf the image is already available in the host's Docker daemon's cache, it\nwill be run directly. If not, the host will attempt to pull the image\nfirst, using the builder service account's credentials if necessary.\n\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps\n([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time you\nattempt to use them.\n\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.", - "type": "string" - } - }, - "id": "BuildStep" - }, - "RepoSource": { - "id": "RepoSource", - "description": "RepoSource describes the location of the source in a Google Cloud Source\nRepository.", - "type": "object", - "properties": { - "commitSha": { - "description": "Explicit commit SHA to build.", - "type": "string" - }, - "tagName": { - "description": "Name of the tag to build.", - "type": "string" - }, - "branchName": { - "type": "string", - "description": "Name of the branch to build." - }, - "repoName": { - "description": "Name of the repo. If omitted, the name \"default\" is assumed.", - "type": "string" - }, - "projectId": { - "description": "ID of the project that owns the repo. If omitted, the project ID requesting\nthe build is assumed.", - "type": "string" - } - } + "id": "BuiltImage", + "description": "BuiltImage describes an image built by the pipeline.", + "type": "object" }, "Hash": { "description": "Container message for hash values.", @@ -752,72 +118,157 @@ ] }, "value": { - "type": "string", + "description": "The hash value.", "format": "byte", - "description": "The hash value." + "type": "string" } }, "id": "Hash" }, + "RepoSource": { + "description": "RepoSource describes the location of the source in a Google Cloud Source\nRepository.", + "type": "object", + "properties": { + "tagName": { + "description": "Name of the tag to build.", + "type": "string" + }, + "commitSha": { + "description": "Explicit commit SHA to build.", + "type": "string" + }, + "projectId": { + "description": "ID of the project that owns the repo. If omitted, the project ID requesting\nthe build is assumed.", + "type": "string" + }, + "repoName": { + "description": "Name of the repo. If omitted, the name \"default\" is assumed.", + "type": "string" + }, + "branchName": { + "description": "Name of the branch to build.", + "type": "string" + } + }, + "id": "RepoSource" + }, + "BuildStep": { + "description": "BuildStep describes a step to perform in the build pipeline.", + "type": "object", + "properties": { + "dir": { + "description": "Working directory (relative to project source root) to use when running\nthis operation's container.", + "type": "string" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on.\nThis build step will not start until all the build steps in wait_for\nhave completed successfully. If wait_for is empty, this build step will\nstart when all previous build steps in the Build.Steps list have completed\nsuccessfully.", + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\"\nbeing given the value \"VALUE\".", + "type": "array", + "items": { + "type": "string" + } + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started.\n\nIf the image used to run the step's container has an entrypoint, these args\nwill be used as arguments to that entrypoint. If the image does not define\nan entrypoint, the first element in args will be used as the entrypoint,\nand the remainder will be used as arguments.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "The name of the container image that will run this particular build step.\n\nIf the image is already available in the host's Docker daemon's cache, it\nwill be run directly. If not, the host will attempt to pull the image\nfirst, using the builder service account's credentials if necessary.\n\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps\n([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time you\nattempt to use them.\n\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.", + "type": "string" + }, + "entrypoint": { + "description": "Optional entrypoint to be used instead of the build step image's default\nIf unset, the image's default will be used.", + "type": "string" + }, + "id": { + "description": "Optional unique identifier for this build step, used in wait_for to\nreference this build step as a dependency.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud KMS\ncrypto key. These values must be specified in the build's secrets.", + "type": "array", + "items": { + "type": "string" + } + }, + "volumes": { + "description": "List of volumes to mount into the build step.\n\nEach volume will be created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents will\nbe discarded.\n\nUsing a named volume in only one step is not valid as it is indicative\nof a mis-configured build request.", + "type": "array", + "items": { + "$ref": "Volume" + } + } + }, + "id": "BuildStep" + }, "FileHashes": { "description": "Container message for hashes of byte content of files, used in\nSourceProvenance messages to verify integrity of source input to the build.", "type": "object", "properties": { "fileHash": { "description": "Collection of file hashes.", + "type": "array", "items": { "$ref": "Hash" - }, - "type": "array" + } } }, "id": "FileHashes" }, "Secret": { - "id": "Secret", - "description": "Secret pairs a set of secret environment variables containing encrypted\nvalues with the Cloud KMS key to use to decrypt the value.", "type": "object", "properties": { + "kmsKeyName": { + "description": "Cloud KMS key name to use to decrypt these envs.", + "type": "string" + }, "secretEnv": { "additionalProperties": { - "format": "byte", - "type": "string" + "type": "string", + "format": "byte" }, "description": "Map of environment variable name to its encrypted value.\n\nSecret environment variables must be unique across all of a build's\nsecrets, and must be used by at least one build step. Values can be at most\n1 KB in size. There can be at most ten secret values across all of a\nbuild's secrets.", "type": "object" - }, - "kmsKeyName": { - "type": "string", - "description": "Cloud KMS key name to use to decrypt these envs." } - } + }, + "id": "Secret", + "description": "Secret pairs a set of secret environment variables containing encrypted\nvalues with the Cloud KMS key to use to decrypt the value." }, "Status": { - "id": "Status", "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", "items": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, "type": "object" - }, - "type": "array", - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." + } }, "code": { - "format": "int32", "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" } - } + }, + "id": "Status" }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", @@ -826,50 +277,49 @@ "id": "Empty" }, "BuildTrigger": { - "id": "BuildTrigger", "description": "Configuration for an automated build in response to source repository\nchanges.", "type": "object", "properties": { - "id": { - "description": "Unique identifier of the trigger.\n\n@OutputOnly", - "type": "string" - }, - "build": { - "description": "Contents of the build template.", - "$ref": "Build" - }, - "substitutions": { - "additionalProperties": { - "type": "string" - }, - "description": "Substitutions data for Build resource.", - "type": "object" - }, - "description": { - "description": "Human-readable description of this trigger.", - "type": "string" - }, "disabled": { "description": "If true, the trigger will never result in a build.", "type": "boolean" }, "createTime": { - "format": "google-datetime", "description": "Time when the trigger was created.\n\n@OutputOnly", + "format": "google-datetime", "type": "string" }, - "triggerTemplate": { - "description": "Template describing the types of source changes to trigger a build.\n\nBranch and tag names in trigger templates are interpreted as regular\nexpressions. Any branch or tag change that matches that regular expression\nwill trigger a build.", - "$ref": "RepoSource" - }, "filename": { - "description": "Path, from the source root, to a file whose contents is used for the\ntemplate.", + "type": "string", + "description": "Path, from the source root, to a file whose contents is used for the\ntemplate." + }, + "triggerTemplate": { + "$ref": "RepoSource", + "description": "Template describing the types of source changes to trigger a build.\n\nBranch and tag names in trigger templates are interpreted as regular\nexpressions. Any branch or tag change that matches that regular expression\nwill trigger a build." + }, + "id": { + "type": "string", + "description": "Unique identifier of the trigger.\n\n@OutputOnly" + }, + "build": { + "$ref": "Build", + "description": "Contents of the build template." + }, + "substitutions": { + "description": "Substitutions data for Build resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "description": "Human-readable description of this trigger.", "type": "string" } - } + }, + "id": "BuildTrigger" }, "Build": { - "description": "A build resource in the Container Builder API.\n\nAt a high level, a Build describes where to find source code, how to build\nit (for example, the builder image to run on the source), and what tag to\napply to the built image when it is pushed to Google Container Registry.\n\nFields can include the following variables which will be expanded when the\nbuild is created:\n\n- $PROJECT_ID: the project ID of the build.\n- $BUILD_ID: the autogenerated ID of the build.\n- $REPO_NAME: the source repository name specified by RepoSource.\n- $BRANCH_NAME: the branch name specified by RepoSource.\n- $TAG_NAME: the tag name specified by RepoSource.\n- $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or\n resolved from the specified branch or tag.\n- $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", "type": "object", "properties": { "statusDetail": { @@ -877,16 +327,6 @@ "type": "string" }, "status": { - "enum": [ - "STATUS_UNKNOWN", - "QUEUED", - "WORKING", - "SUCCESS", - "FAILURE", - "INTERNAL_ERROR", - "TIMEOUT", - "CANCELLED" - ], "description": "Status of the build.\n@OutputOnly", "type": "string", "enumDescriptions": [ @@ -898,77 +338,87 @@ "Build failed due to an internal cause.", "Build took longer than was allowed.", "Build was canceled by a user." + ], + "enum": [ + "STATUS_UNKNOWN", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED" ] }, "timeout": { - "format": "google-duration", "description": "Amount of time that this build should be allowed to run, to second\ngranularity. If this amount of time elapses, work on the build will cease\nand the build status will be TIMEOUT.\n\nDefault time is ten minutes.", + "format": "google-duration", "type": "string" }, "secrets": { "description": "Secrets to decrypt using Cloud KMS.", + "type": "array", "items": { "$ref": "Secret" - }, - "type": "array" - }, - "logsBucket": { - "description": "Google Cloud Storage bucket where logs should be written (see\n[Bucket Name\nRequirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).\nLogs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", - "type": "string" + } }, "results": { "description": "Results of the build.\n@OutputOnly", "$ref": "Results" }, + "logsBucket": { + "description": "Google Cloud Storage bucket where logs should be written (see\n[Bucket Name\nRequirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).\nLogs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "type": "string" + }, "steps": { "description": "Describes the operations to be performed on the workspace.", + "type": "array", "items": { "$ref": "BuildStep" - }, - "type": "array" + } }, "buildTriggerId": { - "type": "string", - "description": "The ID of the BuildTrigger that triggered this build, if it was\ntriggered automatically.\n@OutputOnly" - }, - "tags": { - "description": "Tags for annotation of a Build. These are not docker tags.", - "items": { - "type": "string" - }, - "type": "array" + "description": "The ID of the BuildTrigger that triggered this build, if it was\ntriggered automatically.\n@OutputOnly", + "type": "string" }, "id": { "description": "Unique identifier of the build.\n@OutputOnly", "type": "string" }, - "substitutions": { - "additionalProperties": { + "tags": { + "description": "Tags for annotation of a Build. These are not docker tags.", + "type": "array", + "items": { "type": "string" - }, - "description": "Substitutions data for Build resource.", - "type": "object" + } }, "startTime": { - "format": "google-datetime", "description": "Time at which execution of the build was started.\n@OutputOnly", + "format": "google-datetime", "type": "string" }, + "substitutions": { + "description": "Substitutions data for Build resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "createTime": { + "type": "string", + "description": "Time at which the request to create the build was received.\n@OutputOnly", + "format": "google-datetime" + }, "sourceProvenance": { "description": "A permanent fixed identifier for source.\n@OutputOnly", "$ref": "SourceProvenance" }, - "createTime": { - "format": "google-datetime", - "description": "Time at which the request to create the build was received.\n@OutputOnly", - "type": "string" - }, "images": { "description": "A list of images to be pushed upon the successful completion of all build\nsteps.\n\nThe images will be pushed using the builder service account's credentials.\n\nThe digests of the pushed images will be stored in the Build resource's\nresults field.\n\nIf any of the images fail to be pushed, the build is marked FAILURE.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "projectId": { "description": "ID of the project.\n@OutputOnly.", @@ -979,20 +429,21 @@ "type": "string" }, "finishTime": { - "type": "string", + "description": "Time at which execution of the build was finished.\n\nThe difference between finish_time and start_time is the duration of the\nbuild's execution.\n@OutputOnly", "format": "google-datetime", - "description": "Time at which execution of the build was finished.\n\nThe difference between finish_time and start_time is the duration of the\nbuild's execution.\n@OutputOnly" + "type": "string" }, "options": { - "$ref": "BuildOptions", - "description": "Special options for this build." + "description": "Special options for this build.", + "$ref": "BuildOptions" }, "source": { - "$ref": "Source", - "description": "Describes where to find the source files to build." + "description": "Describes where to find the source files to build.", + "$ref": "Source" } }, - "id": "Build" + "id": "Build", + "description": "A build resource in the Container Builder API.\n\nAt a high level, a Build describes where to find source code, how to build\nit (for example, the builder image to run on the source), and what tag to\napply to the built image when it is pushed to Google Container Registry.\n\nFields can include the following variables which will be expanded when the\nbuild is created:\n\n- $PROJECT_ID: the project ID of the build.\n- $BUILD_ID: the autogenerated ID of the build.\n- $REPO_NAME: the source repository name specified by RepoSource.\n- $BRANCH_NAME: the branch name specified by RepoSource.\n- $TAG_NAME: the tag name specified by RepoSource.\n- $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or\n resolved from the specified branch or tag.\n- $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA." }, "CancelBuildRequest": { "description": "Request to cancel an ongoing build.", @@ -1001,7 +452,6 @@ "id": "CancelBuildRequest" }, "Volume": { - "description": "Volume describes a Docker container volume which is mounted into build steps\nin order to persist files across build step execution.", "type": "object", "properties": { "name": { @@ -1013,78 +463,78 @@ "type": "string" } }, - "id": "Volume" + "id": "Volume", + "description": "Volume describes a Docker container volume which is mounted into build steps\nin order to persist files across build step execution." }, "ListBuildsResponse": { - "type": "object", "properties": { "nextPageToken": { "description": "Token to receive the next page of results.", "type": "string" }, "builds": { - "description": "Builds will be sorted by create_time, descending.", + "type": "array", "items": { "$ref": "Build" }, - "type": "array" + "description": "Builds will be sorted by create_time, descending." } }, "id": "ListBuildsResponse", - "description": "Response including listed builds." + "description": "Response including listed builds.", + "type": "object" }, "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", "type": "object", "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.", + "type": "array", "items": { "$ref": "Operation" - }, - "type": "array" + } + }, + "nextPageToken": { + "type": "string", + "description": "The standard List next-page token." } }, - "id": "ListOperationsResponse" + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations." }, "Source": { + "type": "object", "properties": { - "storageSource": { - "description": "If provided, get the source from this location in Google Cloud Storage.", - "$ref": "StorageSource" - }, "repoSource": { "$ref": "RepoSource", "description": "If provided, get source from this location in a Cloud Repo." + }, + "storageSource": { + "description": "If provided, get the source from this location in Google Cloud Storage.", + "$ref": "StorageSource" } }, "id": "Source", - "description": "Source describes the location of the source in a supported storage\nservice.", - "type": "object" + "description": "Source describes the location of the source in a supported storage\nservice." }, "BuildOptions": { + "description": "Optional arguments to enable specific features of builds.", "type": "object", "properties": { - "sourceProvenanceHash": { - "items": { - "type": "string", - "enum": [ - "NONE", - "SHA256" - ] - }, - "type": "array", + "requestedVerifyOption": { "enumDescriptions": [ - "No hash requested.", - "Use a sha256 hash." + "Not a verifiable build. (default)", + "Verified build." ], - "description": "Requested hash for SourceProvenance." + "enum": [ + "NOT_VERIFIED", + "VERIFIED" + ], + "description": "Requested verifiability options.", + "type": "string" }, "substitutionOption": { + "description": "SubstitutionOption to allow unmatch substitutions.", "type": "string", "enumDescriptions": [ "Fails the build if error in substitutions checks, like missing\na substitution in the template or in the map.", @@ -1093,29 +543,579 @@ "enum": [ "MUST_MATCH", "ALLOW_LOOSE" - ], - "description": "SubstitutionOption to allow unmatch substitutions." + ] }, - "requestedVerifyOption": { - "enum": [ - "NOT_VERIFIED", - "VERIFIED" - ], - "description": "Requested verifiability options.", - "type": "string", + "sourceProvenanceHash": { + "description": "Requested hash for SourceProvenance.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "NONE", + "SHA256" + ] + }, "enumDescriptions": [ - "Not a verifiable build. (default)", - "Verified build." + "No hash requested.", + "Use a sha256 hash." ] } }, - "id": "BuildOptions", - "description": "Optional arguments to enable specific features of builds." + "id": "BuildOptions" + }, + "StorageSource": { + "description": "StorageSource describes the location of the source in an archive file in\nGoogle Cloud Storage.", + "type": "object", + "properties": { + "bucket": { + "description": "Google Cloud Storage bucket containing source (see\n[Bucket Name\nRequirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "type": "string" + }, + "object": { + "description": "Google Cloud Storage object containing source.\n\nThis object must be a gzipped archive file (.tar.gz) containing source to\nbuild.", + "type": "string" + }, + "generation": { + "type": "string", + "description": "Google Cloud Storage generation for the object. If the generation is\nomitted, the latest generation will be used.", + "format": "int64" + } + }, + "id": "StorageSource" + }, + "Results": { + "id": "Results", + "description": "Results describes the artifacts created by the build pipeline.", + "type": "object", + "properties": { + "buildStepImages": { + "description": "List of build step digests, in order corresponding to build step indices.", + "type": "array", + "items": { + "type": "string" + } + }, + "images": { + "description": "Images that were built as a part of the build.", + "type": "array", + "items": { + "$ref": "BuiltImage" + } + } + } + }, + "BuildOperationMetadata": { + "properties": { + "build": { + "$ref": "Build", + "description": "The build that the operation is tracking." + } + }, + "id": "BuildOperationMetadata", + "description": "Metadata for build operations.", + "type": "object" } }, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, - "protocol": "rest" + "protocol": "rest", + "canonicalName": "Cloud Build", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "rootUrl": "https://cloudbuild.googleapis.com/", + "ownerDomain": "google.com", + "name": "cloudbuild", + "batchPath": "batch", + "title": "Google Cloud Container Builder API", + "ownerName": "Google", + "resources": { + "operations": { + "methods": { + "cancel": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "required": true, + "type": "string", + "pattern": "^operations/.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/operations/{operationsId}:cancel", + "path": "v1/{+name}:cancel", + "id": "cloudbuild.operations.cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`." + }, + "list": { + "flatPath": "v1/operations", + "id": "cloudbuild.operations.list", + "path": "v1/{+name}", + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string", + "pattern": "^operations$", + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + } + } + }, + "get": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^operations/.+$", + "location": "path", + "description": "The name of the operation resource." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/operations/{operationsId}", + "path": "v1/{+name}", + "id": "cloudbuild.operations.get", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + } + } + }, + "projects": { + "resources": { + "triggers": { + "methods": { + "delete": { + "path": "v1/projects/{projectId}/triggers/{triggerId}", + "id": "cloudbuild.projects.triggers.delete", + "description": "Deletes an BuildTrigger by its project ID and trigger ID.\n\nThis API is experimental.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "projectId", + "triggerId" + ], + "httpMethod": "DELETE", + "parameters": { + "triggerId": { + "required": true, + "type": "string", + "location": "path", + "description": "ID of the BuildTrigger to delete." + }, + "projectId": { + "location": "path", + "description": "ID of the project that owns the trigger.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/triggers/{triggerId}" + }, + "get": { + "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", + "path": "v1/projects/{projectId}/triggers/{triggerId}", + "id": "cloudbuild.projects.triggers.get", + "description": "Gets information about a BuildTrigger.\n\nThis API is experimental.", + "response": { + "$ref": "BuildTrigger" + }, + "parameterOrder": [ + "projectId", + "triggerId" + ], + "httpMethod": "GET", + "parameters": { + "triggerId": { + "required": true, + "type": "string", + "location": "path", + "description": "ID of the BuildTrigger to get." + }, + "projectId": { + "location": "path", + "description": "ID of the project that owns the trigger.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists existing BuildTrigger.\n\nThis API is experimental.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "ListBuildTriggersResponse" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the project for which to list BuildTriggers.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/triggers", + "id": "cloudbuild.projects.triggers.list", + "path": "v1/projects/{projectId}/triggers" + }, + "patch": { + "description": "Updates an BuildTrigger by its project ID and trigger ID.\n\nThis API is experimental.", + "request": { + "$ref": "BuildTrigger" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "projectId", + "triggerId" + ], + "response": { + "$ref": "BuildTrigger" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "triggerId": { + "description": "ID of the BuildTrigger to update.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "location": "path", + "description": "ID of the project that owns the trigger.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/triggers/{triggerId}", + "id": "cloudbuild.projects.triggers.patch", + "path": "v1/projects/{projectId}/triggers/{triggerId}" + }, + "create": { + "request": { + "$ref": "BuildTrigger" + }, + "description": "Creates a new BuildTrigger.\n\nThis API is experimental.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "BuildTrigger" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the project for which to configure automatic builds.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/triggers", + "id": "cloudbuild.projects.triggers.create", + "path": "v1/projects/{projectId}/triggers" + } + } + }, + "builds": { + "methods": { + "cancel": { + "description": "Cancels a requested build in progress.", + "request": { + "$ref": "CancelBuildRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "id" + ], + "response": { + "$ref": "Build" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "ID of the project.", + "required": true, + "type": "string", + "location": "path" + }, + "id": { + "description": "ID of the build.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/builds/{id}:cancel", + "id": "cloudbuild.projects.builds.cancel", + "path": "v1/projects/{projectId}/builds/{id}:cancel" + }, + "get": { + "description": "Returns information about a previously requested build.\n\nThe Build that is returned includes its status (e.g., success or failure,\nor in-progress), and timing information.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId", + "id" + ], + "response": { + "$ref": "Build" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the project.", + "required": true, + "type": "string" + }, + "id": { + "location": "path", + "description": "ID of the build.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/builds/{id}", + "id": "cloudbuild.projects.builds.get", + "path": "v1/projects/{projectId}/builds/{id}" + }, + "list": { + "flatPath": "v1/projects/{projectId}/builds", + "path": "v1/projects/{projectId}/builds", + "id": "cloudbuild.projects.builds.list", + "description": "Lists previously requested builds.\n\nPreviously requested builds may still be in-progress, or may have finished\nsuccessfully or unsuccessfully.", + "response": { + "$ref": "ListBuildsResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "GET", + "parameters": { + "pageSize": { + "location": "query", + "description": "Number of results to return in the list.", + "format": "int32", + "type": "integer" + }, + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "ID of the project." + }, + "filter": { + "location": "query", + "description": "The raw filter text to constrain the results.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Token to provide to skip to a particular spot in the list.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Starts a build with the specified configuration.\n\nThe long-running Operation returned by this method will include the ID of\nthe build, which can be passed to GetBuild to determine its status (e.g.,\nsuccess or failure).", + "request": { + "$ref": "Build" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the project.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/builds", + "path": "v1/projects/{projectId}/builds", + "id": "cloudbuild.projects.builds.create" + } + } + } + } + } + }, + "parameters": { + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "alt": { + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response." + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "type": "string", + "location": "query", + "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." + }, + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + } + }, + "version": "v1", + "baseUrl": "https://cloudbuild.googleapis.com/" } diff --git a/vendor/google.golang.org/api/clouddebugger/v2/clouddebugger-api.json b/vendor/google.golang.org/api/clouddebugger/v2/clouddebugger-api.json index c8d952a28..c552cb9d9 100644 --- a/vendor/google.golang.org/api/clouddebugger/v2/clouddebugger-api.json +++ b/vendor/google.golang.org/api/clouddebugger/v2/clouddebugger-api.json @@ -1,304 +1,423 @@ { + "title": "Stackdriver Debugger API", + "ownerName": "Google", + "resources": { + "debugger": { + "resources": { + "debuggees": { + "methods": { + "list": { + "description": "Lists all the debuggees that the user has access to.", + "response": { + "$ref": "ListDebuggeesResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "includeInactive": { + "description": "When set to `true`, the result includes all debuggees. Otherwise, the\nresult includes only debuggees that are active.", + "type": "boolean", + "location": "query" + }, + "project": { + "type": "string", + "location": "query", + "description": "Project number of a Google Cloud project whose debuggees to list." + }, + "clientVersion": { + "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/debugger/debuggees", + "id": "clouddebugger.debugger.debuggees.list", + "path": "v2/debugger/debuggees" + } + }, + "resources": { + "breakpoints": { + "methods": { + "delete": { + "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}", + "id": "clouddebugger.debugger.debuggees.breakpoints.delete", + "description": "Deletes the breakpoint from the debuggee.", + "httpMethod": "DELETE", + "parameterOrder": [ + "debuggeeId", + "breakpointId" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "breakpointId": { + "description": "ID of the breakpoint to delete.", + "type": "string", + "required": true, + "location": "path" + }, + "debuggeeId": { + "type": "string", + "required": true, + "location": "path", + "description": "ID of the debuggee whose breakpoint to delete." + }, + "clientVersion": { + "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}" + }, + "set": { + "request": { + "$ref": "Breakpoint" + }, + "description": "Sets the breakpoint to the debuggee.", + "httpMethod": "POST", + "parameterOrder": [ + "debuggeeId" + ], + "response": { + "$ref": "SetBreakpointResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "debuggeeId": { + "location": "path", + "description": "ID of the debuggee where the breakpoint is to be set.", + "type": "string", + "required": true + }, + "clientVersion": { + "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/set", + "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/set", + "id": "clouddebugger.debugger.debuggees.breakpoints.set" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "debuggeeId" + ], + "response": { + "$ref": "ListBreakpointsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "stripResults": { + "location": "query", + "description": "This field is deprecated. The following fields are always stripped out of\nthe result: `stack_frames`, `evaluated_expressions` and `variable_table`.", + "type": "boolean" + }, + "debuggeeId": { + "location": "path", + "description": "ID of the debuggee whose breakpoints to list.", + "type": "string", + "required": true + }, + "waitToken": { + "type": "string", + "location": "query", + "description": "A wait token that, if specified, blocks the call until the breakpoints\nlist has changed, or a server selected timeout has expired. The value\nshould be set from the last response. The error code\n`google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which\nshould be called again with the same `wait_token`." + }, + "clientVersion": { + "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", + "type": "string", + "location": "query" + }, + "action.value": { + "location": "query", + "enum": [ + "CAPTURE", + "LOG" + ], + "description": "Only breakpoints with the specified action will pass the filter.", + "type": "string" + }, + "includeInactive": { + "type": "boolean", + "location": "query", + "description": "When set to `true`, the response includes active and inactive\nbreakpoints. Otherwise, it includes only active breakpoints." + }, + "includeAllUsers": { + "location": "query", + "description": "When set to `true`, the response includes the list of breakpoints set by\nany user. Otherwise, it includes only breakpoints set by the caller.", + "type": "boolean" + } + }, + "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints", + "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints", + "id": "clouddebugger.debugger.debuggees.breakpoints.list", + "description": "Lists all breakpoints for the debuggee." + }, + "get": { + "description": "Gets breakpoint information.", + "response": { + "$ref": "GetBreakpointResponse" + }, + "parameterOrder": [ + "debuggeeId", + "breakpointId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "debuggeeId": { + "location": "path", + "description": "ID of the debuggee whose breakpoint to get.", + "type": "string", + "required": true + }, + "clientVersion": { + "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", + "type": "string", + "location": "query" + }, + "breakpointId": { + "location": "path", + "description": "ID of the breakpoint to get.", + "type": "string", + "required": true + } + }, + "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}", + "id": "clouddebugger.debugger.debuggees.breakpoints.get", + "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}" + } + } + } + } + } + } + }, + "controller": { + "resources": { + "debuggees": { + "methods": { + "register": { + "flatPath": "v2/controller/debuggees/register", + "id": "clouddebugger.controller.debuggees.register", + "path": "v2/controller/debuggees/register", + "request": { + "$ref": "RegisterDebuggeeRequest" + }, + "description": "Registers the debuggee with the controller service.\n\nAll agents attached to the same application must call this method with\nexactly the same request content to get back the same stable `debuggee_id`.\nAgents should call this method again whenever `google.rpc.Code.NOT_FOUND`\nis returned from any controller method.\n\nThis protocol allows the controller service to disable debuggees, recover\nfrom data loss, or change the `debuggee_id` format. Agents must handle\n`debuggee_id` value changing upon re-registration.", + "response": { + "$ref": "RegisterDebuggeeResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": {} + } + }, + "resources": { + "breakpoints": { + "methods": { + "list": { + "description": "Returns the list of all active breakpoints for the debuggee.\n\nThe breakpoint specification (`location`, `condition`, and `expressions`\nfields) is semantically immutable, although the field values may\nchange. For example, an agent may update the location line number\nto reflect the actual line where the breakpoint was set, but this\ndoesn't change the breakpoint semantics.\n\nThis means that an agent does not need to check if a breakpoint has changed\nwhen it encounters the same breakpoint on a successive call.\nMoreover, an agent should remember the breakpoints that are completed\nuntil the controller removes them from the active list to avoid\nsetting those breakpoints again.", + "httpMethod": "GET", + "response": { + "$ref": "ListActiveBreakpointsResponse" + }, + "parameterOrder": [ + "debuggeeId" + ], + "parameters": { + "successOnTimeout": { + "description": "If set to `true` (recommended), returns `google.rpc.Code.OK` status and\nsets the `wait_expired` response field to `true` when the server-selected\ntimeout has expired.\n\nIf set to `false` (deprecated), returns `google.rpc.Code.ABORTED` status\nwhen the server-selected timeout has expired.", + "type": "boolean", + "location": "query" + }, + "debuggeeId": { + "location": "path", + "description": "Identifies the debuggee.", + "type": "string", + "required": true + }, + "waitToken": { + "type": "string", + "location": "query", + "description": "A token that, if specified, blocks the method call until the list\nof active breakpoints has changed, or a server-selected timeout has\nexpired. The value should be set from the `next_wait_token` field in\nthe last response. The initial value should be set to `\"init\"`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "flatPath": "v2/controller/debuggees/{debuggeeId}/breakpoints", + "path": "v2/controller/debuggees/{debuggeeId}/breakpoints", + "id": "clouddebugger.controller.debuggees.breakpoints.list" + }, + "update": { + "response": { + "$ref": "UpdateActiveBreakpointResponse" + }, + "parameterOrder": [ + "debuggeeId", + "id" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud_debugger" + ], + "parameters": { + "debuggeeId": { + "location": "path", + "description": "Identifies the debuggee being debugged.", + "type": "string", + "required": true + }, + "id": { + "description": "Breakpoint identifier, unique in the scope of the debuggee.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2/controller/debuggees/{debuggeeId}/breakpoints/{id}", + "id": "clouddebugger.controller.debuggees.breakpoints.update", + "path": "v2/controller/debuggees/{debuggeeId}/breakpoints/{id}", + "request": { + "$ref": "UpdateActiveBreakpointRequest" + }, + "description": "Updates the breakpoint state or mutable fields.\nThe entire Breakpoint message must be sent back to the controller service.\n\nUpdates to active breakpoint fields are only allowed if the new value\ndoes not change the breakpoint specification. Updates to the `location`,\n`condition` and `expressions` fields should not alter the breakpoint\nsemantics. These may only make changes such as canonicalizing a value\nor snapping the location to the correct line of code." + } + } + } + } + } + } + } + }, + "parameters": { + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "key": { + "location": "query", + "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.", + "type": "string" + } + }, "version": "v2", "baseUrl": "https://clouddebugger.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Examines the call stack and variables of a running application without stopping or slowing it down.\n", "servicePath": "", + "description": "Examines the call stack and variables of a running application without stopping or slowing it down.\n", + "kind": "discovery#restDescription", "basePath": "", - "revision": "20170928", - "documentationLink": "http://cloud.google.com/debugger", + "revision": "20171016", "id": "clouddebugger:v2", + "documentationLink": "http://cloud.google.com/debugger", "discoveryVersion": "v1", "version_module": true, "schemas": { - "CloudWorkspaceSourceContext": { - "description": "A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.", - "type": "object", - "properties": { - "snapshotId": { - "description": "The ID of the snapshot.\nAn empty snapshot_id refers to the most recent snapshot.", - "type": "string" - }, - "workspaceId": { - "$ref": "CloudWorkspaceId", - "description": "The ID of the workspace." - } - }, - "id": "CloudWorkspaceSourceContext" - }, - "UpdateActiveBreakpointResponse": { - "description": "Response for updating an active breakpoint.\nThe message is defined to allow future extensions.", - "type": "object", - "properties": {}, - "id": "UpdateActiveBreakpointResponse" - }, - "GerritSourceContext": { - "description": "A SourceContext referring to a Gerrit project.", - "type": "object", - "properties": { - "aliasContext": { - "description": "An alias, which may be a branch or tag.", - "$ref": "AliasContext" - }, - "gerritProject": { - "description": "The full project name within the host. Projects may be nested, so\n\"project/subproject\" is a valid project name.\nThe \"repo name\" is hostURI/project.", - "type": "string" - }, - "revisionId": { - "description": "A revision (commit) ID.", - "type": "string" - }, - "hostUri": { - "description": "The URI of a running Gerrit instance.", - "type": "string" - }, - "aliasName": { - "description": "The name of an alias (branch, tag, etc.).", - "type": "string" - } - }, - "id": "GerritSourceContext" - }, - "CloudWorkspaceId": { - "description": "A CloudWorkspaceId is a unique identifier for a cloud workspace.\nA cloud workspace is a place associated with a repo where modified files\ncan be stored before they are committed.", - "type": "object", - "properties": { - "repoId": { - "$ref": "RepoId", - "description": "The ID of the repo containing the workspace." - }, - "name": { - "description": "The unique name of the workspace within the repo. This is the name\nchosen by the client in the Source API's CreateWorkspace method.", - "type": "string" - } - }, - "id": "CloudWorkspaceId" - }, - "ListBreakpointsResponse": { - "description": "Response for listing breakpoints.", - "type": "object", - "properties": { - "nextWaitToken": { - "description": "A wait token that can be used in the next call to `list` (REST) or\n`ListBreakpoints` (RPC) to block until the list of breakpoints has changes.", - "type": "string" - }, - "breakpoints": { - "description": "List of breakpoints matching the request.\nThe fields `id` and `location` are guaranteed to be set on each breakpoint.\nThe fields: `stack_frames`, `evaluated_expressions` and `variable_table`\nare cleared on each breakpoint regardless of its status.", - "items": { - "$ref": "Breakpoint" - }, - "type": "array" - } - }, - "id": "ListBreakpointsResponse" - }, - "Breakpoint": { - "description": "Represents the breakpoint specification, status and results.", - "type": "object", - "properties": { - "expressions": { - "description": "List of read-only expressions to evaluate at the breakpoint location.\nThe expressions are composed using expressions in the programming language\nat the source location. If the breakpoint action is `LOG`, the evaluated\nexpressions are included in log statements.", - "items": { - "type": "string" - }, - "type": "array" - }, - "evaluatedExpressions": { - "description": "Values of evaluated expressions at breakpoint time.\nThe evaluated expressions appear in exactly the same order they\nare listed in the `expressions` field.\nThe `name` field holds the original expression text, the `value` or\n`members` field holds the result of the evaluated expression.\nIf the expression cannot be evaluated, the `status` inside the `Variable`\nwill indicate an error and contain the error text.", - "items": { - "$ref": "Variable" - }, - "type": "array" - }, - "isFinalState": { - "description": "When true, indicates that this is a final result and the\nbreakpoint state will not change from here on.", - "type": "boolean" - }, - "stackFrames": { - "description": "The stack at breakpoint time.", - "items": { - "$ref": "StackFrame" - }, - "type": "array" - }, - "condition": { - "description": "Condition that triggers the breakpoint.\nThe condition is a compound boolean expression composed using expressions\nin a programming language at the source location.", - "type": "string" - }, - "status": { - "description": "Breakpoint status.\n\nThe status includes an error flag and a human readable message.\nThis field is usually unset. The message can be either\ninformational or an error message. Regardless, clients should always\ndisplay the text message back to the user.\n\nError status indicates complete failure of the breakpoint.\n\nExample (non-final state): `Still loading symbols...`\n\nExamples (final state):\n\n* `Invalid line number` referring to location\n* `Field f not found in class C` referring to condition", - "$ref": "StatusMessage" - }, - "userEmail": { - "description": "E-mail address of the user that created this breakpoint", - "type": "string" - }, - "action": { - "enumDescriptions": [ - "Capture stack frame and variables and update the breakpoint.\nThe data is only captured once. After that the breakpoint is set\nin a final state.", - "Log each breakpoint hit. The breakpoint remains active until\ndeleted or expired." - ], - "enum": [ - "CAPTURE", - "LOG" - ], - "description": "Action that the agent should perform when the code at the\nbreakpoint location is hit.", - "type": "string" - }, - "logLevel": { - "description": "Indicates the severity of the log. Only relevant when action is `LOG`.", - "type": "string", - "enumDescriptions": [ - "Information log message.", - "Warning log message.", - "Error log message." - ], - "enum": [ - "INFO", - "WARNING", - "ERROR" - ] - }, - "id": { - "description": "Breakpoint identifier, unique in the scope of the debuggee.", - "type": "string" - }, - "location": { - "$ref": "SourceLocation", - "description": "Breakpoint source location." - }, - "finalTime": { - "format": "google-datetime", - "description": "Time this breakpoint was finalized as seen by the server in seconds\nresolution.", - "type": "string" - }, - "variableTable": { - "description": "The `variable_table` exists to aid with computation, memory and network\ntraffic optimization. It enables storing a variable once and reference\nit from multiple variables, including variables stored in the\n`variable_table` itself.\nFor example, the same `this` object, which may appear at many levels of\nthe stack, can have all of its data stored once in this table. The\nstack frame variables then would hold only a reference to it.\n\nThe variable `var_table_index` field is an index into this repeated field.\nThe stored objects are nameless and get their name from the referencing\nvariable. The effective variable is a merge of the referencing variable\nand the referenced variable.", - "items": { - "$ref": "Variable" - }, - "type": "array" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "A set of custom breakpoint properties, populated by the agent, to be\ndisplayed to the user.", - "type": "object" - }, - "logMessageFormat": { - "description": "Only relevant when action is `LOG`. Defines the message to log when\nthe breakpoint hits. The message may include parameter placeholders `$0`,\n`$1`, etc. These placeholders are replaced with the evaluated value\nof the appropriate expression. Expressions not referenced in\n`log_message_format` are not logged.\n\nExample: `Message received, id = $0, count = $1` with\n`expressions` = `[ message.id, message.count ]`.", - "type": "string" - }, - "createTime": { - "format": "google-datetime", - "description": "Time this breakpoint was created by the server in seconds resolution.", - "type": "string" - } - }, - "id": "Breakpoint" - }, - "SetBreakpointResponse": { - "description": "Response for setting a breakpoint.", - "type": "object", - "properties": { - "breakpoint": { - "$ref": "Breakpoint", - "description": "Breakpoint resource.\nThe field `id` is guaranteed to be set (in addition to the echoed fileds)." - } - }, - "id": "SetBreakpointResponse" - }, - "UpdateActiveBreakpointRequest": { - "description": "Request to update an active breakpoint.", - "type": "object", - "properties": { - "breakpoint": { - "$ref": "Breakpoint", - "description": "Updated breakpoint information.\nThe field `id` must be set.\nThe agent must echo all Breakpoint specification fields in the update." - } - }, - "id": "UpdateActiveBreakpointRequest" - }, - "SourceContext": { - "description": "A SourceContext is a reference to a tree of files. A SourceContext together\nwith a path point to a unique revision of a single file or directory.", - "type": "object", - "properties": { - "git": { - "description": "A SourceContext referring to any third party Git repo (e.g. GitHub).", - "$ref": "GitSourceContext" - }, - "gerrit": { - "$ref": "GerritSourceContext", - "description": "A SourceContext referring to a Gerrit project." - }, - "cloudWorkspace": { - "description": "A SourceContext referring to a snapshot in a cloud workspace.", - "$ref": "CloudWorkspaceSourceContext" - }, - "cloudRepo": { - "$ref": "CloudRepoSourceContext", - "description": "A SourceContext referring to a revision in a cloud repo." - } - }, - "id": "SourceContext" - }, - "CloudRepoSourceContext": { - "description": "A CloudRepoSourceContext denotes a particular revision in a cloud\nrepo (a repo hosted by the Google Cloud Platform).", - "type": "object", - "properties": { - "repoId": { - "description": "The ID of the repo.", - "$ref": "RepoId" - }, - "aliasContext": { - "description": "An alias, which may be a branch or tag.", - "$ref": "AliasContext" - }, - "revisionId": { - "description": "A revision ID.", - "type": "string" - }, - "aliasName": { - "description": "The name of an alias (branch, tag, etc.).", - "type": "string" - } - }, - "id": "CloudRepoSourceContext" - }, - "RegisterDebuggeeResponse": { - "description": "Response for registering a debuggee.", - "type": "object", - "properties": { - "debuggee": { - "description": "Debuggee resource.\nThe field `id` is guranteed to be set (in addition to the echoed fields).\nIf the field `is_disabled` is set to `true`, the agent should disable\nitself by removing all breakpoints and detaching from the application.\nIt should however continue to poll `RegisterDebuggee` until reenabled.", - "$ref": "Debuggee" - } - }, - "id": "RegisterDebuggeeResponse" - }, - "RegisterDebuggeeRequest": { - "description": "Request to register a debuggee.", - "type": "object", - "properties": { - "debuggee": { - "$ref": "Debuggee", - "description": "Debuggee information to register.\nThe fields `project`, `uniquifier`, `description` and `agent_version`\nof the debuggee must be set." - } - }, - "id": "RegisterDebuggeeRequest" - }, - "GetBreakpointResponse": { - "description": "Response for getting breakpoint information.", - "type": "object", - "properties": { - "breakpoint": { - "description": "Complete breakpoint state.\nThe fields `id` and `location` are guaranteed to be set.", - "$ref": "Breakpoint" - } - }, - "id": "GetBreakpointResponse" - }, "StatusMessage": { "description": "Represents a contextual status message.\nThe message can indicate an error or informational status, and refer to\nspecific parts of the containing object.\nFor example, the `Breakpoint.status` field can indicate an error referring\nto the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.", "type": "object", @@ -355,6 +474,23 @@ "description": "Represents a variable or an argument possibly of a compound object type.\nNote how the following variables are represented:\n\n1) A simple variable:\n\n int x = 5\n\n { name: \"x\", value: \"5\", type: \"int\" } // Captured variable\n\n2) A compound object:\n\n struct T {\n int m1;\n int m2;\n };\n T x = { 3, 7 };\n\n { // Captured variable\n name: \"x\",\n type: \"T\",\n members { name: \"m1\", value: \"3\", type: \"int\" },\n members { name: \"m2\", value: \"7\", type: \"int\" }\n }\n\n3) A pointer where the pointee was captured:\n\n T x = { 3, 7 };\n T* p = &x;\n\n { // Captured variable\n name: \"p\",\n type: \"T*\",\n value: \"0x00500500\",\n members { name: \"m1\", value: \"3\", type: \"int\" },\n members { name: \"m2\", value: \"7\", type: \"int\" }\n }\n\n4) A pointer where the pointee was not captured:\n\n T* p = new T;\n\n { // Captured variable\n name: \"p\",\n type: \"T*\",\n value: \"0x00400400\"\n status { is_error: true, description { format: \"unavailable\" } }\n }\n\nThe status should describe the reason for the missing value,\nsuch as `\u003coptimized out\u003e`, `\u003cinaccessible\u003e`, `\u003cpointers limit reached\u003e`.\n\nNote that a null pointer should not have members.\n\n5) An unnamed value:\n\n int* p = new int(7);\n\n { // Captured variable\n name: \"p\",\n value: \"0x00500500\",\n type: \"int*\",\n members { value: \"7\", type: \"int\" } }\n\n6) An unnamed pointer where the pointee was not captured:\n\n int* p = new int(7);\n int** pp = &p;\n\n { // Captured variable\n name: \"pp\",\n value: \"0x00500500\",\n type: \"int**\",\n members {\n value: \"0x00400400\",\n type: \"int*\"\n status {\n is_error: true,\n description: { format: \"unavailable\" } }\n }\n }\n }\n\nTo optimize computation, memory and network traffic, variables that\nrepeat in the output multiple times can be stored once in a shared\nvariable table and be referenced using the `var_table_index` field. The\nvariables stored in the shared table are nameless and are essentially\na partition of the complete variable. To reconstruct the complete\nvariable, merge the referencing variable with the referenced variable.\n\nWhen using the shared variable table, the following variables:\n\n T x = { 3, 7 };\n T* p = &x;\n T& r = x;\n\n { name: \"x\", var_table_index: 3, type: \"T\" } // Captured variables\n { name: \"p\", value \"0x00500500\", type=\"T*\", var_table_index: 3 }\n { name: \"r\", type=\"T&\", var_table_index: 3 }\n\n { // Shared variable table entry #3:\n members { name: \"m1\", value: \"3\", type: \"int\" },\n members { name: \"m2\", value: \"7\", type: \"int\" }\n }\n\nNote that the pointer address is stored with the referencing variable\nand not with the referenced variable. This allows the referenced variable\nto be shared between pointers and references.\n\nThe type field is optional. The debugger agent may or may not support it.", "type": "object", "properties": { + "name": { + "description": "Name of the variable, if any.", + "type": "string" + }, + "type": { + "description": "Variable type (e.g. `MyClass`). If the variable is split with\n`var_table_index`, `type` goes next to `value`. The interpretation of\na type is agent specific. It is recommended to include the dynamic type\nrather than a static type of an object.", + "type": "string" + }, + "varTableIndex": { + "format": "int32", + "description": "Reference to a variable in the shared variable table. More than\none variable can reference the same variable in the table. The\n`var_table_index` field is an index into `variable_table` in Breakpoint.", + "type": "integer" + }, + "value": { + "description": "Simple value of the variable.", + "type": "string" + }, "members": { "description": "Members contained or pointed to by the variable.", "items": { @@ -365,23 +501,6 @@ "status": { "$ref": "StatusMessage", "description": "Status associated with the variable. This field will usually stay\nunset. A status of a single variable only applies to that variable or\nexpression. The rest of breakpoint data still remains valid. Variables\nmight be reported in error state even when breakpoint is not in final\nstate.\n\nThe message may refer to variable name with `refers_to` set to\n`VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.\nIn either case variable value and members will be unset.\n\nExample of error message applied to name: `Invalid expression syntax`.\n\nExample of information message applied to value: `Not captured`.\n\nExamples of error message applied to value:\n\n* `Malformed string`,\n* `Field f not found in class C`\n* `Null pointer dereference`" - }, - "name": { - "description": "Name of the variable, if any.", - "type": "string" - }, - "type": { - "description": "Variable type (e.g. `MyClass`). If the variable is split with\n`var_table_index`, `type` goes next to `value`. The interpretation of\na type is agent specific. It is recommended to include the dynamic type\nrather than a static type of an object.", - "type": "string" - }, - "value": { - "description": "Simple value of the variable.", - "type": "string" - }, - "varTableIndex": { - "format": "int32", - "description": "Reference to a variable in the shared variable table. More than\none variable can reference the same variable in the table. The\n`var_table_index` field is an index into `variable_table` in Breakpoint.", - "type": "integer" } }, "id": "Variable" @@ -405,71 +524,89 @@ "type": "array" }, "location": { - "description": "Source location of the call site.", - "$ref": "SourceLocation" + "$ref": "SourceLocation", + "description": "Source location of the call site." }, "function": { - "description": "Demangled function name at the call site.", - "type": "string" + "type": "string", + "description": "Demangled function name at the call site." } }, "id": "StackFrame" }, "RepoId": { - "description": "A unique identifier for a cloud repo.", - "type": "object", "properties": { + "projectRepoId": { + "$ref": "ProjectRepoId", + "description": "A combination of a project ID and a repo name." + }, "uid": { "description": "A server-assigned, globally unique identifier.", "type": "string" - }, - "projectRepoId": { - "description": "A combination of a project ID and a repo name.", - "$ref": "ProjectRepoId" } }, - "id": "RepoId" + "id": "RepoId", + "description": "A unique identifier for a cloud repo.", + "type": "object" }, "FormatMessage": { "description": "Represents a message with parameters.", "type": "object", "properties": { - "format": { - "description": "Format template for the message. The `format` uses placeholders `$0`,\n`$1`, etc. to reference parameters. `$$` can be used to denote the `$`\ncharacter.\n\nExamples:\n\n* `Failed to load '$0' which helps debug $1 the first time it\n is loaded. Again, $0 is very important.`\n* `Please pay $$10 to use $0 instead of $1.`", - "type": "string" - }, "parameters": { "description": "Optional parameters to be embedded into the message.", "items": { "type": "string" }, "type": "array" + }, + "format": { + "description": "Format template for the message. The `format` uses placeholders `$0`,\n`$1`, etc. to reference parameters. `$$` can be used to denote the `$`\ncharacter.\n\nExamples:\n\n* `Failed to load '$0' which helps debug $1 the first time it\n is loaded. Again, $0 is very important.`\n* `Please pay $$10 to use $0 instead of $1.`", + "type": "string" } }, "id": "FormatMessage" }, "ExtendedSourceContext": { - "description": "An ExtendedSourceContext is a SourceContext combined with additional\ndetails describing the context.", - "type": "object", "properties": { + "context": { + "$ref": "SourceContext", + "description": "Any source context." + }, "labels": { - "description": "Labels with user defined metadata.", "type": "object", "additionalProperties": { "type": "string" - } - }, - "context": { - "description": "Any source context.", - "$ref": "SourceContext" + }, + "description": "Labels with user defined metadata." } }, - "id": "ExtendedSourceContext" + "id": "ExtendedSourceContext", + "description": "An ExtendedSourceContext is a SourceContext combined with additional\ndetails describing the context.", + "type": "object" + }, + "ListDebuggeesResponse": { + "properties": { + "debuggees": { + "description": "List of debuggees accessible to the calling user.\nThe fields `debuggee.id` and `description` are guaranteed to be set.\nThe `description` field is a human readable field provided by agents and\ncan be displayed to users.", + "items": { + "$ref": "Debuggee" + }, + "type": "array" + } + }, + "id": "ListDebuggeesResponse", + "description": "Response for listing debuggees.", + "type": "object" }, "AliasContext": { "description": "An alias to a repo revision.", "type": "object", "properties": { + "name": { + "description": "The alias name.", + "type": "string" + }, "kind": { "enumDescriptions": [ "Do not use.", @@ -485,28 +622,10 @@ ], "description": "The alias kind.", "type": "string" - }, - "name": { - "description": "The alias name.", - "type": "string" } }, "id": "AliasContext" }, - "ListDebuggeesResponse": { - "description": "Response for listing debuggees.", - "type": "object", - "properties": { - "debuggees": { - "description": "List of debuggees accessible to the calling user.\nThe fields `debuggee.id` and `description` are guaranteed to be set.\nThe `description` field is a human readable field provided by agents and\ncan be displayed to users.", - "items": { - "$ref": "Debuggee" - }, - "type": "array" - } - }, - "id": "ListDebuggeesResponse" - }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", @@ -533,14 +652,30 @@ "description": "Represents the debugged application. The application may include one or more\nreplicated processes executing the same code. Each of these processes is\nattached with a debugger agent, carrying out the debugging commands.\nAgents attached to the same debuggee identify themselves as such by using\nexactly the same Debuggee message value when registering.", "type": "object", "properties": { - "uniquifier": { - "description": "Uniquifier to further distiguish the application.\nIt is possible that different applications might have identical values in\nthe debuggee message, thus, incorrectly identified as a single application\nby the Controller service. This field adds salt to further distiguish the\napplication. Agents should consider seeding this field with value that\nidentifies the code, binary, configuration and environment.", + "project": { + "description": "Project the debuggee is associated with.\nUse project number or id when registering a Google Cloud Platform project.", + "type": "string" + }, + "isDisabled": { + "description": "If set to `true`, indicates that the agent should disable itself and\ndetach from the debuggee.", + "type": "boolean" + }, + "agentVersion": { + "description": "Version ID of the agent.\nSchema: `domain/language-platform/vmajor.minor` (for example\n`google.com/java-gcp/v1.1`).", + "type": "string" + }, + "id": { + "description": "Unique identifier for the debuggee generated by the controller service.", "type": "string" }, "description": { "description": "Human readable description of the debuggee.\nIncluding a human-readable project name, environment name and version\ninformation is recommended.", "type": "string" }, + "uniquifier": { + "description": "Uniquifier to further distiguish the application.\nIt is possible that different applications might have identical values in\nthe debuggee message, thus, incorrectly identified as a single application\nby the Controller service. This field adds salt to further distiguish the\napplication. Agents should consider seeding this field with value that\nidentifies the code, binary, configuration and environment.", + "type": "string" + }, "sourceContexts": { "description": "References to the locations and revisions of the source code used in the\ndeployed application.", "items": { @@ -556,39 +691,38 @@ "type": "array" }, "labels": { - "description": "A set of custom debuggee properties, populated by the agent, to be\ndisplayed to the user.", "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "A set of custom debuggee properties, populated by the agent, to be\ndisplayed to the user." }, "status": { - "description": "Human readable message to be displayed to the user about this debuggee.\nAbsence of this field indicates no status. The message can be either\ninformational or an error status.", - "$ref": "StatusMessage" + "$ref": "StatusMessage", + "description": "Human readable message to be displayed to the user about this debuggee.\nAbsence of this field indicates no status. The message can be either\ninformational or an error status." }, "isInactive": { "description": "If set to `true`, indicates that Controller service does not detect any\nactivity from the debuggee agents and the application is possibly stopped.", "type": "boolean" - }, - "project": { - "description": "Project the debuggee is associated with.\nUse project number or id when registering a Google Cloud Platform project.", - "type": "string" - }, - "isDisabled": { - "description": "If set to `true`, indicates that the agent should disable itself and\ndetach from the debuggee.", - "type": "boolean" - }, - "agentVersion": { - "description": "Version ID of the agent.\nSchema: `domain/language-platform/vmajor.minor` (for example\n`google.com/java-gcp/v1.1`).", - "type": "string" - }, - "id": { - "description": "Unique identifier for the debuggee generated by the controller service.", - "type": "string" } }, "id": "Debuggee" }, + "ProjectRepoId": { + "description": "Selects a repo using a Google Cloud Platform project ID\n(e.g. winged-cargo-31) and a repo name within that project.", + "type": "object", + "properties": { + "repoName": { + "description": "The name of the repo. Leave empty for the default repo.", + "type": "string" + }, + "projectId": { + "description": "The ID of the project.", + "type": "string" + } + }, + "id": "ProjectRepoId" + }, "ListActiveBreakpointsResponse": { "description": "Response for listing active breakpoints.", "type": "object", @@ -611,25 +745,298 @@ }, "id": "ListActiveBreakpointsResponse" }, - "ProjectRepoId": { - "description": "Selects a repo using a Google Cloud Platform project ID\n(e.g. winged-cargo-31) and a repo name within that project.", + "CloudWorkspaceSourceContext": { + "description": "A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.", "type": "object", "properties": { - "repoName": { - "description": "The name of the repo. Leave empty for the default repo.", + "snapshotId": { + "description": "The ID of the snapshot.\nAn empty snapshot_id refers to the most recent snapshot.", "type": "string" }, - "projectId": { - "description": "The ID of the project.", - "type": "string" + "workspaceId": { + "$ref": "CloudWorkspaceId", + "description": "The ID of the workspace." } }, - "id": "ProjectRepoId" + "id": "CloudWorkspaceSourceContext" + }, + "GerritSourceContext": { + "description": "A SourceContext referring to a Gerrit project.", + "type": "object", + "properties": { + "revisionId": { + "description": "A revision (commit) ID.", + "type": "string" + }, + "hostUri": { + "description": "The URI of a running Gerrit instance.", + "type": "string" + }, + "aliasName": { + "description": "The name of an alias (branch, tag, etc.).", + "type": "string" + }, + "aliasContext": { + "$ref": "AliasContext", + "description": "An alias, which may be a branch or tag." + }, + "gerritProject": { + "type": "string", + "description": "The full project name within the host. Projects may be nested, so\n\"project/subproject\" is a valid project name.\nThe \"repo name\" is hostURI/project." + } + }, + "id": "GerritSourceContext" + }, + "UpdateActiveBreakpointResponse": { + "id": "UpdateActiveBreakpointResponse", + "description": "Response for updating an active breakpoint.\nThe message is defined to allow future extensions.", + "type": "object", + "properties": {} + }, + "CloudWorkspaceId": { + "type": "object", + "properties": { + "name": { + "description": "The unique name of the workspace within the repo. This is the name\nchosen by the client in the Source API's CreateWorkspace method.", + "type": "string" + }, + "repoId": { + "$ref": "RepoId", + "description": "The ID of the repo containing the workspace." + } + }, + "id": "CloudWorkspaceId", + "description": "A CloudWorkspaceId is a unique identifier for a cloud workspace.\nA cloud workspace is a place associated with a repo where modified files\ncan be stored before they are committed." + }, + "ListBreakpointsResponse": { + "description": "Response for listing breakpoints.", + "type": "object", + "properties": { + "nextWaitToken": { + "description": "A wait token that can be used in the next call to `list` (REST) or\n`ListBreakpoints` (RPC) to block until the list of breakpoints has changes.", + "type": "string" + }, + "breakpoints": { + "items": { + "$ref": "Breakpoint" + }, + "type": "array", + "description": "List of breakpoints matching the request.\nThe fields `id` and `location` are guaranteed to be set on each breakpoint.\nThe fields: `stack_frames`, `evaluated_expressions` and `variable_table`\nare cleared on each breakpoint regardless of its status." + } + }, + "id": "ListBreakpointsResponse" + }, + "Breakpoint": { + "properties": { + "stackFrames": { + "description": "The stack at breakpoint time.", + "items": { + "$ref": "StackFrame" + }, + "type": "array" + }, + "condition": { + "description": "Condition that triggers the breakpoint.\nThe condition is a compound boolean expression composed using expressions\nin a programming language at the source location.", + "type": "string" + }, + "status": { + "$ref": "StatusMessage", + "description": "Breakpoint status.\n\nThe status includes an error flag and a human readable message.\nThis field is usually unset. The message can be either\ninformational or an error message. Regardless, clients should always\ndisplay the text message back to the user.\n\nError status indicates complete failure of the breakpoint.\n\nExample (non-final state): `Still loading symbols...`\n\nExamples (final state):\n\n* `Invalid line number` referring to location\n* `Field f not found in class C` referring to condition" + }, + "userEmail": { + "description": "E-mail address of the user that created this breakpoint", + "type": "string" + }, + "action": { + "enumDescriptions": [ + "Capture stack frame and variables and update the breakpoint.\nThe data is only captured once. After that the breakpoint is set\nin a final state.", + "Log each breakpoint hit. The breakpoint remains active until\ndeleted or expired." + ], + "enum": [ + "CAPTURE", + "LOG" + ], + "description": "Action that the agent should perform when the code at the\nbreakpoint location is hit.", + "type": "string" + }, + "logLevel": { + "enum": [ + "INFO", + "WARNING", + "ERROR" + ], + "description": "Indicates the severity of the log. Only relevant when action is `LOG`.", + "type": "string", + "enumDescriptions": [ + "Information log message.", + "Warning log message.", + "Error log message." + ] + }, + "id": { + "description": "Breakpoint identifier, unique in the scope of the debuggee.", + "type": "string" + }, + "location": { + "$ref": "SourceLocation", + "description": "Breakpoint source location." + }, + "finalTime": { + "type": "string", + "format": "google-datetime", + "description": "Time this breakpoint was finalized as seen by the server in seconds\nresolution." + }, + "variableTable": { + "description": "The `variable_table` exists to aid with computation, memory and network\ntraffic optimization. It enables storing a variable once and reference\nit from multiple variables, including variables stored in the\n`variable_table` itself.\nFor example, the same `this` object, which may appear at many levels of\nthe stack, can have all of its data stored once in this table. The\nstack frame variables then would hold only a reference to it.\n\nThe variable `var_table_index` field is an index into this repeated field.\nThe stored objects are nameless and get their name from the referencing\nvariable. The effective variable is a merge of the referencing variable\nand the referenced variable.", + "items": { + "$ref": "Variable" + }, + "type": "array" + }, + "createTime": { + "format": "google-datetime", + "description": "Time this breakpoint was created by the server in seconds resolution.", + "type": "string" + }, + "logMessageFormat": { + "description": "Only relevant when action is `LOG`. Defines the message to log when\nthe breakpoint hits. The message may include parameter placeholders `$0`,\n`$1`, etc. These placeholders are replaced with the evaluated value\nof the appropriate expression. Expressions not referenced in\n`log_message_format` are not logged.\n\nExample: `Message received, id = $0, count = $1` with\n`expressions` = `[ message.id, message.count ]`.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "A set of custom breakpoint properties, populated by the agent, to be\ndisplayed to the user.", + "type": "object" + }, + "expressions": { + "items": { + "type": "string" + }, + "type": "array", + "description": "List of read-only expressions to evaluate at the breakpoint location.\nThe expressions are composed using expressions in the programming language\nat the source location. If the breakpoint action is `LOG`, the evaluated\nexpressions are included in log statements." + }, + "evaluatedExpressions": { + "description": "Values of evaluated expressions at breakpoint time.\nThe evaluated expressions appear in exactly the same order they\nare listed in the `expressions` field.\nThe `name` field holds the original expression text, the `value` or\n`members` field holds the result of the evaluated expression.\nIf the expression cannot be evaluated, the `status` inside the `Variable`\nwill indicate an error and contain the error text.", + "items": { + "$ref": "Variable" + }, + "type": "array" + }, + "isFinalState": { + "description": "When true, indicates that this is a final result and the\nbreakpoint state will not change from here on.", + "type": "boolean" + } + }, + "id": "Breakpoint", + "description": "Represents the breakpoint specification, status and results.", + "type": "object" + }, + "SetBreakpointResponse": { + "id": "SetBreakpointResponse", + "description": "Response for setting a breakpoint.", + "type": "object", + "properties": { + "breakpoint": { + "$ref": "Breakpoint", + "description": "Breakpoint resource.\nThe field `id` is guaranteed to be set (in addition to the echoed fileds)." + } + } + }, + "UpdateActiveBreakpointRequest": { + "description": "Request to update an active breakpoint.", + "type": "object", + "properties": { + "breakpoint": { + "$ref": "Breakpoint", + "description": "Updated breakpoint information.\nThe field `id` must be set.\nThe agent must echo all Breakpoint specification fields in the update." + } + }, + "id": "UpdateActiveBreakpointRequest" + }, + "SourceContext": { + "properties": { + "gerrit": { + "description": "A SourceContext referring to a Gerrit project.", + "$ref": "GerritSourceContext" + }, + "cloudWorkspace": { + "$ref": "CloudWorkspaceSourceContext", + "description": "A SourceContext referring to a snapshot in a cloud workspace." + }, + "cloudRepo": { + "$ref": "CloudRepoSourceContext", + "description": "A SourceContext referring to a revision in a cloud repo." + }, + "git": { + "description": "A SourceContext referring to any third party Git repo (e.g. GitHub).", + "$ref": "GitSourceContext" + } + }, + "id": "SourceContext", + "description": "A SourceContext is a reference to a tree of files. A SourceContext together\nwith a path point to a unique revision of a single file or directory.", + "type": "object" + }, + "CloudRepoSourceContext": { + "id": "CloudRepoSourceContext", + "description": "A CloudRepoSourceContext denotes a particular revision in a cloud\nrepo (a repo hosted by the Google Cloud Platform).", + "type": "object", + "properties": { + "revisionId": { + "description": "A revision ID.", + "type": "string" + }, + "aliasName": { + "type": "string", + "description": "The name of an alias (branch, tag, etc.)." + }, + "repoId": { + "description": "The ID of the repo.", + "$ref": "RepoId" + }, + "aliasContext": { + "$ref": "AliasContext", + "description": "An alias, which may be a branch or tag." + } + } + }, + "RegisterDebuggeeRequest": { + "properties": { + "debuggee": { + "description": "Debuggee information to register.\nThe fields `project`, `uniquifier`, `description` and `agent_version`\nof the debuggee must be set.", + "$ref": "Debuggee" + } + }, + "id": "RegisterDebuggeeRequest", + "description": "Request to register a debuggee.", + "type": "object" + }, + "RegisterDebuggeeResponse": { + "description": "Response for registering a debuggee.", + "type": "object", + "properties": { + "debuggee": { + "description": "Debuggee resource.\nThe field `id` is guranteed to be set (in addition to the echoed fields).\nIf the field `is_disabled` is set to `true`, the agent should disable\nitself by removing all breakpoints and detaching from the application.\nIt should however continue to poll `RegisterDebuggee` until reenabled.", + "$ref": "Debuggee" + } + }, + "id": "RegisterDebuggeeResponse" + }, + "GetBreakpointResponse": { + "description": "Response for getting breakpoint information.", + "type": "object", + "properties": { + "breakpoint": { + "description": "Complete breakpoint state.\nThe fields `id` and `location` are guaranteed to be set.", + "$ref": "Breakpoint" + } + }, + "id": "GetBreakpointResponse" } }, "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "protocol": "rest", "canonicalName": "Cloud Debugger", @@ -648,412 +1055,5 @@ "rootUrl": "https://clouddebugger.googleapis.com/", "ownerDomain": "google.com", "name": "clouddebugger", - "batchPath": "batch", - "title": "Stackdriver Debugger API", - "ownerName": "Google", - "resources": { - "debugger": { - "resources": { - "debuggees": { - "methods": { - "list": { - "response": { - "$ref": "ListDebuggeesResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "parameters": { - "clientVersion": { - "location": "query", - "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", - "type": "string" - }, - "includeInactive": { - "description": "When set to `true`, the result includes all debuggees. Otherwise, the\nresult includes only debuggees that are active.", - "type": "boolean", - "location": "query" - }, - "project": { - "location": "query", - "description": "Project number of a Google Cloud project whose debuggees to list.", - "type": "string" - } - }, - "flatPath": "v2/debugger/debuggees", - "id": "clouddebugger.debugger.debuggees.list", - "path": "v2/debugger/debuggees", - "description": "Lists all the debuggees that the user has access to." - } - }, - "resources": { - "breakpoints": { - "methods": { - "list": { - "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints", - "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints", - "id": "clouddebugger.debugger.debuggees.breakpoints.list", - "description": "Lists all breakpoints for the debuggee.", - "httpMethod": "GET", - "parameterOrder": [ - "debuggeeId" - ], - "response": { - "$ref": "ListBreakpointsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "parameters": { - "stripResults": { - "description": "This field is deprecated. The following fields are always stripped out of\nthe result: `stack_frames`, `evaluated_expressions` and `variable_table`.", - "type": "boolean", - "location": "query" - }, - "debuggeeId": { - "description": "ID of the debuggee whose breakpoints to list.", - "type": "string", - "required": true, - "location": "path" - }, - "waitToken": { - "location": "query", - "description": "A wait token that, if specified, blocks the call until the breakpoints\nlist has changed, or a server selected timeout has expired. The value\nshould be set from the last response. The error code\n`google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which\nshould be called again with the same `wait_token`.", - "type": "string" - }, - "clientVersion": { - "location": "query", - "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", - "type": "string" - }, - "action.value": { - "description": "Only breakpoints with the specified action will pass the filter.", - "type": "string", - "location": "query", - "enum": [ - "CAPTURE", - "LOG" - ] - }, - "includeInactive": { - "location": "query", - "description": "When set to `true`, the response includes active and inactive\nbreakpoints. Otherwise, it includes only active breakpoints.", - "type": "boolean" - }, - "includeAllUsers": { - "description": "When set to `true`, the response includes the list of breakpoints set by\nany user. Otherwise, it includes only breakpoints set by the caller.", - "type": "boolean", - "location": "query" - } - } - }, - "get": { - "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}", - "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}", - "id": "clouddebugger.debugger.debuggees.breakpoints.get", - "description": "Gets breakpoint information.", - "httpMethod": "GET", - "parameterOrder": [ - "debuggeeId", - "breakpointId" - ], - "response": { - "$ref": "GetBreakpointResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "parameters": { - "clientVersion": { - "location": "query", - "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", - "type": "string" - }, - "breakpointId": { - "location": "path", - "description": "ID of the breakpoint to get.", - "type": "string", - "required": true - }, - "debuggeeId": { - "location": "path", - "description": "ID of the debuggee whose breakpoint to get.", - "type": "string", - "required": true - } - } - }, - "delete": { - "description": "Deletes the breakpoint from the debuggee.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "debuggeeId", - "breakpointId" - ], - "httpMethod": "DELETE", - "parameters": { - "debuggeeId": { - "description": "ID of the debuggee whose breakpoint to delete.", - "type": "string", - "required": true, - "location": "path" - }, - "clientVersion": { - "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", - "type": "string", - "location": "query" - }, - "breakpointId": { - "location": "path", - "description": "ID of the breakpoint to delete.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}", - "id": "clouddebugger.debugger.debuggees.breakpoints.delete", - "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/{breakpointId}" - }, - "set": { - "description": "Sets the breakpoint to the debuggee.", - "request": { - "$ref": "Breakpoint" - }, - "response": { - "$ref": "SetBreakpointResponse" - }, - "parameterOrder": [ - "debuggeeId" - ], - "httpMethod": "POST", - "parameters": { - "debuggeeId": { - "description": "ID of the debuggee where the breakpoint is to be set.", - "type": "string", - "required": true, - "location": "path" - }, - "clientVersion": { - "location": "query", - "description": "The client version making the call.\nSchema: `domain/type/version` (e.g., `google.com/intellij/v1`).", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "flatPath": "v2/debugger/debuggees/{debuggeeId}/breakpoints/set", - "id": "clouddebugger.debugger.debuggees.breakpoints.set", - "path": "v2/debugger/debuggees/{debuggeeId}/breakpoints/set" - } - } - } - } - } - } - }, - "controller": { - "resources": { - "debuggees": { - "methods": { - "register": { - "response": { - "$ref": "RegisterDebuggeeResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "flatPath": "v2/controller/debuggees/register", - "id": "clouddebugger.controller.debuggees.register", - "path": "v2/controller/debuggees/register", - "description": "Registers the debuggee with the controller service.\n\nAll agents attached to the same application must call this method with\nexactly the same request content to get back the same stable `debuggee_id`.\nAgents should call this method again whenever `google.rpc.Code.NOT_FOUND`\nis returned from any controller method.\n\nThis protocol allows the controller service to disable debuggees, recover\nfrom data loss, or change the `debuggee_id` format. Agents must handle\n`debuggee_id` value changing upon re-registration.", - "request": { - "$ref": "RegisterDebuggeeRequest" - } - } - }, - "resources": { - "breakpoints": { - "methods": { - "list": { - "response": { - "$ref": "ListActiveBreakpointsResponse" - }, - "parameterOrder": [ - "debuggeeId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "parameters": { - "successOnTimeout": { - "location": "query", - "description": "If set to `true` (recommended), returns `google.rpc.Code.OK` status and\nsets the `wait_expired` response field to `true` when the server-selected\ntimeout has expired.\n\nIf set to `false` (deprecated), returns `google.rpc.Code.ABORTED` status\nwhen the server-selected timeout has expired.", - "type": "boolean" - }, - "debuggeeId": { - "description": "Identifies the debuggee.", - "type": "string", - "required": true, - "location": "path" - }, - "waitToken": { - "location": "query", - "description": "A token that, if specified, blocks the method call until the list\nof active breakpoints has changed, or a server-selected timeout has\nexpired. The value should be set from the `next_wait_token` field in\nthe last response. The initial value should be set to `\"init\"`.", - "type": "string" - } - }, - "flatPath": "v2/controller/debuggees/{debuggeeId}/breakpoints", - "id": "clouddebugger.controller.debuggees.breakpoints.list", - "path": "v2/controller/debuggees/{debuggeeId}/breakpoints", - "description": "Returns the list of all active breakpoints for the debuggee.\n\nThe breakpoint specification (`location`, `condition`, and `expressions`\nfields) is semantically immutable, although the field values may\nchange. For example, an agent may update the location line number\nto reflect the actual line where the breakpoint was set, but this\ndoesn't change the breakpoint semantics.\n\nThis means that an agent does not need to check if a breakpoint has changed\nwhen it encounters the same breakpoint on a successive call.\nMoreover, an agent should remember the breakpoints that are completed\nuntil the controller removes them from the active list to avoid\nsetting those breakpoints again." - }, - "update": { - "flatPath": "v2/controller/debuggees/{debuggeeId}/breakpoints/{id}", - "path": "v2/controller/debuggees/{debuggeeId}/breakpoints/{id}", - "id": "clouddebugger.controller.debuggees.breakpoints.update", - "request": { - "$ref": "UpdateActiveBreakpointRequest" - }, - "description": "Updates the breakpoint state or mutable fields.\nThe entire Breakpoint message must be sent back to the controller service.\n\nUpdates to active breakpoint fields are only allowed if the new value\ndoes not change the breakpoint specification. Updates to the `location`,\n`condition` and `expressions` fields should not alter the breakpoint\nsemantics. These may only make changes such as canonicalizing a value\nor snapping the location to the correct line of code.", - "httpMethod": "PUT", - "parameterOrder": [ - "debuggeeId", - "id" - ], - "response": { - "$ref": "UpdateActiveBreakpointResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud_debugger" - ], - "parameters": { - "debuggeeId": { - "location": "path", - "description": "Identifies the debuggee being debugged.", - "type": "string", - "required": true - }, - "id": { - "description": "Breakpoint identifier, unique in the scope of the debuggee.", - "type": "string", - "required": true, - "location": "path" - } - } - } - } - } - } - } - } - } - }, - "parameters": { - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - } - } + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json b/vendor/google.golang.org/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json index 042f7a652..b905b6767 100644 --- a/vendor/google.golang.org/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json +++ b/vendor/google.golang.org/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json @@ -1,445 +1,75 @@ { - "ownerDomain": "google.com", - "name": "clouderrorreporting", - "batchPath": "batch", - "title": "Stackdriver Error Reporting API", - "ownerName": "Google", - "resources": { - "projects": { - "methods": { - "deleteEvents": { - "response": { - "$ref": "DeleteEventsResponse" + "schemas": { + "ListGroupStatsResponse": { + "type": "object", + "properties": { + "errorGroupStats": { + "description": "The error group stats which match the given request.", + "items": { + "$ref": "ErrorGroupStats" }, - "parameterOrder": [ - "projectName" - ], - "httpMethod": "DELETE", - "parameters": { - "projectName": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/events", - "id": "clouderrorreporting.projects.deleteEvents", - "path": "v1beta1/{+projectName}/events", - "description": "Deletes all error events of a given project." + "type": "array" + }, + "nextPageToken": { + "description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results.", + "type": "string" + }, + "timeRangeBegin": { + "format": "google-datetime", + "description": "The timestamp specifies the start time to which the request was restricted.\nThe start time is set based on the requested time range. It may be adjusted\nto a later time if a project has exceeded the storage quota and older data\nhas been deleted.", + "type": "string" } }, - "resources": { - "events": { - "methods": { - "list": { - "path": "v1beta1/{+projectName}/events", - "id": "clouderrorreporting.projects.events.list", - "description": "Lists the specified events.", - "httpMethod": "GET", - "response": { - "$ref": "ListEventsResponse" - }, - "parameterOrder": [ - "projectName" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "timeRange.period": { - "location": "query", - "enum": [ - "PERIOD_UNSPECIFIED", - "PERIOD_1_HOUR", - "PERIOD_6_HOURS", - "PERIOD_1_DAY", - "PERIOD_1_WEEK", - "PERIOD_30_DAYS" - ], - "description": "Restricts the query to the specified time range.", - "type": "string" - }, - "projectName": { - "location": "path", - "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - }, - "groupId": { - "location": "query", - "description": "[Required] The group for which events shall be returned.", - "type": "string" - }, - "pageToken": { - "description": "[Optional] A `next_page_token` provided by a previous response.", - "type": "string", - "location": "query" - }, - "serviceFilter.service": { - "description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "[Optional] The maximum number of results to return per response.", - "type": "integer" - }, - "serviceFilter.version": { - "location": "query", - "description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).", - "type": "string" - }, - "serviceFilter.resourceType": { - "description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/events" - }, - "report": { - "request": { - "$ref": "ReportedErrorEvent" - }, - "description": "Report an individual error event.\n\nThis endpoint accepts \u003cstrong\u003eeither\u003c/strong\u003e an OAuth token,\n\u003cstrong\u003eor\u003c/strong\u003e an\n\u003ca href=\"https://support.google.com/cloud/answer/6158862\"\u003eAPI key\u003c/a\u003e\nfor authentication. To use an API key, append it to the URL as the value of\na `key` parameter. For example:\n\u003cpre\u003ePOST https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456\u003c/pre\u003e", - "httpMethod": "POST", - "parameterOrder": [ - "projectName" - ], - "response": { - "$ref": "ReportErrorEventResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectName": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/events:report", - "path": "v1beta1/{+projectName}/events:report", - "id": "clouderrorreporting.projects.events.report" - } - } + "id": "ListGroupStatsResponse", + "description": "Contains a set of requested error group stats." + }, + "SourceReference": { + "description": "A reference to a particular snapshot of the source tree used to build and\ndeploy an application.", + "type": "object", + "properties": { + "revisionId": { + "description": "The canonical and persistent identifier of the deployed revision.\nExample (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"", + "type": "string" }, - "groupStats": { - "methods": { - "list": { - "response": { - "$ref": "ListGroupStatsResponse" - }, - "parameterOrder": [ - "projectName" - ], - "httpMethod": "GET", - "parameters": { - "serviceFilter.version": { - "type": "string", - "location": "query", - "description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version)." - }, - "order": { - "description": "[Optional] The sort order in which the results are returned.\nDefault is `COUNT_DESC`.", - "type": "string", - "location": "query", - "enum": [ - "GROUP_ORDER_UNSPECIFIED", - "COUNT_DESC", - "LAST_SEEN_DESC", - "CREATED_DESC", - "AFFECTED_USERS_DESC" - ] - }, - "serviceFilter.resourceType": { - "location": "query", - "description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).", - "type": "string" - }, - "alignmentTime": { - "location": "query", - "format": "google-datetime", - "description": "[Optional] Time where the timed counts shall be aligned if rounded\nalignment is chosen. Default is 00:00 UTC.", - "type": "string" - }, - "projectName": { - "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas \u003ccode\u003eprojects/\u003c/code\u003e plus the\n\u003ca href=\"https://support.google.com/cloud/answer/6158840\"\u003eGoogle Cloud\nPlatform project ID\u003c/a\u003e.\n\nExample: \u003ccode\u003eprojects/my-project-123\u003c/code\u003e.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - }, - "timedCountDuration": { - "format": "google-duration", - "description": "[Optional] The preferred duration for a single returned `TimedCount`.\nIf not set, no timed counts are returned.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "[Optional] A `next_page_token` provided by a previous response. To view\nadditional results, pass this token along with the identical query\nparameters as the first request.", - "type": "string", - "location": "query" - }, - "timeRange.period": { - "description": "Restricts the query to the specified time range.", - "type": "string", - "location": "query", - "enum": [ - "PERIOD_UNSPECIFIED", - "PERIOD_1_HOUR", - "PERIOD_6_HOURS", - "PERIOD_1_DAY", - "PERIOD_1_WEEK", - "PERIOD_30_DAYS" - ] - }, - "alignment": { - "location": "query", - "enum": [ - "ERROR_COUNT_ALIGNMENT_UNSPECIFIED", - "ALIGNMENT_EQUAL_ROUNDED", - "ALIGNMENT_EQUAL_AT_END" - ], - "description": "[Optional] The alignment of the timed counts to be returned.\nDefault is `ALIGNMENT_EQUAL_AT_END`.", - "type": "string" - }, - "groupId": { - "repeated": true, - "location": "query", - "description": "[Optional] List all \u003ccode\u003eErrorGroupStats\u003c/code\u003e with these IDs.", - "type": "string" - }, - "serviceFilter.service": { - "location": "query", - "description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).", - "type": "string" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "[Optional] The maximum number of results to return per response.\nDefault is 20." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/groupStats", - "id": "clouderrorreporting.projects.groupStats.list", - "path": "v1beta1/{+projectName}/groupStats", - "description": "Lists the specified groups." - } - } - }, - "groups": { - "methods": { - "get": { - "id": "clouderrorreporting.projects.groups.get", - "path": "v1beta1/{+groupName}", - "description": "Get the specified group.", - "response": { - "$ref": "ErrorGroup" - }, - "parameterOrder": [ - "groupName" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "groupName": { - "location": "path", - "description": "[Required] The group resource name. Written as\n\u003ccode\u003eprojects/\u003cvar\u003eprojectID\u003c/var\u003e/groups/\u003cvar\u003egroup_name\u003c/var\u003e\u003c/code\u003e.\nCall\n\u003ca href=\"/error-reporting/reference/rest/v1beta1/projects.groupStats/list\"\u003e\n\u003ccode\u003egroupStats.list\u003c/code\u003e\u003c/a\u003e to return a list of groups belonging to\nthis project.\n\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-group\u003c/code\u003e", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/groups/[^/]+$" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}" - }, - "update": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The group resource name.\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-groupid\u003c/code\u003e", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/groups/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}", - "id": "clouderrorreporting.projects.groups.update", - "path": "v1beta1/{+name}", - "request": { - "$ref": "ErrorGroup" - }, - "description": "Replace the data for the specified group.\nFails if the group does not exist.", - "response": { - "$ref": "ErrorGroup" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PUT" - } - } + "repository": { + "description": "Optional. A URI string identifying the repository.\nExample: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"", + "type": "string" } - } - } - }, - "parameters": { - "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.", - "type": "string", - "location": "query" + }, + "id": "SourceReference" }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" + "DeleteEventsResponse": { + "description": "Response message for deleting error events.", + "type": "object", + "properties": {}, + "id": "DeleteEventsResponse" }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "type": "string", - "location": "query", - "description": "OAuth bearer token." - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "key": { - "location": "query", - "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.", - "type": "string" - } - }, - "version": "v1beta1", - "baseUrl": "https://clouderrorreporting.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors.\n", - "servicePath": "", - "basePath": "", - "revision": "20170914", - "id": "clouderrorreporting:v1beta1", - "documentationLink": "https://cloud.google.com/error-reporting/", - "discoveryVersion": "v1", - "version_module": true, - "schemas": { "ErrorEvent": { "description": "An error event which is returned by the Error Reporting system.", "type": "object", "properties": { + "serviceContext": { + "description": "The `ServiceContext` for which this error was reported.", + "$ref": "ServiceContext" + }, "eventTime": { - "type": "string", "format": "google-datetime", - "description": "Time when the event occurred as provided in the error report.\nIf the report did not contain a timestamp, the time the error was received\nby the Error Reporting system is used." + "description": "Time when the event occurred as provided in the error report.\nIf the report did not contain a timestamp, the time the error was received\nby the Error Reporting system is used.", + "type": "string" }, "context": { - "$ref": "ErrorContext", - "description": "Data about the context in which the error occurred." + "description": "Data about the context in which the error occurred.", + "$ref": "ErrorContext" }, "message": { "description": "The stack trace that was reported or logged by the service.", "type": "string" - }, - "serviceContext": { - "description": "The `ServiceContext` for which this error was reported.", - "$ref": "ServiceContext" } }, "id": "ErrorEvent" }, "ReportedErrorEvent": { - "description": "An error event which is reported to the Error Reporting system.", - "type": "object", "properties": { - "eventTime": { - "format": "google-datetime", - "description": "[Optional] Time when the event occurred.\nIf not provided, the time when the event was received by the\nError Reporting system will be used.", - "type": "string" - }, - "context": { - "$ref": "ErrorContext", - "description": "[Optional] A description of the context in which the error occurred." - }, "message": { "description": "[Required] The error message.\nIf no `context.reportLocation` is provided, the message must contain a\nheader (typically consisting of the exception type name and an error\nmessage) and an exception stack trace in one of the supported programming\nlanguages and formats.\nSupported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.\nSupported stack trace formats are:\n\n* **Java**: Must be the return value of [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).\n* **Python**: Must be the return value of [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).\n* **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API)\nas returned by V8.\n* **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).\n* **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).\n* **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`\nand contain the result of [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).\n* **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).", "type": "string" @@ -447,14 +77,29 @@ "serviceContext": { "$ref": "ServiceContext", "description": "[Required] The service context in which this error has occurred." + }, + "eventTime": { + "format": "google-datetime", + "description": "[Optional] Time when the event occurred.\nIf not provided, the time when the event was received by the\nError Reporting system will be used.", + "type": "string" + }, + "context": { + "description": "[Optional] A description of the context in which the error occurred.", + "$ref": "ErrorContext" } }, - "id": "ReportedErrorEvent" + "id": "ReportedErrorEvent", + "description": "An error event which is reported to the Error Reporting system.", + "type": "object" }, "ErrorContext": { "description": "A description of the context in which an error occurred.\nThis data should be provided by the application when reporting an error,\nunless the\nerror report has been generated automatically from Google App Engine logs.", "type": "object", "properties": { + "user": { + "description": "The user who caused or was affected by the crash.\nThis can be a user ID, an email address, or an arbitrary token that\nuniquely identifies the user.\nWhen sending an error report, leave this field empty if the user was not\nlogged in. In this case the\nError Reporting system will use other data, such as remote IP address, to\ndistinguish affected users. See `affected_users_count` in\n`ErrorGroupStats`.", + "type": "string" + }, "sourceReferences": { "items": { "$ref": "SourceReference" @@ -463,16 +108,12 @@ "description": "Source code that was used to build the executable which has\ncaused the given error message." }, "reportLocation": { - "description": "The location in the source code where the decision was made to\nreport the error, usually the place where it was logged.\nFor a logged exception this would be the source line where the\nexception is logged, usually close to the place where it was\ncaught.", - "$ref": "SourceLocation" + "$ref": "SourceLocation", + "description": "The location in the source code where the decision was made to\nreport the error, usually the place where it was logged.\nFor a logged exception this would be the source line where the\nexception is logged, usually close to the place where it was\ncaught." }, "httpRequest": { - "description": "The HTTP request which was processed when the error was\ntriggered.", - "$ref": "HttpRequestContext" - }, - "user": { - "description": "The user who caused or was affected by the crash.\nThis can be a user ID, an email address, or an arbitrary token that\nuniquely identifies the user.\nWhen sending an error report, leave this field empty if the user was not\nlogged in. In this case the\nError Reporting system will use other data, such as remote IP address, to\ndistinguish affected users. See `affected_users_count` in\n`ErrorGroupStats`.", - "type": "string" + "$ref": "HttpRequestContext", + "description": "The HTTP request which was processed when the error was\ntriggered." } }, "id": "ErrorContext" @@ -489,7 +130,33 @@ "id": "TrackingIssue" }, "ErrorGroupStats": { + "id": "ErrorGroupStats", + "description": "Data extracted for a specific group based on certain filter criteria,\nsuch as a given time period and/or service filter.", + "type": "object", "properties": { + "affectedServices": { + "description": "Service contexts with a non-zero error count for the given filter\ncriteria. This list can be truncated if multiple services are affected.\nRefer to `num_affected_services` for the total count.", + "items": { + "$ref": "ServiceContext" + }, + "type": "array" + }, + "numAffectedServices": { + "format": "int32", + "description": "The total number of services with a non-zero error count for the given\nfilter criteria.", + "type": "integer" + }, + "representative": { + "description": "An arbitrary event that is chosen as representative for the whole group.\nThe representative event is intended to be used as a quick preview for\nthe whole group. Events in the group are usually sufficiently similar\nto each other such that showing an arbitrary representative provides\ninsight into the characteristics of the group as a whole.", + "$ref": "ErrorEvent" + }, + "timedCounts": { + "description": "Approximate number of occurrences over time.\nTimed counts returned by ListGroups are guaranteed to be:\n\n- Inside the requested time interval\n- Non-overlapping, and\n- Ordered by ascending time.", + "items": { + "$ref": "TimedCount" + }, + "type": "array" + }, "group": { "$ref": "ErrorGroup", "description": "Group data that is independent of the filter criteria." @@ -504,76 +171,45 @@ "description": "Approximate total number of events in the given group that match\nthe filter criteria.", "type": "string" }, - "affectedUsersCount": { - "format": "int64", - "description": "Approximate number of affected users in the given group that\nmatch the filter criteria.\nUsers are distinguished by data in the `ErrorContext` of the\nindividual error events, such as their login name or their remote\nIP address in case of HTTP requests.\nThe number of affected users can be zero even if the number of\nerrors is non-zero if no data was provided from which the\naffected user could be deduced.\nUsers are counted based on data in the request\ncontext that was provided in the error report. If more users are\nimplicitly affected, such as due to a crash of the whole service,\nthis is not reflected here.", - "type": "string" - }, "lastSeenTime": { "format": "google-datetime", "description": "Approximate last occurrence that was ever seen for this group and\nwhich matches the given filter criteria, ignoring the time_range\nthat was specified in the request.", "type": "string" }, - "numAffectedServices": { - "format": "int32", - "description": "The total number of services with a non-zero error count for the given\nfilter criteria.", - "type": "integer" - }, - "affectedServices": { - "description": "Service contexts with a non-zero error count for the given filter\ncriteria. This list can be truncated if multiple services are affected.\nRefer to `num_affected_services` for the total count.", - "items": { - "$ref": "ServiceContext" - }, - "type": "array" - }, - "representative": { - "description": "An arbitrary event that is chosen as representative for the whole group.\nThe representative event is intended to be used as a quick preview for\nthe whole group. Events in the group are usually sufficiently similar\nto each other such that showing an arbitrary representative provides\ninsight into the characteristics of the group as a whole.", - "$ref": "ErrorEvent" - }, - "timedCounts": { - "description": "Approximate number of occurrences over time.\nTimed counts returned by ListGroups are guaranteed to be:\n\n- Inside the requested time interval\n- Non-overlapping, and\n- Ordered by ascending time.", - "items": { - "$ref": "TimedCount" - }, - "type": "array" + "affectedUsersCount": { + "type": "string", + "format": "int64", + "description": "Approximate number of affected users in the given group that\nmatch the filter criteria.\nUsers are distinguished by data in the `ErrorContext` of the\nindividual error events, such as their login name or their remote\nIP address in case of HTTP requests.\nThe number of affected users can be zero even if the number of\nerrors is non-zero if no data was provided from which the\naffected user could be deduced.\nUsers are counted based on data in the request\ncontext that was provided in the error report. If more users are\nimplicitly affected, such as due to a crash of the whole service,\nthis is not reflected here." } - }, - "id": "ErrorGroupStats", - "description": "Data extracted for a specific group based on certain filter criteria,\nsuch as a given time period and/or service filter.", - "type": "object" + } }, "ListEventsResponse": { + "description": "Contains a set of requested error events.", + "type": "object", "properties": { + "nextPageToken": { + "type": "string", + "description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results." + }, "timeRangeBegin": { "format": "google-datetime", "description": "The timestamp specifies the start time to which the request was restricted.", "type": "string" }, "errorEvents": { + "description": "The error events which match the given request.", "items": { "$ref": "ErrorEvent" }, - "type": "array", - "description": "The error events which match the given request." - }, - "nextPageToken": { - "description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results.", - "type": "string" + "type": "array" } }, - "id": "ListEventsResponse", - "description": "Contains a set of requested error events.", - "type": "object" + "id": "ListEventsResponse" }, "TimedCount": { "description": "The number of errors in a given time period.\nAll numbers are approximate since the error events are sampled\nbefore counting them.", "type": "object", "properties": { - "endTime": { - "format": "google-datetime", - "description": "End of the time period to which `count` refers (excluded).", - "type": "string" - }, "startTime": { "format": "google-datetime", "description": "Start of the time period to which `count` refers (included).", @@ -583,6 +219,11 @@ "format": "int64", "description": "Approximate number of occurrences in the given time period.", "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "End of the time period to which `count` refers (excluded).", + "type": "string" } }, "id": "TimedCount" @@ -609,33 +250,13 @@ }, "id": "ErrorGroup" }, - "ServiceContext": { - "id": "ServiceContext", - "description": "Describes a running service that sends errors.\nIts version changes over time and multiple versions can run in parallel.", - "type": "object", - "properties": { - "version": { - "description": "Represents the source code version that the developer provided,\nwhich could represent a version label or a Git SHA-1 hash, for example.\nFor App Engine standard environment, the version is set to the version of\nthe app.", - "type": "string" - }, - "service": { - "description": "An identifier of the service, such as the name of the\nexecutable, job, or Google App Engine service name. This field is expected\nto have a low number of values that are relatively stable over time, as\nopposed to `version`, which can be changed whenever new code is deployed.\n\nContains the service name for error reports extracted from Google\nApp Engine logs or `default` if the App Engine default service is used.", - "type": "string" - }, - "resourceType": { - "description": "Type of the MonitoredResource. List of possible values:\nhttps://cloud.google.com/monitoring/api/resources\n\nValue is set automatically for incoming errors and must not be set when\nreporting errors.", - "type": "string" - } - } - }, "SourceLocation": { - "id": "SourceLocation", "description": "Indicates a location in the source code of the service for which errors are\nreported. `functionName` must be provided by the application when reporting\nan error, unless the error report contains a `message` with a supported\nexception stack trace. All fields are optional for the later case.", "type": "object", "properties": { "functionName": { - "description": "Human-readable name of a function or method.\nThe value can include optional context like the class or package name.\nFor example, `my.package.MyClass.method` in case of Java.", - "type": "string" + "type": "string", + "description": "Human-readable name of a function or method.\nThe value can include optional context like the class or package name.\nFor example, `my.package.MyClass.method` in case of Java." }, "filePath": { "description": "The source code filename, which can include a truncated relative\npath, or a full path from a production machine.", @@ -646,7 +267,27 @@ "description": "1-based. 0 indicates that the line number is unknown.", "type": "integer" } - } + }, + "id": "SourceLocation" + }, + "ServiceContext": { + "properties": { + "service": { + "description": "An identifier of the service, such as the name of the\nexecutable, job, or Google App Engine service name. This field is expected\nto have a low number of values that are relatively stable over time, as\nopposed to `version`, which can be changed whenever new code is deployed.\n\nContains the service name for error reports extracted from Google\nApp Engine logs or `default` if the App Engine default service is used.", + "type": "string" + }, + "resourceType": { + "description": "Type of the MonitoredResource. List of possible values:\nhttps://cloud.google.com/monitoring/api/resources\n\nValue is set automatically for incoming errors and must not be set when\nreporting errors.", + "type": "string" + }, + "version": { + "description": "Represents the source code version that the developer provided,\nwhich could represent a version label or a Git SHA-1 hash, for example.\nFor App Engine standard environment, the version is set to the version of\nthe app.", + "type": "string" + } + }, + "id": "ServiceContext", + "description": "Describes a running service that sends errors.\nIts version changes over time and multiple versions can run in parallel.", + "type": "object" }, "ReportErrorEventResponse": { "description": "Response for reporting an individual error event.\nData may be added to this message in the future.", @@ -658,6 +299,14 @@ "description": "HTTP request data that is related to a reported error.\nThis data should be provided by the application when reporting an error,\nunless the\nerror report has been generated automatically from Google App Engine logs.", "type": "object", "properties": { + "userAgent": { + "description": "The user agent information that is provided with the request.", + "type": "string" + }, + "url": { + "description": "The URL of the request.", + "type": "string" + }, "responseStatusCode": { "format": "int32", "description": "The HTTP response status code for the request.", @@ -674,61 +323,9 @@ "referrer": { "description": "The referrer information that is provided with the request.", "type": "string" - }, - "userAgent": { - "description": "The user agent information that is provided with the request.", - "type": "string" - }, - "url": { - "type": "string", - "description": "The URL of the request." } }, "id": "HttpRequestContext" - }, - "ListGroupStatsResponse": { - "description": "Contains a set of requested error group stats.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results.", - "type": "string" - }, - "timeRangeBegin": { - "format": "google-datetime", - "description": "The timestamp specifies the start time to which the request was restricted.\nThe start time is set based on the requested time range. It may be adjusted\nto a later time if a project has exceeded the storage quota and older data\nhas been deleted.", - "type": "string" - }, - "errorGroupStats": { - "description": "The error group stats which match the given request.", - "items": { - "$ref": "ErrorGroupStats" - }, - "type": "array" - } - }, - "id": "ListGroupStatsResponse" - }, - "SourceReference": { - "description": "A reference to a particular snapshot of the source tree used to build and\ndeploy an application.", - "type": "object", - "properties": { - "revisionId": { - "description": "The canonical and persistent identifier of the deployed revision.\nExample (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"", - "type": "string" - }, - "repository": { - "description": "Optional. A URI string identifying the repository.\nExample: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"", - "type": "string" - } - }, - "id": "SourceReference" - }, - "DeleteEventsResponse": { - "description": "Response message for deleting error events.", - "type": "object", - "properties": {}, - "id": "DeleteEventsResponse" } }, "icons": { @@ -746,5 +343,408 @@ } } }, - "rootUrl": "https://clouderrorreporting.googleapis.com/" + "rootUrl": "https://clouderrorreporting.googleapis.com/", + "ownerDomain": "google.com", + "name": "clouderrorreporting", + "batchPath": "batch", + "title": "Stackdriver Error Reporting API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "groupStats": { + "methods": { + "list": { + "response": { + "$ref": "ListGroupStatsResponse" + }, + "parameterOrder": [ + "projectName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "timedCountDuration": { + "format": "google-duration", + "description": "[Optional] The preferred duration for a single returned `TimedCount`.\nIf not set, no timed counts are returned.", + "type": "string", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "[Optional] A `next_page_token` provided by a previous response. To view\nadditional results, pass this token along with the identical query\nparameters as the first request." + }, + "timeRange.period": { + "location": "query", + "enum": [ + "PERIOD_UNSPECIFIED", + "PERIOD_1_HOUR", + "PERIOD_6_HOURS", + "PERIOD_1_DAY", + "PERIOD_1_WEEK", + "PERIOD_30_DAYS" + ], + "description": "Restricts the query to the specified time range.", + "type": "string" + }, + "alignment": { + "enum": [ + "ERROR_COUNT_ALIGNMENT_UNSPECIFIED", + "ALIGNMENT_EQUAL_ROUNDED", + "ALIGNMENT_EQUAL_AT_END" + ], + "description": "[Optional] The alignment of the timed counts to be returned.\nDefault is `ALIGNMENT_EQUAL_AT_END`.", + "type": "string", + "location": "query" + }, + "groupId": { + "description": "[Optional] List all \u003ccode\u003eErrorGroupStats\u003c/code\u003e with these IDs.", + "type": "string", + "repeated": true, + "location": "query" + }, + "serviceFilter.service": { + "description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "[Optional] The maximum number of results to return per response.\nDefault is 20.", + "type": "integer", + "location": "query" + }, + "serviceFilter.version": { + "location": "query", + "description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).", + "type": "string" + }, + "order": { + "location": "query", + "enum": [ + "GROUP_ORDER_UNSPECIFIED", + "COUNT_DESC", + "LAST_SEEN_DESC", + "CREATED_DESC", + "AFFECTED_USERS_DESC" + ], + "description": "[Optional] The sort order in which the results are returned.\nDefault is `COUNT_DESC`.", + "type": "string" + }, + "alignmentTime": { + "location": "query", + "format": "google-datetime", + "description": "[Optional] Time where the timed counts shall be aligned if rounded\nalignment is chosen. Default is 00:00 UTC.", + "type": "string" + }, + "serviceFilter.resourceType": { + "location": "query", + "description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).", + "type": "string" + }, + "projectName": { + "location": "path", + "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas \u003ccode\u003eprojects/\u003c/code\u003e plus the\n\u003ca href=\"https://support.google.com/cloud/answer/6158840\"\u003eGoogle Cloud\nPlatform project ID\u003c/a\u003e.\n\nExample: \u003ccode\u003eprojects/my-project-123\u003c/code\u003e.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/groupStats", + "id": "clouderrorreporting.projects.groupStats.list", + "path": "v1beta1/{+projectName}/groupStats", + "description": "Lists the specified groups." + } + } + }, + "groups": { + "methods": { + "get": { + "response": { + "$ref": "ErrorGroup" + }, + "parameterOrder": [ + "groupName" + ], + "httpMethod": "GET", + "parameters": { + "groupName": { + "location": "path", + "description": "[Required] The group resource name. Written as\n\u003ccode\u003eprojects/\u003cvar\u003eprojectID\u003c/var\u003e/groups/\u003cvar\u003egroup_name\u003c/var\u003e\u003c/code\u003e.\nCall\n\u003ca href=\"/error-reporting/reference/rest/v1beta1/projects.groupStats/list\"\u003e\n\u003ccode\u003egroupStats.list\u003c/code\u003e\u003c/a\u003e to return a list of groups belonging to\nthis project.\n\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-group\u003c/code\u003e", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/groups/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}", + "id": "clouderrorreporting.projects.groups.get", + "path": "v1beta1/{+groupName}", + "description": "Get the specified group." + }, + "update": { + "response": { + "$ref": "ErrorGroup" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The group resource name.\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-groupid\u003c/code\u003e", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/groups/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}", + "id": "clouderrorreporting.projects.groups.update", + "path": "v1beta1/{+name}", + "request": { + "$ref": "ErrorGroup" + }, + "description": "Replace the data for the specified group.\nFails if the group does not exist." + } + } + }, + "events": { + "methods": { + "list": { + "id": "clouderrorreporting.projects.events.list", + "path": "v1beta1/{+projectName}/events", + "description": "Lists the specified events.", + "response": { + "$ref": "ListEventsResponse" + }, + "parameterOrder": [ + "projectName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "serviceFilter.resourceType": { + "location": "query", + "description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).", + "type": "string" + }, + "timeRange.period": { + "location": "query", + "enum": [ + "PERIOD_UNSPECIFIED", + "PERIOD_1_HOUR", + "PERIOD_6_HOURS", + "PERIOD_1_DAY", + "PERIOD_1_WEEK", + "PERIOD_30_DAYS" + ], + "description": "Restricts the query to the specified time range.", + "type": "string" + }, + "projectName": { + "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "groupId": { + "location": "query", + "description": "[Required] The group for which events shall be returned.", + "type": "string" + }, + "serviceFilter.service": { + "location": "query", + "description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).", + "type": "string" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "[Optional] A `next_page_token` provided by a previous response." + }, + "pageSize": { + "format": "int32", + "description": "[Optional] The maximum number of results to return per response.", + "type": "integer", + "location": "query" + }, + "serviceFilter.version": { + "description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/events" + }, + "report": { + "description": "Report an individual error event.\n\nThis endpoint accepts \u003cstrong\u003eeither\u003c/strong\u003e an OAuth token,\n\u003cstrong\u003eor\u003c/strong\u003e an\n\u003ca href=\"https://support.google.com/cloud/answer/6158862\"\u003eAPI key\u003c/a\u003e\nfor authentication. To use an API key, append it to the URL as the value of\na `key` parameter. For example:\n\u003cpre\u003ePOST https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456\u003c/pre\u003e", + "request": { + "$ref": "ReportedErrorEvent" + }, + "response": { + "$ref": "ReportErrorEventResponse" + }, + "parameterOrder": [ + "projectName" + ], + "httpMethod": "POST", + "parameters": { + "projectName": { + "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/events:report", + "id": "clouderrorreporting.projects.events.report", + "path": "v1beta1/{+projectName}/events:report" + } + } + } + }, + "methods": { + "deleteEvents": { + "description": "Deletes all error events of a given project.", + "httpMethod": "DELETE", + "parameterOrder": [ + "projectName" + ], + "response": { + "$ref": "DeleteEventsResponse" + }, + "parameters": { + "projectName": { + "location": "path", + "description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/events", + "path": "v1beta1/{+projectName}/events", + "id": "clouderrorreporting.projects.deleteEvents" + } + } + } + }, + "parameters": { + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "default": "true", + "type": "boolean", + "location": "query", + "description": "Pretty-print response." + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "alt": { + "location": "query", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ] + } + }, + "version": "v1beta1", + "baseUrl": "https://clouderrorreporting.googleapis.com/", + "description": "Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors.\n", + "kind": "discovery#restDescription", + "servicePath": "", + "basePath": "", + "id": "clouderrorreporting:v1beta1", + "revision": "20171014", + "documentationLink": "https://cloud.google.com/error-reporting/", + "discoveryVersion": "v1", + "version_module": true } diff --git a/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-api.json b/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-api.json index a62a7c282..f4f81c1d6 100644 --- a/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-api.json +++ b/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-api.json @@ -1,11 +1,224 @@ { - "discoveryVersion": "v1", - "version_module": true, "schemas": { + "GenerateUploadUrlRequest": { + "properties": {}, + "id": "GenerateUploadUrlRequest", + "description": "Request of `GenerateSourceUploadUrl` method.", + "type": "object" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", + "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" + } + }, + "id": "ListOperationsResponse" + }, + "GenerateUploadUrlResponse": { + "description": "Response of `GenerateSourceUploadUrl` method.", + "type": "object", + "properties": { + "uploadUrl": { + "description": "The generated Google Cloud Storage signed URL that should be used for a\nfunction source code upload. The uploaded file should be a zip archive\nwhich contains a function.", + "type": "string" + } + }, + "id": "GenerateUploadUrlResponse" + }, + "ListFunctionsResponse": { + "description": "Response for the `ListFunctions` method.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more functions that match\nthe request; this value should be passed in a new\ngoogle.cloud.functions.v1.ListFunctionsRequest\nto get more functions.", + "type": "string" + }, + "functions": { + "description": "The functions that match the request.", + "items": { + "$ref": "CloudFunction" + }, + "type": "array" + } + }, + "id": "ListFunctionsResponse" + }, + "ListLocationsResponse": { + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "items": { + "$ref": "Location" + }, + "type": "array" + } + }, + "id": "ListLocationsResponse", + "description": "The response message for Locations.ListLocations.", + "type": "object" + }, + "CallFunctionResponse": { + "description": "Response of `CallFunction` method.", + "type": "object", + "properties": { + "executionId": { + "description": "Execution id of function invocation.", + "type": "string" + }, + "error": { + "description": "Either system or user-function generated error. Set if execution\nwas not successful.", + "type": "string" + }, + "result": { + "description": "Result populated for successful execution of synchronous function. Will\nnot be populated if function does not return a result through context.", + "type": "string" + } + }, + "id": "CallFunctionResponse" + }, + "EventTrigger": { + "description": "Describes EventTrigger, used to request events be sent from another\nservice.", + "type": "object", + "properties": { + "service": { + "description": "The hostname of the service that should be observed.\n\nIf no string is provided, the default service implementing the API will\nbe used. For example, `storage.googleapis.com` is the default for all\nevent types in the 'google.storage` namespace.", + "type": "string" + }, + "failurePolicy": { + "$ref": "FailurePolicy", + "description": "Specifies policy for failed executions." + }, + "eventType": { + "description": "Required. The type of event to observe. For example:\n`google.storage.object.finalized` and\n`google.firebase.analytics.event.log`.\n\nEvent type consists of three parts:\n 1. namespace: The domain name of the organization in reverse-domain\n notation (e.g. `acme.net` appears as `net.acme`) and any orginization\n specific subdivisions. If the organization's top-level domain is `com`,\n the top-level domain is ommited (e.g. `google.com` appears as\n `google`). For example, `google.storage` and\n `google.firebase.analytics`.\n 2. resource type: The type of resource on which event ocurs. For\n example, the Google Cloud Storage API includes the type `object`.\n 3. action: The action that generates the event. For example, actions for\n a Google Cloud Storage Object include 'finalize' and 'delete'.\nThese parts are lower case and joined by '.'.", + "type": "string" + }, + "resource": { + "description": "Required. The resource(s) from which to observe events, for example,\n`projects/_/buckets/myBucket`.\n\nNot all syntactically correct values are accepted by all services. For\nexample:\n\n1. The authorization model must support it. Google Cloud Functions\n only allows EventTriggers to be deployed that observe resources in the\n same project as the `CloudFunction`.\n2. The resource type must match the pattern expected for an\n `event_type`. For example, an `EventTrigger` that has an\n `event_type` of \"google.pubsub.topic.publish\" should have a resource\n that matches Google Cloud Pub/Sub topics.\n\nAdditionally, some services may support short names when creating an\n`EventTrigger`. These will always be returned in the normalized \"long\"\nformat.\n\nSee each *service's* documentation for supported formats.", + "type": "string" + } + }, + "id": "EventTrigger" + }, + "FailurePolicy": { + "description": "Describes the policy in case of function's execution failure.\nIf empty, then defaults to ignoring failures (i.e. not retrying them).", + "type": "object", + "properties": { + "retry": { + "description": "If specified, then the function will be retried in case of a failure.", + "$ref": "Retry" + } + }, + "id": "FailurePolicy" + }, + "GenerateDownloadUrlRequest": { + "properties": { + "versionId": { + "format": "uint64", + "description": "The optional version of function. If not set, default, current version\nis used.", + "type": "string" + } + }, + "id": "GenerateDownloadUrlRequest", + "description": "Request of `GenerateDownloadUrl` method.", + "type": "object" + }, + "OperationMetadataV1": { + "description": "Metadata describing an Operation", + "type": "object", + "properties": { + "target": { + "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1", + "type": "string" + }, + "versionId": { + "format": "int64", + "description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.", + "type": "string" + }, + "request": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The original request that started the operation.", + "type": "object" + }, + "type": { + "enum": [ + "OPERATION_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION" + ], + "description": "Type of operation.", + "type": "string", + "enumDescriptions": [ + "Unknown operation type.", + "Triggered by CreateFunction call", + "Triggered by UpdateFunction call", + "Triggered by DeleteFunction call." + ] + } + }, + "id": "OperationMetadataV1" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", + "properties": { + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + }, + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + } + }, + "id": "Operation" + }, "OperationMetadataV1Beta2": { "description": "Metadata describing an Operation", "type": "object", "properties": { + "target": { + "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1", + "type": "string" + }, "versionId": { "format": "int64", "description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.", @@ -34,10 +247,6 @@ "UPDATE_FUNCTION", "DELETE_FUNCTION" ] - }, - "target": { - "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1", - "type": "string" } }, "id": "OperationMetadataV1Beta2" @@ -69,106 +278,179 @@ }, "id": "Status" }, - "ListLocationsResponse": { - "description": "The response message for Locations.ListLocations.", + "SourceRepository": { + "description": "Describes SourceRepository, used to represent parameters related to\nsource repository where a function is hosted.", "type": "object", "properties": { - "locations": { - "description": "A list of locations that matches the specified filter in the request.", - "items": { - "$ref": "Location" - }, - "type": "array" + "deployedUrl": { + "description": "Output only. The URL pointing to the hosted repository where the function\nwere defined at the time of deployment. It always points to a specific\ncommit in the format described above.", + "type": "string" }, - "nextPageToken": { - "description": "The standard List next-page token.", + "url": { + "description": "The URL pointing to the hosted repository where the function is defined.\nThere are supported Cloud Source Repository URLs in the following\nformats:\n\nTo refer to a specific commit:\n`https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`\nTo refer to a moveable alias (branch):\n`https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*`\nIn particular, to refer to HEAD use `master` moveable alias.\nTo refer to a specific fixed alias (tag):\n`https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*`\n\nYou may omit `paths/*` if you want to use the main directory.", "type": "string" } }, - "id": "ListLocationsResponse" + "id": "SourceRepository" + }, + "CallFunctionRequest": { + "description": "Request for the `CallFunction` method.", + "type": "object", + "properties": { + "data": { + "description": "Input to be passed to the function.", + "type": "string" + } + }, + "id": "CallFunctionRequest" + }, + "CloudFunction": { + "description": "Describes a Cloud Function that contains user computation executed in\nresponse to an event. It encapsulate function and triggers configurations.", + "type": "object", + "properties": { + "description": { + "description": "User-provided description of a function.", + "type": "string" + }, + "sourceUploadUrl": { + "description": "The Google Cloud Storage signed URL used for source uploading, generated\nby google.cloud.functions.v1.GenerateUploadUrl", + "type": "string" + }, + "eventTrigger": { + "description": "A source that fires events in response to a condition in another service.", + "$ref": "EventTrigger" + }, + "status": { + "enumDescriptions": [ + "Not specified. Invalid state.", + "Function has been succesfully deployed and is serving.", + "Function deployment failed and the function isn’t serving.", + "Function is being created or updated.", + "Function is being deleted.", + "Function deployment failed and the function serving state is undefined.\nThe function should be updated or deleted to move it out of this state." + ], + "enum": [ + "CLOUD_FUNCTION_STATUS_UNSPECIFIED", + "ACTIVE", + "OFFLINE", + "DEPLOY_IN_PROGRESS", + "DELETE_IN_PROGRESS", + "UNKNOWN" + ], + "description": "Output only. Status of the function deployment.", + "type": "string" + }, + "timeout": { + "format": "google-duration", + "description": "The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.", + "type": "string" + }, + "availableMemoryMb": { + "format": "int32", + "description": "The amount of memory in MB available for a function.\nDefaults to 256MB.", + "type": "integer" + }, + "name": { + "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`", + "type": "string" + }, + "versionId": { + "format": "int64", + "description": "Output only.\nThe version identifier of the Cloud Function. Each deployment attempt\nresults in a new version of a function being created.", + "type": "string" + }, + "sourceArchiveUrl": { + "description": "The Google Cloud Storage URL, starting with gs://, pointing to the zip\narchive which contains the function.", + "type": "string" + }, + "sourceRepository": { + "description": "**Beta Feature**\n\nThe source repository where a function is hosted.", + "$ref": "SourceRepository" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with this Cloud Function.", + "type": "object" + }, + "entryPoint": { + "description": "The name of the function (as defined in source code) that will be\nexecuted. Defaults to the resource name suffix, if not specified. For\nbackward compatibility, if function with given name is not found, then the\nsystem will try to use function named \"function\".\nFor Node.js this is name of a function exported by the module specified\nin `source_location`.", + "type": "string" + }, + "updateTime": { + "format": "google-datetime", + "description": "Output only. The last update timestamp of a Cloud Function.", + "type": "string" + }, + "httpsTrigger": { + "$ref": "HttpsTrigger", + "description": "An HTTPS endpoint type of source that can be triggered via URL." + }, + "serviceAccountEmail": { + "description": "Output only. The email of the function's service account.", + "type": "string" + } + }, + "id": "CloudFunction" + }, + "HttpsTrigger": { + "properties": { + "url": { + "description": "Output only. The deployed url for the function.", + "type": "string" + } + }, + "id": "HttpsTrigger", + "description": "Describes HttpsTrigger, could be used to connect web hooks to function.", + "type": "object" }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "type": "object", "properties": { - "labels": { - "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", - "type": "string" - }, "locationId": { "description": "The canonical id for this location. For example: `\"us-east1\"`.", "type": "string" }, "metadata": { - "description": "Service-specific metadata. For example the available capacity at the given\nlocation.", - "type": "object", "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\nlocation.", + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" } }, "id": "Location" }, - "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", + "GenerateDownloadUrlResponse": { + "description": "Response of `GenerateDownloadUrl` method.", "type": "object", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", + "downloadUrl": { + "description": "The generated Google Cloud Storage signed URL that should be used for\nfunction source code download.", "type": "string" - }, - "operations": { - "description": "A list of operations that matches the specified filter in the request.", - "items": { - "$ref": "Operation" - }, - "type": "array" } }, - "id": "ListOperationsResponse" + "id": "GenerateDownloadUrlResponse" }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "Retry": { + "description": "Describes the retry policy in case of function's execution failure.\nA function execution will be retried on any failure.\nA failed execution will be retried up to 7 days with an exponential backoff\n(capped at 10 seconds).\nRetried execution is charged as any other execution.", "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "metadata": { - "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - }, - "id": "Operation" + "properties": {}, + "id": "Retry" } }, "protocol": "rest", @@ -197,65 +479,65 @@ "operations": { "methods": { "get": { + "id": "cloudfunctions.operations.get", + "path": "v1/{+name}", "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "response": { + "$ref": "Operation" + }, "parameterOrder": [ "name" ], "httpMethod": "GET", - "response": { - "$ref": "Operation" + "parameters": { + "name": { + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true, + "pattern": "^operations/[^/]+$" + } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "parameters": { - "name": { - "pattern": "^operations/[^/]+$", - "location": "path", - "description": "The name of the operation resource.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/operations/{operationsId}", - "id": "cloudfunctions.operations.get", - "path": "v1/{+name}" + "flatPath": "v1/operations/{operationsId}" }, "list": { - "httpMethod": "GET", - "parameterOrder": [], "response": { "$ref": "ListOperationsResponse" }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { - "pageSize": { - "format": "int32", - "description": "The standard list page size.", - "type": "integer", + "filter": { + "description": "The standard list filter.", + "type": "string", "location": "query" }, - "filter": { - "location": "query", - "description": "The standard list filter.", - "type": "string" - }, "pageToken": { - "location": "query", "description": "The standard list page token.", - "type": "string" + "type": "string", + "location": "query" }, "name": { "location": "query", "description": "The name of the operation's parent resource.", "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "flatPath": "v1/operations", - "path": "v1/operations", "id": "cloudfunctions.operations.list", + "path": "v1/operations", "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id." } } @@ -265,7 +547,6 @@ "locations": { "methods": { "list": { - "description": "Lists information about the supported locations for this service.", "response": { "$ref": "ListLocationsResponse" }, @@ -273,10 +554,19 @@ "name" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "name": { + "description": "The resource that owns the locations collection, if applicable.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, "pageSize": { "format": "int32", "description": "The standard list page size.", @@ -284,26 +574,256 @@ "location": "query" }, "filter": { - "location": "query", "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "description": "The standard list page token.", "type": "string", "location": "query" - }, - "name": { - "location": "path", - "description": "The resource that owns the locations collection, if applicable.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectsId}/locations", "id": "cloudfunctions.projects.locations.list", - "path": "v1/{+name}/locations" + "path": "v1/{+name}/locations", + "description": "Lists information about the supported locations for this service." + } + }, + "resources": { + "functions": { + "methods": { + "delete": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name of the function which should be deleted.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + "id": "cloudfunctions.projects.locations.functions.delete", + "path": "v1/{+name}", + "description": "Deletes a function with the given name from the specified project. If the\ngiven function is used by some trigger, the trigger will be updated to\nremove this function." + }, + "list": { + "description": "Returns a list of functions that belong to the requested project.", + "response": { + "$ref": "ListFunctionsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "pageToken": { + "description": "The value returned by the last\n`ListFunctionsResponse`; indicates that\nthis is a continuation of a prior `ListFunctions` call, and that the\nsystem should return the next page of data.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum number of functions to return per call.", + "type": "integer" + }, + "parent": { + "description": "The project and location from which the function should be listed,\nspecified in the format `projects/*/locations/*`\nIf you want to list functions in all locations, use \"-\" in place of a\nlocation.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions", + "id": "cloudfunctions.projects.locations.functions.list", + "path": "v1/{+parent}/functions" + }, + "call": { + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:call", + "id": "cloudfunctions.projects.locations.functions.call", + "path": "v1/{+name}:call", + "description": "Invokes synchronously deployed function. To be used for testing, very\nlimited traffic allowed.", + "request": { + "$ref": "CallFunctionRequest" + }, + "response": { + "$ref": "CallFunctionResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The name of the function to be called.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "request": { + "$ref": "CloudFunction" + }, + "description": "Creates a new function. If a function with the given name already exists in\nthe specified project, the long running operation will return\n`ALREADY_EXISTS` error.", + "httpMethod": "POST", + "parameterOrder": [ + "location" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "location": { + "description": "The project and location in which the function should be created, specified\nin the format `projects/*/locations/*`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions", + "path": "v1/{+location}/functions", + "id": "cloudfunctions.projects.locations.functions.create" + }, + "generateUploadUrl": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "GenerateUploadUrlResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "description": "The project and location in which the Google Cloud Storage signed URL\nshould be generated, specified in the format `projects/*/locations/*", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", + "path": "v1/{+parent}/functions:generateUploadUrl", + "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", + "request": { + "$ref": "GenerateUploadUrlRequest" + }, + "description": "Returns a signed URL for uploading a function source code.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls\nOnce the function source code upload is complete, the used signed\nURL should be provided in CreateFunction or UpdateFunction request\nas a reference to the function source code." + }, + "generateDownloadUrl": { + "request": { + "$ref": "GenerateDownloadUrlRequest" + }, + "description": "Returns a signed URL for downloading deployed function source code.\nThe URL is only valid for a limited period and should be used within\nminutes after generation.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls", + "response": { + "$ref": "GenerateDownloadUrlResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name of function for which source code Google Cloud Storage signed\nURL should be generated.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl", + "id": "cloudfunctions.projects.locations.functions.generateDownloadUrl", + "path": "v1/{+name}:generateDownloadUrl" + }, + "get": { + "response": { + "$ref": "CloudFunction" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path", + "description": "The name of the function which details should be obtained.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + "id": "cloudfunctions.projects.locations.functions.get", + "path": "v1/{+name}", + "description": "Returns a function with the given name from the requested project." + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Required list of fields to be updated in this request.", + "type": "string", + "location": "query" + }, + "name": { + "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + "path": "v1/{+name}", + "id": "cloudfunctions.projects.locations.functions.patch", + "description": "Updates existing function.", + "request": { + "$ref": "CloudFunction" + } + } + } } } } @@ -317,14 +837,9 @@ "location": "query" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", + "type": "boolean", "location": "query" }, "uploadType": { @@ -332,25 +847,32 @@ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string" }, - "callback": { - "description": "JSONP", + "fields": { + "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" + "type": "string" }, "alt": { + "description": "Data format for response.", + "default": "json", "enum": [ "json", "media", @@ -362,13 +884,6 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query", - "description": "Data format for response.", - "default": "json" - }, - "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.", - "type": "string", "location": "query" }, "access_token": { @@ -376,10 +891,15 @@ "type": "string", "location": "query" }, + "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.", + "type": "string", + "location": "query" + }, "quotaUser": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "pp": { "description": "Pretty-print response.", @@ -400,11 +920,13 @@ }, "version": "v1", "baseUrl": "https://cloudfunctions.googleapis.com/", - "servicePath": "", "kind": "discovery#restDescription", "description": "API for managing lightweight user-provided functions executed in response to events.", + "servicePath": "", "basePath": "", + "revision": "20171017", "id": "cloudfunctions:v1", "documentationLink": "https://cloud.google.com/functions", - "revision": "20170926" + "discoveryVersion": "v1", + "version_module": true } diff --git a/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-gen.go b/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-gen.go index 5f063e434..a7b48326e 100644 --- a/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-gen.go +++ b/vendor/google.golang.org/api/cloudfunctions/v1/cloudfunctions-gen.go @@ -101,11 +101,513 @@ type ProjectsService struct { func NewProjectsLocationsService(s *Service) *ProjectsLocationsService { rs := &ProjectsLocationsService{s: s} + rs.Functions = NewProjectsLocationsFunctionsService(s) return rs } type ProjectsLocationsService struct { s *Service + + Functions *ProjectsLocationsFunctionsService +} + +func NewProjectsLocationsFunctionsService(s *Service) *ProjectsLocationsFunctionsService { + rs := &ProjectsLocationsFunctionsService{s: s} + return rs +} + +type ProjectsLocationsFunctionsService struct { + s *Service +} + +// CallFunctionRequest: Request for the `CallFunction` method. +type CallFunctionRequest struct { + // Data: Input to be passed to the function. + Data string `json:"data,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Data") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Data") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CallFunctionRequest) MarshalJSON() ([]byte, error) { + type noMethod CallFunctionRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CallFunctionResponse: Response of `CallFunction` method. +type CallFunctionResponse struct { + // Error: Either system or user-function generated error. Set if + // execution + // was not successful. + Error string `json:"error,omitempty"` + + // ExecutionId: Execution id of function invocation. + ExecutionId string `json:"executionId,omitempty"` + + // Result: Result populated for successful execution of synchronous + // function. Will + // not be populated if function does not return a result through + // context. + Result string `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Error") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Error") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CallFunctionResponse) MarshalJSON() ([]byte, error) { + type noMethod CallFunctionResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CloudFunction: Describes a Cloud Function that contains user +// computation executed in +// response to an event. It encapsulate function and triggers +// configurations. +type CloudFunction struct { + // AvailableMemoryMb: The amount of memory in MB available for a + // function. + // Defaults to 256MB. + AvailableMemoryMb int64 `json:"availableMemoryMb,omitempty"` + + // Description: User-provided description of a function. + Description string `json:"description,omitempty"` + + // EntryPoint: The name of the function (as defined in source code) that + // will be + // executed. Defaults to the resource name suffix, if not specified. + // For + // backward compatibility, if function with given name is not found, + // then the + // system will try to use function named "function". + // For Node.js this is name of a function exported by the module + // specified + // in `source_location`. + EntryPoint string `json:"entryPoint,omitempty"` + + // EventTrigger: A source that fires events in response to a condition + // in another service. + EventTrigger *EventTrigger `json:"eventTrigger,omitempty"` + + // HttpsTrigger: An HTTPS endpoint type of source that can be triggered + // via URL. + HttpsTrigger *HttpsTrigger `json:"httpsTrigger,omitempty"` + + // Labels: Labels associated with this Cloud Function. + Labels map[string]string `json:"labels,omitempty"` + + // Name: A user-defined name of the function. Function names must be + // unique + // globally and match pattern `projects/*/locations/*/functions/*` + Name string `json:"name,omitempty"` + + // ServiceAccountEmail: Output only. The email of the function's service + // account. + ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"` + + // SourceArchiveUrl: The Google Cloud Storage URL, starting with gs://, + // pointing to the zip + // archive which contains the function. + SourceArchiveUrl string `json:"sourceArchiveUrl,omitempty"` + + // SourceRepository: **Beta Feature** + // + // The source repository where a function is hosted. + SourceRepository *SourceRepository `json:"sourceRepository,omitempty"` + + // SourceUploadUrl: The Google Cloud Storage signed URL used for source + // uploading, generated + // by google.cloud.functions.v1.GenerateUploadUrl + SourceUploadUrl string `json:"sourceUploadUrl,omitempty"` + + // Status: Output only. Status of the function deployment. + // + // Possible values: + // "CLOUD_FUNCTION_STATUS_UNSPECIFIED" - Not specified. Invalid state. + // "ACTIVE" - Function has been succesfully deployed and is serving. + // "OFFLINE" - Function deployment failed and the function isn’t + // serving. + // "DEPLOY_IN_PROGRESS" - Function is being created or updated. + // "DELETE_IN_PROGRESS" - Function is being deleted. + // "UNKNOWN" - Function deployment failed and the function serving + // state is undefined. + // The function should be updated or deleted to move it out of this + // state. + Status string `json:"status,omitempty"` + + // Timeout: The function execution timeout. Execution is considered + // failed and + // can be terminated if the function is not completed at the end of + // the + // timeout period. Defaults to 60 seconds. + Timeout string `json:"timeout,omitempty"` + + // UpdateTime: Output only. The last update timestamp of a Cloud + // Function. + UpdateTime string `json:"updateTime,omitempty"` + + // VersionId: Output only. + // The version identifier of the Cloud Function. Each deployment + // attempt + // results in a new version of a function being created. + VersionId int64 `json:"versionId,omitempty,string"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AvailableMemoryMb") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AvailableMemoryMb") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *CloudFunction) MarshalJSON() ([]byte, error) { + type noMethod CloudFunction + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// EventTrigger: Describes EventTrigger, used to request events be sent +// from another +// service. +type EventTrigger struct { + // EventType: Required. The type of event to observe. For + // example: + // `google.storage.object.finalized` + // and + // `google.firebase.analytics.event.log`. + // + // Event type consists of three parts: + // 1. namespace: The domain name of the organization in reverse-domain + // notation (e.g. `acme.net` appears as `net.acme`) and any + // orginization + // specific subdivisions. If the organization's top-level domain is + // `com`, + // the top-level domain is ommited (e.g. `google.com` appears as + // `google`). For example, `google.storage` and + // `google.firebase.analytics`. + // 2. resource type: The type of resource on which event ocurs. For + // example, the Google Cloud Storage API includes the type + // `object`. + // 3. action: The action that generates the event. For example, actions + // for + // a Google Cloud Storage Object include 'finalize' and + // 'delete'. + // These parts are lower case and joined by '.'. + EventType string `json:"eventType,omitempty"` + + // FailurePolicy: Specifies policy for failed executions. + FailurePolicy *FailurePolicy `json:"failurePolicy,omitempty"` + + // Resource: Required. The resource(s) from which to observe events, for + // example, + // `projects/_/buckets/myBucket`. + // + // Not all syntactically correct values are accepted by all services. + // For + // example: + // + // 1. The authorization model must support it. Google Cloud Functions + // only allows EventTriggers to be deployed that observe resources in + // the + // same project as the `CloudFunction`. + // 2. The resource type must match the pattern expected for an + // `event_type`. For example, an `EventTrigger` that has an + // `event_type` of "google.pubsub.topic.publish" should have a + // resource + // that matches Google Cloud Pub/Sub topics. + // + // Additionally, some services may support short names when creating + // an + // `EventTrigger`. These will always be returned in the normalized + // "long" + // format. + // + // See each *service's* documentation for supported formats. + Resource string `json:"resource,omitempty"` + + // Service: The hostname of the service that should be observed. + // + // If no string is provided, the default service implementing the API + // will + // be used. For example, `storage.googleapis.com` is the default for + // all + // event types in the 'google.storage` namespace. + Service string `json:"service,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EventType") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EventType") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *EventTrigger) MarshalJSON() ([]byte, error) { + type noMethod EventTrigger + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// FailurePolicy: Describes the policy in case of function's execution +// failure. +// If empty, then defaults to ignoring failures (i.e. not retrying +// them). +type FailurePolicy struct { + // Retry: If specified, then the function will be retried in case of a + // failure. + Retry *Retry `json:"retry,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Retry") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Retry") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FailurePolicy) MarshalJSON() ([]byte, error) { + type noMethod FailurePolicy + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenerateDownloadUrlRequest: Request of `GenerateDownloadUrl` method. +type GenerateDownloadUrlRequest struct { + // VersionId: The optional version of function. If not set, default, + // current version + // is used. + VersionId uint64 `json:"versionId,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "VersionId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "VersionId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateDownloadUrlRequest) MarshalJSON() ([]byte, error) { + type noMethod GenerateDownloadUrlRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenerateDownloadUrlResponse: Response of `GenerateDownloadUrl` +// method. +type GenerateDownloadUrlResponse struct { + // DownloadUrl: The generated Google Cloud Storage signed URL that + // should be used for + // function source code download. + DownloadUrl string `json:"downloadUrl,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DownloadUrl") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DownloadUrl") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateDownloadUrlResponse) MarshalJSON() ([]byte, error) { + type noMethod GenerateDownloadUrlResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenerateUploadUrlRequest: Request of `GenerateSourceUploadUrl` +// method. +type GenerateUploadUrlRequest struct { +} + +// GenerateUploadUrlResponse: Response of `GenerateSourceUploadUrl` +// method. +type GenerateUploadUrlResponse struct { + // UploadUrl: The generated Google Cloud Storage signed URL that should + // be used for a + // function source code upload. The uploaded file should be a zip + // archive + // which contains a function. + UploadUrl string `json:"uploadUrl,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "UploadUrl") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "UploadUrl") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateUploadUrlResponse) MarshalJSON() ([]byte, error) { + type noMethod GenerateUploadUrlResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// HttpsTrigger: Describes HttpsTrigger, could be used to connect web +// hooks to function. +type HttpsTrigger struct { + // Url: Output only. The deployed url for the function. + Url string `json:"url,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Url") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Url") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpsTrigger) MarshalJSON() ([]byte, error) { + type noMethod HttpsTrigger + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListFunctionsResponse: Response for the `ListFunctions` method. +type ListFunctionsResponse struct { + // Functions: The functions that match the request. + Functions []*CloudFunction `json:"functions,omitempty"` + + // NextPageToken: If not empty, indicates that there may be more + // functions that match + // the request; this value should be passed in a + // new + // google.cloud.functions.v1.ListFunctionsRequest + // to get more functions. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Functions") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Functions") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListFunctionsResponse) MarshalJSON() ([]byte, error) { + type noMethod ListFunctionsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListLocationsResponse: The response message for @@ -301,6 +803,53 @@ func (s *Operation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OperationMetadataV1: Metadata describing an Operation +type OperationMetadataV1 struct { + // Request: The original request that started the operation. + Request googleapi.RawMessage `json:"request,omitempty"` + + // Target: Target of the operation - for + // example + // projects/project-1/locations/region-1/functions/function-1 + Target string `json:"target,omitempty"` + + // Type: Type of operation. + // + // Possible values: + // "OPERATION_UNSPECIFIED" - Unknown operation type. + // "CREATE_FUNCTION" - Triggered by CreateFunction call + // "UPDATE_FUNCTION" - Triggered by UpdateFunction call + // "DELETE_FUNCTION" - Triggered by DeleteFunction call. + Type string `json:"type,omitempty"` + + // VersionId: Version id of the function created or updated by an API + // call. + // This field is only pupulated for Create and Update operations. + VersionId int64 `json:"versionId,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "Request") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Request") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationMetadataV1) MarshalJSON() ([]byte, error) { + type noMethod OperationMetadataV1 + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // OperationMetadataV1Beta2: Metadata describing an Operation type OperationMetadataV1Beta2 struct { // Request: The original request that started the operation. @@ -348,6 +897,73 @@ func (s *OperationMetadataV1Beta2) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Retry: Describes the retry policy in case of function's execution +// failure. +// A function execution will be retried on any failure. +// A failed execution will be retried up to 7 days with an exponential +// backoff +// (capped at 10 seconds). +// Retried execution is charged as any other execution. +type Retry struct { +} + +// SourceRepository: Describes SourceRepository, used to represent +// parameters related to +// source repository where a function is hosted. +type SourceRepository struct { + // DeployedUrl: Output only. The URL pointing to the hosted repository + // where the function + // were defined at the time of deployment. It always points to a + // specific + // commit in the format described above. + DeployedUrl string `json:"deployedUrl,omitempty"` + + // Url: The URL pointing to the hosted repository where the function is + // defined. + // There are supported Cloud Source Repository URLs in the + // following + // formats: + // + // To refer to a specific + // commit: + // `https://source.developers.google.com/projects/*/repos/*/revis + // ions/*/paths/*` + // To refer to a moveable alias + // (branch): + // `https://source.developers.google.com/projects/*/repos/*/mov + // eable-aliases/*/paths/*` + // In particular, to refer to HEAD use `master` moveable alias. + // To refer to a specific fixed alias + // (tag): + // `https://source.developers.google.com/projects/*/repos/*/fixed- + // aliases/*/paths/*` + // + // You may omit `paths/*` if you want to use the main directory. + Url string `json:"url,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DeployedUrl") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DeployedUrl") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SourceRepository) MarshalJSON() ([]byte, error) { + type noMethod SourceRepository + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Status: The `Status` type defines a logical error model that is // suitable for different // programming environments, including REST APIs and RPC APIs. It is @@ -1018,3 +1634,1171 @@ func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocat c.PageToken(x.NextPageToken) } } + +// method id "cloudfunctions.projects.locations.functions.call": + +type ProjectsLocationsFunctionsCallCall struct { + s *Service + name string + callfunctionrequest *CallFunctionRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Call: Invokes synchronously deployed function. To be used for +// testing, very +// limited traffic allowed. +func (r *ProjectsLocationsFunctionsService) Call(name string, callfunctionrequest *CallFunctionRequest) *ProjectsLocationsFunctionsCallCall { + c := &ProjectsLocationsFunctionsCallCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.callfunctionrequest = callfunctionrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsCallCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsCallCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsCallCall) Context(ctx context.Context) *ProjectsLocationsFunctionsCallCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsCallCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsCallCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.callfunctionrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:call") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.call" call. +// Exactly one of *CallFunctionResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *CallFunctionResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsCallCall) Do(opts ...googleapi.CallOption) (*CallFunctionResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &CallFunctionResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Invokes synchronously deployed function. To be used for testing, very\nlimited traffic allowed.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:call", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.call", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of the function to be called.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}:call", + // "request": { + // "$ref": "CallFunctionRequest" + // }, + // "response": { + // "$ref": "CallFunctionResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.create": + +type ProjectsLocationsFunctionsCreateCall struct { + s *Service + location string + cloudfunction *CloudFunction + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates a new function. If a function with the given name +// already exists in +// the specified project, the long running operation will +// return +// `ALREADY_EXISTS` error. +func (r *ProjectsLocationsFunctionsService) Create(location string, cloudfunction *CloudFunction) *ProjectsLocationsFunctionsCreateCall { + c := &ProjectsLocationsFunctionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.location = location + c.cloudfunction = cloudfunction + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsCreateCall) Context(ctx context.Context) *ProjectsLocationsFunctionsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.cloudfunction) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+location}/functions") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "location": c.location, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.create" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new function. If a function with the given name already exists in\nthe specified project, the long running operation will return\n`ALREADY_EXISTS` error.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.create", + // "parameterOrder": [ + // "location" + // ], + // "parameters": { + // "location": { + // "description": "The project and location in which the function should be created, specified\nin the format `projects/*/locations/*`", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+location}/functions", + // "request": { + // "$ref": "CloudFunction" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.delete": + +type ProjectsLocationsFunctionsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a function with the given name from the specified +// project. If the +// given function is used by some trigger, the trigger will be updated +// to +// remove this function. +func (r *ProjectsLocationsFunctionsService) Delete(name string) *ProjectsLocationsFunctionsDeleteCall { + c := &ProjectsLocationsFunctionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsFunctionsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes a function with the given name from the specified project. If the\ngiven function is used by some trigger, the trigger will be updated to\nremove this function.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + // "httpMethod": "DELETE", + // "id": "cloudfunctions.projects.locations.functions.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of the function which should be deleted.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.generateDownloadUrl": + +type ProjectsLocationsFunctionsGenerateDownloadUrlCall struct { + s *Service + name string + generatedownloadurlrequest *GenerateDownloadUrlRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GenerateDownloadUrl: Returns a signed URL for downloading deployed +// function source code. +// The URL is only valid for a limited period and should be used +// within +// minutes after generation. +// For more information about the signed URL usage +// see: +// https://cloud.google.com/storage/docs/access-control/signed-urls +func (r *ProjectsLocationsFunctionsService) GenerateDownloadUrl(name string, generatedownloadurlrequest *GenerateDownloadUrlRequest) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c := &ProjectsLocationsFunctionsGenerateDownloadUrlCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.generatedownloadurlrequest = generatedownloadurlrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Context(ctx context.Context) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.generatedownloadurlrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:generateDownloadUrl") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.generateDownloadUrl" call. +// Exactly one of *GenerateDownloadUrlResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GenerateDownloadUrlResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Do(opts ...googleapi.CallOption) (*GenerateDownloadUrlResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GenerateDownloadUrlResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a signed URL for downloading deployed function source code.\nThe URL is only valid for a limited period and should be used within\nminutes after generation.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.generateDownloadUrl", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of function for which source code Google Cloud Storage signed\nURL should be generated.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}:generateDownloadUrl", + // "request": { + // "$ref": "GenerateDownloadUrlRequest" + // }, + // "response": { + // "$ref": "GenerateDownloadUrlResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.generateUploadUrl": + +type ProjectsLocationsFunctionsGenerateUploadUrlCall struct { + s *Service + parent string + generateuploadurlrequest *GenerateUploadUrlRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GenerateUploadUrl: Returns a signed URL for uploading a function +// source code. +// For more information about the signed URL usage +// see: +// https://cloud.google.com/storage/docs/access-control/signed-urls +// +// Once the function source code upload is complete, the used signed +// URL should be provided in CreateFunction or UpdateFunction request +// as a reference to the function source code. +func (r *ProjectsLocationsFunctionsService) GenerateUploadUrl(parent string, generateuploadurlrequest *GenerateUploadUrlRequest) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c := &ProjectsLocationsFunctionsGenerateUploadUrlCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.generateuploadurlrequest = generateuploadurlrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Context(ctx context.Context) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.generateuploadurlrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/functions:generateUploadUrl") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.generateUploadUrl" call. +// Exactly one of *GenerateUploadUrlResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GenerateUploadUrlResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Do(opts ...googleapi.CallOption) (*GenerateUploadUrlResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GenerateUploadUrlResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a signed URL for uploading a function source code.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls\nOnce the function source code upload is complete, the used signed\nURL should be provided in CreateFunction or UpdateFunction request\nas a reference to the function source code.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The project and location in which the Google Cloud Storage signed URL\nshould be generated, specified in the format `projects/*/locations/*", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+parent}/functions:generateUploadUrl", + // "request": { + // "$ref": "GenerateUploadUrlRequest" + // }, + // "response": { + // "$ref": "GenerateUploadUrlResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.get": + +type ProjectsLocationsFunctionsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns a function with the given name from the requested +// project. +func (r *ProjectsLocationsFunctionsService) Get(name string) *ProjectsLocationsFunctionsGetCall { + c := &ProjectsLocationsFunctionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsLocationsFunctionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsFunctionsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsGetCall) Context(ctx context.Context) *ProjectsLocationsFunctionsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.get" call. +// Exactly one of *CloudFunction or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *CloudFunction.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsGetCall) Do(opts ...googleapi.CallOption) (*CloudFunction, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &CloudFunction{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a function with the given name from the requested project.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + // "httpMethod": "GET", + // "id": "cloudfunctions.projects.locations.functions.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of the function which details should be obtained.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "response": { + // "$ref": "CloudFunction" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.list": + +type ProjectsLocationsFunctionsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns a list of functions that belong to the requested +// project. +func (r *ProjectsLocationsFunctionsService) List(parent string) *ProjectsLocationsFunctionsListCall { + c := &ProjectsLocationsFunctionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// functions to return per call. +func (c *ProjectsLocationsFunctionsListCall) PageSize(pageSize int64) *ProjectsLocationsFunctionsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The value returned +// by the last +// `ListFunctionsResponse`; indicates that +// this is a continuation of a prior `ListFunctions` call, and that +// the +// system should return the next page of data. +func (c *ProjectsLocationsFunctionsListCall) PageToken(pageToken string) *ProjectsLocationsFunctionsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsLocationsFunctionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsFunctionsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsListCall) Context(ctx context.Context) *ProjectsLocationsFunctionsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/functions") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.list" call. +// Exactly one of *ListFunctionsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListFunctionsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsListCall) Do(opts ...googleapi.CallOption) (*ListFunctionsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListFunctionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a list of functions that belong to the requested project.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions", + // "httpMethod": "GET", + // "id": "cloudfunctions.projects.locations.functions.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of functions to return per call.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "The value returned by the last\n`ListFunctionsResponse`; indicates that\nthis is a continuation of a prior `ListFunctions` call, and that the\nsystem should return the next page of data.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "The project and location from which the function should be listed,\nspecified in the format `projects/*/locations/*`\nIf you want to list functions in all locations, use \"-\" in place of a\nlocation.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+parent}/functions", + // "response": { + // "$ref": "ListFunctionsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsLocationsFunctionsListCall) Pages(ctx context.Context, f func(*ListFunctionsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudfunctions.projects.locations.functions.patch": + +type ProjectsLocationsFunctionsPatchCall struct { + s *Service + name string + cloudfunction *CloudFunction + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates existing function. +func (r *ProjectsLocationsFunctionsService) Patch(name string, cloudfunction *CloudFunction) *ProjectsLocationsFunctionsPatchCall { + c := &ProjectsLocationsFunctionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.cloudfunction = cloudfunction + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required list of +// fields to be updated in this request. +func (c *ProjectsLocationsFunctionsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsFunctionsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsPatchCall) Context(ctx context.Context) *ProjectsLocationsFunctionsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.cloudfunction) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates existing function.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + // "httpMethod": "PATCH", + // "id": "cloudfunctions.projects.locations.functions.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "updateMask": { + // "description": "Required list of fields to be updated in this request.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "CloudFunction" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} diff --git a/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-api.json b/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-api.json index cd624c350..a9ee0734f 100644 --- a/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-api.json +++ b/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-api.json @@ -1,5 +1,4 @@ { - "rootUrl": "https://cloudfunctions.googleapis.com/", "ownerDomain": "google.com", "name": "cloudfunctions", "batchPath": "batch", @@ -7,12 +6,77 @@ "title": "Google Cloud Functions API", "ownerName": "Google", "resources": { + "operations": { + "methods": { + "get": { + "id": "cloudfunctions.operations.get", + "path": "v1beta2/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true, + "pattern": "^operations/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/operations/{operationsId}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [], + "response": { + "$ref": "ListOperationsResponse" + }, + "parameters": { + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The standard list page size.", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/operations", + "path": "v1beta2/operations", + "id": "cloudfunctions.operations.list", + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id." + } + } + }, "projects": { "resources": { "locations": { "methods": { "list": { - "description": "Lists information about the supported locations for this service.", "response": { "$ref": "ListLocationsResponse" }, @@ -24,62 +88,211 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" + }, "filter": { "description": "The standard list filter.", "type": "string", "location": "query" }, "pageToken": { - "type": "string", "location": "query", - "description": "The standard list page token." + "description": "The standard list page token.", + "type": "string" }, "name": { - "pattern": "^projects/[^/]+$", - "location": "path", "description": "The resource that owns the locations collection, if applicable.", "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" } }, "flatPath": "v1beta2/projects/{projectsId}/locations", "id": "cloudfunctions.projects.locations.list", - "path": "v1beta2/{+name}/locations" + "path": "v1beta2/{+name}/locations", + "description": "Lists information about the supported locations for this service." } }, "resources": { "functions": { "methods": { - "get": { - "description": "Returns a function with the given name from the requested project.", + "list": { + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions", + "path": "v1beta2/{+location}/functions", + "id": "cloudfunctions.projects.locations.functions.list", + "description": "Returns a list of functions that belong to the requested project.", + "httpMethod": "GET", "response": { - "$ref": "CloudFunction" + "$ref": "ListFunctionsResponse" + }, + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "location": "path", + "description": "The project and location from which the function should be listed,\nspecified in the format `projects/*/locations/*`\nIf you want to list functions in all locations, use \"-\" in place of a\nlocation.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$" + }, + "pageToken": { + "description": "The value returned by the last\n`ListFunctionsResponse`; indicates that\nthis is a continuation of a prior `ListFunctions` call, and that the\nsystem should return the next page of data.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "Maximum number of functions to return per call.", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "call": { + "description": "Invokes synchronously deployed function. To be used for testing, very\nlimited traffic allowed.", + "request": { + "$ref": "CallFunctionRequest" + }, + "response": { + "$ref": "CallFunctionResponse" }, "parameterOrder": [ "name" ], - "httpMethod": "GET", + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "The name of the function to be called.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:call", + "id": "cloudfunctions.projects.locations.functions.call", + "path": "v1beta2/{+name}:call" + }, + "create": { + "path": "v1beta2/{+location}/functions", + "id": "cloudfunctions.projects.locations.functions.create", + "request": { + "$ref": "CloudFunction" + }, + "description": "Creates a new function. If a function with the given name already exists in\nthe specified project, the long running operation will return\n`ALREADY_EXISTS` error.", + "httpMethod": "POST", + "parameterOrder": [ + "location" + ], + "response": { + "$ref": "Operation" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "parameters": { + "location": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "The project and location in which the function should be created, specified\nin the format `projects/*/locations/*`", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions" + }, + "generateUploadUrl": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "GenerateUploadUrlResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "description": "The project and location in which the Google Cloud Storage signed URL\nshould be generated, specified in the format `projects/*/locations/*", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", + "path": "v1beta2/{+parent}/functions:generateUploadUrl", + "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", + "request": { + "$ref": "GenerateUploadUrlRequest" + }, + "description": "Returns a signed URL for uploading a function source code.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls\nOnce the function source code upload is complete, the used signed\nURL should be provided in CreateFunction or UpdateFunction request\nas a reference to the function source code." + }, + "generateDownloadUrl": { + "description": "Returns a signed URL for downloading deployed function source code.\nThe URL is only valid for a limited period and should be used within\nminutes after generation.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls", + "request": { + "$ref": "GenerateDownloadUrlRequest" + }, + "response": { + "$ref": "GenerateDownloadUrlResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", "parameters": { "name": { - "description": "The name of the function which details should be obtained.", + "description": "The name of function for which source code Google Cloud Storage signed\nURL should be generated.", "type": "string", "required": true, "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl", + "id": "cloudfunctions.projects.locations.functions.generateDownloadUrl", + "path": "v1beta2/{+name}:generateDownloadUrl" + }, + "get": { + "description": "Returns a function with the given name from the requested project.", + "httpMethod": "GET", + "response": { + "$ref": "CloudFunction" + }, + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "location": "path", + "description": "The name of the function which details should be obtained." + } + }, "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", - "id": "cloudfunctions.projects.locations.functions.get", - "path": "v1beta2/{+name}" + "path": "v1beta2/{+name}", + "id": "cloudfunctions.projects.locations.functions.get" }, "update": { "request": { @@ -98,11 +311,11 @@ ], "parameters": { "name": { + "location": "path", "description": "The name of the function to be updated.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$" } }, "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", @@ -110,221 +323,42 @@ "path": "v1beta2/{+name}" }, "delete": { - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", - "id": "cloudfunctions.projects.locations.functions.delete", - "path": "v1beta2/{+name}", "description": "Deletes a function with the given name from the specified project. If the\ngiven function is used by some trigger, the trigger will be updated to\nremove this function.", - "response": { - "$ref": "Operation" - }, + "httpMethod": "DELETE", "parameterOrder": [ "name" ], - "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", "location": "path", "description": "The name of the function which should be deleted.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$" - } - } - }, - "list": { - "response": { - "$ref": "ListFunctionsResponse" - }, - "parameterOrder": [ - "location" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "The value returned by the last\n`ListFunctionsResponse`; indicates that\nthis is a continuation of a prior `ListFunctions` call, and that the\nsystem should return the next page of data.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of functions to return per call.", - "type": "integer" - }, - "location": { - "description": "The project and location from which the function should be listed,\nspecified in the format `projects/*/locations/*`\nIf you want to list functions in all locations, use \"-\" in place of a\nlocation.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions", - "id": "cloudfunctions.projects.locations.functions.list", - "path": "v1beta2/{+location}/functions", - "description": "Returns a list of functions that belong to the requested project." - }, - "create": { - "id": "cloudfunctions.projects.locations.functions.create", - "path": "v1beta2/{+location}/functions", - "description": "Creates a new function. If a function with the given name already exists in\nthe specified project, the long running operation will return\n`ALREADY_EXISTS` error.", - "request": { - "$ref": "CloudFunction" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "location" - ], - "httpMethod": "POST", - "parameters": { - "location": { - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path", - "description": "The project and location in which the function should be created, specified\nin the format `projects/*/locations/*`", - "type": "string", "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions" - }, - "call": { - "request": { - "$ref": "CallFunctionRequest" - }, - "description": "Invokes synchronously deployed function. To be used for testing, very\nlimited traffic allowed.", - "response": { - "$ref": "CallFunctionResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the function to be called.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:call", - "id": "cloudfunctions.projects.locations.functions.call", - "path": "v1beta2/{+name}:call" + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", + "path": "v1beta2/{+name}", + "id": "cloudfunctions.projects.locations.functions.delete" } } } } } } - }, - "operations": { - "methods": { - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^operations/[^/]+$", - "location": "path", - "description": "The name of the operation resource." - } - }, - "flatPath": "v1beta2/operations/{operationsId}", - "path": "v1beta2/{+name}", - "id": "cloudfunctions.operations.get", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." - }, - "list": { - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListOperationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "name": { - "type": "string", - "location": "query", - "description": "The name of the operation's parent resource." - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta2/operations", - "path": "v1beta2/operations", - "id": "cloudfunctions.operations.list" - } - } } }, "parameters": { - "quotaUser": { - "type": "string", - "location": "query", - "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." - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "location": "query", @@ -333,14 +367,19 @@ "type": "boolean" }, "fields": { + "type": "string", "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "description": "Selector specifying which fields to include in a partial response." }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" }, "$.xgafv": { "enumDescriptions": [ @@ -355,18 +394,7 @@ "description": "V1 error format.", "type": "string" }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -374,7 +402,13 @@ ], "location": "query", "description": "Data format for response.", - "default": "json" + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "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.", @@ -382,9 +416,30 @@ "location": "query" }, "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "default": "true", + "type": "boolean", + "location": "query", + "description": "Pretty-print response." + }, + "oauth_token": { "type": "string", "location": "query", - "description": "OAuth access token." + "description": "OAuth 2.0 token for the current user." + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" } }, "version": "v1beta2", @@ -393,32 +448,182 @@ "description": "API for managing lightweight user-provided functions executed in response to events.", "kind": "discovery#restDescription", "basePath": "", - "id": "cloudfunctions:v1beta2", + "revision": "20171017", "documentationLink": "https://cloud.google.com/functions", - "revision": "20170926", + "id": "cloudfunctions:v1beta2", "discoveryVersion": "v1", "version_module": true, "schemas": { + "CloudFunction": { + "description": "Describes a Cloud Function that contains user computation executed in\nresponse to an event. It encapsulate function and triggers configurations.", + "type": "object", + "properties": { + "sourceRepository": { + "$ref": "SourceRepository", + "description": "The hosted repository where the function is defined." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with this Cloud Function." + }, + "entryPoint": { + "description": "The name of the function (as defined in source code) that will be\nexecuted. Defaults to the resource name suffix, if not specified. For\nbackward compatibility, if function with given name is not found, then the\nsystem will try to use function named \"function\".\nFor Node.js this is name of a function exported by the module specified\nin `source_location`.", + "type": "string" + }, + "sourceRepositoryUrl": { + "description": "The URL pointing to the hosted repository where the function is defined.\nThere are supported Cloud Source Repository URLs in the following\nformats:\n\nTo refer to a specific commit:\n`https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`\nTo refer to a moveable alias (branch):\n`https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*`\nIn particular, to refer to HEAD use `master` moveable alias.\nTo refer to a specific fixed alias (tag):\n`https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*`\n\nYou may omit `paths/*` if you want to use the main directory.", + "type": "string" + }, + "updateTime": { + "format": "google-datetime", + "description": "Output only. The last update timestamp of a Cloud Function.", + "type": "string" + }, + "latestOperation": { + "description": "Output only. Name of the most recent operation modifying the function. If\nthe function status is `DEPLOYING` or `DELETING`, then it points to the\nactive operation.", + "type": "string" + }, + "httpsTrigger": { + "description": "An HTTPS endpoint type of source that can be triggered via URL.", + "$ref": "HTTPSTrigger" + }, + "timeout": { + "format": "google-duration", + "description": "The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.", + "type": "string" + }, + "status": { + "description": "Output only. Status of the function deployment.", + "type": "string", + "enumDescriptions": [ + "Status not specified.", + "Successfully deployed.", + "Not deployed correctly - behavior is undefined. The item should be updated\nor deleted to move it out of this state.", + "Creation or update in progress.", + "Deletion in progress." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "READY", + "FAILED", + "DEPLOYING", + "DELETING" + ] + }, + "sourceUploadUrl": { + "description": "The Google Cloud Storage signed URL used for source uploading, generated\nby google.cloud.functions.v1beta2.GenerateUploadUrl", + "type": "string" + }, + "eventTrigger": { + "description": "A source that fires events in response to a condition in another service.", + "$ref": "EventTrigger" + }, + "availableMemoryMb": { + "format": "int32", + "description": "The amount of memory in MB available for a function.\nDefaults to 256MB.", + "type": "integer" + }, + "name": { + "type": "string", + "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`" + }, + "versionId": { + "type": "string", + "format": "int64", + "description": "Output only.\nThe version identifier of the Cloud Function. Each deployment attempt\nresults in a new version of a function being created." + }, + "serviceAccount": { + "description": "Output only. The service account of the function.", + "type": "string" + }, + "sourceArchiveUrl": { + "description": "The Google Cloud Storage URL, starting with gs://, pointing to the zip\narchive which contains the function.", + "type": "string" + } + }, + "id": "CloudFunction" + }, + "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", + "properties": { + "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\nlocation.", + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + } + }, + "id": "Location" + }, + "GenerateDownloadUrlResponse": { + "id": "GenerateDownloadUrlResponse", + "description": "Response of `GenerateDownloadUrl` method.", + "type": "object", + "properties": { + "downloadUrl": { + "description": "The generated Google Cloud Storage signed URL that should be used for\nfunction source code download.", + "type": "string" + } + } + }, "Retry": { "description": "Describes the retry policy in case of function's execution failure.\nA function execution will be retried on any failure.\nA failed execution will be retried up to 7 days with an exponential backoff\n(capped at 10 seconds).\nRetried execution is charged as any other execution.", "type": "object", "properties": {}, "id": "Retry" }, + "GenerateUploadUrlRequest": { + "type": "object", + "properties": {}, + "id": "GenerateUploadUrlRequest", + "description": "Request of `GenerateUploadUrl` method." + }, "ListOperationsResponse": { - "id": "ListOperationsResponse", "description": "The response message for Operations.ListOperations.", "type": "object", "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" - }, - "nextPageToken": { - "description": "The standard List next-page token.", + } + }, + "id": "ListOperationsResponse" + }, + "GenerateUploadUrlResponse": { + "id": "GenerateUploadUrlResponse", + "description": "Response of `GenerateUploadUrl` method.", + "type": "object", + "properties": { + "uploadUrl": { + "description": "The generated Google Cloud Storage signed URL that should be used for a\nfunction source code upload. The uploaded file should be a zip archive\nwhich contains a function.", "type": "string" } } @@ -432,11 +637,11 @@ "type": "string" }, "functions": { - "description": "The functions that match the request.", "items": { "$ref": "CloudFunction" }, - "type": "array" + "type": "array", + "description": "The functions that match the request." } }, "id": "ListFunctionsResponse" @@ -446,11 +651,11 @@ "type": "object", "properties": { "locations": { + "description": "A list of locations that matches the specified filter in the request.", "items": { "$ref": "Location" }, - "type": "array", - "description": "A list of locations that matches the specified filter in the request." + "type": "array" }, "nextPageToken": { "description": "The standard List next-page token.", @@ -463,10 +668,6 @@ "description": "Response of `CallFunction` method.", "type": "object", "properties": { - "executionId": { - "description": "Execution id of function invocation.", - "type": "string" - }, "error": { "description": "Either system or user-function generated error. Set if execution\nwas not successful.", "type": "string" @@ -474,6 +675,10 @@ "result": { "description": "Result populated for successful execution of synchronous function. Will\nnot be populated if function does not return a result through context.", "type": "string" + }, + "executionId": { + "description": "Execution id of function invocation.", + "type": "string" } }, "id": "CallFunctionResponse" @@ -482,6 +687,10 @@ "description": "Describes EventTrigger, used to request events be sent from another\nservice.", "type": "object", "properties": { + "eventType": { + "description": "`event_type` names contain the service that is sending an event and the\nkind of event that was fired. Must be of the form\n`providers/*/eventTypes/*` e.g. Directly handle a Message published to\nGoogle Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`\n\n Handle an object changing in Google Cloud Storage\n `providers/cloud.storage/eventTypes/object.change`\n\n Handle a write to the Firebase Realtime Database\n `providers/google.firebase.database/eventTypes/ref.write`", + "type": "string" + }, "resource": { "description": "Which instance of the source's service should send events. E.g. for Pub/Sub\nthis would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud\nStorage this would be a bucket at `projects/*/buckets/*`. For any source\nthat only supports one instance per-project, this should be the name of the\nproject (`projects/*`)", "type": "string" @@ -491,12 +700,8 @@ "type": "string" }, "failurePolicy": { - "description": "Specifies policy for failed executions.", - "$ref": "FailurePolicy" - }, - "eventType": { - "description": "`event_type` names contain the service that is sending an event and the\nkind of event that was fired. Must be of the form\n`providers/*/eventTypes/*` e.g. Directly handle a Message published to\nGoogle Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`\n\n Handle an object changing in Google Cloud Storage\n `providers/cloud.storage/eventTypes/object.change`\n\n Handle a write to the Firebase Realtime Database\n `providers/google.firebase.database/eventTypes/ref.write`", - "type": "string" + "$ref": "FailurePolicy", + "description": "Specifies policy for failed executions." } }, "id": "EventTrigger" @@ -517,52 +722,45 @@ "type": "object", "properties": { "retry": { - "$ref": "Retry", - "description": "If specified, then the function will be retried in case of a failure." + "description": "If specified, then the function will be retried in case of a failure.", + "$ref": "Retry" } }, "id": "FailurePolicy" }, - "Operation": { - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "GenerateDownloadUrlRequest": { + "description": "Request of `GenerateDownloadUrl` method.", "type": "object", "properties": { - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "versionId": { + "format": "uint64", + "description": "The optional version of function.", "type": "string" - }, - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" - }, - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" } - } + }, + "id": "GenerateDownloadUrlRequest" }, - "OperationMetadataV1Beta2": { - "id": "OperationMetadataV1Beta2", + "OperationMetadataV1": { + "id": "OperationMetadataV1", "description": "Metadata describing an Operation", "type": "object", "properties": { + "type": { + "type": "string", + "enumDescriptions": [ + "Unknown operation type.", + "Triggered by CreateFunction call", + "Triggered by UpdateFunction call", + "Triggered by DeleteFunction call." + ], + "enum": [ + "OPERATION_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION" + ], + "description": "Type of operation." + }, "target": { "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1", "type": "string" @@ -573,13 +771,53 @@ "type": "string" }, "request": { + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The original request that started the operation.", + "description": "The original request that started the operation." + } + } + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", + "properties": { + "response": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", "type": "object" }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + } + }, + "id": "Operation" + }, + "OperationMetadataV1Beta2": { + "type": "object", + "properties": { "type": { "enumDescriptions": [ "Unknown operation type.", @@ -595,51 +833,57 @@ ], "description": "Type of operation.", "type": "string" + }, + "target": { + "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1", + "type": "string" + }, + "versionId": { + "format": "int64", + "description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.", + "type": "string" + }, + "request": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "description": "The original request that started the operation.", + "type": "object" } - } + }, + "id": "OperationMetadataV1Beta2", + "description": "Metadata describing an Operation" }, "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "items": { - "type": "object", "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." - } + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" }, "type": "array" }, "code": { - "type": "integer", "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code." - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" } }, - "id": "Status" + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." }, "SourceRepository": { - "type": "object", "properties": { - "revision": { - "description": "The id of the revision that captures the state of the repository from\nwhich the function should be fetched.", - "type": "string" - }, - "repositoryUrl": { - "description": "URL to the hosted repository where the function is defined. Only paths in\nhttps://source.developers.google.com domain are supported. The path should\ncontain the name of the repository.", - "type": "string" - }, - "tag": { - "description": "The name of the tag that captures the state of the repository from\nwhich the function should be fetched.", - "type": "string" - }, "branch": { "description": "The name of the branch from which the function should be fetched.", "type": "string" @@ -651,10 +895,23 @@ "sourcePath": { "description": "The path within the repository where the function is defined. The path\nshould point to the directory where Cloud Functions files are located. Use\n\"/\" if the function is defined directly in the root directory of a\nrepository.", "type": "string" + }, + "revision": { + "description": "The id of the revision that captures the state of the repository from\nwhich the function should be fetched.", + "type": "string" + }, + "repositoryUrl": { + "description": "URL to the hosted repository where the function is defined. Only paths in\nhttps://source.developers.google.com domain are supported. The path should\ncontain the name of the repository.", + "type": "string" + }, + "tag": { + "description": "The name of the tag that captures the state of the repository from\nwhich the function should be fetched.", + "type": "string" } }, "id": "SourceRepository", - "description": "Describes the location of the function source in a remote repository." + "description": "Describes the location of the function source in a remote repository.", + "type": "object" }, "CallFunctionRequest": { "description": "Request for the `CallFunction` method.", @@ -666,131 +923,13 @@ } }, "id": "CallFunctionRequest" - }, - "CloudFunction": { - "description": "Describes a Cloud Function that contains user computation executed in\nresponse to an event. It encapsulate function and triggers configurations.", - "type": "object", - "properties": { - "sourceArchiveUrl": { - "type": "string", - "description": "The Google Cloud Storage URL, starting with gs://, pointing to the zip\narchive which contains the function." - }, - "sourceRepository": { - "$ref": "SourceRepository", - "description": "The hosted repository where the function is defined." - }, - "entryPoint": { - "description": "The name of the function (as defined in source code) that will be\nexecuted. Defaults to the resource name suffix, if not specified. For\nbackward compatibility, if function with given name is not found, then the\nsystem will try to use function named \"function\".\nFor Node.js this is name of a function exported by the module specified\nin `source_location`.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels associated with this Cloud Function.", - "type": "object" - }, - "updateTime": { - "format": "google-datetime", - "description": "Output only. The last update timestamp of a Cloud Function.", - "type": "string" - }, - "sourceRepositoryUrl": { - "description": "The URL pointing to the hosted repository where the function is defined.\nThere are supported Cloud Source Repository URLs in the following\nformats:\n\nTo refer to a specific commit:\n`https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`\nTo refer to a moveable alias (branch):\n`https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*`\nIn particular, to refer to HEAD use `master` moveable alias.\nTo refer to a specific fixed alias (tag):\n`https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*`\n\nYou may omit `paths/*` if you want to use the main directory.", - "type": "string" - }, - "latestOperation": { - "description": "Output only. Name of the most recent operation modifying the function. If\nthe function status is `DEPLOYING` or `DELETING`, then it points to the\nactive operation.", - "type": "string" - }, - "httpsTrigger": { - "description": "An HTTPS endpoint type of source that can be triggered via URL.", - "$ref": "HTTPSTrigger" - }, - "timeout": { - "format": "google-duration", - "description": "The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.", - "type": "string" - }, - "status": { - "enum": [ - "STATUS_UNSPECIFIED", - "READY", - "FAILED", - "DEPLOYING", - "DELETING" - ], - "description": "Output only. Status of the function deployment.", - "type": "string", - "enumDescriptions": [ - "Status not specified.", - "Successfully deployed.", - "Not deployed correctly - behavior is undefined. The item should be updated\nor deleted to move it out of this state.", - "Creation or update in progress.", - "Deletion in progress." - ] - }, - "eventTrigger": { - "$ref": "EventTrigger", - "description": "A source that fires events in response to a condition in another service." - }, - "availableMemoryMb": { - "format": "int32", - "description": "The amount of memory in MB available for a function.\nDefaults to 256MB.", - "type": "integer" - }, - "name": { - "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`", - "type": "string" - }, - "versionId": { - "format": "int64", - "description": "Output only.\nThe version identifier of the Cloud Function. Each deployment attempt\nresults in a new version of a function being created.", - "type": "string" - }, - "serviceAccount": { - "type": "string", - "description": "Output only. The service account of the function." - } - }, - "id": "CloudFunction" - }, - "Location": { - "description": "A resource that represents Google Cloud Platform location.", - "type": "object", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object" - }, - "name": { - "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", - "type": "string" - }, - "locationId": { - "description": "The canonical id for this location. For example: `\"us-east1\"`.", - "type": "string" - }, - "metadata": { - "description": "Service-specific metadata. For example the available capacity at the given\nlocation.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - }, - "id": "Location" } }, + "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "protocol": "rest", "canonicalName": "Cloud Functions", "auth": { "oauth2": { @@ -800,5 +939,6 @@ } } } - } + }, + "rootUrl": "https://cloudfunctions.googleapis.com/" } diff --git a/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-gen.go b/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-gen.go index 8523c054a..736ca96bb 100644 --- a/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-gen.go +++ b/vendor/google.golang.org/api/cloudfunctions/v1beta2/cloudfunctions-gen.go @@ -271,6 +271,11 @@ type CloudFunction struct { // You may omit `paths/*` if you want to use the main directory. SourceRepositoryUrl string `json:"sourceRepositoryUrl,omitempty"` + // SourceUploadUrl: The Google Cloud Storage signed URL used for source + // uploading, generated + // by google.cloud.functions.v1beta2.GenerateUploadUrl + SourceUploadUrl string `json:"sourceUploadUrl,omitempty"` + // Status: Output only. Status of the function deployment. // // Possible values: @@ -426,6 +431,109 @@ func (s *FailurePolicy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GenerateDownloadUrlRequest: Request of `GenerateDownloadUrl` method. +type GenerateDownloadUrlRequest struct { + // VersionId: The optional version of function. + VersionId uint64 `json:"versionId,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "VersionId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "VersionId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateDownloadUrlRequest) MarshalJSON() ([]byte, error) { + type noMethod GenerateDownloadUrlRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenerateDownloadUrlResponse: Response of `GenerateDownloadUrl` +// method. +type GenerateDownloadUrlResponse struct { + // DownloadUrl: The generated Google Cloud Storage signed URL that + // should be used for + // function source code download. + DownloadUrl string `json:"downloadUrl,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DownloadUrl") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DownloadUrl") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateDownloadUrlResponse) MarshalJSON() ([]byte, error) { + type noMethod GenerateDownloadUrlResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenerateUploadUrlRequest: Request of `GenerateUploadUrl` method. +type GenerateUploadUrlRequest struct { +} + +// GenerateUploadUrlResponse: Response of `GenerateUploadUrl` method. +type GenerateUploadUrlResponse struct { + // UploadUrl: The generated Google Cloud Storage signed URL that should + // be used for a + // function source code upload. The uploaded file should be a zip + // archive + // which contains a function. + UploadUrl string `json:"uploadUrl,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "UploadUrl") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "UploadUrl") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenerateUploadUrlResponse) MarshalJSON() ([]byte, error) { + type noMethod GenerateUploadUrlResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // HTTPSTrigger: Describes HTTPSTrigger, could be used to connect web // hooks to function. type HTTPSTrigger struct { @@ -688,6 +796,53 @@ func (s *Operation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OperationMetadataV1: Metadata describing an Operation +type OperationMetadataV1 struct { + // Request: The original request that started the operation. + Request googleapi.RawMessage `json:"request,omitempty"` + + // Target: Target of the operation - for + // example + // projects/project-1/locations/region-1/functions/function-1 + Target string `json:"target,omitempty"` + + // Type: Type of operation. + // + // Possible values: + // "OPERATION_UNSPECIFIED" - Unknown operation type. + // "CREATE_FUNCTION" - Triggered by CreateFunction call + // "UPDATE_FUNCTION" - Triggered by UpdateFunction call + // "DELETE_FUNCTION" - Triggered by DeleteFunction call. + Type string `json:"type,omitempty"` + + // VersionId: Version id of the function created or updated by an API + // call. + // This field is only pupulated for Create and Update operations. + VersionId int64 `json:"versionId,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "Request") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Request") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationMetadataV1) MarshalJSON() ([]byte, error) { + type noMethod OperationMetadataV1 + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // OperationMetadataV1Beta2: Metadata describing an Operation type OperationMetadataV1Beta2 struct { // Request: The original request that started the operation. @@ -1888,6 +2043,291 @@ func (c *ProjectsLocationsFunctionsDeleteCall) Do(opts ...googleapi.CallOption) } +// method id "cloudfunctions.projects.locations.functions.generateDownloadUrl": + +type ProjectsLocationsFunctionsGenerateDownloadUrlCall struct { + s *Service + name string + generatedownloadurlrequest *GenerateDownloadUrlRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GenerateDownloadUrl: Returns a signed URL for downloading deployed +// function source code. +// The URL is only valid for a limited period and should be used +// within +// minutes after generation. +// For more information about the signed URL usage +// see: +// https://cloud.google.com/storage/docs/access-control/signed-urls +func (r *ProjectsLocationsFunctionsService) GenerateDownloadUrl(name string, generatedownloadurlrequest *GenerateDownloadUrlRequest) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c := &ProjectsLocationsFunctionsGenerateDownloadUrlCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.generatedownloadurlrequest = generatedownloadurlrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Context(ctx context.Context) *ProjectsLocationsFunctionsGenerateDownloadUrlCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.generatedownloadurlrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta2/{+name}:generateDownloadUrl") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.generateDownloadUrl" call. +// Exactly one of *GenerateDownloadUrlResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GenerateDownloadUrlResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsGenerateDownloadUrlCall) Do(opts ...googleapi.CallOption) (*GenerateDownloadUrlResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GenerateDownloadUrlResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a signed URL for downloading deployed function source code.\nThe URL is only valid for a limited period and should be used within\nminutes after generation.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls", + // "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.generateDownloadUrl", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of function for which source code Google Cloud Storage signed\nURL should be generated.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta2/{+name}:generateDownloadUrl", + // "request": { + // "$ref": "GenerateDownloadUrlRequest" + // }, + // "response": { + // "$ref": "GenerateDownloadUrlResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudfunctions.projects.locations.functions.generateUploadUrl": + +type ProjectsLocationsFunctionsGenerateUploadUrlCall struct { + s *Service + parent string + generateuploadurlrequest *GenerateUploadUrlRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GenerateUploadUrl: Returns a signed URL for uploading a function +// source code. +// For more information about the signed URL usage +// see: +// https://cloud.google.com/storage/docs/access-control/signed-urls +// +// Once the function source code upload is complete, the used signed +// URL should be provided in CreateFunction or UpdateFunction request +// as a reference to the function source code. +func (r *ProjectsLocationsFunctionsService) GenerateUploadUrl(parent string, generateuploadurlrequest *GenerateUploadUrlRequest) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c := &ProjectsLocationsFunctionsGenerateUploadUrlCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.generateuploadurlrequest = generateuploadurlrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Fields(s ...googleapi.Field) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Context(ctx context.Context) *ProjectsLocationsFunctionsGenerateUploadUrlCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.generateuploadurlrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta2/{+parent}/functions:generateUploadUrl") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudfunctions.projects.locations.functions.generateUploadUrl" call. +// Exactly one of *GenerateUploadUrlResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GenerateUploadUrlResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsFunctionsGenerateUploadUrlCall) Do(opts ...googleapi.CallOption) (*GenerateUploadUrlResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GenerateUploadUrlResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a signed URL for uploading a function source code.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls\nOnce the function source code upload is complete, the used signed\nURL should be provided in CreateFunction or UpdateFunction request\nas a reference to the function source code.", + // "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", + // "httpMethod": "POST", + // "id": "cloudfunctions.projects.locations.functions.generateUploadUrl", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The project and location in which the Google Cloud Storage signed URL\nshould be generated, specified in the format `projects/*/locations/*", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta2/{+parent}/functions:generateUploadUrl", + // "request": { + // "$ref": "GenerateUploadUrlRequest" + // }, + // "response": { + // "$ref": "GenerateUploadUrlResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "cloudfunctions.projects.locations.functions.get": type ProjectsLocationsFunctionsGetCall struct { diff --git a/vendor/google.golang.org/api/cloudiot/v1/cloudiot-api.json b/vendor/google.golang.org/api/cloudiot/v1/cloudiot-api.json index 35e50a32f..209472ffe 100644 --- a/vendor/google.golang.org/api/cloudiot/v1/cloudiot-api.json +++ b/vendor/google.golang.org/api/cloudiot/v1/cloudiot-api.json @@ -1,6 +1,187 @@ { + "id": "cloudiot:v1", + "documentationLink": "https://cloud.google.com/iot", + "revision": "20171011", + "discoveryVersion": "v1", "version_module": true, "schemas": { + "ListDeviceStatesResponse": { + "description": "Response for `ListDeviceStates`.", + "type": "object", + "properties": { + "deviceStates": { + "description": "The last few device states. States are listed in descending order of server\nupdate time, starting from the most recent one.", + "items": { + "$ref": "DeviceState" + }, + "type": "array" + } + }, + "id": "ListDeviceStatesResponse" + }, + "GetIamPolicyRequest": { + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object", + "properties": {} + }, + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "TestIamPermissionsResponse" + }, + "Device": { + "type": "object", + "properties": { + "lastHeartbeatTime": { + "format": "google-datetime", + "description": "[Output only] The last time a heartbeat was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes. This field is only for devices connecting through MQTT.", + "type": "string" + }, + "blocked": { + "description": "If a device is blocked, connections or requests from this device will fail.\nCan be used to temporarily prevent the device from connecting if, for\nexample, the sensor is generating bad data and needs maintenance.", + "type": "boolean" + }, + "lastEventTime": { + "format": "google-datetime", + "description": "[Output only] The last time a telemetry event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", + "type": "string" + }, + "lastConfigSendTime": { + "format": "google-datetime", + "description": "[Output only] The last time a cloud-to-device config version was sent to\nthe device.", + "type": "string" + }, + "lastErrorStatus": { + "$ref": "Status", + "description": "[Output only] The error message of the most recent error, such as a failure\nto publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this\nfield. If no errors have occurred, this field has an empty message\nand the status code 0 == OK. Otherwise, this field is expected to have a\nstatus code other than OK." + }, + "lastStateTime": { + "format": "google-datetime", + "description": "[Output only] The last time a state event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", + "type": "string" + }, + "config": { + "$ref": "DeviceConfig", + "description": "The most recent device configuration, which is eventually sent from\nCloud IoT Core to the device. If not present on creation, the\nconfiguration will be initialized with an empty payload and version value\nof `1`. To update this field after creation, use the\n`DeviceManager.ModifyCloudToDeviceConfig` method." + }, + "state": { + "$ref": "DeviceState", + "description": "[Output only] The state most recently received from the device. If no state\nhas been reported, this field is not present." + }, + "credentials": { + "description": "The credentials used to authenticate this device. To allow credential\nrotation without interruption, multiple device credentials can be bound to\nthis device. No more than 3 credentials can be bound to a single device at\na time. When new credentials are added to a device, they are verified\nagainst the registry credentials. For details, see the description of the\n`DeviceRegistry.credentials` field.", + "items": { + "$ref": "DeviceCredential" + }, + "type": "array" + }, + "name": { + "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", + "type": "string" + }, + "lastErrorTime": { + "format": "google-datetime", + "description": "[Output only] The time the most recent error occurred, such as a failure to\npublish to Cloud Pub/Sub. This field is the timestamp of\n'last_error_status'.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "The metadata key-value pairs assigned to the device. This metadata is not\ninterpreted or indexed by Cloud IoT Core. It can be used to add contextual\ninformation for the device.\n\nKeys must conform to the regular expression [a-zA-Z0-9-_]+ and be less than\n128 bytes in length.\n\nValues are free-form strings. Each value must be less than or equal to 32\nKB in size.\n\nThe total size of all keys and values must be less than 256 KB, and the\nmaximum number of key-value pairs is 500.", + "type": "object" + }, + "id": { + "description": "The user-defined device identifier. The device ID must be unique\nwithin a device registry.", + "type": "string" + }, + "lastConfigAckTime": { + "type": "string", + "format": "google-datetime", + "description": "[Output only] The last time a cloud-to-device config version acknowledgment\nwas received from the device. This field is only for configurations\nsent through MQTT." + }, + "numId": { + "type": "string", + "format": "uint64", + "description": "[Output only] A server-defined unique numeric ID for the device. This is a\nmore compact way to identify devices, and it is globally unique." + } + }, + "id": "Device", + "description": "The device resource." + }, + "ListDeviceConfigVersionsResponse": { + "description": "Response for `ListDeviceConfigVersions`.", + "type": "object", + "properties": { + "deviceConfigs": { + "description": "The device configuration for the last few versions. Versions are listed\nin decreasing order, starting from the most recent one.", + "items": { + "$ref": "DeviceConfig" + }, + "type": "array" + } + }, + "id": "ListDeviceConfigVersionsResponse" + }, + "X509CertificateDetails": { + "description": "Details of an X.509 certificate. For informational purposes only.", + "type": "object", + "properties": { + "issuer": { + "description": "The entity that signed the certificate.", + "type": "string" + }, + "publicKeyType": { + "description": "The type of public key in the certificate.", + "type": "string" + }, + "signatureAlgorithm": { + "description": "The algorithm used to sign the certificate.", + "type": "string" + }, + "startTime": { + "format": "google-datetime", + "description": "The time the certificate becomes valid.", + "type": "string" + }, + "expiryTime": { + "format": "google-datetime", + "description": "The time the certificate becomes invalid.", + "type": "string" + }, + "subject": { + "description": "The entity the certificate and public key belong to.", + "type": "string" + } + }, + "id": "X509CertificateDetails" + }, + "SetIamPolicyRequest": { + "type": "object", + "properties": { + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + }, + "updateMask": { + "type": "string", + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM." + } + }, + "id": "SetIamPolicyRequest", + "description": "Request message for `SetIamPolicy` method." + }, "EventNotificationConfig": { "description": "The configuration to forward telemetry events.", "type": "object", @@ -12,27 +193,11 @@ }, "id": "EventNotificationConfig" }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest" - }, "Empty": { - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", - "properties": {} + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`." }, "PublicKeyCredential": { "description": "A public key format and data.", @@ -67,52 +232,58 @@ "description": "A public key certificate format and data.", "type": "object", "properties": { + "x509Details": { + "$ref": "X509CertificateDetails", + "description": "[Output only] The certificate details. Used only for X.509 certificates." + }, "format": { - "enumDescriptions": [ - "The format has not been specified. This is an invalid default value and\nmust not be used.", - "An X.509v3 certificate ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)),\nencoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and\n`-----END CERTIFICATE-----`." - ], "enum": [ "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT", "X509_CERTIFICATE_PEM" ], "description": "The certificate format.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "The format has not been specified. This is an invalid default value and\nmust not be used.", + "An X.509v3 certificate ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)),\nencoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and\n`-----END CERTIFICATE-----`." + ] }, "certificate": { "description": "The certificate data.", "type": "string" - }, - "x509Details": { - "$ref": "X509CertificateDetails", - "description": "[Output only] The certificate details. Used only for X.509 certificates." } }, "id": "PublicKeyCertificate" }, "DeviceState": { + "description": "The device state, as reported by the device.", + "type": "object", "properties": { - "binaryData": { - "format": "byte", - "description": "The device state data.", - "type": "string" - }, "updateTime": { "format": "google-datetime", "description": "[Output only] The time at which this state version was updated in Cloud\nIoT Core.", "type": "string" + }, + "binaryData": { + "format": "byte", + "description": "The device state data.", + "type": "string" } }, - "id": "DeviceState", - "description": "The device state, as reported by the device.", - "type": "object" + "id": "DeviceState" }, "AuditLogConfig": { "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", "type": "object", "properties": { + "exemptedMembers": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members." + }, "logType": { - "type": "string", "enumDescriptions": [ "Default case. Should never be this.", "Admin reads. Example: CloudIAM getIamPolicy", @@ -125,28 +296,22 @@ "DATA_WRITE", "DATA_READ" ], - "description": "The log type that this config enables." - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" + "description": "The log type that this config enables.", + "type": "string" } }, "id": "AuditLogConfig" }, "StateNotificationConfig": { - "id": "StateNotificationConfig", - "description": "The configuration for notification of new states received from the device.", "type": "object", "properties": { "pubsubTopicName": { "description": "A Cloud Pub/Sub topic name. For example,\n`projects/myProject/topics/deviceEvents`.", "type": "string" } - } + }, + "id": "StateNotificationConfig", + "description": "The configuration for notification of new states received from the device." }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", @@ -163,12 +328,7 @@ "id": "TestIamPermissionsRequest" }, "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object", "properties": { - "iamOwned": { - "type": "boolean" - }, "etag": { "format": "byte", "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", @@ -192,31 +352,36 @@ "$ref": "Binding" }, "type": "array" + }, + "iamOwned": { + "type": "boolean" } }, - "id": "Policy" + "id": "Policy", + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object" }, "RegistryCredential": { - "description": "A server-stored registry credential used to validate device credentials.", "type": "object", "properties": { "publicKeyCertificate": { - "$ref": "PublicKeyCertificate", - "description": "A public key certificate used to verify the device credentials." + "description": "A public key certificate used to verify the device credentials.", + "$ref": "PublicKeyCertificate" } }, - "id": "RegistryCredential" + "id": "RegistryCredential", + "description": "A server-stored registry credential used to validate device credentials." }, "ListDeviceRegistriesResponse": { "description": "Response for `ListDeviceRegistries`.", "type": "object", "properties": { "deviceRegistries": { + "description": "The registries that matched the query.", "items": { "$ref": "DeviceRegistry" }, - "type": "array", - "description": "The registries that matched the query." + "type": "array" }, "nextPageToken": { "description": "If not empty, indicates that there may be more registries that match the\nrequest; this value should be passed in a new\n`ListDeviceRegistriesRequest`.", @@ -226,12 +391,13 @@ "id": "ListDeviceRegistriesResponse" }, "DeviceRegistry": { + "id": "DeviceRegistry", "description": "A container for a group of devices.", "type": "object", "properties": { "httpConfig": { - "description": "The DeviceService (HTTP) configuration for this device registry.", - "$ref": "HttpConfig" + "$ref": "HttpConfig", + "description": "The DeviceService (HTTP) configuration for this device registry." }, "id": { "description": "The identifier of this device registry. For example, `myRegistry`.", @@ -246,11 +412,11 @@ "description": "The configuration for notification of new states received from the device.\nState updates are guaranteed to be stored in the state history, but\nnotifications to Cloud Pub/Sub are not guaranteed. For example, if\npermissions are misconfigured or the specified topic doesn't exist, no\nnotification will be published but the state will still be stored in Cloud\nIoT Core." }, "credentials": { - "description": "The credentials used to verify the device credentials. No more than 10\ncredentials can be bound to a single registry at a time. The verification\nprocess occurs at the time of device creation or update. If this field is\nempty, no verification is performed. Otherwise, the credentials of a newly\ncreated device or added credentials of an updated device should be signed\nwith one of these registry credentials.\n\nNote, however, that existing devices will never be affected by\nmodifications to this list of credentials: after a device has been\nsuccessfully created in a registry, it should be able to connect even if\nits registry credentials are revoked, deleted, or modified.", "items": { "$ref": "RegistryCredential" }, - "type": "array" + "type": "array", + "description": "The credentials used to verify the device credentials. No more than 10\ncredentials can be bound to a single registry at a time. The verification\nprocess occurs at the time of device creation or update. If this field is\nempty, no verification is performed. Otherwise, the credentials of a newly\ncreated device or added credentials of an updated device should be signed\nwith one of these registry credentials.\n\nNote, however, that existing devices will never be affected by\nmodifications to this list of credentials: after a device has been\nsuccessfully created in a registry, it should be able to connect even if\nits registry credentials are revoked, deleted, or modified." }, "name": { "description": "The resource path name. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", @@ -263,50 +429,47 @@ }, "type": "array" } - }, - "id": "DeviceRegistry" + } }, "ListDevicesResponse": { + "id": "ListDevicesResponse", "description": "Response for `ListDevices`.", "type": "object", "properties": { - "nextPageToken": { - "description": "If not empty, indicates that there may be more devices that match the\nrequest; this value should be passed in a new `ListDevicesRequest`.", - "type": "string" - }, "devices": { "description": "The devices that match the request.", "items": { "$ref": "Device" }, "type": "array" + }, + "nextPageToken": { + "description": "If not empty, indicates that there may be more devices that match the\nrequest; this value should be passed in a new `ListDevicesRequest`.", + "type": "string" } - }, - "id": "ListDevicesResponse" + } }, "DeviceCredential": { + "description": "A server-stored device credential used for authentication.", + "type": "object", "properties": { "expirationTime": { + "type": "string", "format": "google-datetime", - "description": "[Optional] The time at which this credential becomes invalid. This\ncredential will be ignored for new client authentication requests after\nthis timestamp; however, it will not be automatically deleted.", - "type": "string" + "description": "[Optional] The time at which this credential becomes invalid. This\ncredential will be ignored for new client authentication requests after\nthis timestamp; however, it will not be automatically deleted." }, "publicKey": { - "description": "A public key used to verify the signature of JSON Web Tokens (JWTs).\nWhen adding a new device credential, either via device creation or via\nmodifications, this public key credential may be required to be signed by\none of the registry level certificates. More specifically, if the\nregistry contains at least one certificate, any new device credential\nmust be signed by one of the registry certificates. As a result,\nwhen the registry contains certificates, only X.509 certificates are\naccepted as device credentials. However, if the registry does\nnot contain a certificate, self-signed certificates and public keys will\nbe accepted. New device credentials must be different from every\nregistry-level certificate.", - "$ref": "PublicKeyCredential" + "$ref": "PublicKeyCredential", + "description": "A public key used to verify the signature of JSON Web Tokens (JWTs).\nWhen adding a new device credential, either via device creation or via\nmodifications, this public key credential may be required to be signed by\none of the registry level certificates. More specifically, if the\nregistry contains at least one certificate, any new device credential\nmust be signed by one of the registry certificates. As a result,\nwhen the registry contains certificates, only X.509 certificates are\naccepted as device credentials. However, if the registry does\nnot contain a certificate, self-signed certificates and public keys will\nbe accepted. New device credentials must be different from every\nregistry-level certificate." } }, - "id": "DeviceCredential", - "description": "A server-stored device credential used for authentication.", - "type": "object" + "id": "DeviceCredential" }, "HttpConfig": { "description": "The configuration of the HTTP bridge for a device registry.", "type": "object", "properties": { "httpEnabledState": { - "description": "If enabled, allows devices to use DeviceService via the HTTP protocol.\nOtherwise, any requests to DeviceService will fail for this registry.", - "type": "string", "enumDescriptions": [ "No HTTP state specified. If not specified, DeviceService will be\nenabled by default.", "Enables DeviceService (HTTP) service for the registry.", @@ -316,7 +479,9 @@ "HTTP_STATE_UNSPECIFIED", "HTTP_ENABLED", "HTTP_DISABLED" - ] + ], + "description": "If enabled, allows devices to use DeviceService via the HTTP protocol.\nOtherwise, any requests to DeviceService will fail for this registry.", + "type": "string" } }, "id": "HttpConfig" @@ -325,6 +490,10 @@ "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", "type": "object", "properties": { + "service": { + "type": "string", + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services." + }, "auditLogConfigs": { "description": "The configuration for logging of each type of permission.\nNext ID: 4", "items": { @@ -337,15 +506,13 @@ "type": "string" }, "type": "array" - }, - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", - "type": "string" } }, "id": "AuditConfig" }, "DeviceConfig": { + "description": "The device configuration. Eventually delivered to devices.", + "type": "object", "properties": { "binaryData": { "format": "byte", @@ -368,17 +535,11 @@ "type": "string" } }, - "id": "DeviceConfig", - "description": "The device configuration. Eventually delivered to devices.", - "type": "object" + "id": "DeviceConfig" }, "MqttConfig": { - "description": "The configuration of MQTT for a device registry.", - "type": "object", "properties": { "mqttEnabledState": { - "description": "If enabled, allows connections using the MQTT protocol. Otherwise, MQTT\nconnections to this registry will fail.", - "type": "string", "enumDescriptions": [ "No MQTT state specified. If not specified, MQTT will be enabled by default.", "Enables a MQTT connection.", @@ -388,32 +549,36 @@ "MQTT_STATE_UNSPECIFIED", "MQTT_ENABLED", "MQTT_DISABLED" - ] + ], + "description": "If enabled, allows connections using the MQTT protocol. Otherwise, MQTT\nconnections to this registry will fail.", + "type": "string" } }, - "id": "MqttConfig" + "id": "MqttConfig", + "description": "The configuration of MQTT for a device registry.", + "type": "object" }, "Status": { "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "type": "array" - }, "code": { + "type": "integer", "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" + "description": "The status code, which should be an enum value of google.rpc.Code." }, "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" } }, "id": "Status", @@ -421,10 +586,12 @@ "type": "object" }, "Binding": { - "id": "Binding", - "description": "Associates `members` with a `role`.", "type": "object", "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." + }, "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", "items": { @@ -435,18 +602,16 @@ "role": { "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", "type": "string" - }, - "condition": { - "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL.", - "$ref": "Expr" } - } + }, + "id": "Binding", + "description": "Associates `members` with a `role`." }, "Expr": { "properties": { "description": { - "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", - "type": "string" + "type": "string", + "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI." }, "expression": { "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", @@ -466,6 +631,7 @@ "type": "object" }, "ModifyCloudToDeviceConfigRequest": { + "type": "object", "properties": { "versionToUpdate": { "format": "int64", @@ -473,191 +639,29 @@ "type": "string" }, "binaryData": { - "type": "string", "format": "byte", - "description": "The configuration data for the device." + "description": "The configuration data for the device.", + "type": "string" } }, "id": "ModifyCloudToDeviceConfigRequest", - "description": "Request for `ModifyCloudToDeviceConfig`.", - "type": "object" - }, - "ListDeviceStatesResponse": { - "properties": { - "deviceStates": { - "description": "The last few device states. States are listed in descending order of server\nupdate time, starting from the most recent one.", - "items": { - "$ref": "DeviceState" - }, - "type": "array" - } - }, - "id": "ListDeviceStatesResponse", - "description": "Response for `ListDeviceStates`.", - "type": "object" - }, - "GetIamPolicyRequest": { - "description": "Request message for `GetIamPolicy` method.", - "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" - }, - "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse" - }, - "Device": { - "description": "The device resource.", - "type": "object", - "properties": { - "lastHeartbeatTime": { - "type": "string", - "format": "google-datetime", - "description": "[Output only] The last time a heartbeat was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes. This field is only for devices connecting through MQTT." - }, - "blocked": { - "description": "If a device is blocked, connections or requests from this device will fail.\nCan be used to temporarily prevent the device from connecting if, for\nexample, the sensor is generating bad data and needs maintenance.", - "type": "boolean" - }, - "lastEventTime": { - "format": "google-datetime", - "description": "[Output only] The last time a telemetry event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", - "type": "string" - }, - "lastConfigSendTime": { - "type": "string", - "format": "google-datetime", - "description": "[Output only] The last time a cloud-to-device config version was sent to\nthe device." - }, - "lastErrorStatus": { - "$ref": "Status", - "description": "[Output only] The error message of the most recent error, such as a failure\nto publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this\nfield. If no errors have occurred, this field has an empty message\nand the status code 0 == OK. Otherwise, this field is expected to have a\nstatus code other than OK." - }, - "lastStateTime": { - "format": "google-datetime", - "description": "[Output only] The last time a state event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", - "type": "string" - }, - "config": { - "description": "The most recent device configuration, which is eventually sent from\nCloud IoT Core to the device. If not present on creation, the\nconfiguration will be initialized with an empty payload and version value\nof `1`. To update this field after creation, use the\n`DeviceManager.ModifyCloudToDeviceConfig` method.", - "$ref": "DeviceConfig" - }, - "state": { - "description": "[Output only] The state most recently received from the device. If no state\nhas been reported, this field is not present.", - "$ref": "DeviceState" - }, - "credentials": { - "description": "The credentials used to authenticate this device. To allow credential\nrotation without interruption, multiple device credentials can be bound to\nthis device. No more than 3 credentials can be bound to a single device at\na time. When new credentials are added to a device, they are verified\nagainst the registry credentials. For details, see the description of the\n`DeviceRegistry.credentials` field.", - "items": { - "$ref": "DeviceCredential" - }, - "type": "array" - }, - "name": { - "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", - "type": "string" - }, - "lastErrorTime": { - "type": "string", - "format": "google-datetime", - "description": "[Output only] The time the most recent error occurred, such as a failure to\npublish to Cloud Pub/Sub. This field is the timestamp of\n'last_error_status'." - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "The metadata key-value pairs assigned to the device. This metadata is not\ninterpreted or indexed by Cloud IoT Core. It can be used to add contextual\ninformation for the device.\n\nKeys must conform to the regular expression [a-zA-Z0-9-_]+ and be less than\n128 bytes in length.\n\nValues are free-form strings. Each value must be less than or equal to 32\nKB in size.\n\nThe total size of all keys and values must be less than 256 KB, and the\nmaximum number of key-value pairs is 500.", - "type": "object" - }, - "id": { - "type": "string", - "description": "The user-defined device identifier. The device ID must be unique\nwithin a device registry." - }, - "lastConfigAckTime": { - "format": "google-datetime", - "description": "[Output only] The last time a cloud-to-device config version acknowledgment\nwas received from the device. This field is only for configurations\nsent through MQTT.", - "type": "string" - }, - "numId": { - "format": "uint64", - "description": "[Output only] A server-defined unique numeric ID for the device. This is a\nmore compact way to identify devices, and it is globally unique.", - "type": "string" - } - }, - "id": "Device" - }, - "ListDeviceConfigVersionsResponse": { - "description": "Response for `ListDeviceConfigVersions`.", - "type": "object", - "properties": { - "deviceConfigs": { - "description": "The device configuration for the last few versions. Versions are listed\nin decreasing order, starting from the most recent one.", - "items": { - "$ref": "DeviceConfig" - }, - "type": "array" - } - }, - "id": "ListDeviceConfigVersionsResponse" - }, - "X509CertificateDetails": { - "id": "X509CertificateDetails", - "description": "Details of an X.509 certificate. For informational purposes only.", - "type": "object", - "properties": { - "issuer": { - "type": "string", - "description": "The entity that signed the certificate." - }, - "publicKeyType": { - "description": "The type of public key in the certificate.", - "type": "string" - }, - "signatureAlgorithm": { - "description": "The algorithm used to sign the certificate.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The time the certificate becomes valid.", - "type": "string" - }, - "expiryTime": { - "format": "google-datetime", - "description": "The time the certificate becomes invalid.", - "type": "string" - }, - "subject": { - "type": "string", - "description": "The entity the certificate and public key belong to." - } - } + "description": "Request for `ModifyCloudToDeviceConfig`." } }, "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "protocol": "rest", "canonicalName": "Cloud Iot", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloudiot": { - "description": "Register and manage devices in the Google Cloud IoT service" - }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloudiot": { + "description": "Register and manage devices in the Google Cloud IoT service" } } } @@ -666,6 +670,7 @@ "ownerDomain": "google.com", "name": "cloudiot", "batchPath": "batch", + "fullyEncodeReservedExpansion": true, "title": "Google Cloud IoT API", "ownerName": "Google", "resources": { @@ -675,32 +680,21 @@ "resources": { "registries": { "methods": { - "list": { + "create": { "response": { - "$ref": "ListDeviceRegistriesResponse" + "$ref": "DeviceRegistry" }, "parameterOrder": [ "parent" ], - "httpMethod": "GET", + "httpMethod": "POST", "parameters": { "parent": { - "description": "The project and cloud region path. For example,\n`projects/example-project/locations/us-central1`.", + "location": "path", + "description": "The project and cloud region where this device registry must be created.\nFor example, `projects/example-project/locations/us-central1`.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "The value returned by the last `ListDeviceRegistriesResponse`; indicates\nthat this is a continuation of a prior `ListDeviceRegistries` call, and\nthat the system should return the next page of data.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of registries to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", - "type": "integer", - "location": "query" + "pattern": "^projects/[^/]+/locations/[^/]+$" } }, "scopes": [ @@ -708,11 +702,16 @@ "https://www.googleapis.com/auth/cloudiot" ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries", - "id": "cloudiot.projects.locations.registries.list", + "id": "cloudiot.projects.locations.registries.create", "path": "v1/{+parent}/registries", - "description": "Lists device registries." + "description": "Creates a device registry that contains devices.", + "request": { + "$ref": "DeviceRegistry" + } }, "setIamPolicy": { + "path": "v1/{+resource}:setIamPolicy", + "id": "cloudiot.projects.locations.registries.setIamPolicy", "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", "request": { "$ref": "SetIamPolicyRequest" @@ -737,40 +736,15 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "id": "cloudiot.projects.locations.registries.setIamPolicy" - }, - "create": { - "parameters": { - "parent": { - "description": "The project and cloud region where this device registry must be created.\nFor example, `projects/example-project/locations/us-central1`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries", - "id": "cloudiot.projects.locations.registries.create", - "path": "v1/{+parent}/registries", - "description": "Creates a device registry that contains devices.", - "request": { - "$ref": "DeviceRegistry" - }, - "response": { - "$ref": "DeviceRegistry" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST" + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:setIamPolicy" }, "getIamPolicy": { + "id": "cloudiot.projects.locations.registries.getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", "response": { "$ref": "Policy" }, @@ -784,59 +758,20 @@ ], "parameters": { "resource": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path", "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:getIamPolicy", - "id": "cloudiot.projects.locations.registries.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." - }, - "get": { - "description": "Gets a device registry configuration.", - "response": { - "$ref": "DeviceRegistry" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "location": "path", - "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path" } }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:getIamPolicy" + }, + "patch": { "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", - "id": "cloudiot.projects.locations.registries.get", - "path": "v1/{+name}" - }, - "patch": { - "description": "Updates a device registry configuration.", - "request": { - "$ref": "DeviceRegistry" - }, - "response": { - "$ref": "DeviceRegistry" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", "parameters": { "name": { "location": "path", @@ -852,15 +787,54 @@ "type": "string" } }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", + "path": "v1/{+name}", + "id": "cloudiot.projects.locations.registries.patch", + "request": { + "$ref": "DeviceRegistry" + }, + "description": "Updates a device registry configuration.", + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "DeviceRegistry" + } + }, + "get": { + "response": { + "$ref": "DeviceRegistry" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" + } + }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", - "id": "cloudiot.projects.locations.registries.patch", - "path": "v1/{+name}" + "id": "cloudiot.projects.locations.registries.get", + "path": "v1/{+name}", + "description": "Gets a device registry configuration." }, "testIamPermissions": { + "id": "cloudiot.projects.locations.registries.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, "response": { "$ref": "TestIamPermissionsResponse" }, @@ -868,33 +842,11 @@ "resource" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], "parameters": { "resource": { - "location": "path", "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:testIamPermissions", - "id": "cloudiot.projects.locations.registries.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error." - }, - "delete": { - "parameters": { - "name": { - "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", - "type": "string", - "required": true, "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", "location": "path" } @@ -903,47 +855,100 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", - "path": "v1/{+name}", - "id": "cloudiot.projects.locations.registries.delete", - "description": "Deletes a device registry configuration.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:testIamPermissions" + }, + "delete": { "httpMethod": "DELETE", "parameterOrder": [ "name" ], "response": { "$ref": "Empty" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path", + "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", + "path": "v1/{+name}", + "id": "cloudiot.projects.locations.registries.delete", + "description": "Deletes a device registry configuration." + }, + "list": { + "response": { + "$ref": "ListDeviceRegistriesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "The value returned by the last `ListDeviceRegistriesResponse`; indicates\nthat this is a continuation of a prior `ListDeviceRegistries` call, and\nthat the system should return the next page of data.", + "type": "string" + }, + "pageSize": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "The maximum number of registries to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available." + }, + "parent": { + "location": "path", + "description": "The project and cloud region path. For example,\n`projects/example-project/locations/us-central1`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries", + "id": "cloudiot.projects.locations.registries.list", + "path": "v1/{+parent}/registries", + "description": "Lists device registries." } }, "resources": { "devices": { "methods": { "get": { - "response": { - "$ref": "Device" - }, + "description": "Gets details about a device.", + "httpMethod": "GET", "parameterOrder": [ "name" ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - } + "response": { + "$ref": "Device" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", + "type": "string", + "required": true + } + }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", - "id": "cloudiot.projects.locations.registries.devices.get", "path": "v1/{+name}", - "description": "Gets details about a device." + "id": "cloudiot.projects.locations.registries.devices.get" }, "patch": { "httpMethod": "PATCH", @@ -953,41 +958,42 @@ "response": { "$ref": "Device" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Only updates the `device` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.\nMutable top-level fields: `credentials`, `enabled_state`, and `metadata`", - "type": "string", - "location": "query" - }, "name": { "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", "type": "string", "required": true, "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", "location": "path" + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Only updates the `device` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.\nMutable top-level fields: `credentials`, `enabled_state`, and `metadata`", + "type": "string", + "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", "path": "v1/{+name}", "id": "cloudiot.projects.locations.registries.devices.patch", + "description": "Updates a device.", "request": { "$ref": "Device" - }, - "description": "Updates a device." + } }, "delete": { - "httpMethod": "DELETE", + "description": "Deletes a device.", "response": { "$ref": "Empty" }, "parameterOrder": [ "name" ], + "httpMethod": "DELETE", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" @@ -1002,25 +1008,18 @@ } }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", - "path": "v1/{+name}", "id": "cloudiot.projects.locations.registries.devices.delete", - "description": "Deletes a device." + "path": "v1/{+name}" }, "list": { - "id": "cloudiot.projects.locations.registries.devices.list", - "path": "v1/{+parent}/devices", "description": "List devices in a device registry.", - "response": { - "$ref": "ListDevicesResponse" - }, "httpMethod": "GET", "parameterOrder": [ "parent" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], + "response": { + "$ref": "ListDevicesResponse" + }, "parameters": { "pageToken": { "location": "query", @@ -1034,49 +1033,30 @@ "type": "string" }, "pageSize": { - "location": "query", "format": "int32", "description": "The maximum number of devices to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", - "type": "integer" + "type": "integer", + "location": "query" }, "deviceIds": { + "type": "string", "repeated": true, "location": "query", - "description": "A list of device string identifiers. If empty, it will ignore this field.\nFor example, `['device0', 'device12']`. This field cannot hold more than\n10,000 entries.", - "type": "string" + "description": "A list of device string identifiers. If empty, it will ignore this field.\nFor example, `['device0', 'device12']`. This field cannot hold more than\n10,000 entries." }, "parent": { - "location": "path", "description": "The device registry path. Required. For example,\n`projects/my-project/locations/us-central1/registries/my-registry`.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" - }, - "deviceNumIds": { - "type": "string", - "repeated": true, - "location": "query", - "format": "uint64", - "description": "A list of device numerical ids. If empty, it will ignore this field. This\nfield cannot hold more than 10,000 entries." - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices" - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Device" - }, - "parameters": { - "parent": { - "description": "The name of the device registry where this device should be created.\nFor example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", - "type": "string", - "required": true, "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", "location": "path" + }, + "deviceNumIds": { + "repeated": true, + "location": "query", + "format": "uint64", + "description": "A list of device numerical ids. If empty, it will ignore this field. This\nfield cannot hold more than 10,000 entries.", + "type": "string" } }, "scopes": [ @@ -1085,112 +1065,137 @@ ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", "path": "v1/{+parent}/devices", + "id": "cloudiot.projects.locations.registries.devices.list" + }, + "create": { + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", "id": "cloudiot.projects.locations.registries.devices.create", - "description": "Creates a device in a device registry.", + "path": "v1/{+parent}/devices", "request": { "$ref": "Device" + }, + "description": "Creates a device in a device registry.", + "response": { + "$ref": "Device" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path", + "description": "The name of the device registry where this device should be created.\nFor example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true + } } }, "modifyCloudToDeviceConfig": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:modifyCloudToDeviceConfig", - "path": "v1/{+name}:modifyCloudToDeviceConfig", - "id": "cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig", - "request": { - "$ref": "ModifyCloudToDeviceConfigRequest" - }, - "description": "Modifies the configuration for the device, which is eventually sent from\nthe Cloud IoT Core servers. Returns the modified configuration version and\nits metadata.", - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], "response": { "$ref": "DeviceConfig" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], "parameters": { "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path", "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" + "required": true } - } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:modifyCloudToDeviceConfig", + "id": "cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig", + "path": "v1/{+name}:modifyCloudToDeviceConfig", + "request": { + "$ref": "ModifyCloudToDeviceConfigRequest" + }, + "description": "Modifies the configuration for the device, which is eventually sent from\nthe Cloud IoT Core servers. Returns the modified configuration version and\nits metadata." } }, "resources": { "states": { "methods": { "list": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/states", - "id": "cloudiot.projects.locations.registries.devices.states.list", - "path": "v1/{+name}/states", "description": "Lists the last few versions of the device state in descending order (i.e.:\nnewest first).", - "response": { - "$ref": "ListDeviceStatesResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "name" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], + "response": { + "$ref": "ListDeviceStatesResponse" + }, "parameters": { + "numStates": { + "location": "query", + "format": "int32", + "description": "The number of states to list. States are listed in descending order of\nupdate time. The maximum number of states retained is 10. If this\nvalue is zero, it will return all the states available.", + "type": "integer" + }, "name": { "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", "location": "path", "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", "type": "string", "required": true - }, - "numStates": { - "location": "query", - "format": "int32", - "description": "The number of states to list. States are listed in descending order of\nupdate time. The maximum number of states retained is 10. If this\nvalue is zero, it will return all the states available.", - "type": "integer" - } - } - } - } - }, - "configVersions": { - "methods": { - "list": { - "description": "Lists the last few versions of the device configuration in descending\norder (i.e.: newest first).", - "response": { - "$ref": "ListDeviceConfigVersionsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path", - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`." - }, - "numVersions": { - "format": "int32", - "description": "The number of versions to list. Versions are listed in decreasing order of\nthe version number. The maximum number of versions retained is 10. If this\nvalue is zero, it will return all the versions available.", - "type": "integer", - "location": "query" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/configVersions", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/states", + "path": "v1/{+name}/states", + "id": "cloudiot.projects.locations.registries.devices.states.list" + } + } + }, + "configVersions": { + "methods": { + "list": { "id": "cloudiot.projects.locations.registries.devices.configVersions.list", - "path": "v1/{+name}/configVersions" + "path": "v1/{+name}/configVersions", + "description": "Lists the last few versions of the device configuration in descending\norder (i.e.: newest first).", + "response": { + "$ref": "ListDeviceConfigVersionsResponse" + }, + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$" + }, + "numVersions": { + "location": "query", + "format": "int32", + "description": "The number of versions to list. Versions are listed in decreasing order of\nthe version number. The maximum number of versions retained is 10. If this\nvalue is zero, it will return all the versions available.", + "type": "integer" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/configVersions" } } } @@ -1204,61 +1209,56 @@ } }, "parameters": { - "access_token": { - "location": "query", - "description": "OAuth access token.", - "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.", "type": "string", "location": "query" }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, "quotaUser": { "location": "query", "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.", "type": "string" }, "pp": { - "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { - "default": "true", - "type": "boolean", "location": "query", - "description": "Returns response with indentations and line breaks." + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" }, "fields": { + "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" + "type": "string" }, "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "callback": { "location": "query", - "description": "JSONP", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string" }, "$.xgafv": { @@ -1274,6 +1274,11 @@ "description": "V1 error format.", "type": "string" }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "alt": { "description": "Data format for response.", "default": "json", @@ -1296,9 +1301,5 @@ "servicePath": "", "description": "Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform.\n", "kind": "discovery#restDescription", - "basePath": "", - "revision": "20170922", - "documentationLink": "https://cloud.google.com/iot", - "id": "cloudiot:v1", - "discoveryVersion": "v1" + "basePath": "" } diff --git a/vendor/google.golang.org/api/cloudiot/v1beta1/cloudiot-api.json b/vendor/google.golang.org/api/cloudiot/v1beta1/cloudiot-api.json index 9d5e04c86..3265c98fc 100644 --- a/vendor/google.golang.org/api/cloudiot/v1beta1/cloudiot-api.json +++ b/vendor/google.golang.org/api/cloudiot/v1beta1/cloudiot-api.json @@ -1,150 +1,11 @@ { - "basePath": "", "id": "cloudiot:v1beta1", "documentationLink": "https://cloud.google.com/iot", - "revision": "20170922", + "revision": "20171011", "discoveryVersion": "v1", "version_module": true, "schemas": { - "NotificationConfig": { - "id": "NotificationConfig", - "description": "Configuration to forward messages such as telemetry events.", - "type": "object", - "properties": { - "pubsubTopicName": { - "description": "A Cloud Pub/Sub topic name. For example,\n`projects/myProject/topics/deviceEvents`.", - "type": "string" - } - } - }, - "HttpPublishEventRequest": { - "description": "Request for `PublishEvent`.", - "type": "object", - "properties": { - "subFolder": { - "description": "Optional subfolder for the telemetry event. This can be used to classify\ntypes of events, and is included in the Pub/Sub message attributes.", - "type": "string" - }, - "binaryData": { - "format": "byte", - "description": "Payload data in binary format.", - "type": "string" - } - }, - "id": "HttpPublishEventRequest" - }, - "Device": { - "description": "The device resource.", - "type": "object", - "properties": { - "enabledState": { - "description": "If a device is disabled, communication from it will be blocked. Can be used\nto temporarily prevent the device from connecting if, for example, the\nsensor is generating bad data and needs maintenance.", - "type": "string", - "enumDescriptions": [ - "No enabled state specified. If not specified, defaults to enabled\n(communication to Cloud IoT Core allowed).", - "Enables a device. By default, devices are enabled, allowing communication\nfrom the device to Cloud IoT Core. When a device is disabled, it is blocked\nfrom communicating with Cloud IoT Core.", - "Disables a device, blocking all communication from it to Cloud IoT Core." - ], - "enum": [ - "UNSPECIFIED_ENABLED_STATE", - "DEVICE_ENABLED", - "DEVICE_DISABLED" - ] - }, - "id": { - "description": "The user-defined device identifier. The device ID must be unique\nwithin a device registry.", - "type": "string" - }, - "lastHeartbeatTime": { - "format": "google-datetime", - "description": "[Output only] The last time a heartbeat was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", - "type": "string" - }, - "lastEventTime": { - "format": "google-datetime", - "description": "[Output only] The last time an event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", - "type": "string" - }, - "lastErrorStatus": { - "description": "[Output only] The error message of the last error, e.g., failed to publish\nto Cloud Pub/Sub. 'last_error_time' is the timestamp of this field. If no\nerrors are present, this will have an empty message (whose status code is\n0 == OK), otherwise this field is expected to have a not-OK status code.", - "$ref": "Status" - }, - "lastConfigAckTime": { - "format": "google-datetime", - "description": "[Output only] The last time a cloud-to-device config version acknowledgment\nwas received from the device.", - "type": "string" - }, - "numId": { - "format": "uint64", - "description": "[Output only] A server-defined unique numeric ID for the device. This is a\nmore compact way to identify devices, and it is globally unique.", - "type": "string" - }, - "config": { - "$ref": "DeviceConfig", - "description": "The most recent device configuration, which is eventually sent from the\nCloud IoT Core service to the device. If not present on creation, the\nconfiguration will be initialized with an empty payload and version value\nof `1`. To update this field after creation, use the\n`DeviceManager.ModifyCloudToDeviceConfig` method." - }, - "name": { - "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", - "type": "string" - }, - "credentials": { - "description": "The credentials used to authenticate this device. To allow credential\nrotation without interruption, multiple device credentials can be bound to\nthis device. No more than 3 credentials can be bound to a single device at\na time.", - "items": { - "$ref": "DeviceCredential" - }, - "type": "array" - }, - "lastErrorTime": { - "format": "google-datetime", - "description": "[Output only] The last time an error happened, e.g., failed to publish to\nCloud Pub/Sub. This field is the timestamp of 'last_error_status'.", - "type": "string" - } - }, - "id": "Device" - }, - "HttpSetDeviceStateRequest": { - "description": "Request for `SetDeviceState`.", - "type": "object", - "properties": { - "state": { - "$ref": "HttpDeviceState", - "description": "The device state." - } - }, - "id": "HttpSetDeviceStateRequest" - }, - "ListDeviceConfigVersionsResponse": { - "id": "ListDeviceConfigVersionsResponse", - "description": "Response for `ListDeviceConfigVersions`.", - "type": "object", - "properties": { - "deviceConfigs": { - "description": "The device configuration for the last few versions. Versions are listed\nin decreasing order, starting from the most recent one.", - "items": { - "$ref": "DeviceConfig" - }, - "type": "array" - } - } - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest" - }, "HttpDeviceState": { - "id": "HttpDeviceState", "description": "The device state reported to Cloud IoT Core.", "type": "object", "properties": { @@ -153,28 +14,28 @@ "description": "Data in binary format.", "type": "string" } - } + }, + "id": "HttpDeviceState" }, "Empty": { + "id": "Empty", "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", - "properties": {}, - "id": "Empty" + "properties": {} }, "DeviceConfigData": { - "id": "DeviceConfigData", - "description": "The data for a device configuration. Only binary data is currently supported.", - "type": "object", "properties": { "binaryData": { "format": "byte", "description": "The configuration sent to the device, as bytes.", "type": "string" } - } + }, + "id": "DeviceConfigData", + "description": "The data for a device configuration. Only binary data is currently supported.", + "type": "object" }, "PublicKeyCredential": { - "description": "A public key format and data.", "type": "object", "properties": { "key": { @@ -196,10 +57,10 @@ "type": "string" } }, - "id": "PublicKeyCredential" + "id": "PublicKeyCredential", + "description": "A public key format and data." }, "AuditLogConfig": { - "id": "AuditLogConfig", "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", "type": "object", "properties": { @@ -226,10 +87,10 @@ "DATA_READ" ] } - } + }, + "id": "AuditLogConfig" }, "TestIamPermissionsRequest": { - "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { @@ -240,23 +101,19 @@ }, "type": "array" } - } + }, + "id": "TestIamPermissionsRequest" }, "Policy": { "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - }, "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", "items": { "$ref": "AuditConfig" }, - "type": "array" + "type": "array", + "description": "Specifies cloud audit logging configuration for this policy." }, "bindings": { "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", @@ -272,30 +129,34 @@ "format": "byte", "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", "type": "string" + }, + "version": { + "format": "int32", + "description": "Version of the `Policy`. The default version is 0.", + "type": "integer" } }, "id": "Policy" }, "ListDeviceRegistriesResponse": { - "id": "ListDeviceRegistriesResponse", "description": "Response for `ListDeviceRegistries`.", "type": "object", "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more registries that match the\nrequest; this value should be passed in a new\n`ListDeviceRegistriesRequest`.", + "type": "string" + }, "deviceRegistries": { "description": "The registries that matched the query.", "items": { "$ref": "DeviceRegistry" }, "type": "array" - }, - "nextPageToken": { - "description": "If not empty, indicates that there may be more registries that match the\nrequest; this value should be passed in a new\n`ListDeviceRegistriesRequest`.", - "type": "string" } - } + }, + "id": "ListDeviceRegistriesResponse" }, "DeviceRegistry": { - "id": "DeviceRegistry", "description": "A container for a group of devices.", "type": "object", "properties": { @@ -308,46 +169,55 @@ "$ref": "MqttConfig" }, "name": { - "description": "The resource path name. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", - "type": "string" + "type": "string", + "description": "The resource path name. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`." }, "eventNotificationConfig": { "description": "Configuration to notify events received from the device.", "$ref": "NotificationConfig" } - } + }, + "id": "DeviceRegistry" }, "ListDevicesResponse": { - "id": "ListDevicesResponse", "description": "Response for `ListDevices`.", "type": "object", "properties": { "devices": { - "description": "The devices that match the request.", "items": { "$ref": "Device" }, - "type": "array" + "type": "array", + "description": "The devices that match the request." }, "nextPageToken": { "description": "If not empty, indicates that there may be more devices that match the\nrequest; this value should be passed in a new `ListDevicesRequest`.", "type": "string" } - } + }, + "id": "ListDevicesResponse" }, - "AuditConfig": { - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "DeviceCredential": { + "description": "A server-stored device credential used for authentication.", "type": "object", "properties": { - "exemptedMembers": { - "items": { - "type": "string" - }, - "type": "array" + "publicKey": { + "description": "A public key used to verify the signature of JSON Web Tokens (JWTs).", + "$ref": "PublicKeyCredential" }, - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "expirationTime": { + "format": "google-datetime", + "description": "[Optional] The time at which this credential becomes invalid. This\ncredential will be ignored for new client authentication requests after\nthis timestamp; however, it will not be automatically deleted.", "type": "string" + } + }, + "id": "DeviceCredential" + }, + "AuditConfig": { + "properties": { + "service": { + "type": "string", + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services." }, "auditLogConfigs": { "description": "The configuration for logging of each type of permission.\nNext ID: 4", @@ -355,31 +225,26 @@ "$ref": "AuditLogConfig" }, "type": "array" - } - }, - "id": "AuditConfig" - }, - "DeviceCredential": { - "description": "A server-stored device credential used for authentication.", - "type": "object", - "properties": { - "expirationTime": { - "format": "google-datetime", - "description": "[Optional] The time at which this credential becomes invalid. This\ncredential will be ignored for new client authentication requests after\nthis timestamp; however, it will not be automatically deleted.", - "type": "string" }, - "publicKey": { - "$ref": "PublicKeyCredential", - "description": "A public key used to verify the signature of JSON Web Tokens (JWTs)." + "exemptedMembers": { + "items": { + "type": "string" + }, + "type": "array" } }, - "id": "DeviceCredential" + "id": "AuditConfig", + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object" }, "DeviceConfig": { - "id": "DeviceConfig", "description": "The device configuration and its metadata. Eventually delivered to devices.", "type": "object", "properties": { + "data": { + "description": "The device configuration data.", + "$ref": "DeviceConfigData" + }, "deviceAckTime": { "format": "google-datetime", "description": "[Output only] The time when the Cloud IoT Core server received the\nacknowledgment from the device, indicating that the device has received\nthis configuration version. If this field is not present, the device has\nnot yet acknowledged that it received this version. Note that when sending\nthe config to the device, there may have been many config versions on the\nCloud IoT Core service while the device was disconnected; and on\nconnection, only the latest version is sent to the device. Some of the\nversions may never be sent to the device, and therefore are never\nacknowledged. This timestamp is set by the Cloud IoT Core service.", @@ -394,12 +259,9 @@ "format": "int64", "description": "[Output only] The version of this update. The version number is assigned by\nthe server, and is always greater than zero after device creation. The\nversion must be zero on the `CreateDevice` request if a `config` is\nspecified; the response of `CreateDevice` will always have a value of one.", "type": "string" - }, - "data": { - "$ref": "DeviceConfigData", - "description": "The device configuration data." } - } + }, + "id": "DeviceConfig" }, "MqttConfig": { "description": "The configuration of MQTT for a device registry.", @@ -426,32 +288,30 @@ "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" }, "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "items": { + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - }, - "type": "object" + } }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" + "type": "array", + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." } }, "id": "Status" }, "Binding": { - "id": "Binding", - "description": "Associates `members` with a `role`.", "type": "object", "properties": { "condition": { @@ -469,12 +329,11 @@ "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", "type": "string" } - } + }, + "id": "Binding", + "description": "Associates `members` with a `role`." }, "Expr": { - "id": "Expr", - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", - "type": "object", "properties": { "description": { "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", @@ -489,10 +348,13 @@ "type": "string" }, "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", - "type": "string" + "type": "string", + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression." } - } + }, + "id": "Expr", + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", + "type": "object" }, "HttpPublishEventResponse": { "description": "Response for `PublishEvent`.", @@ -504,23 +366,23 @@ "description": "Request for `ModifyCloudToDeviceConfig`.", "type": "object", "properties": { + "data": { + "$ref": "DeviceConfigData", + "description": "The configuration data for the device." + }, "versionToUpdate": { "format": "int64", "description": "The version number to update. If this value is zero, it will not check the\nversion number of the server and will always update the current version;\notherwise, this update will fail if the version number found on the server\ndoes not match this version number. This is used to support multiple\nsimultaneous updates without losing data.", "type": "string" - }, - "data": { - "$ref": "DeviceConfigData", - "description": "The configuration data for the device." } }, "id": "ModifyCloudToDeviceConfigRequest" }, "GetIamPolicyRequest": { - "id": "GetIamPolicyRequest", "description": "Request message for `GetIamPolicy` method.", "type": "object", - "properties": {} + "properties": {}, + "id": "GetIamPolicyRequest" }, "TestIamPermissionsResponse": { "id": "TestIamPermissionsResponse", @@ -537,8 +399,6 @@ } }, "HttpDeviceConfig": { - "description": "The device configuration obtained from Cloud IoT Core.", - "type": "object", "properties": { "version": { "format": "int64", @@ -551,23 +411,162 @@ "type": "string" } }, - "id": "HttpDeviceConfig" + "id": "HttpDeviceConfig", + "description": "The device configuration obtained from Cloud IoT Core.", + "type": "object" + }, + "NotificationConfig": { + "type": "object", + "properties": { + "pubsubTopicName": { + "description": "A Cloud Pub/Sub topic name. For example,\n`projects/myProject/topics/deviceEvents`.", + "type": "string" + } + }, + "id": "NotificationConfig", + "description": "Configuration to forward messages such as telemetry events." + }, + "HttpPublishEventRequest": { + "description": "Request for `PublishEvent`.", + "type": "object", + "properties": { + "subFolder": { + "description": "Optional subfolder for the telemetry event. This can be used to classify\ntypes of events, and is included in the Pub/Sub message attributes.", + "type": "string" + }, + "binaryData": { + "format": "byte", + "description": "Payload data in binary format.", + "type": "string" + } + }, + "id": "HttpPublishEventRequest" + }, + "Device": { + "properties": { + "numId": { + "format": "uint64", + "description": "[Output only] A server-defined unique numeric ID for the device. This is a\nmore compact way to identify devices, and it is globally unique.", + "type": "string" + }, + "config": { + "$ref": "DeviceConfig", + "description": "The most recent device configuration, which is eventually sent from the\nCloud IoT Core service to the device. If not present on creation, the\nconfiguration will be initialized with an empty payload and version value\nof `1`. To update this field after creation, use the\n`DeviceManager.ModifyCloudToDeviceConfig` method." + }, + "name": { + "type": "string", + "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID." + }, + "credentials": { + "description": "The credentials used to authenticate this device. To allow credential\nrotation without interruption, multiple device credentials can be bound to\nthis device. No more than 3 credentials can be bound to a single device at\na time.", + "items": { + "$ref": "DeviceCredential" + }, + "type": "array" + }, + "lastErrorTime": { + "format": "google-datetime", + "description": "[Output only] The last time an error happened, e.g., failed to publish to\nCloud Pub/Sub. This field is the timestamp of 'last_error_status'.", + "type": "string" + }, + "id": { + "description": "The user-defined device identifier. The device ID must be unique\nwithin a device registry.", + "type": "string" + }, + "enabledState": { + "description": "If a device is disabled, communication from it will be blocked. Can be used\nto temporarily prevent the device from connecting if, for example, the\nsensor is generating bad data and needs maintenance.", + "type": "string", + "enumDescriptions": [ + "No enabled state specified. If not specified, defaults to enabled\n(communication to Cloud IoT Core allowed).", + "Enables a device. By default, devices are enabled, allowing communication\nfrom the device to Cloud IoT Core. When a device is disabled, it is blocked\nfrom communicating with Cloud IoT Core.", + "Disables a device, blocking all communication from it to Cloud IoT Core." + ], + "enum": [ + "UNSPECIFIED_ENABLED_STATE", + "DEVICE_ENABLED", + "DEVICE_DISABLED" + ] + }, + "lastHeartbeatTime": { + "format": "google-datetime", + "description": "[Output only] The last time a heartbeat was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", + "type": "string" + }, + "lastEventTime": { + "format": "google-datetime", + "description": "[Output only] The last time an event was received. Timestamps are\nperiodically collected and written to storage; they may be stale by a few\nminutes.", + "type": "string" + }, + "lastConfigAckTime": { + "format": "google-datetime", + "description": "[Output only] The last time a cloud-to-device config version acknowledgment\nwas received from the device.", + "type": "string" + }, + "lastErrorStatus": { + "description": "[Output only] The error message of the last error, e.g., failed to publish\nto Cloud Pub/Sub. 'last_error_time' is the timestamp of this field. If no\nerrors are present, this will have an empty message (whose status code is\n0 == OK), otherwise this field is expected to have a not-OK status code.", + "$ref": "Status" + } + }, + "id": "Device", + "description": "The device resource.", + "type": "object" + }, + "HttpSetDeviceStateRequest": { + "description": "Request for `SetDeviceState`.", + "type": "object", + "properties": { + "state": { + "$ref": "HttpDeviceState", + "description": "The device state." + } + }, + "id": "HttpSetDeviceStateRequest" + }, + "ListDeviceConfigVersionsResponse": { + "properties": { + "deviceConfigs": { + "description": "The device configuration for the last few versions. Versions are listed\nin decreasing order, starting from the most recent one.", + "items": { + "$ref": "DeviceConfig" + }, + "type": "array" + } + }, + "id": "ListDeviceConfigVersionsResponse", + "description": "Response for `ListDeviceConfigVersions`.", + "type": "object" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "updateMask": { + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + } + }, + "id": "SetIamPolicyRequest" } }, + "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, - "protocol": "rest", "canonicalName": "Cloud Iot", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloudiot": { - "description": "Register and manage devices in the Google Cloud IoT service" - }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloudiot": { + "description": "Register and manage devices in the Google Cloud IoT service" } } } @@ -576,6 +575,7 @@ "ownerDomain": "google.com", "name": "cloudiot", "batchPath": "batch", + "fullyEncodeReservedExpansion": true, "title": "Google Cloud IoT API", "ownerName": "Google", "resources": { @@ -584,17 +584,337 @@ "locations": { "resources": { "registries": { + "resources": { + "devices": { + "methods": { + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Device" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "name": { + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", + "path": "v1beta1/{+name}", + "id": "cloudiot.projects.locations.registries.devices.get", + "description": "Gets details about a device." + }, + "patch": { + "path": "v1beta1/{+name}", + "id": "cloudiot.projects.locations.registries.devices.patch", + "description": "Updates a device.", + "request": { + "$ref": "Device" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Device" + }, + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Only updates the `device` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.\nMutable top-level fields: `credentials` and `enabled_state`", + "type": "string" + }, + "name": { + "location": "path", + "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}" + }, + "setState": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:setState", + "id": "cloudiot.projects.locations.registries.devices.setState", + "path": "v1beta1/{+name}:setState", + "description": "Sets the state of a device.", + "request": { + "$ref": "HttpSetDeviceStateRequest" + } + }, + "getConfig": { + "id": "cloudiot.projects.locations.registries.devices.getConfig", + "path": "v1beta1/{+name}/config", + "description": "Gets the configuration of a device.", + "response": { + "$ref": "HttpDeviceConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", + "type": "string", + "required": true + }, + "localVersion": { + "location": "query", + "format": "int64", + "description": "If zero, returns the current device configuration from Cloud IoT Core.\nIf nonzero, specifies the local version of the configuration on the device.\nThe server returns config data only if a higher (newer) version is\navailable from Cloud IoT Core.\nIf this value is higher than the latest version available in Cloud IoT\nCore, returns an `OUT_OF_RANGE` error.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/config" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "name": { + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", + "path": "v1beta1/{+name}", + "id": "cloudiot.projects.locations.registries.devices.delete", + "description": "Deletes a device." + }, + "list": { + "response": { + "$ref": "ListDevicesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "deviceNumIds": { + "repeated": true, + "location": "query", + "format": "uint64", + "description": "A list of device numerical ids. If empty, it will ignore this field. This\nfield cannot hold more than 10,000 entries.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "The value returned by the last `ListDevicesResponse`; indicates\nthat this is a continuation of a prior `ListDevices` call, and\nthat the system should return the next page of data.", + "type": "string" + }, + "fieldMask": { + "location": "query", + "format": "google-fieldmask", + "description": "The fields of the `Device` resource to be returned in the response. The\nfields `id`, and `num_id` are always returned by default, along with any\nother fields specified.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of devices to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", + "type": "integer" + }, + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path", + "description": "The device registry path. Required. For example,\n`projects/my-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true + }, + "deviceIds": { + "repeated": true, + "location": "query", + "description": "A list of device string identifiers. If empty, it will ignore this field.\nFor example, `['device0', 'device12']`. This field cannot hold more than\n10,000 entries.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", + "id": "cloudiot.projects.locations.registries.devices.list", + "path": "v1beta1/{+parent}/devices", + "description": "List devices in a device registry." + }, + "create": { + "response": { + "$ref": "Device" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "parent": { + "description": "The name of the device registry where this device should be created.\nFor example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", + "id": "cloudiot.projects.locations.registries.devices.create", + "path": "v1beta1/{+parent}/devices", + "request": { + "$ref": "Device" + }, + "description": "Creates a device in a device registry." + }, + "modifyCloudToDeviceConfig": { + "description": "Modifies the configuration for the device, which is eventually sent from\nthe Cloud IoT servers. Returns the modified configuration version and its\nmeta-data.", + "request": { + "$ref": "ModifyCloudToDeviceConfigRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "DeviceConfig" + }, + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:modifyCloudToDeviceConfig", + "path": "v1beta1/{+name}:modifyCloudToDeviceConfig", + "id": "cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig" + }, + "publishEvent": { + "response": { + "$ref": "HttpPublishEventResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:publishEvent", + "id": "cloudiot.projects.locations.registries.devices.publishEvent", + "path": "v1beta1/{+name}:publishEvent", + "description": "Publishes a telemetry event for a device.", + "request": { + "$ref": "HttpPublishEventRequest" + } + } + }, + "resources": { + "configVersions": { + "methods": { + "list": { + "response": { + "$ref": "ListDeviceConfigVersionsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", + "location": "path" + }, + "numVersions": { + "location": "query", + "format": "int32", + "description": "The number of versions to list. Versions are listed in decreasing order of\nthe version number. The maximum number of versions retained is 10. If this\nvalue is zero, it will return all the versions available.", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/configVersions", + "id": "cloudiot.projects.locations.registries.devices.configVersions.list", + "path": "v1beta1/{+name}/configVersions", + "description": "Lists the last few versions of the device configuration in descending\norder (i.e.: newest first)." + } + } + } + } + } + }, "methods": { - "delete": { - "path": "v1beta1/{+name}", - "id": "cloudiot.projects.locations.registries.delete", - "description": "Deletes a device registry configuration.", - "httpMethod": "DELETE", + "get": { + "httpMethod": "GET", "parameterOrder": [ "name" ], "response": { - "$ref": "Empty" + "$ref": "DeviceRegistry" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -602,153 +922,30 @@ ], "parameters": { "name": { + "location": "path", "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" } }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}" - }, - "list": { - "path": "v1beta1/{+parent}/registries", - "id": "cloudiot.projects.locations.registries.list", - "description": "Lists device registries.", - "httpMethod": "GET", - "response": { - "$ref": "ListDeviceRegistriesResponse" - }, - "parameterOrder": [ - "parent" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "pageToken": { - "description": "The value returned by the last `ListDeviceRegistriesResponse`; indicates\nthat this is a continuation of a prior `ListDeviceRegistries` call, and\nthat the system should return the next page of data.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of registries to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", - "type": "integer", - "location": "query" - }, - "parent": { - "description": "The project and cloud region path. For example,\n`projects/example-project/locations/us-central1`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries" - }, - "create": { - "parameters": { - "parent": { - "description": "The project and cloud region where this device registry must be created.\nFor example, `projects/example-project/locations/us-central1`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries", - "path": "v1beta1/{+parent}/registries", - "id": "cloudiot.projects.locations.registries.create", - "description": "Creates a device registry that contains devices.", - "request": { - "$ref": "DeviceRegistry" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "DeviceRegistry" - } - }, - "setIamPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:setIamPolicy", - "path": "v1beta1/{+resource}:setIamPolicy", - "id": "cloudiot.projects.locations.registries.setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - } - }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:getIamPolicy", - "path": "v1beta1/{+resource}:getIamPolicy", - "id": "cloudiot.projects.locations.registries.getIamPolicy" + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", + "path": "v1beta1/{+name}", + "id": "cloudiot.projects.locations.registries.get", + "description": "Gets a device registry configuration." }, "patch": { - "path": "v1beta1/{+name}", - "id": "cloudiot.projects.locations.registries.patch", "request": { "$ref": "DeviceRegistry" }, "description": "Updates a device registry configuration.", - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], "response": { "$ref": "DeviceRegistry" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudiot" @@ -762,41 +959,21 @@ "required": true }, "updateMask": { - "location": "query", "format": "google-fieldmask", "description": "Only updates the `device_registry` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.\nMutable top-level fields: `event_notification_config` and `mqtt_config`", - "type": "string" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}" - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "DeviceRegistry" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "name": { - "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path" + "location": "query" } }, "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", - "path": "v1beta1/{+name}", - "id": "cloudiot.projects.locations.registries.get", - "description": "Gets a device registry configuration." + "id": "cloudiot.projects.locations.registries.patch", + "path": "v1beta1/{+name}" }, "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, "httpMethod": "POST", "parameterOrder": [ "resource" @@ -819,334 +996,157 @@ ], "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", - "id": "cloudiot.projects.locations.registries.testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.", - "request": { - "$ref": "TestIamPermissionsRequest" - } - } - }, - "resources": { - "devices": { - "methods": { - "delete": { - "id": "cloudiot.projects.locations.registries.devices.delete", - "path": "v1beta1/{+name}", - "description": "Deletes a device.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}" - }, - "list": { - "parameters": { - "pageToken": { - "location": "query", - "description": "The value returned by the last `ListDevicesResponse`; indicates\nthat this is a continuation of a prior `ListDevices` call, and\nthat the system should return the next page of data.", - "type": "string" - }, - "fieldMask": { - "format": "google-fieldmask", - "description": "The fields of the `Device` resource to be returned in the response. The\nfields `id`, and `num_id` are always returned by default, along with any\nother fields specified.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of devices to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", - "type": "integer" - }, - "parent": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path", - "description": "The device registry path. Required. For example,\n`projects/my-project/locations/us-central1/registries/my-registry`.", - "type": "string", - "required": true - }, - "deviceIds": { - "repeated": true, - "location": "query", - "description": "A list of device string identifiers. If empty, it will ignore this field.\nFor example, `['device0', 'device12']`. This field cannot hold more than\n10,000 entries.", - "type": "string" - }, - "deviceNumIds": { - "repeated": true, - "location": "query", - "format": "uint64", - "description": "A list of device numerical ids. If empty, it will ignore this field. This\nfield cannot hold more than 10,000 entries.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", - "path": "v1beta1/{+parent}/devices", - "id": "cloudiot.projects.locations.registries.devices.list", - "description": "List devices in a device registry.", - "httpMethod": "GET", - "response": { - "$ref": "ListDevicesResponse" - }, - "parameterOrder": [ - "parent" - ] - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Device" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "parent": { - "description": "The name of the device registry where this device should be created.\nFor example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices", - "path": "v1beta1/{+parent}/devices", - "id": "cloudiot.projects.locations.registries.devices.create", - "request": { - "$ref": "Device" - }, - "description": "Creates a device in a device registry." - }, - "modifyCloudToDeviceConfig": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "DeviceConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:modifyCloudToDeviceConfig", - "path": "v1beta1/{+name}:modifyCloudToDeviceConfig", - "id": "cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig", - "request": { - "$ref": "ModifyCloudToDeviceConfigRequest" - }, - "description": "Modifies the configuration for the device, which is eventually sent from\nthe Cloud IoT servers. Returns the modified configuration version and its\nmeta-data." - }, - "publishEvent": { - "response": { - "$ref": "HttpPublishEventResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path", - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:publishEvent", - "id": "cloudiot.projects.locations.registries.devices.publishEvent", - "path": "v1beta1/{+name}:publishEvent", - "request": { - "$ref": "HttpPublishEventRequest" - }, - "description": "Publishes a telemetry event for a device." - }, - "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}", - "path": "v1beta1/{+name}", - "id": "cloudiot.projects.locations.registries.devices.get", - "description": "Gets details about a device.", - "httpMethod": "GET", - "response": { - "$ref": "Device" - }, - "parameterOrder": [ - "name" - ] - }, - "patch": { - "path": "v1beta1/{+name}", - "id": "cloudiot.projects.locations.registries.devices.patch", - "description": "Updates a device.", - "request": { - "$ref": "Device" - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Device" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path", - "description": "The resource path name. For example,\n`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or\n`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.\nWhen `name` is populated as a response from the service, it always ends\nin the device numeric ID.", - "type": "string", - "required": true - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Only updates the `device` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.\nMutable top-level fields: `credentials` and `enabled_state`", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}" - }, - "setState": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:setState", - "id": "cloudiot.projects.locations.registries.devices.setState", - "path": "v1beta1/{+name}:setState", - "description": "Sets the state of a device.", - "request": { - "$ref": "HttpSetDeviceStateRequest" - } - }, - "getConfig": { - "path": "v1beta1/{+name}/config", - "id": "cloudiot.projects.locations.registries.devices.getConfig", - "description": "Gets the configuration of a device.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "HttpDeviceConfig" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path", - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0`.", - "type": "string", - "required": true - }, - "localVersion": { - "format": "int64", - "description": "If zero, returns the current device configuration from Cloud IoT Core.\nIf nonzero, specifies the local version of the configuration on the device.\nThe server returns config data only if a higher (newer) version is\navailable from Cloud IoT Core.\nIf this value is higher than the latest version available in Cloud IoT\nCore, returns an `OUT_OF_RANGE` error.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/config" + "id": "cloudiot.projects.locations.registries.testIamPermissions" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "name": { + "description": "The name of the device registry. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path" } }, - "resources": { - "configVersions": { - "methods": { - "list": { - "response": { - "$ref": "ListDeviceConfigVersionsResponse" - }, - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudiot" - ], - "parameters": { - "name": { - "description": "The name of the device. For example,\n`projects/p0/locations/us-central1/registries/registry0/devices/device0` or\n`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$", - "location": "path" - }, - "numVersions": { - "format": "int32", - "description": "The number of versions to list. Versions are listed in decreasing order of\nthe version number. The maximum number of versions retained is 10. If this\nvalue is zero, it will return all the versions available.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/configVersions", - "id": "cloudiot.projects.locations.registries.devices.configVersions.list", - "path": "v1beta1/{+name}/configVersions", - "description": "Lists the last few versions of the device configuration in descending\norder (i.e.: newest first)." - } - } + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}", + "id": "cloudiot.projects.locations.registries.delete", + "path": "v1beta1/{+name}", + "description": "Deletes a device registry configuration." + }, + "list": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries", + "path": "v1beta1/{+parent}/registries", + "id": "cloudiot.projects.locations.registries.list", + "description": "Lists device registries.", + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListDeviceRegistriesResponse" + }, + "parameters": { + "pageToken": { + "description": "The value returned by the last `ListDeviceRegistriesResponse`; indicates\nthat this is a continuation of a prior `ListDeviceRegistries` call, and\nthat the system should return the next page of data.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of registries to return in the response. If this value\nis zero, the service will select a default size. A call may return fewer\nobjects than requested, but if there is a non-empty `page_token`, it\nindicates that more entries are available.", + "type": "integer", + "location": "query" + }, + "parent": { + "location": "path", + "description": "The project and cloud region path. For example,\n`projects/example-project/locations/us-central1`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$" } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ] + }, + "create": { + "response": { + "$ref": "DeviceRegistry" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "description": "The project and cloud region where this device registry must be created.\nFor example, `projects/example-project/locations/us-central1`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries", + "id": "cloudiot.projects.locations.registries.create", + "path": "v1beta1/{+parent}/registries", + "description": "Creates a device registry that contains devices.", + "request": { + "$ref": "DeviceRegistry" } + }, + "setIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:setIamPolicy", + "id": "cloudiot.projects.locations.registries.setIamPolicy", + "path": "v1beta1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST" + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:getIamPolicy", + "id": "cloudiot.projects.locations.registries.getIamPolicy", + "path": "v1beta1/{+resource}:getIamPolicy" } } } @@ -1156,75 +1156,10 @@ } }, "parameters": { - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, "upload_protocol": { + "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "prettyPrint": { "location": "query", @@ -1233,19 +1168,85 @@ "type": "boolean" }, "fields": { - "description": "Selector specifying which fields to include in a partial response.", "type": "string", - "location": "query" + "location": "query", + "description": "Selector specifying which fields to include in a partial response." }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." } }, "version": "v1beta1", "baseUrl": "https://cloudiot.googleapis.com/", - "description": "Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform.\n", "kind": "discovery#restDescription", - "servicePath": "" + "description": "Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform.\n", + "servicePath": "", + "basePath": "" } diff --git a/vendor/google.golang.org/api/cloudkms/v1/cloudkms-api.json b/vendor/google.golang.org/api/cloudkms/v1/cloudkms-api.json index 07344935e..c5b928cc4 100644 --- a/vendor/google.golang.org/api/cloudkms/v1/cloudkms-api.json +++ b/vendor/google.golang.org/api/cloudkms/v1/cloudkms-api.json @@ -1,848 +1,56 @@ { - "discoveryVersion": "v1", - "version_module": true, - "schemas": { - "TestIamPermissionsRequest": { - "description": "Request message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsRequest" - }, - "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object", - "properties": { - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "AuditConfig" - }, - "type": "array" - }, - "bindings": { - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", - "items": { - "$ref": "Binding" - }, - "type": "array" - }, - "iamOwned": { - "type": "boolean" - }, - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - } - }, - "id": "Policy" - }, - "ListLocationsResponse": { - "description": "The response message for Locations.ListLocations.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, - "locations": { - "description": "A list of locations that matches the specified filter in the request.", - "items": { - "$ref": "Location" - }, - "type": "array" - } - }, - "id": "ListLocationsResponse" - }, - "KeyRing": { - "description": "A KeyRing is a toplevel logical grouping of CryptoKeys.", - "type": "object", - "properties": { - "createTime": { - "format": "google-datetime", - "description": "Output only. The time at which this KeyRing was created.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name for the KeyRing in the format\n`projects/*/locations/*/keyRings/*`.", - "type": "string" - } - }, - "id": "KeyRing" - }, - "EncryptResponse": { - "description": "Response message for KeyManagementService.Encrypt.", - "type": "object", - "properties": { - "ciphertext": { - "format": "byte", - "description": "The encrypted data.", - "type": "string" - }, - "name": { - "description": "The resource name of the CryptoKeyVersion used in encryption.", - "type": "string" - } - }, - "id": "EncryptResponse" - }, - "RestoreCryptoKeyVersionRequest": { - "description": "Request message for KeyManagementService.RestoreCryptoKeyVersion.", - "type": "object", - "properties": {}, - "id": "RestoreCryptoKeyVersionRequest" - }, - "UpdateCryptoKeyPrimaryVersionRequest": { - "description": "Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.", - "type": "object", - "properties": { - "cryptoKeyVersionId": { - "description": "The id of the child CryptoKeyVersion to use as primary.", - "type": "string" - } - }, - "id": "UpdateCryptoKeyPrimaryVersionRequest" - }, - "ListKeyRingsResponse": { - "description": "Response message for KeyManagementService.ListKeyRings.", - "type": "object", - "properties": { - "keyRings": { - "description": "The list of KeyRings.", - "items": { - "$ref": "KeyRing" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in\nListKeyRingsRequest.page_token to retrieve the next page of results.", - "type": "string" - }, - "totalSize": { - "format": "int32", - "description": "The total number of KeyRings that matched the query.", - "type": "integer" - } - }, - "id": "ListKeyRingsResponse" - }, - "AuditConfig": { - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", - "type": "object", - "properties": { - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", - "type": "string" - }, - "auditLogConfigs": { - "description": "The configuration for logging of each type of permission.\nNext ID: 4", - "items": { - "$ref": "AuditLogConfig" - }, - "type": "array" - }, - "exemptedMembers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "AuditConfig" - }, - "CryptoKeyVersion": { - "description": "A CryptoKeyVersion represents an individual cryptographic key, and the\nassociated key material.\n\nIt can be used for cryptographic operations either directly, or via its\nparent CryptoKey, in which case the server will choose the appropriate\nversion for the operation.\n\nFor security reasons, the raw cryptographic key material represented by a\nCryptoKeyVersion can never be viewed or exported. It can only be used to\nencrypt or decrypt data when an authorized user or application invokes Cloud\nKMS.", - "type": "object", - "properties": { - "destroyEventTime": { - "format": "google-datetime", - "description": "Output only. The time this CryptoKeyVersion's key material was\ndestroyed. Only present if state is\nDESTROYED.", - "type": "string" - }, - "destroyTime": { - "format": "google-datetime", - "description": "Output only. The time this CryptoKeyVersion's key material is scheduled\nfor destruction. Only present if state is\nDESTROY_SCHEDULED.", - "type": "string" - }, - "createTime": { - "format": "google-datetime", - "description": "Output only. The time at which this CryptoKeyVersion was created.", - "type": "string" - }, - "state": { - "description": "The current state of the CryptoKeyVersion.", - "type": "string", - "enumDescriptions": [ - "Not specified.", - "This version may be used in Encrypt and\nDecrypt requests.", - "This version may not be used, but the key material is still available,\nand the version can be placed back into the ENABLED state.", - "This version is destroyed, and the key material is no longer stored.\nA version may not leave this state once entered.", - "This version is scheduled for destruction, and will be destroyed soon.\nCall\nRestoreCryptoKeyVersion\nto put it back into the DISABLED state." - ], - "enum": [ - "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED", - "ENABLED", - "DISABLED", - "DESTROYED", - "DESTROY_SCHEDULED" - ] - }, - "name": { - "description": "Output only. The resource name for this CryptoKeyVersion in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.", - "type": "string" - } - }, - "id": "CryptoKeyVersion" - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - }, - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - } - }, - "id": "SetIamPolicyRequest" - }, - "DecryptRequest": { - "description": "Request message for KeyManagementService.Decrypt.", - "type": "object", - "properties": { - "additionalAuthenticatedData": { - "format": "byte", - "description": "Optional data that must match the data originally supplied in\nEncryptRequest.additional_authenticated_data.", - "type": "string" - }, - "ciphertext": { - "format": "byte", - "description": "Required. The encrypted data originally returned in\nEncryptResponse.ciphertext.", - "type": "string" - } - }, - "id": "DecryptRequest" - }, - "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "condition": { - "$ref": "Expr", - "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." - }, - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding" - }, - "Expr": { - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", - "type": "object", - "properties": { - "location": { - "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", - "type": "string" - }, - "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", - "type": "string" - }, - "description": { - "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", - "type": "string" - } - }, - "id": "Expr" - }, - "EncryptRequest": { - "description": "Request message for KeyManagementService.Encrypt.", - "type": "object", - "properties": { - "additionalAuthenticatedData": { - "format": "byte", - "description": "Optional data that, if specified, must also be provided during decryption\nthrough DecryptRequest.additional_authenticated_data. Must be no\nlarger than 64KiB.", - "type": "string" - }, - "plaintext": { - "format": "byte", - "description": "Required. The data to encrypt. Must be no larger than 64KiB.", - "type": "string" - } - }, - "id": "EncryptRequest" - }, - "ListCryptoKeyVersionsResponse": { - "description": "Response message for KeyManagementService.ListCryptoKeyVersions.", - "type": "object", - "properties": { - "cryptoKeyVersions": { - "description": "The list of CryptoKeyVersions.", - "items": { - "$ref": "CryptoKeyVersion" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in\nListCryptoKeyVersionsRequest.page_token to retrieve the next page of\nresults.", - "type": "string" - }, - "totalSize": { - "format": "int32", - "description": "The total number of CryptoKeyVersions that matched the\nquery.", - "type": "integer" - } - }, - "id": "ListCryptoKeyVersionsResponse" - }, - "Location": { - "description": "A resource that represents Google Cloud Platform location.", - "type": "object", - "properties": { - "locationId": { - "description": "The canonical id for this location. For example: `\"us-east1\"`.", - "type": "string" - }, - "metadata": { - "description": "Service-specific metadata. For example the available capacity at the given\nlocation.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object" - }, - "name": { - "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", - "type": "string" - } - }, - "id": "Location" - }, - "ListCryptoKeysResponse": { - "description": "Response message for KeyManagementService.ListCryptoKeys.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass this value in\nListCryptoKeysRequest.page_token to retrieve the next page of results.", - "type": "string" - }, - "totalSize": { - "format": "int32", - "description": "The total number of CryptoKeys that matched the query.", - "type": "integer" - }, - "cryptoKeys": { - "description": "The list of CryptoKeys.", - "items": { - "$ref": "CryptoKey" - }, - "type": "array" - } - }, - "id": "ListCryptoKeysResponse" - }, - "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse" - }, - "DestroyCryptoKeyVersionRequest": { - "description": "Request message for KeyManagementService.DestroyCryptoKeyVersion.", - "type": "object", - "properties": {}, - "id": "DestroyCryptoKeyVersionRequest" - }, - "AuditLogConfig": { - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object", - "properties": { - "logType": { - "enumDescriptions": [ - "Default case. Should never be this.", - "Admin reads. Example: CloudIAM getIamPolicy", - "Data writes. Example: CloudSQL Users create", - "Data reads. Example: CloudSQL Users list" - ], - "enum": [ - "LOG_TYPE_UNSPECIFIED", - "ADMIN_READ", - "DATA_WRITE", - "DATA_READ" - ], - "description": "The log type that this config enables.", - "type": "string" - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "AuditLogConfig" - }, - "CryptoKey": { - "description": "A CryptoKey represents a logical key that can be used for cryptographic\noperations.\n\nA CryptoKey is made up of one or more versions, which\nrepresent the actual key material used in cryptographic operations.", - "type": "object", - "properties": { - "labels": { - "description": "Labels with user defined metadata.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "createTime": { - "format": "google-datetime", - "description": "Output only. The time at which this CryptoKey was created.", - "type": "string" - }, - "rotationPeriod": { - "format": "google-duration", - "description": "next_rotation_time will be advanced by this period when the service\nautomatically rotates a key. Must be at least one day.\n\nIf rotation_period is set, next_rotation_time must also be set.", - "type": "string" - }, - "primary": { - "description": "Output only. A copy of the \"primary\" CryptoKeyVersion that will be used\nby Encrypt when this CryptoKey is given\nin EncryptRequest.name.\n\nThe CryptoKey's primary version can be updated via\nUpdateCryptoKeyPrimaryVersion.", - "$ref": "CryptoKeyVersion" - }, - "name": { - "description": "Output only. The resource name for this CryptoKey in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.", - "type": "string" - }, - "purpose": { - "enumDescriptions": [ - "Not specified.", - "CryptoKeys with this purpose may be used with\nEncrypt and\nDecrypt." - ], - "enum": [ - "CRYPTO_KEY_PURPOSE_UNSPECIFIED", - "ENCRYPT_DECRYPT" - ], - "description": "The immutable purpose of this CryptoKey. Currently, the only acceptable\npurpose is ENCRYPT_DECRYPT.", - "type": "string" - }, - "nextRotationTime": { - "format": "google-datetime", - "description": "At next_rotation_time, the Key Management Service will automatically:\n\n1. Create a new version of this CryptoKey.\n2. Mark the new version as primary.\n\nKey rotations performed manually via\nCreateCryptoKeyVersion and\nUpdateCryptoKeyPrimaryVersion\ndo not affect next_rotation_time.", - "type": "string" - } - }, - "id": "CryptoKey" - }, - "DecryptResponse": { - "description": "Response message for KeyManagementService.Decrypt.", - "type": "object", - "properties": { - "plaintext": { - "format": "byte", - "description": "The decrypted data originally supplied in EncryptRequest.plaintext.", - "type": "string" - } - }, - "id": "DecryptResponse" - } - }, - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - }, - "protocol": "rest", - "canonicalName": "Cloud KMS", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "rootUrl": "https://cloudkms.googleapis.com/", - "ownerDomain": "google.com", - "name": "cloudkms", - "batchPath": "batch", "title": "Google Cloud Key Management Service (KMS) API", "ownerName": "Google", "resources": { "projects": { "resources": { "locations": { - "methods": { - "get": { - "response": { - "$ref": "Location" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "location": "path", - "description": "Resource name for the location.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", - "id": "cloudkms.projects.locations.get", - "path": "v1/{+name}", - "description": "Get information about a location." - }, - "list": { - "description": "Lists information about the supported locations for this service.", - "response": { - "$ref": "ListLocationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageSize": { - "format": "int32", - "description": "The standard list page size.", - "type": "integer", - "location": "query" - }, - "filter": { - "location": "query", - "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "description": "The standard list page token.", - "type": "string", - "location": "query" - }, - "name": { - "location": "path", - "description": "The resource that owns the locations collection, if applicable.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/locations", - "id": "cloudkms.projects.locations.list", - "path": "v1/{+name}/locations" - } - }, "resources": { "keyRings": { - "methods": { - "get": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}", - "path": "v1/{+name}", - "id": "cloudkms.projects.locations.keyRings.get", - "description": "Returns metadata for a given KeyRing.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "KeyRing" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the KeyRing to get.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", - "location": "path" - } - } - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:testIamPermissions", - "id": "cloudkms.projects.locations.keyRings.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions" - }, - "list": { - "response": { - "$ref": "ListKeyRingsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional limit on the number of KeyRings to include in the\nresponse. Further KeyRings can subsequently be obtained by\nincluding the ListKeyRingsResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.", - "type": "integer" - }, - "parent": { - "description": "Required. The resource name of the location associated with the\nKeyRings, in the format `projects/*/locations/*`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "Optional pagination token, returned earlier via\nListKeyRingsResponse.next_page_token.", - "type": "string" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings", - "id": "cloudkms.projects.locations.keyRings.list", - "path": "v1/{+parent}/keyRings", - "description": "Lists KeyRings." - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "KeyRing" - }, - "parameters": { - "keyRingId": { - "location": "query", - "description": "Required. It must be unique within a location and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location associated with the\nKeyRings, in the format `projects/*/locations/*`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings", - "path": "v1/{+parent}/keyRings", - "id": "cloudkms.projects.locations.keyRings.create", - "description": "Create a new KeyRing in a given Project and Location.", - "request": { - "$ref": "KeyRing" - } - }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:setIamPolicy", - "id": "cloudkms.projects.locations.keyRings.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "request": { - "$ref": "SetIamPolicyRequest" - } - }, - "getIamPolicy": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:getIamPolicy", - "id": "cloudkms.projects.locations.keyRings.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "GET", - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, "resources": { "cryptoKeys": { "methods": { - "list": { - "description": "Lists CryptoKeys.", + "testIamPermissions": { "response": { - "$ref": "ListCryptoKeysResponse" + "$ref": "TestIamPermissionsResponse" }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "Optional pagination token, returned earlier via\nListCryptoKeysResponse.next_page_token.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Optional limit on the number of CryptoKeys to include in the\nresponse. Further CryptoKeys can subsequently be obtained by\nincluding the ListCryptoKeysResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "Required. The resource name of the KeyRing to list, in the format\n`projects/*/locations/*/keyRings/*`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.list", - "path": "v1/{+parent}/cryptoKeys" - }, - "encrypt": { - "request": { - "$ref": "EncryptRequest" - }, - "description": "Encrypts data, so that it can only be recovered by a call to Decrypt.", - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "EncryptResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the CryptoKey or CryptoKeyVersion\nto use for encryption.\n\nIf a CryptoKey is specified, the server will use its\nprimary version.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/.+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:encrypt", - "path": "v1/{+name}:encrypt", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.encrypt" - }, - "setIamPolicy": { - "httpMethod": "POST", "parameterOrder": [ "resource" ], - "response": { - "$ref": "Policy" - }, + "httpMethod": "POST", "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." + }, + "decrypt": { + "response": { + "$ref": "DecryptResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "Required. The resource name of the CryptoKey to use for decryption.\nThe server will choose the appropriate version.", + "required": true, + "type": "string", "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "location": "path" } @@ -850,74 +58,166 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:decrypt", + "path": "v1/{+name}:decrypt", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.decrypt", + "request": { + "$ref": "DecryptRequest" + }, + "description": "Decrypts data that was protected by Encrypt." + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListCryptoKeysResponse" + }, + "parameters": { + "pageToken": { + "location": "query", + "description": "Optional pagination token, returned earlier via\nListCryptoKeysResponse.next_page_token.", + "type": "string" + }, + "pageSize": { + "description": "Optional limit on the number of CryptoKeys to include in the\nresponse. Further CryptoKeys can subsequently be obtained by\nincluding the ListCryptoKeysResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "parent": { + "description": "Required. The resource name of the KeyRing to list, in the format\n`projects/*/locations/*/keyRings/*`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.list", + "path": "v1/{+parent}/cryptoKeys", + "description": "Lists CryptoKeys." + }, + "encrypt": { + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "EncryptResponse" + }, + "parameters": { + "name": { + "description": "Required. The resource name of the CryptoKey or CryptoKeyVersion\nto use for encryption.\n\nIf a CryptoKey is specified, the server will use its\nprimary version.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:encrypt", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.encrypt", + "path": "v1/{+name}:encrypt", + "request": { + "$ref": "EncryptRequest" + }, + "description": "Encrypts data, so that it can only be recovered by a call to Decrypt." + }, + "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", "request": { "$ref": "SetIamPolicyRequest" - } + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy" }, "create": { + "response": { + "$ref": "CryptoKey" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "cryptoKeyId": { + "description": "Required. It must be unique within a KeyRing and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`", + "type": "string", + "location": "query" + }, + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path", + "description": "Required. The name of the KeyRing associated with the\nCryptoKeys.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys", "path": "v1/{+parent}/cryptoKeys", "id": "cloudkms.projects.locations.keyRings.cryptoKeys.create", "request": { "$ref": "CryptoKey" }, - "description": "Create a new CryptoKey within a KeyRing.\n\nCryptoKey.purpose is required.", - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "CryptoKey" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "cryptoKeyId": { - "location": "query", - "description": "Required. It must be unique within a KeyRing and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`", - "type": "string" - }, - "parent": { - "location": "path", - "description": "Required. The name of the KeyRing associated with the\nCryptoKeys.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$" - } - } + "description": "Create a new CryptoKey within a KeyRing.\n\nCryptoKey.purpose is required." }, "updatePrimaryVersion": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:updatePrimaryVersion", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion", - "path": "v1/{+name}:updatePrimaryVersion", - "description": "Update the version of a CryptoKey that will be used in Encrypt", - "request": { - "$ref": "UpdateCryptoKeyPrimaryVersionRequest" - }, - "response": { - "$ref": "CryptoKey" - }, + "httpMethod": "POST", "parameterOrder": [ "name" ], - "httpMethod": "POST", + "response": { + "$ref": "CryptoKey" + }, "parameters": { "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "location": "path", "description": "The resource name of the CryptoKey to update.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" + "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" - ] + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:updatePrimaryVersion", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion", + "path": "v1/{+name}:updatePrimaryVersion", + "request": { + "$ref": "UpdateCryptoKeyPrimaryVersionRequest" + }, + "description": "Update the version of a CryptoKey that will be used in Encrypt" }, "getIamPolicy": { "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", @@ -933,22 +233,18 @@ ], "parameters": { "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "location": "path", "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" + "type": "string" } }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:getIamPolicy", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy" + "path": "v1/{+resource}:getIamPolicy", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy" }, "patch": { - "request": { - "$ref": "CryptoKey" - }, - "description": "Update a CryptoKey.", "response": { "$ref": "CryptoKey" }, @@ -960,145 +256,57 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Required list of fields to be updated in this request.", - "type": "string", - "location": "query" - }, "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "location": "path", "description": "Output only. The resource name for this CryptoKey in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" + "type": "string" + }, + "updateMask": { + "location": "query", + "description": "Required list of fields to be updated in this request.", + "format": "google-fieldmask", + "type": "string" } }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}", + "path": "v1/{+name}", "id": "cloudkms.projects.locations.keyRings.cryptoKeys.patch", - "path": "v1/{+name}" + "description": "Update a CryptoKey.", + "request": { + "$ref": "CryptoKey" + } }, "get": { - "description": "Returns metadata for a given CryptoKey, as well as its\nprimary CryptoKeyVersion.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], "response": { "$ref": "CryptoKey" }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "location": "path", "description": "The name of the CryptoKey to get.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" + "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}", "id": "cloudkms.projects.locations.keyRings.cryptoKeys.get", - "path": "v1/{+name}" - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:testIamPermissions", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions" - }, - "decrypt": { - "response": { - "$ref": "DecryptResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the CryptoKey to use for decryption.\nThe server will choose the appropriate version.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}:decrypt", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.decrypt", - "path": "v1/{+name}:decrypt", - "request": { - "$ref": "DecryptRequest" - }, - "description": "Decrypts data that was protected by Encrypt." + "path": "v1/{+name}", + "description": "Returns metadata for a given CryptoKey, as well as its\nprimary CryptoKeyVersion." } }, "resources": { "cryptoKeyVersions": { "methods": { - "list": { - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list", - "path": "v1/{+parent}/cryptoKeyVersions", - "description": "Lists CryptoKeyVersions.", - "response": { - "$ref": "ListCryptoKeyVersionsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "Optional pagination token, returned earlier via\nListCryptoKeyVersionsResponse.next_page_token.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Optional limit on the number of CryptoKeyVersions to\ninclude in the response. Further CryptoKeyVersions can\nsubsequently be obtained by including the\nListCryptoKeyVersionsResponse.next_page_token in a subsequent request.\nIf unspecified, the server will pick an appropriate default.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "Required. The resource name of the CryptoKey to list, in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" - } - } - }, "create": { "description": "Create a new CryptoKeyVersion in a CryptoKey.\n\nThe server will assign the next sequential id. If unset,\nstate will be set to\nENABLED.", "request": { @@ -1111,63 +319,41 @@ "parent" ], "httpMethod": "POST", - "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the CryptoKey associated with\nthe CryptoKeyVersions.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", + "location": "path", + "description": "Required. The name of the CryptoKey associated with\nthe CryptoKeyVersions.", + "required": true, + "type": "string" + } + }, "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create", - "path": "v1/{+parent}/cryptoKeyVersions" + "path": "v1/{+parent}/cryptoKeyVersions", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create" }, "destroy": { + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy", + "path": "v1/{+name}:destroy", "request": { "$ref": "DestroyCryptoKeyVersionRequest" }, "description": "Schedule a CryptoKeyVersion for destruction.\n\nUpon calling this method, CryptoKeyVersion.state will be set to\nDESTROY_SCHEDULED\nand destroy_time will be set to a time 24\nhours in the future, at which point the state\nwill be changed to\nDESTROYED, and the key\nmaterial will be irrevocably destroyed.\n\nBefore the destroy_time is reached,\nRestoreCryptoKeyVersion may be called to reverse the process.", - "response": { - "$ref": "CryptoKeyVersion" - }, + "httpMethod": "POST", "parameterOrder": [ "name" ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "response": { + "$ref": "CryptoKeyVersion" + }, "parameters": { "name": { - "location": "path", "description": "The resource name of the CryptoKeyVersion to destroy.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:destroy", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy", - "path": "v1/{+name}:destroy" - }, - "restore": { - "response": { - "$ref": "CryptoKeyVersion" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The resource name of the CryptoKeyVersion to restore.", "type": "string", - "required": true, "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", "location": "path" } @@ -1175,38 +361,35 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:restore", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:destroy" + }, + "restore": { "path": "v1/{+name}:restore", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore", "description": "Restore a CryptoKeyVersion in the\nDESTROY_SCHEDULED,\nstate.\n\nUpon restoration of the CryptoKeyVersion, state\nwill be set to DISABLED,\nand destroy_time will be cleared.", "request": { "$ref": "RestoreCryptoKeyVersionRequest" - } - }, - "get": { - "description": "Returns metadata for a given CryptoKeyVersion.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], + }, "response": { "$ref": "CryptoKeyVersion" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { - "description": "The name of the CryptoKeyVersion to get.", - "type": "string", + "description": "The resource name of the CryptoKeyVersion to restore.", "required": true, + "type": "string", "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", "location": "path" } }, - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}", - "path": "v1/{+name}", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get" + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}:restore" }, "patch": { "description": "Update a CryptoKeyVersion's metadata.\n\nstate may be changed between\nENABLED and\nDISABLED using this\nmethod. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to\nmove between other states.", @@ -1220,96 +403,419 @@ "name" ], "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required list of fields to be updated in this request.", - "type": "string" - }, "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", "location": "path", "description": "Output only. The resource name for this CryptoKeyVersion in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$" + "type": "string" + }, + "updateMask": { + "description": "Required list of fields to be updated in this request.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}", + "path": "v1/{+name}", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch" + }, + "get": { + "description": "Returns metadata for a given CryptoKeyVersion.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "CryptoKeyVersion" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$", + "location": "path", + "description": "The name of the CryptoKeyVersion to get.", + "required": true, + "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions/{cryptoKeyVersionsId}", - "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get", "path": "v1/{+name}" + }, + "list": { + "description": "Lists CryptoKeyVersions.", + "response": { + "$ref": "ListCryptoKeyVersionsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "parent": { + "description": "Required. The resource name of the CryptoKey to list, in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", + "location": "path" + }, + "pageToken": { + "description": "Optional pagination token, returned earlier via\nListCryptoKeyVersionsResponse.next_page_token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Optional limit on the number of CryptoKeyVersions to\ninclude in the response. Further CryptoKeyVersions can\nsubsequently be obtained by including the\nListCryptoKeyVersionsResponse.next_page_token in a subsequent request.\nIf unspecified, the server will pick an appropriate default.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}/cryptoKeys/{cryptoKeysId}/cryptoKeyVersions", + "path": "v1/{+parent}/cryptoKeyVersions", + "id": "cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list" } } } } } + }, + "methods": { + "list": { + "path": "v1/{+parent}/keyRings", + "id": "cloudkms.projects.locations.keyRings.list", + "description": "Lists KeyRings.", + "response": { + "$ref": "ListKeyRingsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "Required. The resource name of the location associated with the\nKeyRings, in the format `projects/*/locations/*`.", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "Optional pagination token, returned earlier via\nListKeyRingsResponse.next_page_token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Optional limit on the number of KeyRings to include in the\nresponse. Further KeyRings can subsequently be obtained by\nincluding the ListKeyRingsResponse.next_page_token in a subsequent\nrequest. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings" + }, + "create": { + "description": "Create a new KeyRing in a given Project and Location.", + "request": { + "$ref": "KeyRing" + }, + "response": { + "$ref": "KeyRing" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "Required. The resource name of the location associated with the\nKeyRings, in the format `projects/*/locations/*`.", + "required": true, + "type": "string" + }, + "keyRingId": { + "description": "Required. It must be unique within a location and match the regular\nexpression `[a-zA-Z0-9_-]{1,63}`", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings", + "path": "v1/{+parent}/keyRings", + "id": "cloudkms.projects.locations.keyRings.create" + }, + "setIamPolicy": { + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:setIamPolicy", + "id": "cloudkms.projects.locations.keyRings.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy" + }, + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "cloudkms.projects.locations.keyRings.getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." + }, + "get": { + "description": "Returns metadata for a given KeyRing.", + "response": { + "$ref": "KeyRing" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The name of the KeyRing to get.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}", + "path": "v1/{+name}", + "id": "cloudkms.projects.locations.keyRings.get" + }, + "testIamPermissions": { + "path": "v1/{+resource}:testIamPermissions", + "id": "cloudkms.projects.locations.keyRings.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/keyRings/{keyRingsId}:testIamPermissions" + } } } + }, + "methods": { + "list": { + "response": { + "$ref": "ListLocationsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + }, + "name": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "The resource that owns the locations collection, if applicable.", + "required": true, + "type": "string" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/locations", + "path": "v1/{+name}/locations", + "id": "cloudkms.projects.locations.list", + "description": "Lists information about the supported locations for this service." + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Location" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "Resource name for the location.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", + "id": "cloudkms.projects.locations.get", + "path": "v1/{+name}", + "description": "Get information about a location." + } } } } } }, "parameters": { - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", + "access_token": { + "description": "OAuth access token.", + "type": "string", "location": "query" }, - "oauth_token": { + "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.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" }, "bearer_token": { "location": "query", "description": "OAuth bearer token.", "type": "string" }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, "upload_protocol": { + "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", - "default": "true", "type": "boolean", + "default": "true", "location": "query" }, "fields": { + "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" + "type": "string" }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "$.xgafv": { + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query", - "enum": [ - "1", - "2" - ] + "location": "query" }, "alt": { + "description": "Data format for response.", + "default": "json", "enum": [ "json", "media", @@ -1321,33 +827,527 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query", - "description": "Data format for response.", - "default": "json" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", "location": "query" } }, "version": "v1", "baseUrl": "https://cloudkms.googleapis.com/", - "description": "Manages encryption for your cloud services the same way you do on-premises. You can generate, use, rotate, and destroy AES256 encryption keys.", "servicePath": "", + "description": "Manages encryption for your cloud services the same way you do on-premises. You can generate, use, rotate, and destroy AES256 encryption keys.", "kind": "discovery#restDescription", "basePath": "", "documentationLink": "https://cloud.google.com/kms/", - "revision": "20170919", - "id": "cloudkms:v1" + "revision": "20171009", + "id": "cloudkms:v1", + "discoveryVersion": "v1", + "version_module": true, + "schemas": { + "ListCryptoKeyVersionsResponse": { + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this value in\nListCryptoKeyVersionsRequest.page_token to retrieve the next page of\nresults.", + "type": "string" + }, + "totalSize": { + "description": "The total number of CryptoKeyVersions that matched the\nquery.", + "format": "int32", + "type": "integer" + }, + "cryptoKeyVersions": { + "description": "The list of CryptoKeyVersions.", + "type": "array", + "items": { + "$ref": "CryptoKeyVersion" + } + } + }, + "id": "ListCryptoKeyVersionsResponse", + "description": "Response message for KeyManagementService.ListCryptoKeyVersions.", + "type": "object" + }, + "Location": { + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + }, + "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\nlocation.", + "type": "object" + } + }, + "id": "Location", + "description": "A resource that represents Google Cloud Platform location.", + "type": "object" + }, + "ListCryptoKeysResponse": { + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this value in\nListCryptoKeysRequest.page_token to retrieve the next page of results.", + "type": "string" + }, + "cryptoKeys": { + "description": "The list of CryptoKeys.", + "type": "array", + "items": { + "$ref": "CryptoKey" + } + }, + "totalSize": { + "description": "The total number of CryptoKeys that matched the query.", + "format": "int32", + "type": "integer" + } + }, + "id": "ListCryptoKeysResponse", + "description": "Response message for KeyManagementService.ListCryptoKeys.", + "type": "object" + }, + "TestIamPermissionsResponse": { + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsResponse", + "description": "Response message for `TestIamPermissions` method.", + "type": "object" + }, + "DestroyCryptoKeyVersionRequest": { + "description": "Request message for KeyManagementService.DestroyCryptoKeyVersion.", + "type": "object", + "properties": {}, + "id": "DestroyCryptoKeyVersionRequest" + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "type": "array", + "items": { + "type": "string" + } + }, + "logType": { + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "description": "The log type that this config enables.", + "type": "string" + } + }, + "id": "AuditLogConfig" + }, + "CryptoKey": { + "properties": { + "purpose": { + "enumDescriptions": [ + "Not specified.", + "CryptoKeys with this purpose may be used with\nEncrypt and\nDecrypt." + ], + "enum": [ + "CRYPTO_KEY_PURPOSE_UNSPECIFIED", + "ENCRYPT_DECRYPT" + ], + "description": "The immutable purpose of this CryptoKey. Currently, the only acceptable\npurpose is ENCRYPT_DECRYPT.", + "type": "string" + }, + "nextRotationTime": { + "description": "At next_rotation_time, the Key Management Service will automatically:\n\n1. Create a new version of this CryptoKey.\n2. Mark the new version as primary.\n\nKey rotations performed manually via\nCreateCryptoKeyVersion and\nUpdateCryptoKeyPrimaryVersion\ndo not affect next_rotation_time.", + "format": "google-datetime", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels with user defined metadata.", + "type": "object" + }, + "createTime": { + "description": "Output only. The time at which this CryptoKey was created.", + "format": "google-datetime", + "type": "string" + }, + "rotationPeriod": { + "description": "next_rotation_time will be advanced by this period when the service\nautomatically rotates a key. Must be at least one day.\n\nIf rotation_period is set, next_rotation_time must also be set.", + "format": "google-duration", + "type": "string" + }, + "primary": { + "description": "Output only. A copy of the \"primary\" CryptoKeyVersion that will be used\nby Encrypt when this CryptoKey is given\nin EncryptRequest.name.\n\nThe CryptoKey's primary version can be updated via\nUpdateCryptoKeyPrimaryVersion.", + "$ref": "CryptoKeyVersion" + }, + "name": { + "description": "Output only. The resource name for this CryptoKey in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.", + "type": "string" + } + }, + "id": "CryptoKey", + "description": "A CryptoKey represents a logical key that can be used for cryptographic\noperations.\n\nA CryptoKey is made up of one or more versions, which\nrepresent the actual key material used in cryptographic operations.", + "type": "object" + }, + "DecryptResponse": { + "properties": { + "plaintext": { + "description": "The decrypted data originally supplied in EncryptRequest.plaintext.", + "format": "byte", + "type": "string" + } + }, + "id": "DecryptResponse", + "description": "Response message for KeyManagementService.Decrypt.", + "type": "object" + }, + "TestIamPermissionsRequest": { + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsRequest", + "description": "Request message for `TestIamPermissions` method.", + "type": "object" + }, + "EncryptResponse": { + "description": "Response message for KeyManagementService.Encrypt.", + "type": "object", + "properties": { + "ciphertext": { + "description": "The encrypted data.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "The resource name of the CryptoKeyVersion used in encryption.", + "type": "string" + } + }, + "id": "EncryptResponse" + }, + "KeyRing": { + "properties": { + "createTime": { + "description": "Output only. The time at which this KeyRing was created.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Output only. The resource name for the KeyRing in the format\n`projects/*/locations/*/keyRings/*`.", + "type": "string" + } + }, + "id": "KeyRing", + "description": "A KeyRing is a toplevel logical grouping of CryptoKeys.", + "type": "object" + }, + "ListLocationsResponse": { + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Location" + } + } + }, + "id": "ListLocationsResponse", + "description": "The response message for Locations.ListLocations.", + "type": "object" + }, + "Policy": { + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object", + "properties": { + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Version of the `Policy`. The default version is 0.", + "format": "int32", + "type": "integer" + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "type": "array", + "items": { + "$ref": "AuditConfig" + } + }, + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, + "iamOwned": { + "type": "boolean" + } + }, + "id": "Policy" + }, + "UpdateCryptoKeyPrimaryVersionRequest": { + "description": "Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.", + "type": "object", + "properties": { + "cryptoKeyVersionId": { + "description": "The id of the child CryptoKeyVersion to use as primary.", + "type": "string" + } + }, + "id": "UpdateCryptoKeyPrimaryVersionRequest" + }, + "RestoreCryptoKeyVersionRequest": { + "description": "Request message for KeyManagementService.RestoreCryptoKeyVersion.", + "type": "object", + "properties": {}, + "id": "RestoreCryptoKeyVersionRequest" + }, + "ListKeyRingsResponse": { + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this value in\nListKeyRingsRequest.page_token to retrieve the next page of results.", + "type": "string" + }, + "totalSize": { + "description": "The total number of KeyRings that matched the query.", + "format": "int32", + "type": "integer" + }, + "keyRings": { + "description": "The list of KeyRings.", + "type": "array", + "items": { + "$ref": "KeyRing" + } + } + }, + "id": "ListKeyRingsResponse", + "description": "Response message for KeyManagementService.ListKeyRings.", + "type": "object" + }, + "AuditConfig": { + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object", + "properties": { + "exemptedMembers": { + "type": "array", + "items": { + "type": "string" + } + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "type": "string" + }, + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.\nNext ID: 4", + "type": "array", + "items": { + "$ref": "AuditLogConfig" + } + } + }, + "id": "AuditConfig" + }, + "CryptoKeyVersion": { + "description": "A CryptoKeyVersion represents an individual cryptographic key, and the\nassociated key material.\n\nIt can be used for cryptographic operations either directly, or via its\nparent CryptoKey, in which case the server will choose the appropriate\nversion for the operation.\n\nFor security reasons, the raw cryptographic key material represented by a\nCryptoKeyVersion can never be viewed or exported. It can only be used to\nencrypt or decrypt data when an authorized user or application invokes Cloud\nKMS.", + "type": "object", + "properties": { + "state": { + "enumDescriptions": [ + "Not specified.", + "This version may be used in Encrypt and\nDecrypt requests.", + "This version may not be used, but the key material is still available,\nand the version can be placed back into the ENABLED state.", + "This version is destroyed, and the key material is no longer stored.\nA version may not leave this state once entered.", + "This version is scheduled for destruction, and will be destroyed soon.\nCall\nRestoreCryptoKeyVersion\nto put it back into the DISABLED state." + ], + "enum": [ + "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "DESTROYED", + "DESTROY_SCHEDULED" + ], + "description": "The current state of the CryptoKeyVersion.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name for this CryptoKeyVersion in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.", + "type": "string" + }, + "destroyEventTime": { + "description": "Output only. The time this CryptoKeyVersion's key material was\ndestroyed. Only present if state is\nDESTROYED.", + "format": "google-datetime", + "type": "string" + }, + "destroyTime": { + "description": "Output only. The time this CryptoKeyVersion's key material is scheduled\nfor destruction. Only present if state is\nDESTROY_SCHEDULED.", + "format": "google-datetime", + "type": "string" + }, + "createTime": { + "description": "Output only. The time at which this CryptoKeyVersion was created.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "CryptoKeyVersion" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "format": "google-fieldmask", + "type": "string" + }, + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + } + }, + "id": "SetIamPolicyRequest" + }, + "DecryptRequest": { + "description": "Request message for KeyManagementService.Decrypt.", + "type": "object", + "properties": { + "ciphertext": { + "description": "Required. The encrypted data originally returned in\nEncryptResponse.ciphertext.", + "format": "byte", + "type": "string" + }, + "additionalAuthenticatedData": { + "description": "Optional data that must match the data originally supplied in\nEncryptRequest.additional_authenticated_data.", + "format": "byte", + "type": "string" + } + }, + "id": "DecryptRequest" + }, + "Binding": { + "properties": { + "condition": { + "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL.", + "$ref": "Expr" + }, + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "type": "array", + "items": { + "type": "string" + } + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" + }, + "Expr": { + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", + "type": "object", + "properties": { + "description": { + "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", + "type": "string" + }, + "title": { + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", + "type": "string" + }, + "location": { + "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", + "type": "string" + } + }, + "id": "Expr" + }, + "EncryptRequest": { + "properties": { + "additionalAuthenticatedData": { + "description": "Optional data that, if specified, must also be provided during decryption\nthrough DecryptRequest.additional_authenticated_data. Must be no\nlarger than 64KiB.", + "format": "byte", + "type": "string" + }, + "plaintext": { + "description": "Required. The data to encrypt. Must be no larger than 64KiB.", + "format": "byte", + "type": "string" + } + }, + "id": "EncryptRequest", + "description": "Request message for KeyManagementService.Encrypt.", + "type": "object" + } + }, + "icons": { + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" + }, + "protocol": "rest", + "canonicalName": "Cloud KMS", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "rootUrl": "https://cloudkms.googleapis.com/", + "ownerDomain": "google.com", + "name": "cloudkms", + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-api.json b/vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-api.json index 1d4b7d063..661f4e3bd 100644 --- a/vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-api.json +++ b/vendor/google.golang.org/api/cloudresourcemanager/v1/cloudresourcemanager-api.json @@ -1,27 +1,303 @@ { + "documentationLink": "https://cloud.google.com/resource-manager", + "revision": "20170927", + "id": "cloudresourcemanager:v1", "discoveryVersion": "v1", "schemas": { + "ListLiensResponse": { + "properties": { + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more\nresults in the list.", + "type": "string" + }, + "liens": { + "description": "A list of Liens.", + "items": { + "$ref": "Lien" + }, + "type": "array" + } + }, + "id": "ListLiensResponse", + "description": "The response message for Liens.ListLiens.", + "type": "object" + }, + "Constraint": { + "description": "A `Constraint` describes a way in which a resource's configuration can be\nrestricted. For example, it controls which cloud services can be activated\nacross an organization, or whether a Compute Engine instance can have\nserial port connections established. `Constraints` can be configured by the\norganization's policy adminstrator to fit the needs of the organzation by\nsetting Policies for `Constraints` at different locations in the\norganization's resource hierarchy. Policies are inherited down the resource\nhierarchy from higher levels, but can also be overridden. For details about\nthe inheritance rules please read about\nPolicies.\n\n`Constraints` have a default behavior determined by the `constraint_default`\nfield, which is the enforcement behavior that is used in the absence of a\n`Policy` being defined or inherited for the resource in question.", + "type": "object", + "properties": { + "displayName": { + "description": "The human readable name.\n\nMutable.", + "type": "string" + }, + "description": { + "description": "Detailed description of what this `Constraint` controls as well as how and\nwhere it is enforced.\n\nMutable.", + "type": "string" + }, + "booleanConstraint": { + "description": "Defines this constraint as being a BooleanConstraint.", + "$ref": "BooleanConstraint" + }, + "constraintDefault": { + "enum": [ + "CONSTRAINT_DEFAULT_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "description": "The evaluation behavior of this constraint in the absense of 'Policy'.", + "type": "string", + "enumDescriptions": [ + "This is only used for distinguishing unset values and should never be\nused.", + "Indicate that all values are allowed for list constraints.\nIndicate that enforcement is off for boolean constraints.", + "Indicate that all values are denied for list constraints.\nIndicate that enforcement is on for boolean constraints." + ] + }, + "name": { + "description": "Immutable value, required to globally be unique. For example,\n`constraints/serviceuser.services`", + "type": "string" + }, + "version": { + "format": "int32", + "description": "Version of the `Constraint`. Default version is 0;", + "type": "integer" + }, + "listConstraint": { + "description": "Defines this constraint as being a ListConstraint.", + "$ref": "ListConstraint" + } + }, + "id": "Constraint" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status" + }, + "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", + "properties": { + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding" + }, + "RestoreDefault": { + "description": "Ignores policies set above this resource and restores the\n`constraint_default` enforcement behavior of the specific `Constraint` at\nthis resource.\n\nSuppose that `constraint_default` is set to `ALLOW` for the\n`Constraint` `constraints/serviceuser.services`. Suppose that organization\nfoo.com sets a `Policy` at their Organization resource node that restricts\nthe allowed service activations to deny all service activations. They\ncould then set a `Policy` with the `policy_type` `restore_default` on\nseveral experimental projects, restoring the `constraint_default`\nenforcement of the `Constraint` for only those projects, allowing those\nprojects to have all services activated.", + "type": "object", + "properties": {}, + "id": "RestoreDefault" + }, + "GetOrgPolicyRequest": { + "properties": { + "constraint": { + "description": "Name of the `Constraint` to get the `Policy`.", + "type": "string" + } + }, + "id": "GetOrgPolicyRequest", + "description": "The request sent to the GetOrgPolicy method.", + "type": "object" + }, + "ClearOrgPolicyRequest": { + "properties": { + "etag": { + "format": "byte", + "description": "The current version, for concurrency control. Not sending an `etag`\nwill cause the `Policy` to be cleared blindly.", + "type": "string" + }, + "constraint": { + "description": "Name of the `Constraint` of the `Policy` to clear.", + "type": "string" + } + }, + "id": "ClearOrgPolicyRequest", + "description": "The request sent to the ClearOrgPolicy method.", + "type": "object" + }, + "UndeleteProjectRequest": { + "properties": {}, + "id": "UndeleteProjectRequest", + "description": "The request sent to the UndeleteProject\nmethod.", + "type": "object" + }, + "ProjectCreationStatus": { + "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", + "type": "object", + "properties": { + "ready": { + "description": "True if the project creation process is complete.", + "type": "boolean" + }, + "gettable": { + "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", + "type": "boolean" + }, + "createTime": { + "format": "google-datetime", + "description": "Creation time of the project creation workflow.", + "type": "string" + } + }, + "id": "ProjectCreationStatus" + }, + "BooleanConstraint": { + "properties": {}, + "id": "BooleanConstraint", + "description": "A `Constraint` that is either enforced or not.\n\nFor example a constraint `constraints/compute.disableSerialPortAccess`.\nIf it is enforced on a VM instance, serial port connections will not be\nopened to that instance.", + "type": "object" + }, + "GetIamPolicyRequest": { + "properties": {}, + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object" + }, + "TestIamPermissionsResponse": { + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "TestIamPermissionsResponse", + "description": "Response message for `TestIamPermissions` method.", + "type": "object" + }, + "OrganizationOwner": { + "description": "The entity that owns an Organization. The lifetime of the Organization and\nall of its descendants are bound to the `OrganizationOwner`. If the\n`OrganizationOwner` is deleted, the Organization and all its descendants will\nbe deleted.", + "type": "object", + "properties": { + "directoryCustomerId": { + "description": "The Google for Work customer id used in the Directory API.", + "type": "string" + } + }, + "id": "OrganizationOwner" + }, + "ListProjectsResponse": { + "description": "A page of the response received from the\nListProjects\nmethod.\n\nA paginated response where more pages are available has\n`next_page_token` set. This token can be used in a subsequent request to\nretrieve the next request page.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Pagination token.\n\nIf the result set is too large to fit in a single response, this token\nis returned. It encodes the position of the current result cursor.\nFeeding this value into a new list request with the `page_token` parameter\ngives the next page of the results.\n\nWhen `next_page_token` is not filled in, there is no next page and\nthe list returned is the last page in the result set.\n\nPagination tokens have a limited lifetime.", + "type": "string" + }, + "projects": { + "description": "The list of Projects that matched the list filter. This list can\nbe paginated.", + "items": { + "$ref": "Project" + }, + "type": "array" + } + }, + "id": "ListProjectsResponse" + }, + "Project": { + "properties": { + "name": { + "description": "The user-assigned display name of the Project.\nIt must be 4 to 30 characters.\nAllowed characters are: lowercase and uppercase letters, numbers,\nhyphen, single-quote, double-quote, space, and exclamation point.\n\nExample: \u003ccode\u003eMy Project\u003c/code\u003e\nRead-write.", + "type": "string" + }, + "projectId": { + "description": "The unique, user-assigned ID of the Project.\nIt must be 6 to 30 lowercase letters, digits, or hyphens.\nIt must start with a letter.\nTrailing hyphens are prohibited.\n\nExample: \u003ccode\u003etokyo-rain-123\u003c/code\u003e\nRead-only after creation.", + "type": "string" + }, + "lifecycleState": { + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "ACTIVE", + "DELETE_REQUESTED", + "DELETE_IN_PROGRESS" + ], + "description": "The Project lifecycle state.\n\nRead-only.", + "type": "string", + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing\nunset values.", + "The normal and active state.", + "The project has been marked for deletion by the user\n(by invoking\nDeleteProject)\nor by the system (Google Cloud Platform).\nThis can generally be reversed by invoking UndeleteProject.", + "This lifecycle state is no longer used and not returned by the API." + ] + }, + "projectNumber": { + "format": "int64", + "description": "The number uniquely identifying the project.\n\nExample: \u003ccode\u003e415104041262\u003c/code\u003e\nRead-only.", + "type": "string" + }, + "parent": { + "$ref": "ResourceId", + "description": "An optional reference to a parent Resource.\n\nThe only supported parent type is \"organization\". Once set, the parent\ncannot be modified. The `parent` can be set on creation or using the\n`UpdateProject` method; the end user must have the\n`resourcemanager.projects.create` permission on the parent.\n\nRead-write." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels associated with this Project.\n\nLabel keys must be between 1 and 63 characters long and must conform\nto the following regular expression: \\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?.\n\nLabel values must be between 0 and 63 characters long and must conform\nto the regular expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?.\n\nNo more than 256 labels can be associated with a given resource.\n\nClients should store labels in a representation such as JSON that does not\ndepend on specific characters being disallowed.\n\nExample: \u003ccode\u003e\"environment\" : \"dev\"\u003c/code\u003e\nRead-write.", + "type": "object" + }, + "createTime": { + "format": "google-datetime", + "description": "Creation time.\n\nRead-only.", + "type": "string" + } + }, + "id": "Project", + "description": "A Project is a high-level Google Cloud Platform entity. It is a\ncontainer for ACLs, APIs, App Engine Apps, VMs, and other\nGoogle Cloud Platform resources.", + "type": "object" + }, "ListOrgPoliciesResponse": { "description": "The response returned from the ListOrgPolicies method. It will be empty\nif no `Policies` are set on the resource.", "type": "object", "properties": { + "nextPageToken": { + "description": "Page token used to retrieve the next page. This is currently not used, but\nthe server may at any point start supplying a valid token.", + "type": "string" + }, "policies": { "description": "The `Policies` that are set on the resource. It will be empty if no\n`Policies` are set.", "items": { "$ref": "OrgPolicy" }, "type": "array" - }, - "nextPageToken": { - "description": "Page token used to retrieve the next page. This is currently not used, but\nthe server may at any point start supplying a valid token.", - "type": "string" } }, "id": "ListOrgPoliciesResponse" }, "SearchOrganizationsResponse": { - "description": "The response returned from the `SearchOrganizations` method.", - "type": "object", "properties": { "nextPageToken": { "description": "A pagination token to be used to retrieve the next page of results. If the\nresult is too large to fit within the page size specified in the request,\nthis field will be set with a token that can be used to fetch the next page\nof results. If this field is empty, it indicates that this response\ncontains the last page of results.", @@ -35,11 +311,25 @@ "type": "array" } }, - "id": "SearchOrganizationsResponse" + "id": "SearchOrganizationsResponse", + "description": "The response returned from the `SearchOrganizations` method.", + "type": "object" }, "FolderOperationError": { "properties": { "errorMessageId": { + "enumDescriptions": [ + "The error type was unrecognized or unspecified.", + "The attempted action would violate the max folder depth constraint.", + "The attempted action would violate the max child folders constraint.", + "The attempted action would violate the locally-unique folder\ndisplay_name constraint.", + "The resource being moved has been deleted.", + "The resource a folder was being added to has been deleted.", + "The attempted action would introduce cycle in resource path.", + "The attempted action would move a folder that is already being moved.", + "The folder the caller is trying to delete contains active resources.", + "The attempted action would violate the max deleted folder depth\nconstraint." + ], "enum": [ "ERROR_TYPE_UNSPECIFIED", "ACTIVE_FOLDER_HEIGHT_VIOLATION", @@ -53,19 +343,7 @@ "DELETED_FOLDER_HEIGHT_VIOLATION" ], "description": "The type of operation error experienced.", - "type": "string", - "enumDescriptions": [ - "The error type was unrecognized or unspecified.", - "The attempted action would violate the max folder depth constraint.", - "The attempted action would violate the max child folders constraint.", - "The attempted action would violate the locally-unique folder\ndisplay_name constraint.", - "The resource being moved has been deleted.", - "The resource a folder was being added to has been deleted.", - "The attempted action would introduce cycle in resource path.", - "The attempted action would move a folder that is already being moved.", - "The folder the caller is trying to delete contains active resources.", - "The attempted action would violate the max deleted folder depth\nconstraint." - ] + "type": "string" } }, "id": "FolderOperationError", @@ -74,36 +352,36 @@ }, "OrgPolicy": { "properties": { - "listPolicy": { - "$ref": "ListPolicy", - "description": "List of values either allowed or disallowed." - }, - "etag": { - "format": "byte", - "description": "An opaque tag indicating the current version of the `Policy`, used for\nconcurrency control.\n\nWhen the `Policy` is returned from either a `GetPolicy` or a\n`ListOrgPolicy` request, this `etag` indicates the version of the current\n`Policy` to use when executing a read-modify-write loop.\n\nWhen the `Policy` is returned from a `GetEffectivePolicy` request, the\n`etag` will be unset.\n\nWhen the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value\nthat was returned from a `GetOrgPolicy` request as part of a\nread-modify-write loop for concurrency control. Not setting the `etag`in a\n`SetOrgPolicy` request will result in an unconditional write of the\n`Policy`.", - "type": "string" - }, - "booleanPolicy": { - "description": "For boolean `Constraints`, whether to enforce the `Constraint` or not.", - "$ref": "BooleanPolicy" - }, - "constraint": { - "description": "The name of the `Constraint` the `Policy` is configuring, for example,\n`constraints/serviceuser.services`.\n\nImmutable after creation.", - "type": "string" - }, - "updateTime": { - "format": "google-datetime", - "description": "The time stamp the `Policy` was previously updated. This is set by the\nserver, not specified by the caller, and represents the last time a call to\n`SetOrgPolicy` was made for that `Policy`. Any value set by the client will\nbe ignored.", - "type": "string" - }, "version": { "format": "int32", "description": "Version of the `Policy`. Default version is 0;", "type": "integer" }, "restoreDefault": { - "description": "Restores the default behavior of the constraint; independent of\n`Constraint` type.", - "$ref": "RestoreDefault" + "$ref": "RestoreDefault", + "description": "Restores the default behavior of the constraint; independent of\n`Constraint` type." + }, + "listPolicy": { + "description": "List of values either allowed or disallowed.", + "$ref": "ListPolicy" + }, + "etag": { + "format": "byte", + "description": "An opaque tag indicating the current version of the `Policy`, used for\nconcurrency control.\n\nWhen the `Policy` is returned from either a `GetPolicy` or a\n`ListOrgPolicy` request, this `etag` indicates the version of the current\n`Policy` to use when executing a read-modify-write loop.\n\nWhen the `Policy` is returned from a `GetEffectivePolicy` request, the\n`etag` will be unset.\n\nWhen the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value\nthat was returned from a `GetOrgPolicy` request as part of a\nread-modify-write loop for concurrency control. Not setting the `etag`in a\n`SetOrgPolicy` request will result in an unconditional write of the\n`Policy`.", + "type": "string" + }, + "constraint": { + "description": "The name of the `Constraint` the `Policy` is configuring, for example,\n`constraints/serviceuser.services`.\n\nImmutable after creation.", + "type": "string" + }, + "booleanPolicy": { + "$ref": "BooleanPolicy", + "description": "For boolean `Constraints`, whether to enforce the `Constraint` or not." + }, + "updateTime": { + "format": "google-datetime", + "description": "The time stamp the `Policy` was previously updated. This is set by the\nserver, not specified by the caller, and represents the last time a call to\n`SetOrgPolicy` was made for that `Policy`. Any value set by the client will\nbe ignored.", + "type": "string" } }, "id": "OrgPolicy", @@ -111,27 +389,18 @@ "type": "object" }, "BooleanPolicy": { - "description": "Used in `policy_type` to specify how `boolean_policy` will behave at this\nresource.", - "type": "object", "properties": { "enforced": { "description": "If `true`, then the `Policy` is enforced. If `false`, then any\nconfiguration is acceptable.\n\nSuppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`\nwith `constraint_default` set to `ALLOW`. A `Policy` for that\n`Constraint` exhibits the following behavior:\n - If the `Policy` at this resource has enforced set to `false`, serial\n port connection attempts will be allowed.\n - If the `Policy` at this resource has enforced set to `true`, serial\n port connection attempts will be refused.\n - If the `Policy` at this resource is `RestoreDefault`, serial port\n connection attempts will be allowed.\n - If no `Policy` is set at this resource or anywhere higher in the\n resource hierarchy, serial port connection attempts will be allowed.\n - If no `Policy` is set at this resource, but one exists higher in the\n resource hierarchy, the behavior is as if the`Policy` were set at\n this resource.\n\nThe following examples demonstrate the different possible layerings:\n\nExample 1 (nearest `Constraint` wins):\n `organizations/foo` has a `Policy` with:\n {enforced: false}\n `projects/bar` has no `Policy` set.\nThe constraint at `projects/bar` and `organizations/foo` will not be\nenforced.\n\nExample 2 (enforcement gets replaced):\n `organizations/foo` has a `Policy` with:\n {enforced: false}\n `projects/bar` has a `Policy` with:\n {enforced: true}\nThe constraint at `organizations/foo` is not enforced.\nThe constraint at `projects/bar` is enforced.\n\nExample 3 (RestoreDefault):\n `organizations/foo` has a `Policy` with:\n {enforced: true}\n `projects/bar` has a `Policy` with:\n {RestoreDefault: {}}\nThe constraint at `organizations/foo` is enforced.\nThe constraint at `projects/bar` is not enforced, because\n`constraint_default` for the `Constraint` is `ALLOW`.", "type": "boolean" } }, - "id": "BooleanPolicy" + "id": "BooleanPolicy", + "description": "Used in `policy_type` to specify how `boolean_policy` will behave at this\nresource.", + "type": "object" }, "Lien": { "properties": { - "parent": { - "description": "A reference to the resource this Lien is attached to. The server will\nvalidate the parent against those for which Liens are supported.\n\nExample: `projects/1234`", - "type": "string" - }, - "createTime": { - "format": "google-datetime", - "description": "The creation time of this Lien.", - "type": "string" - }, "name": { "description": "A system-generated unique identifier for this Lien.\n\nExample: `liens/1234abcd`", "type": "string" @@ -150,6 +419,15 @@ "type": "string" }, "type": "array" + }, + "parent": { + "description": "A reference to the resource this Lien is attached to. The server will\nvalidate the parent against those for which Liens are supported.\n\nExample: `projects/1234`", + "type": "string" + }, + "createTime": { + "format": "google-datetime", + "description": "The creation time of this Lien.", + "type": "string" } }, "id": "Lien", @@ -183,27 +461,27 @@ "type": "object", "properties": { "policy": { - "$ref": "OrgPolicy", - "description": "`Policy` to set on the resource." + "description": "`Policy` to set on the resource.", + "$ref": "OrgPolicy" } }, "id": "SetOrgPolicyRequest" }, "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", "properties": { + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + }, "updateMask": { "format": "google-fieldmask", "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." } }, - "id": "SetIamPolicyRequest", - "description": "Request message for `SetIamPolicy` method.", - "type": "object" + "id": "SetIamPolicyRequest" }, "Empty": { "properties": {}, @@ -212,8 +490,6 @@ "type": "object" }, "Organization": { - "description": "The root node in the resource hierarchy to which a particular entity's\n(e.g., company) resources belong.", - "type": "object", "properties": { "creationTime": { "format": "google-datetime", @@ -221,22 +497,22 @@ "type": "string" }, "lifecycleState": { + "enumDescriptions": [ + "Unspecified state. This is only useful for distinguishing unset values.", + "The normal and active state.", + "The organization has been marked for deletion by the user." + ], "enum": [ "LIFECYCLE_STATE_UNSPECIFIED", "ACTIVE", "DELETE_REQUESTED" ], "description": "The organization's current lifecycle state. Assigned by the server.\n@OutputOnly", - "type": "string", - "enumDescriptions": [ - "Unspecified state. This is only useful for distinguishing unset values.", - "The normal and active state.", - "The organization has been marked for deletion by the user." - ] + "type": "string" }, "owner": { - "$ref": "OrganizationOwner", - "description": "The owner of this Organization. The owner should be specified on\ncreation. Once set, it cannot be changed.\nThis field is required." + "description": "The owner of this Organization. The owner should be specified on\ncreation. Once set, it cannot be changed.\nThis field is required.", + "$ref": "OrganizationOwner" }, "name": { "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".", @@ -247,7 +523,9 @@ "type": "string" } }, - "id": "Organization" + "id": "Organization", + "description": "The root node in the resource hierarchy to which a particular entity's\n(e.g., company) resources belong.", + "type": "object" }, "ListAvailableOrgPolicyConstraintsResponse": { "properties": { @@ -269,20 +547,6 @@ }, "ListPolicy": { "properties": { - "allValues": { - "enumDescriptions": [ - "Indicates that either allowed_values or denied_values must be set.", - "A policy with this set allows all values.", - "A policy with this set denies all values." - ], - "enum": [ - "ALL_VALUES_UNSPECIFIED", - "ALLOW", - "DENY" - ], - "description": "The policy all_values state.", - "type": "string" - }, "allowedValues": { "description": "List of values allowed at this resource. Can only be set if no values\nare set for `denied_values` and `all_values` is set to\n`ALL_VALUES_UNSPECIFIED`.", "items": { @@ -304,6 +568,20 @@ "type": "string" }, "type": "array" + }, + "allValues": { + "enum": [ + "ALL_VALUES_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "description": "The policy all_values state.", + "type": "string", + "enumDescriptions": [ + "Indicates that either allowed_values or denied_values must be set.", + "A policy with this set allows all values.", + "A policy with this set denies all values." + ] } }, "id": "ListPolicy", @@ -325,6 +603,8 @@ "id": "GetAncestryResponse" }, "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object", "properties": { "exemptedMembers": { "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", @@ -350,9 +630,7 @@ "type": "string" } }, - "id": "AuditLogConfig", - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object" + "id": "AuditLogConfig" }, "SearchOrganizationsRequest": { "properties": { @@ -375,10 +653,10 @@ "type": "object" }, "GetAncestryRequest": { - "properties": {}, - "id": "GetAncestryRequest", "description": "The request sent to the\nGetAncestry\nmethod.", - "type": "object" + "type": "object", + "properties": {}, + "id": "GetAncestryRequest" }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", @@ -394,42 +672,7 @@ }, "id": "TestIamPermissionsRequest" }, - "FolderOperation": { - "properties": { - "operationType": { - "enum": [ - "OPERATION_TYPE_UNSPECIFIED", - "CREATE", - "MOVE" - ], - "description": "The type of this operation.", - "type": "string", - "enumDescriptions": [ - "Operation type not specified.", - "A create folder operation.", - "A move folder operation." - ] - }, - "sourceParent": { - "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", - "type": "string" - }, - "displayName": { - "description": "The display name of the folder.", - "type": "string" - }, - "destinationParent": { - "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", - "type": "string" - } - }, - "id": "FolderOperation", - "description": "Metadata describing a long running folder operation", - "type": "object" - }, "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object", "properties": { "etag": { "format": "byte", @@ -456,7 +699,42 @@ "type": "array" } }, - "id": "Policy" + "id": "Policy", + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object" + }, + "FolderOperation": { + "properties": { + "operationType": { + "enumDescriptions": [ + "Operation type not specified.", + "A create folder operation.", + "A move folder operation." + ], + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "CREATE", + "MOVE" + ], + "description": "The type of this operation.", + "type": "string" + }, + "sourceParent": { + "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", + "type": "string" + }, + "displayName": { + "description": "The display name of the folder.", + "type": "string" + }, + "destinationParent": { + "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", + "type": "string" + } + }, + "id": "FolderOperation", + "description": "Metadata describing a long running folder operation", + "type": "object" }, "ListAvailableOrgPolicyConstraintsRequest": { "description": "The request sent to the [ListAvailableOrgPolicyConstraints]\ngoogle.cloud.OrgPolicy.v1.ListAvailableOrgPolicyConstraints] method.", @@ -476,13 +754,13 @@ }, "ResourceId": { "properties": { - "id": { - "description": "Required field for the type-specific id. This should correspond to the id\nused in the type-specific API's.", - "type": "string" - }, "type": { "description": "Required field representing the resource type this id is for.\nAt present, the valid types are: \"organization\"", "type": "string" + }, + "id": { + "description": "Required field for the type-specific id. This should correspond to the id\nused in the type-specific API's.", + "type": "string" } }, "id": "ResourceId", @@ -490,15 +768,15 @@ "type": "object" }, "GetEffectiveOrgPolicyRequest": { + "description": "The request sent to the GetEffectiveOrgPolicy method.", + "type": "object", "properties": { "constraint": { "description": "The name of the `Constraint` to compute the effective `Policy`.", "type": "string" } }, - "id": "GetEffectiveOrgPolicyRequest", - "description": "The request sent to the GetEffectiveOrgPolicy method.", - "type": "object" + "id": "GetEffectiveOrgPolicyRequest" }, "ListOrgPoliciesRequest": { "properties": { @@ -535,8 +813,8 @@ "type": "string" }, "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." }, "metadata": { "additionalProperties": { @@ -552,6 +830,8 @@ "type": "object" }, "AuditConfig": { + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object", "properties": { "service": { "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", @@ -565,300 +845,23 @@ "type": "array" } }, - "id": "AuditConfig", - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", - "type": "object" - }, - "Status": { - "properties": { - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - } - }, - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object" - }, - "ListLiensResponse": { - "properties": { - "nextPageToken": { - "description": "Token to retrieve the next page of results, or empty if there are no more\nresults in the list.", - "type": "string" - }, - "liens": { - "description": "A list of Liens.", - "items": { - "$ref": "Lien" - }, - "type": "array" - } - }, - "id": "ListLiensResponse", - "description": "The response message for Liens.ListLiens.", - "type": "object" - }, - "Constraint": { - "description": "A `Constraint` describes a way in which a resource's configuration can be\nrestricted. For example, it controls which cloud services can be activated\nacross an organization, or whether a Compute Engine instance can have\nserial port connections established. `Constraints` can be configured by the\norganization's policy adminstrator to fit the needs of the organzation by\nsetting Policies for `Constraints` at different locations in the\norganization's resource hierarchy. Policies are inherited down the resource\nhierarchy from higher levels, but can also be overridden. For details about\nthe inheritance rules please read about\nPolicies.\n\n`Constraints` have a default behavior determined by the `constraint_default`\nfield, which is the enforcement behavior that is used in the absence of a\n`Policy` being defined or inherited for the resource in question.", - "type": "object", - "properties": { - "booleanConstraint": { - "$ref": "BooleanConstraint", - "description": "Defines this constraint as being a BooleanConstraint." - }, - "constraintDefault": { - "enumDescriptions": [ - "This is only used for distinguishing unset values and should never be\nused.", - "Indicate that all values are allowed for list constraints.\nIndicate that enforcement is off for boolean constraints.", - "Indicate that all values are denied for list constraints.\nIndicate that enforcement is on for boolean constraints." - ], - "enum": [ - "CONSTRAINT_DEFAULT_UNSPECIFIED", - "ALLOW", - "DENY" - ], - "description": "The evaluation behavior of this constraint in the absense of 'Policy'.", - "type": "string" - }, - "name": { - "description": "Immutable value, required to globally be unique. For example,\n`constraints/serviceuser.services`", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Constraint`. Default version is 0;", - "type": "integer" - }, - "listConstraint": { - "description": "Defines this constraint as being a ListConstraint.", - "$ref": "ListConstraint" - }, - "description": { - "description": "Detailed description of what this `Constraint` controls as well as how and\nwhere it is enforced.\n\nMutable.", - "type": "string" - }, - "displayName": { - "description": "The human readable name.\n\nMutable.", - "type": "string" - } - }, - "id": "Constraint" - }, - "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding" - }, - "GetOrgPolicyRequest": { - "description": "The request sent to the GetOrgPolicy method.", - "type": "object", - "properties": { - "constraint": { - "description": "Name of the `Constraint` to get the `Policy`.", - "type": "string" - } - }, - "id": "GetOrgPolicyRequest" - }, - "RestoreDefault": { - "description": "Ignores policies set above this resource and restores the\n`constraint_default` enforcement behavior of the specific `Constraint` at\nthis resource.\n\nSuppose that `constraint_default` is set to `ALLOW` for the\n`Constraint` `constraints/serviceuser.services`. Suppose that organization\nfoo.com sets a `Policy` at their Organization resource node that restricts\nthe allowed service activations to deny all service activations. They\ncould then set a `Policy` with the `policy_type` `restore_default` on\nseveral experimental projects, restoring the `constraint_default`\nenforcement of the `Constraint` for only those projects, allowing those\nprojects to have all services activated.", - "type": "object", - "properties": {}, - "id": "RestoreDefault" - }, - "ClearOrgPolicyRequest": { - "properties": { - "etag": { - "format": "byte", - "description": "The current version, for concurrency control. Not sending an `etag`\nwill cause the `Policy` to be cleared blindly.", - "type": "string" - }, - "constraint": { - "description": "Name of the `Constraint` of the `Policy` to clear.", - "type": "string" - } - }, - "id": "ClearOrgPolicyRequest", - "description": "The request sent to the ClearOrgPolicy method.", - "type": "object" - }, - "UndeleteProjectRequest": { - "description": "The request sent to the UndeleteProject\nmethod.", - "type": "object", - "properties": {}, - "id": "UndeleteProjectRequest" - }, - "ProjectCreationStatus": { - "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", - "type": "object", - "properties": { - "ready": { - "description": "True if the project creation process is complete.", - "type": "boolean" - }, - "gettable": { - "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", - "type": "boolean" - }, - "createTime": { - "format": "google-datetime", - "description": "Creation time of the project creation workflow.", - "type": "string" - } - }, - "id": "ProjectCreationStatus" - }, - "BooleanConstraint": { - "properties": {}, - "id": "BooleanConstraint", - "description": "A `Constraint` that is either enforced or not.\n\nFor example a constraint `constraints/compute.disableSerialPortAccess`.\nIf it is enforced on a VM instance, serial port connections will not be\nopened to that instance.", - "type": "object" - }, - "GetIamPolicyRequest": { - "description": "Request message for `GetIamPolicy` method.", - "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" - }, - "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse" - }, - "OrganizationOwner": { - "properties": { - "directoryCustomerId": { - "description": "The Google for Work customer id used in the Directory API.", - "type": "string" - } - }, - "id": "OrganizationOwner", - "description": "The entity that owns an Organization. The lifetime of the Organization and\nall of its descendants are bound to the `OrganizationOwner`. If the\n`OrganizationOwner` is deleted, the Organization and all its descendants will\nbe deleted.", - "type": "object" - }, - "ListProjectsResponse": { - "properties": { - "nextPageToken": { - "description": "Pagination token.\n\nIf the result set is too large to fit in a single response, this token\nis returned. It encodes the position of the current result cursor.\nFeeding this value into a new list request with the `page_token` parameter\ngives the next page of the results.\n\nWhen `next_page_token` is not filled in, there is no next page and\nthe list returned is the last page in the result set.\n\nPagination tokens have a limited lifetime.", - "type": "string" - }, - "projects": { - "description": "The list of Projects that matched the list filter. This list can\nbe paginated.", - "items": { - "$ref": "Project" - }, - "type": "array" - } - }, - "id": "ListProjectsResponse", - "description": "A page of the response received from the\nListProjects\nmethod.\n\nA paginated response where more pages are available has\n`next_page_token` set. This token can be used in a subsequent request to\nretrieve the next request page.", - "type": "object" - }, - "Project": { - "properties": { - "name": { - "description": "The user-assigned display name of the Project.\nIt must be 4 to 30 characters.\nAllowed characters are: lowercase and uppercase letters, numbers,\nhyphen, single-quote, double-quote, space, and exclamation point.\n\nExample: \u003ccode\u003eMy Project\u003c/code\u003e\nRead-write.", - "type": "string" - }, - "projectId": { - "description": "The unique, user-assigned ID of the Project.\nIt must be 6 to 30 lowercase letters, digits, or hyphens.\nIt must start with a letter.\nTrailing hyphens are prohibited.\n\nExample: \u003ccode\u003etokyo-rain-123\u003c/code\u003e\nRead-only after creation.", - "type": "string" - }, - "lifecycleState": { - "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "ACTIVE", - "DELETE_REQUESTED", - "DELETE_IN_PROGRESS" - ], - "description": "The Project lifecycle state.\n\nRead-only.", - "type": "string", - "enumDescriptions": [ - "Unspecified state. This is only used/useful for distinguishing\nunset values.", - "The normal and active state.", - "The project has been marked for deletion by the user\n(by invoking\nDeleteProject)\nor by the system (Google Cloud Platform).\nThis can generally be reversed by invoking UndeleteProject.", - "This lifecycle state is no longer used and not returned by the API." - ] - }, - "projectNumber": { - "format": "int64", - "description": "The number uniquely identifying the project.\n\nExample: \u003ccode\u003e415104041262\u003c/code\u003e\nRead-only.", - "type": "string" - }, - "parent": { - "description": "An optional reference to a parent Resource.\n\nThe only supported parent type is \"organization\". Once set, the parent\ncannot be modified. The `parent` can be set on creation or using the\n`UpdateProject` method; the end user must have the\n`resourcemanager.projects.create` permission on the parent.\n\nRead-write.", - "$ref": "ResourceId" - }, - "createTime": { - "format": "google-datetime", - "description": "Creation time.\n\nRead-only.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this Project.\n\nLabel keys must be between 1 and 63 characters long and must conform\nto the following regular expression: \\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?.\n\nLabel values must be between 0 and 63 characters long and must conform\nto the regular expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?.\n\nNo more than 256 labels can be associated with a given resource.\n\nClients should store labels in a representation such as JSON that does not\ndepend on specific characters being disallowed.\n\nExample: \u003ccode\u003e\"environment\" : \"dev\"\u003c/code\u003e\nRead-write.", - "type": "object" - } - }, - "id": "Project", - "description": "A Project is a high-level Google Cloud Platform entity. It is a\ncontainer for ACLs, APIs, App Engine Apps, VMs, and other\nGoogle Cloud Platform resources.", - "type": "object" + "id": "AuditConfig" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "canonicalName": "Cloud Resource Manager", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/cloud-platform.read-only": { "description": "View your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } @@ -871,9 +874,15 @@ "title": "Google Cloud Resource Manager API", "ownerName": "Google", "resources": { - "folders": { + "organizations": { "methods": { "clearOrgPolicy": { + "id": "cloudresourcemanager.organizations.clearOrgPolicy", + "path": "v1/{+resource}:clearOrgPolicy", + "request": { + "$ref": "ClearOrgPolicyRequest" + }, + "description": "Clears a `Policy` from a resource.", "response": { "$ref": "Empty" }, @@ -886,28 +895,22 @@ ], "parameters": { "resource": { - "pattern": "^folders/[^/]+$", - "location": "path", "description": "Name of the resource for the `Policy` to clear.", "type": "string", - "required": true + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" } }, - "flatPath": "v1/folders/{foldersId}:clearOrgPolicy", - "id": "cloudresourcemanager.folders.clearOrgPolicy", - "path": "v1/{+resource}:clearOrgPolicy", - "request": { - "$ref": "ClearOrgPolicyRequest" - }, - "description": "Clears a `Policy` from a resource." + "flatPath": "v1/organizations/{organizationsId}:clearOrgPolicy" }, "setOrgPolicy": { - "id": "cloudresourcemanager.folders.setOrgPolicy", + "id": "cloudresourcemanager.organizations.setOrgPolicy", "path": "v1/{+resource}:setOrgPolicy", + "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", "request": { "$ref": "SetOrgPolicyRequest" }, - "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", "response": { "$ref": "OrgPolicy" }, @@ -915,6 +918,425 @@ "resource" ], "httpMethod": "POST", + "parameters": { + "resource": { + "description": "Resource name of the resource to attach the `Policy`.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/organizations/{organizationsId}:setOrgPolicy" + }, + "setIamPolicy": { + "id": "cloudresourcemanager.organizations.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on an Organization resource. Replaces any\nexisting policy. The `resource` field should be the organization's resource\nname, e.g. \"organizations/123\".\n\nAuthorization requires the Google IAM permission\n`resourcemanager.organizations.setIamPolicy` on the specified organization", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/organizations/{organizationsId}:setIamPolicy" + }, + "listAvailableOrgPolicyConstraints": { + "description": "Lists `Constraints` that could be applied on the specified resource.", + "request": { + "$ref": "ListAvailableOrgPolicyConstraintsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "ListAvailableOrgPolicyConstraintsResponse" + }, + "parameters": { + "resource": { + "description": "Name of the resource to list `Constraints` for.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/organizations/{organizationsId}:listAvailableOrgPolicyConstraints", + "path": "v1/{+resource}:listAvailableOrgPolicyConstraints", + "id": "cloudresourcemanager.organizations.listAvailableOrgPolicyConstraints" + }, + "listOrgPolicies": { + "response": { + "$ref": "ListOrgPoliciesResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "Name of the resource to list Policies for.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/organizations/{organizationsId}:listOrgPolicies", + "id": "cloudresourcemanager.organizations.listOrgPolicies", + "path": "v1/{+resource}:listOrgPolicies", + "description": "Lists all the `Policies` set for a particular resource.", + "request": { + "$ref": "ListOrgPoliciesRequest" + } + }, + "getIamPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/organizations/{organizationsId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "cloudresourcemanager.organizations.getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for an Organization resource. May be empty\nif no such policy or resource exists. The `resource` field should be the\norganization's resource name, e.g. \"organizations/123\".\n\nAuthorization requires the Google IAM permission\n`resourcemanager.organizations.getIamPolicy` on the specified organization" + }, + "search": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "SearchOrganizationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": {}, + "flatPath": "v1/organizations:search", + "path": "v1/organizations:search", + "id": "cloudresourcemanager.organizations.search", + "request": { + "$ref": "SearchOrganizationsRequest" + }, + "description": "Searches Organization resources that are visible to the user and satisfy\nthe specified filter. This method returns Organizations in an unspecified\norder. New Organizations do not necessarily appear at the end of the\nresults.\n\nSearch will only return organizations on which the user has the permission\n`resourcemanager.organizations.get`" + }, + "getOrgPolicy": { + "id": "cloudresourcemanager.organizations.getOrgPolicy", + "path": "v1/{+resource}:getOrgPolicy", + "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write.", + "request": { + "$ref": "GetOrgPolicyRequest" + }, + "response": { + "$ref": "OrgPolicy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "Name of the resource the `Policy` is set on.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/organizations/{organizationsId}:getOrgPolicy" + }, + "get": { + "description": "Fetches an Organization resource identified by the specified resource name.", + "response": { + "$ref": "Organization" + }, + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "name": { + "description": "The resource name of the Organization to fetch, e.g. \"organizations/1234\".", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/organizations/{organizationsId}", + "id": "cloudresourcemanager.organizations.get", + "path": "v1/{+name}" + }, + "getEffectiveOrgPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "OrgPolicy" + }, + "parameters": { + "resource": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "The name of the resource to start computing the effective `Policy`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/organizations/{organizationsId}:getEffectiveOrgPolicy", + "path": "v1/{+resource}:getEffectiveOrgPolicy", + "id": "cloudresourcemanager.organizations.getEffectiveOrgPolicy", + "description": "Gets the effective `Policy` on a resource. This is the result of merging\n`Policies` in the resource hierarchy. The returned `Policy` will not have\nan `etag`set because it is a computed `Policy` across multiple resources.", + "request": { + "$ref": "GetEffectiveOrgPolicyRequest" + } + }, + "testIamPermissions": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/organizations/{organizationsId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "cloudresourcemanager.organizations.testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified Organization.\nThe `resource` field should be the organization's resource name,\ne.g. \"organizations/123\".\n\nThere are no permissions required for making this API call." + } + } + }, + "operations": { + "methods": { + "get": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "pattern": "^operations/.+$", + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/operations/{operationsId}", + "id": "cloudresourcemanager.operations.get", + "path": "v1/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + } + } + }, + "liens": { + "methods": { + "create": { + "path": "v1/liens", + "id": "cloudresourcemanager.liens.create", + "description": "Create a Lien which applies to the resource denoted by the `parent` field.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, applying to `projects/1234` requires permission\n`resourcemanager.projects.updateLiens`.\n\nNOTE: Some resources may limit the number of Liens which may be applied.", + "request": { + "$ref": "Lien" + }, + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Lien" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/liens" + }, + "delete": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "name": { + "description": "The name/identifier of the Lien to delete.", + "type": "string", + "required": true, + "pattern": "^liens/.+$", + "location": "path" + } + }, + "flatPath": "v1/liens/{liensId}", + "path": "v1/{+name}", + "id": "cloudresourcemanager.liens.delete", + "description": "Delete a Lien by `name`.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, a Lien with a `parent` of `projects/1234` requires permission\n`resourcemanager.projects.updateLiens`." + }, + "list": { + "description": "List all Liens applied to the `parent` resource.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, a Lien with a `parent` of `projects/1234` requires permission\n`resourcemanager.projects.get`.", + "httpMethod": "GET", + "parameterOrder": [], + "response": { + "$ref": "ListLiensResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "parent": { + "description": "The name of the resource to list all attached Liens.\nFor example, `projects/1234`.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "The `next_page_token` value returned from a previous List request, if any.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of items to return. This is a suggestion for the server.", + "type": "integer" + } + }, + "flatPath": "v1/liens", + "path": "v1/liens", + "id": "cloudresourcemanager.liens.list" + } + } + }, + "folders": { + "methods": { + "clearOrgPolicy": { + "id": "cloudresourcemanager.folders.clearOrgPolicy", + "path": "v1/{+resource}:clearOrgPolicy", + "description": "Clears a `Policy` from a resource.", + "request": { + "$ref": "ClearOrgPolicyRequest" + }, + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "Name of the resource for the `Policy` to clear.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/folders/{foldersId}:clearOrgPolicy" + }, + "setOrgPolicy": { + "path": "v1/{+resource}:setOrgPolicy", + "id": "cloudresourcemanager.folders.setOrgPolicy", + "request": { + "$ref": "SetOrgPolicyRequest" + }, + "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "OrgPolicy" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], @@ -930,6 +1352,12 @@ "flatPath": "v1/folders/{foldersId}:setOrgPolicy" }, "listAvailableOrgPolicyConstraints": { + "id": "cloudresourcemanager.folders.listAvailableOrgPolicyConstraints", + "path": "v1/{+resource}:listAvailableOrgPolicyConstraints", + "description": "Lists `Constraints` that could be applied on the specified resource.", + "request": { + "$ref": "ListAvailableOrgPolicyConstraintsRequest" + }, "response": { "$ref": "ListAvailableOrgPolicyConstraintsResponse" }, @@ -937,30 +1365,22 @@ "resource" ], "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "Name of the resource to list `Constraints` for.", + "type": "string", + "required": true + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "parameters": { - "resource": { - "description": "Name of the resource to list `Constraints` for.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/folders/{foldersId}:listAvailableOrgPolicyConstraints", - "id": "cloudresourcemanager.folders.listAvailableOrgPolicyConstraints", - "path": "v1/{+resource}:listAvailableOrgPolicyConstraints", - "request": { - "$ref": "ListAvailableOrgPolicyConstraintsRequest" - }, - "description": "Lists `Constraints` that could be applied on the specified resource." + "flatPath": "v1/folders/{foldersId}:listAvailableOrgPolicyConstraints" }, "listOrgPolicies": { - "path": "v1/{+resource}:listOrgPolicies", - "id": "cloudresourcemanager.folders.listOrgPolicies", "description": "Lists all the `Policies` set for a particular resource.", "request": { "$ref": "ListOrgPoliciesRequest" @@ -974,18 +1394,20 @@ }, "parameters": { "resource": { - "pattern": "^folders/[^/]+$", - "location": "path", "description": "Name of the resource to list Policies for.", "type": "string", - "required": true + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], - "flatPath": "v1/folders/{foldersId}:listOrgPolicies" + "flatPath": "v1/folders/{foldersId}:listOrgPolicies", + "path": "v1/{+resource}:listOrgPolicies", + "id": "cloudresourcemanager.folders.listOrgPolicies" }, "getOrgPolicy": { "response": { @@ -995,6 +1417,10 @@ "resource" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], "parameters": { "resource": { "pattern": "^folders/[^/]+$", @@ -1004,17 +1430,13 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], "flatPath": "v1/folders/{foldersId}:getOrgPolicy", "id": "cloudresourcemanager.folders.getOrgPolicy", "path": "v1/{+resource}:getOrgPolicy", - "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write.", "request": { "$ref": "GetOrgPolicyRequest" - } + }, + "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write." }, "getEffectiveOrgPolicy": { "response": { @@ -1049,7 +1471,368 @@ }, "projects": { "methods": { + "listAvailableOrgPolicyConstraints": { + "request": { + "$ref": "ListAvailableOrgPolicyConstraintsRequest" + }, + "description": "Lists `Constraints` that could be applied on the specified resource.", + "response": { + "$ref": "ListAvailableOrgPolicyConstraintsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Name of the resource to list `Constraints` for.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}:listAvailableOrgPolicyConstraints", + "id": "cloudresourcemanager.projects.listAvailableOrgPolicyConstraints", + "path": "v1/{+resource}:listAvailableOrgPolicyConstraints" + }, + "getIamPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{resource}:getIamPolicy", + "path": "v1/projects/{resource}:getIamPolicy", + "id": "cloudresourcemanager.projects.getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Returns the IAM access control policy for the specified Project.\nPermission is denied if the policy or the resource does not exist.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.getIamPolicy` on the project" + }, + "getOrgPolicy": { + "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write.", + "request": { + "$ref": "GetOrgPolicyRequest" + }, + "response": { + "$ref": "OrgPolicy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Name of the resource the `Policy` is set on.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}:getOrgPolicy", + "id": "cloudresourcemanager.projects.getOrgPolicy", + "path": "v1/{+resource}:getOrgPolicy" + }, + "getEffectiveOrgPolicy": { + "description": "Gets the effective `Policy` on a resource. This is the result of merging\n`Policies` in the resource hierarchy. The returned `Policy` will not have\nan `etag`set because it is a computed `Policy` across multiple resources.", + "request": { + "$ref": "GetEffectiveOrgPolicyRequest" + }, + "response": { + "$ref": "OrgPolicy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "The name of the resource to start computing the effective `Policy`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectsId}:getEffectiveOrgPolicy", + "id": "cloudresourcemanager.projects.getEffectiveOrgPolicy", + "path": "v1/{+resource}:getEffectiveOrgPolicy" + }, + "undelete": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "projectId": { + "description": "The project ID (for example, `foo-bar-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}:undelete", + "path": "v1/projects/{projectId}:undelete", + "id": "cloudresourcemanager.projects.undelete", + "description": "Restores the Project identified by the specified\n`project_id` (for example, `my-project-123`).\nYou can only use this method for a Project that has a lifecycle state of\nDELETE_REQUESTED.\nAfter deletion starts, the Project cannot be restored.\n\nThe caller must have modify permissions for this Project.", + "request": { + "$ref": "UndeleteProjectRequest" + } + }, + "update": { + "path": "v1/projects/{projectId}", + "id": "cloudresourcemanager.projects.update", + "description": "Updates the attributes of the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have modify permissions for this Project.", + "request": { + "$ref": "Project" + }, + "httpMethod": "PUT", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Project" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "The project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}" + }, + "list": { + "description": "Lists Projects that are visible to the user and satisfy the\nspecified filter. This method returns Projects in an unspecified order.\nNew Projects do not necessarily appear at the end of the list.", + "httpMethod": "GET", + "response": { + "$ref": "ListProjectsResponse" + }, + "parameterOrder": [], + "parameters": { + "pageToken": { + "description": "A pagination token returned from a previous call to ListProjects\nthat indicates from where listing should continue.\n\nOptional.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of Projects to return in the response.\nThe server can return fewer Projects than requested.\nIf unspecified, server picks an appropriate default.\n\nOptional.", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n+ `name`\n+ `id`\n+ \u003ccode\u003elabels.\u003cem\u003ekey\u003c/em\u003e\u003c/code\u003e where *key* is the name of a label\n\nSome examples of using labels as filters:\n\n|Filter|Description|\n|------|-----------|\n|name:how*|The project's name starts with \"how\".|\n|name:Howl|The project's name is `Howl` or `howl`.|\n|name:HOWL|Equivalent to above.|\n|NAME:howl|Equivalent to above.|\n|labels.color:*|The project has the label `color`.|\n|labels.color:red|The project's label `color` has the value `red`.|\n|labels.color:red labels.size:big|The project's label `color` has the value `red` and its label `size` has the value `big`.\n\nIf you specify a filter that has both `parent.type` and `parent.id`, then\nthe `resourcemanager.projects.list` permission is checked on the parent.\nIf the user has this permission, all projects under the parent will be\nreturned after remaining filters have been applied. If the user lacks this\npermission, then all projects for which the user has the\n`resourcemanager.projects.get` permission will be returned after remaining\nfilters have been applied. If no filter is specified, the call will return\nprojects for which the user has `resourcemanager.projects.get` permissions.\n\nOptional.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects", + "path": "v1/projects", + "id": "cloudresourcemanager.projects.list" + }, + "setOrgPolicy": { + "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", + "request": { + "$ref": "SetOrgPolicyRequest" + }, + "response": { + "$ref": "OrgPolicy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Resource name of the resource to attach the `Policy`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}:setOrgPolicy", + "id": "cloudresourcemanager.projects.setOrgPolicy", + "path": "v1/{+resource}:setOrgPolicy" + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/projects", + "id": "cloudresourcemanager.projects.create", + "path": "v1/projects", + "request": { + "$ref": "Project" + }, + "description": "Request that a new Project be created. The result is an Operation which\ncan be used to track the creation process. It is automatically deleted\nafter a few hours, so there is no need to call DeleteOperation.\n\nOur SLO permits Project creation to take up to 30 seconds at the 90th\npercentile. As of 2016-08-29, we are observing 6 seconds 50th percentile\nlatency. 95th percentile latency is around 11 seconds. We recommend\npolling at the 5th second with an exponential backoff.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.create` on the specified parent for the new\nproject." + }, + "listOrgPolicies": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "ListOrgPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "description": "Name of the resource to list Policies for.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}:listOrgPolicies", + "path": "v1/{+resource}:listOrgPolicies", + "id": "cloudresourcemanager.projects.listOrgPolicies", + "request": { + "$ref": "ListOrgPoliciesRequest" + }, + "description": "Lists all the `Policies` set for a particular resource." + }, + "get": { + "path": "v1/projects/{projectId}", + "id": "cloudresourcemanager.projects.get", + "description": "Retrieves the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Project" + }, + "parameters": { + "projectId": { + "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectId}" + }, + "getAncestry": { + "response": { + "$ref": "GetAncestryResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "projectId": { + "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}:getAncestry", + "id": "cloudresourcemanager.projects.getAncestry", + "path": "v1/projects/{projectId}:getAncestry", + "request": { + "$ref": "GetAncestryRequest" + }, + "description": "Gets a list of ancestors in the resource hierarchy for the Project\nidentified by the specified `project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project." + }, + "testIamPermissions": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{resource}:testIamPermissions", + "path": "v1/projects/{resource}:testIamPermissions", + "id": "cloudresourcemanager.projects.testIamPermissions", + "description": "Returns permissions that a caller has on the specified Project.\n\nThere are no permissions required for making this API call.", + "request": { + "$ref": "TestIamPermissionsRequest" + } + }, "delete": { + "path": "v1/projects/{projectId}", + "id": "cloudresourcemanager.projects.delete", + "description": "Marks the Project identified by the specified\n`project_id` (for example, `my-project-123`) for deletion.\nThis method will only affect the Project if the following criteria are met:\n\n+ The Project does not have a billing account associated with it.\n+ The Project has a lifecycle state of\nACTIVE.\n\nThis method changes the Project's lifecycle state from\nACTIVE\nto DELETE_REQUESTED.\nThe deletion starts at an unspecified time,\nat which point the Project is no longer accessible.\n\nUntil the deletion completes, you can check the lifecycle state\nchecked by retrieving the Project with GetProject,\nand the Project remains visible to ListProjects.\nHowever, you cannot update the project.\n\nAfter the deletion completes, the Project is not retrievable by\nthe GetProject and\nListProjects methods.\n\nThe caller must have modify permissions for this Project.", "httpMethod": "DELETE", "response": { "$ref": "Empty" @@ -1059,28 +1842,29 @@ ], "parameters": { "projectId": { + "location": "path", "description": "The Project ID (for example, `foo-bar-123`).\n\nRequired.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectId}", - "path": "v1/projects/{projectId}", - "id": "cloudresourcemanager.projects.delete", - "description": "Marks the Project identified by the specified\n`project_id` (for example, `my-project-123`) for deletion.\nThis method will only affect the Project if the following criteria are met:\n\n+ The Project does not have a billing account associated with it.\n+ The Project has a lifecycle state of\nACTIVE.\n\nThis method changes the Project's lifecycle state from\nACTIVE\nto DELETE_REQUESTED.\nThe deletion starts at an unspecified time,\nat which point the Project is no longer accessible.\n\nUntil the deletion completes, you can check the lifecycle state\nchecked by retrieving the Project with GetProject,\nand the Project remains visible to ListProjects.\nHowever, you cannot update the project.\n\nAfter the deletion completes, the Project is not retrievable by\nthe GetProject and\nListProjects methods.\n\nThe caller must have modify permissions for this Project." + "flatPath": "v1/projects/{projectId}" }, "clearOrgPolicy": { - "response": { - "$ref": "Empty" + "request": { + "$ref": "ClearOrgPolicyRequest" }, + "description": "Clears a `Policy` from a resource.", + "httpMethod": "POST", "parameterOrder": [ "resource" ], - "httpMethod": "POST", + "response": { + "$ref": "Empty" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], @@ -1094,840 +1878,61 @@ } }, "flatPath": "v1/projects/{projectsId}:clearOrgPolicy", - "id": "cloudresourcemanager.projects.clearOrgPolicy", "path": "v1/{+resource}:clearOrgPolicy", - "request": { - "$ref": "ClearOrgPolicyRequest" - }, - "description": "Clears a `Policy` from a resource." + "id": "cloudresourcemanager.projects.clearOrgPolicy" }, "setIamPolicy": { - "response": { - "$ref": "Policy" - }, + "httpMethod": "POST", "parameterOrder": [ "resource" ], - "httpMethod": "POST", + "response": { + "$ref": "Policy" + }, "parameters": { "resource": { + "location": "path", "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v1/projects/{resource}:setIamPolicy", - "id": "cloudresourcemanager.projects.setIamPolicy", "path": "v1/projects/{resource}:setIamPolicy", + "id": "cloudresourcemanager.projects.setIamPolicy", "description": "Sets the IAM access control policy for the specified Project. Replaces\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`;\nthey must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ Calling this method requires enabling the App Engine Admin API.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.setIamPolicy` on the project", "request": { "$ref": "SetIamPolicyRequest" } - }, - "listAvailableOrgPolicyConstraints": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "ListAvailableOrgPolicyConstraintsResponse" - }, - "parameters": { - "resource": { - "description": "Name of the resource to list `Constraints` for.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}:listAvailableOrgPolicyConstraints", - "path": "v1/{+resource}:listAvailableOrgPolicyConstraints", - "id": "cloudresourcemanager.projects.listAvailableOrgPolicyConstraints", - "description": "Lists `Constraints` that could be applied on the specified resource.", - "request": { - "$ref": "ListAvailableOrgPolicyConstraintsRequest" - } - }, - "getIamPolicy": { - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Returns the IAM access control policy for the specified Project.\nPermission is denied if the policy or the resource does not exist.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.getIamPolicy` on the project", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{resource}:getIamPolicy", - "id": "cloudresourcemanager.projects.getIamPolicy", - "path": "v1/projects/{resource}:getIamPolicy" - }, - "getOrgPolicy": { - "response": { - "$ref": "OrgPolicy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "description": "Name of the resource the `Policy` is set on.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}:getOrgPolicy", - "id": "cloudresourcemanager.projects.getOrgPolicy", - "path": "v1/{+resource}:getOrgPolicy", - "request": { - "$ref": "GetOrgPolicyRequest" - }, - "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write." - }, - "undelete": { - "id": "cloudresourcemanager.projects.undelete", - "path": "v1/projects/{projectId}:undelete", - "request": { - "$ref": "UndeleteProjectRequest" - }, - "description": "Restores the Project identified by the specified\n`project_id` (for example, `my-project-123`).\nYou can only use this method for a Project that has a lifecycle state of\nDELETE_REQUESTED.\nAfter deletion starts, the Project cannot be restored.\n\nThe caller must have modify permissions for this Project.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The project ID (for example, `foo-bar-123`).\n\nRequired.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{projectId}:undelete" - }, - "getEffectiveOrgPolicy": { - "response": { - "$ref": "OrgPolicy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "description": "The name of the resource to start computing the effective `Policy`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}:getEffectiveOrgPolicy", - "id": "cloudresourcemanager.projects.getEffectiveOrgPolicy", - "path": "v1/{+resource}:getEffectiveOrgPolicy", - "request": { - "$ref": "GetEffectiveOrgPolicyRequest" - }, - "description": "Gets the effective `Policy` on a resource. This is the result of merging\n`Policies` in the resource hierarchy. The returned `Policy` will not have\nan `etag`set because it is a computed `Policy` across multiple resources." - }, - "update": { - "response": { - "$ref": "Project" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{projectId}", - "id": "cloudresourcemanager.projects.update", - "path": "v1/projects/{projectId}", - "request": { - "$ref": "Project" - }, - "description": "Updates the attributes of the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have modify permissions for this Project." - }, - "list": { - "description": "Lists Projects that are visible to the user and satisfy the\nspecified filter. This method returns Projects in an unspecified order.\nNew Projects do not necessarily appear at the end of the list.", - "httpMethod": "GET", - "response": { - "$ref": "ListProjectsResponse" - }, - "parameterOrder": [], - "parameters": { - "filter": { - "location": "query", - "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n+ `name`\n+ `id`\n+ \u003ccode\u003elabels.\u003cem\u003ekey\u003c/em\u003e\u003c/code\u003e where *key* is the name of a label\n\nSome examples of using labels as filters:\n\n|Filter|Description|\n|------|-----------|\n|name:how*|The project's name starts with \"how\".|\n|name:Howl|The project's name is `Howl` or `howl`.|\n|name:HOWL|Equivalent to above.|\n|NAME:howl|Equivalent to above.|\n|labels.color:*|The project has the label `color`.|\n|labels.color:red|The project's label `color` has the value `red`.|\n|labels.color:red labels.size:big|The project's label `color` has the value `red` and its label `size` has the value `big`.\n\nIf you specify a filter that has both `parent.type` and `parent.id`, then\nthe `resourcemanager.projects.list` permission is checked on the parent.\nIf the user has this permission, all projects under the parent will be\nreturned after remaining filters have been applied. If the user lacks this\npermission, then all projects for which the user has the\n`resourcemanager.projects.get` permission will be returned after remaining\nfilters have been applied. If no filter is specified, the call will return\nprojects for which the user has `resourcemanager.projects.get` permissions.\n\nOptional.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "A pagination token returned from a previous call to ListProjects\nthat indicates from where listing should continue.\n\nOptional.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of Projects to return in the response.\nThe server can return fewer Projects than requested.\nIf unspecified, server picks an appropriate default.\n\nOptional.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects", - "path": "v1/projects", - "id": "cloudresourcemanager.projects.list" - }, - "setOrgPolicy": { - "path": "v1/{+resource}:setOrgPolicy", - "id": "cloudresourcemanager.projects.setOrgPolicy", - "request": { - "$ref": "SetOrgPolicyRequest" - }, - "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "OrgPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Resource name of the resource to attach the `Policy`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}:setOrgPolicy" - }, - "create": { - "path": "v1/projects", - "id": "cloudresourcemanager.projects.create", - "request": { - "$ref": "Project" - }, - "description": "Request that a new Project be created. The result is an Operation which\ncan be used to track the creation process. It is automatically deleted\nafter a few hours, so there is no need to call DeleteOperation.\n\nOur SLO permits Project creation to take up to 30 seconds at the 90th\npercentile. As of 2016-08-29, we are observing 6 seconds 50th percentile\nlatency. 95th percentile latency is around 11 seconds. We recommend\npolling at the 5th second with an exponential backoff.\n\nAuthorization requires the Google IAM permission\n`resourcemanager.projects.create` on the specified parent for the new\nproject.", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v1/projects" - }, - "listOrgPolicies": { - "response": { - "$ref": "ListOrgPoliciesResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Name of the resource to list Policies for.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectsId}:listOrgPolicies", - "id": "cloudresourcemanager.projects.listOrgPolicies", - "path": "v1/{+resource}:listOrgPolicies", - "description": "Lists all the `Policies` set for a particular resource.", - "request": { - "$ref": "ListOrgPoliciesRequest" - } - }, - "get": { - "id": "cloudresourcemanager.projects.get", - "path": "v1/projects/{projectId}", - "description": "Retrieves the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", - "response": { - "$ref": "Project" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}" - }, - "getAncestry": { - "response": { - "$ref": "GetAncestryResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/projects/{projectId}:getAncestry", - "id": "cloudresourcemanager.projects.getAncestry", - "path": "v1/projects/{projectId}:getAncestry", - "description": "Gets a list of ancestors in the resource hierarchy for the Project\nidentified by the specified `project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", - "request": { - "$ref": "GetAncestryRequest" - } - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified Project.\n\nThere are no permissions required for making this API call.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{resource}:testIamPermissions", - "id": "cloudresourcemanager.projects.testIamPermissions", - "path": "v1/projects/{resource}:testIamPermissions" - } - } - }, - "organizations": { - "methods": { - "setOrgPolicy": { - "id": "cloudresourcemanager.organizations.setOrgPolicy", - "path": "v1/{+resource}:setOrgPolicy", - "description": "Updates the specified `Policy` on the resource. Creates a new `Policy` for\nthat `Constraint` on the resource if one does not exist.\n\nNot supplying an `etag` on the request `Policy` results in an unconditional\nwrite of the `Policy`.", - "request": { - "$ref": "SetOrgPolicyRequest" - }, - "response": { - "$ref": "OrgPolicy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "Resource name of the resource to attach the `Policy`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}:setOrgPolicy" - }, - "setIamPolicy": { - "description": "Sets the access control policy on an Organization resource. Replaces any\nexisting policy. The `resource` field should be the organization's resource\nname, e.g. \"organizations/123\".\n\nAuthorization requires the Google IAM permission\n`resourcemanager.organizations.setIamPolicy` on the specified organization", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}:setIamPolicy", - "id": "cloudresourcemanager.organizations.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy" - }, - "listOrgPolicies": { - "path": "v1/{+resource}:listOrgPolicies", - "id": "cloudresourcemanager.organizations.listOrgPolicies", - "request": { - "$ref": "ListOrgPoliciesRequest" - }, - "description": "Lists all the `Policies` set for a particular resource.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "ListOrgPoliciesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "description": "Name of the resource to list Policies for.", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/organizations/{organizationsId}:listOrgPolicies" - }, - "listAvailableOrgPolicyConstraints": { - "response": { - "$ref": "ListAvailableOrgPolicyConstraintsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "Name of the resource to list `Constraints` for.", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/organizations/{organizationsId}:listAvailableOrgPolicyConstraints", - "id": "cloudresourcemanager.organizations.listAvailableOrgPolicyConstraints", - "path": "v1/{+resource}:listAvailableOrgPolicyConstraints", - "description": "Lists `Constraints` that could be applied on the specified resource.", - "request": { - "$ref": "ListAvailableOrgPolicyConstraintsRequest" - } - }, - "getIamPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/organizations/{organizationsId}:getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "id": "cloudresourcemanager.organizations.getIamPolicy", - "description": "Gets the access control policy for an Organization resource. May be empty\nif no such policy or resource exists. The `resource` field should be the\norganization's resource name, e.g. \"organizations/123\".\n\nAuthorization requires the Google IAM permission\n`resourcemanager.organizations.getIamPolicy` on the specified organization", - "request": { - "$ref": "GetIamPolicyRequest" - } - }, - "getOrgPolicy": { - "response": { - "$ref": "OrgPolicy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "Name of the resource the `Policy` is set on.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/organizations/{organizationsId}:getOrgPolicy", - "id": "cloudresourcemanager.organizations.getOrgPolicy", - "path": "v1/{+resource}:getOrgPolicy", - "request": { - "$ref": "GetOrgPolicyRequest" - }, - "description": "Gets a `Policy` on a resource.\n\nIf no `Policy` is set on the resource, a `Policy` is returned with default\nvalues including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The\n`etag` value can be used with `SetOrgPolicy()` to create or update a\n`Policy` during read-modify-write." - }, - "search": { - "response": { - "$ref": "SearchOrganizationsResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": {}, - "flatPath": "v1/organizations:search", - "id": "cloudresourcemanager.organizations.search", - "path": "v1/organizations:search", - "request": { - "$ref": "SearchOrganizationsRequest" - }, - "description": "Searches Organization resources that are visible to the user and satisfy\nthe specified filter. This method returns Organizations in an unspecified\norder. New Organizations do not necessarily appear at the end of the\nresults.\n\nSearch will only return organizations on which the user has the permission\n`resourcemanager.organizations.get`" - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "Organization" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "name": { - "description": "The resource name of the Organization to fetch, e.g. \"organizations/1234\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/organizations/{organizationsId}", - "path": "v1/{+name}", - "id": "cloudresourcemanager.organizations.get", - "description": "Fetches an Organization resource identified by the specified resource name." - }, - "getEffectiveOrgPolicy": { - "id": "cloudresourcemanager.organizations.getEffectiveOrgPolicy", - "path": "v1/{+resource}:getEffectiveOrgPolicy", - "request": { - "$ref": "GetEffectiveOrgPolicyRequest" - }, - "description": "Gets the effective `Policy` on a resource. This is the result of merging\n`Policies` in the resource hierarchy. The returned `Policy` will not have\nan `etag`set because it is a computed `Policy` across multiple resources.", - "response": { - "$ref": "OrgPolicy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "The name of the resource to start computing the effective `Policy`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/organizations/{organizationsId}:getEffectiveOrgPolicy" - }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified Organization.\nThe `resource` field should be the organization's resource name,\ne.g. \"organizations/123\".\n\nThere are no permissions required for making this API call.", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/organizations/{organizationsId}:testIamPermissions", - "id": "cloudresourcemanager.organizations.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions" - }, - "clearOrgPolicy": { - "description": "Clears a `Policy` from a resource.", - "request": { - "$ref": "ClearOrgPolicyRequest" - }, - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "Name of the resource for the `Policy` to clear.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}:clearOrgPolicy", - "id": "cloudresourcemanager.organizations.clearOrgPolicy", - "path": "v1/{+resource}:clearOrgPolicy" - } - } - }, - "operations": { - "methods": { - "get": { - "id": "cloudresourcemanager.operations.get", - "path": "v1/{+name}", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "name": { - "pattern": "^operations/.+$", - "location": "path", - "description": "The name of the operation resource.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/operations/{operationsId}" - } - } - }, - "liens": { - "methods": { - "delete": { - "description": "Delete a Lien by `name`.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, a Lien with a `parent` of `projects/1234` requires permission\n`resourcemanager.projects.updateLiens`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "parameters": { - "name": { - "pattern": "^liens/.+$", - "location": "path", - "description": "The name/identifier of the Lien to delete.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/liens/{liensId}", - "id": "cloudresourcemanager.liens.delete", - "path": "v1/{+name}" - }, - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListLiensResponse" - }, - "parameterOrder": [], - "parameters": { - "parent": { - "description": "The name of the resource to list all attached Liens.\nFor example, `projects/1234`.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "The `next_page_token` value returned from a previous List request, if any.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of items to return. This is a suggestion for the server.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/liens", - "path": "v1/liens", - "id": "cloudresourcemanager.liens.list", - "description": "List all Liens applied to the `parent` resource.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, a Lien with a `parent` of `projects/1234` requires permission\n`resourcemanager.projects.get`." - }, - "create": { - "response": { - "$ref": "Lien" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/liens", - "id": "cloudresourcemanager.liens.create", - "path": "v1/liens", - "description": "Create a Lien which applies to the resource denoted by the `parent` field.\n\nCallers of this method will require permission on the `parent` resource.\nFor example, applying to `projects/1234` requires permission\n`resourcemanager.projects.updateLiens`.\n\nNOTE: Some resources may limit the number of Liens which may be applied.", - "request": { - "$ref": "Lien" - } } } } }, "parameters": { - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, - "uploadType": { + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", "type": "string" }, "callback": { @@ -1935,20 +1940,9 @@ "type": "string", "location": "query" }, - "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, "alt": { + "description": "Data format for response.", + "default": "json", "enum": [ "json", "media", @@ -1960,18 +1954,16 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query", - "description": "Data format for response.", - "default": "json" - }, - "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.", - "type": "string", "location": "query" }, "access_token": { - "location": "query", "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "key": { + "location": "query", + "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.", "type": "string" }, "quotaUser": { @@ -1985,15 +1977,26 @@ "default": "true", "type": "boolean" }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, "oauth_token": { "location": "query", "description": "OAuth 2.0 token for the current user.", "type": "string" }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" } }, "version": "v1", @@ -2001,8 +2004,5 @@ "servicePath": "", "description": "The Google Cloud Resource Manager API provides methods for creating, reading, and updating project metadata.", "kind": "discovery#restDescription", - "basePath": "", - "documentationLink": "https://cloud.google.com/resource-manager", - "revision": "20170927", - "id": "cloudresourcemanager:v1" + "basePath": "" } diff --git a/vendor/google.golang.org/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/vendor/google.golang.org/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json index e560dab6c..884c7b425 100644 --- a/vendor/google.golang.org/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json +++ b/vendor/google.golang.org/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json @@ -1,108 +1,571 @@ { + "ownerDomain": "google.com", + "name": "cloudresourcemanager", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Google Cloud Resource Manager API", + "ownerName": "Google", + "resources": { + "projects": { + "methods": { + "delete": { + "description": "Marks the Project identified by the specified\n`project_id` (for example, `my-project-123`) for deletion.\nThis method will only affect the Project if the following criteria are met:\n\n+ The Project does not have a billing account associated with it.\n+ The Project has a lifecycle state of\nACTIVE.\n\nThis method changes the Project's lifecycle state from\nACTIVE\nto DELETE_REQUESTED.\nThe deletion starts at an unspecified time, at which point the project is\nno longer accessible.\n\nUntil the deletion completes, you can check the lifecycle state\nchecked by retrieving the Project with GetProject,\nand the Project remains visible to ListProjects.\nHowever, you cannot update the project.\n\nAfter the deletion completes, the Project is not retrievable by\nthe GetProject and\nListProjects methods.\n\nThe caller must have modify permissions for this Project.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Project ID (for example, `foo-bar-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectId}", + "id": "cloudresourcemanager.projects.delete", + "path": "v1beta1/projects/{projectId}" + }, + "list": { + "id": "cloudresourcemanager.projects.list", + "path": "v1beta1/projects", + "description": "Lists Projects that are visible to the user and satisfy the\nspecified filter. This method returns Projects in an unspecified order.\nNew Projects do not necessarily appear at the end of the list.", + "response": { + "$ref": "ListProjectsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "A pagination token returned from a previous call to ListProjects\nthat indicates from where listing should continue.\n\nOptional.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of Projects to return in the response.\nThe server can return fewer Projects than requested.\nIf unspecified, server picks an appropriate default.\n\nOptional.", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n+ `name`\n+ `id`\n+ \u003ccode\u003elabels.\u003cem\u003ekey\u003c/em\u003e\u003c/code\u003e where *key* is the name of a label\n\nSome examples of using labels as filters:\n\n|Filter|Description|\n|------|-----------|\n|name:how*|The project's name starts with \"how\".|\n|name:Howl|The project's name is `Howl` or `howl`.|\n|name:HOWL|Equivalent to above.|\n|NAME:howl|Equivalent to above.|\n|labels.color:*|The project has the label `color`.|\n|labels.color:red|The project's label `color` has the value `red`.|\n|labels.color:red labels.size:big|The project's label `color` has the value `red` and its label `size` has the value `big`.\n\nIf you specify a filter that has both `parent.type` and `parent.id`, then\nthe `resourcemanager.projects.list` permission is checked on the parent.\nIf the user has this permission, all projects under the parent will be\nreturned after remaining filters have been applied. If the user lacks this\npermission, then all projects for which the user has the\n`resourcemanager.projects.get` permission will be returned after remaining\nfilters have been applied. If no filter is specified, the call will return\nprojects for which the user has `resourcemanager.projects.get` permissions.\n\nOptional.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/projects" + }, + "create": { + "request": { + "$ref": "Project" + }, + "description": "Creates a Project resource.\n\nInitially, the Project resource is owned by its creator exclusively.\nThe creator can later grant permission to others to read or update the\nProject.\n\nSeveral APIs are activated automatically for the Project, including\nGoogle Cloud Storage.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "useLegacyStack": { + "description": "A safety hatch to opt out of the new reliable project creation process.", + "type": "boolean", + "location": "query" + } + }, + "flatPath": "v1beta1/projects", + "path": "v1beta1/projects", + "id": "cloudresourcemanager.projects.create" + }, + "setIamPolicy": { + "id": "cloudresourcemanager.projects.setIamPolicy", + "path": "v1beta1/projects/{resource}:setIamPolicy", + "description": "Sets the IAM access control policy for the specified Project. Replaces\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ Calling this method requires enabling the App Engine Admin API.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{resource}:setIamPolicy" + }, + "getIamPolicy": { + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Returns the IAM access control policy for the specified Project.\nPermission is denied if the policy or the resource does not exist.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{resource}:getIamPolicy", + "path": "v1beta1/projects/{resource}:getIamPolicy", + "id": "cloudresourcemanager.projects.getIamPolicy" + }, + "get": { + "parameterOrder": [ + "projectId" + ], + "httpMethod": "GET", + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/projects/{projectId}", + "id": "cloudresourcemanager.projects.get", + "path": "v1beta1/projects/{projectId}", + "description": "Retrieves the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project." + }, + "undelete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The project ID (for example, `foo-bar-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}:undelete", + "id": "cloudresourcemanager.projects.undelete", + "path": "v1beta1/projects/{projectId}:undelete", + "description": "Restores the Project identified by the specified\n`project_id` (for example, `my-project-123`).\nYou can only use this method for a Project that has a lifecycle state of\nDELETE_REQUESTED.\nAfter deletion starts, the Project cannot be restored.\n\nThe caller must have modify permissions for this Project.", + "request": { + "$ref": "UndeleteProjectRequest" + } + }, + "update": { + "path": "v1beta1/projects/{projectId}", + "id": "cloudresourcemanager.projects.update", + "description": "Updates the attributes of the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have modify permissions for this Project.", + "request": { + "$ref": "Project" + }, + "httpMethod": "PUT", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Project" + }, + "parameters": { + "projectId": { + "description": "The project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}" + }, + "getAncestry": { + "description": "Gets a list of ancestors in the resource hierarchy for the Project\nidentified by the specified `project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", + "request": { + "$ref": "GetAncestryRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "GetAncestryResponse" + }, + "parameters": { + "projectId": { + "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/projects/{projectId}:getAncestry", + "path": "v1beta1/projects/{projectId}:getAncestry", + "id": "cloudresourcemanager.projects.getAncestry" + }, + "testIamPermissions": { + "path": "v1beta1/projects/{resource}:testIamPermissions", + "id": "cloudresourcemanager.projects.testIamPermissions", + "description": "Returns permissions that a caller has on the specified Project.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/projects/{resource}:testIamPermissions" + } + } + }, + "organizations": { + "methods": { + "getIamPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/organizations/{organizationsId}:getIamPolicy", + "path": "v1beta1/{+resource}:getIamPolicy", + "id": "cloudresourcemanager.organizations.getIamPolicy", + "description": "Gets the access control policy for an Organization resource. May be empty\nif no such policy or resource exists. The `resource` field should be the\norganization's resource name, e.g. \"organizations/123\".", + "request": { + "$ref": "GetIamPolicyRequest" + } + }, + "get": { + "response": { + "$ref": "Organization" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "organizationId": { + "description": "The id of the Organization resource to fetch.\nThis field is deprecated and will be removed in v1. Use name instead.", + "type": "string", + "location": "query" + }, + "name": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "The resource name of the Organization to fetch, e.g. \"organizations/1234\".", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/organizations/{organizationsId}", + "id": "cloudresourcemanager.organizations.get", + "path": "v1beta1/{+name}", + "description": "Fetches an Organization resource identified by the specified resource name." + }, + "update": { + "id": "cloudresourcemanager.organizations.update", + "path": "v1beta1/{+name}", + "request": { + "$ref": "Organization" + }, + "description": "Updates an Organization resource identified by the specified resource name.", + "response": { + "$ref": "Organization" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/organizations/{organizationsId}" + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified Organization.\nThe `resource` field should be the organization's resource name,\ne.g. \"organizations/123\".", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1beta1/organizations/{organizationsId}:testIamPermissions", + "id": "cloudresourcemanager.organizations.testIamPermissions", + "path": "v1beta1/{+resource}:testIamPermissions" + }, + "list": { + "description": "Lists Organization resources that are visible to the user and satisfy\nthe specified filter. This method returns Organizations in an unspecified\norder. New Organizations do not necessarily appear at the end of the list.", + "response": { + "$ref": "ListOrganizationsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "filter": { + "location": "query", + "description": "An optional query string used to filter the Organizations to return in\nthe response. Filter rules are case-insensitive.\n\n\nOrganizations may be filtered by `owner.directoryCustomerId` or by\n`domain`, where the domain is a Google for Work domain, for example:\n\n|Filter|Description|\n|------|-----------|\n|owner.directorycustomerid:123456789|Organizations with `owner.directory_customer_id` equal to `123456789`.|\n|domain:google.com|Organizations corresponding to the domain `google.com`.|\n\nThis field is optional.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "A pagination token returned from a previous call to `ListOrganizations`\nthat indicates from where listing should continue.\nThis field is optional.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of Organizations to return in the response.\nThis field is optional.", + "type": "integer" + } + }, + "flatPath": "v1beta1/organizations", + "id": "cloudresourcemanager.organizations.list", + "path": "v1beta1/organizations" + }, + "setIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/organizations/{organizationsId}:setIamPolicy", + "id": "cloudresourcemanager.organizations.setIamPolicy", + "path": "v1beta1/{+resource}:setIamPolicy", + "description": "Sets the access control policy on an Organization resource. Replaces any\nexisting policy. The `resource` field should be the organization's resource\nname, e.g. \"organizations/123\".", + "request": { + "$ref": "SetIamPolicyRequest" + } + } + } + } + }, + "parameters": { + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + } + }, + "version": "v1beta1", + "baseUrl": "https://cloudresourcemanager.googleapis.com/", + "kind": "discovery#restDescription", + "description": "The Google Cloud Resource Manager API provides methods for creating, reading, and updating project metadata.", + "servicePath": "", + "basePath": "", "id": "cloudresourcemanager:v1beta1", "documentationLink": "https://cloud.google.com/resource-manager", "revision": "20170927", "discoveryVersion": "v1", "schemas": { - "Binding": { - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding", - "description": "Associates `members` with a `role`.", - "type": "object" - }, - "Empty": { - "properties": {}, - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object" - }, - "UndeleteProjectRequest": { - "properties": {}, - "id": "UndeleteProjectRequest", - "description": "The request sent to the UndeleteProject\nmethod.", - "type": "object" - }, - "Organization": { - "description": "The root node in the resource hierarchy to which a particular entity's\n(e.g., company) resources belong.", - "type": "object", - "properties": { - "lifecycleState": { - "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "ACTIVE", - "DELETE_REQUESTED" - ], - "description": "The organization's current lifecycle state. Assigned by the server.\n@OutputOnly", - "type": "string", - "enumDescriptions": [ - "Unspecified state. This is only useful for distinguishing unset values.", - "The normal and active state.", - "The organization has been marked for deletion by the user." - ] - }, - "displayName": { - "description": "A friendly string to be used to refer to the Organization in the UI.\nAssigned by the server, set to the primary domain of the G Suite\ncustomer that owns the organization.\n@OutputOnly", - "type": "string" - }, - "creationTime": { - "format": "google-datetime", - "description": "Timestamp when the Organization was created. Assigned by the server.\n@OutputOnly", - "type": "string" - }, - "owner": { - "$ref": "OrganizationOwner", - "description": "The owner of this Organization. The owner should be specified on\ncreation. Once set, it cannot be changed.\nThis field is required." - }, - "name": { - "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".", - "type": "string" - }, - "organizationId": { - "description": "An immutable id for the Organization that is assigned on creation. This\nshould be omitted when creating a new Organization.\nThis field is read-only.\nThis field is deprecated and will be removed in v1. Use name instead.", - "type": "string" - } - }, - "id": "Organization" - }, - "ProjectCreationStatus": { - "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", - "type": "object", - "properties": { - "ready": { - "description": "True if the project creation process is complete.", - "type": "boolean" - }, - "gettable": { - "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", - "type": "boolean" - }, - "createTime": { - "format": "google-datetime", - "description": "Creation time of the project creation workflow.", - "type": "string" - } - }, - "id": "ProjectCreationStatus" - }, - "GetIamPolicyRequest": { - "properties": {}, - "id": "GetIamPolicyRequest", - "description": "Request message for `GetIamPolicy` method.", - "type": "object" - }, "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", "properties": { "permissions": { "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", @@ -112,8 +575,23 @@ "type": "array" } }, - "id": "TestIamPermissionsResponse", - "description": "Response message for `TestIamPermissions` method.", + "id": "TestIamPermissionsResponse" + }, + "GetIamPolicyRequest": { + "properties": {}, + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object" + }, + "OrganizationOwner": { + "properties": { + "directoryCustomerId": { + "description": "The Google for Work customer id used in the Directory API.", + "type": "string" + } + }, + "id": "OrganizationOwner", + "description": "The entity that owns an Organization. The lifetime of the Organization and\nall of its descendants are bound to the `OrganizationOwner`. If the\n`OrganizationOwner` is deleted, the Organization and all its descendants will\nbe deleted.", "type": "object" }, "GetAncestryResponse": { @@ -130,20 +608,7 @@ "description": "Response from the GetAncestry method.", "type": "object" }, - "OrganizationOwner": { - "description": "The entity that owns an Organization. The lifetime of the Organization and\nall of its descendants are bound to the `OrganizationOwner`. If the\n`OrganizationOwner` is deleted, the Organization and all its descendants will\nbe deleted.", - "type": "object", - "properties": { - "directoryCustomerId": { - "description": "The Google for Work customer id used in the Directory API.", - "type": "string" - } - }, - "id": "OrganizationOwner" - }, "AuditLogConfig": { - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object", "properties": { "exemptedMembers": { "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", @@ -169,11 +634,11 @@ "type": "string" } }, - "id": "AuditLogConfig" + "id": "AuditLogConfig", + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object" }, "ListProjectsResponse": { - "description": "A page of the response received from the\nListProjects\nmethod.\n\nA paginated response where more pages are available has\n`next_page_token` set. This token can be used in a subsequent request to\nretrieve the next request page.", - "type": "object", "properties": { "projects": { "description": "The list of Projects that matched the list filter. This list can\nbe paginated.", @@ -187,7 +652,9 @@ "type": "string" } }, - "id": "ListProjectsResponse" + "id": "ListProjectsResponse", + "description": "A page of the response received from the\nListProjects\nmethod.\n\nA paginated response where more pages are available has\n`next_page_token` set. This token can be used in a subsequent request to\nretrieve the next request page.", + "type": "object" }, "GetAncestryRequest": { "properties": {}, @@ -197,22 +664,6 @@ }, "Project": { "properties": { - "lifecycleState": { - "enumDescriptions": [ - "Unspecified state. This is only used/useful for distinguishing\nunset values.", - "The normal and active state.", - "The project has been marked for deletion by the user\n(by invoking DeleteProject)\nor by the system (Google Cloud Platform).\nThis can generally be reversed by invoking UndeleteProject.", - "This lifecycle state is no longer used and is not returned by the API." - ], - "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "ACTIVE", - "DELETE_REQUESTED", - "DELETE_IN_PROGRESS" - ], - "description": "The Project lifecycle state.\n\nRead-only.", - "type": "string" - }, "projectNumber": { "format": "int64", "description": "The number uniquely identifying the project.\n\nExample: \u003ccode\u003e415104041262\u003c/code\u003e\nRead-only.", @@ -241,6 +692,22 @@ "projectId": { "description": "The unique, user-assigned ID of the Project.\nIt must be 6 to 30 lowercase letters, digits, or hyphens.\nIt must start with a letter.\nTrailing hyphens are prohibited.\n\nExample: \u003ccode\u003etokyo-rain-123\u003c/code\u003e\nRead-only after creation.", "type": "string" + }, + "lifecycleState": { + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "ACTIVE", + "DELETE_REQUESTED", + "DELETE_IN_PROGRESS" + ], + "description": "The Project lifecycle state.\n\nRead-only.", + "type": "string", + "enumDescriptions": [ + "Unspecified state. This is only used/useful for distinguishing\nunset values.", + "The normal and active state.", + "The project has been marked for deletion by the user\n(by invoking DeleteProject)\nor by the system (Google Cloud Platform).\nThis can generally be reversed by invoking UndeleteProject.", + "This lifecycle state is no longer used and is not returned by the API." + ] } }, "id": "Project", @@ -248,6 +715,8 @@ "type": "object" }, "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "type": "object", "properties": { "permissions": { "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", @@ -257,42 +726,7 @@ "type": "array" } }, - "id": "TestIamPermissionsRequest", - "description": "Request message for `TestIamPermissions` method.", - "type": "object" - }, - "FolderOperation": { - "description": "Metadata describing a long running folder operation", - "type": "object", - "properties": { - "operationType": { - "enumDescriptions": [ - "Operation type not specified.", - "A create folder operation.", - "A move folder operation." - ], - "enum": [ - "OPERATION_TYPE_UNSPECIFIED", - "CREATE", - "MOVE" - ], - "description": "The type of this operation.", - "type": "string" - }, - "sourceParent": { - "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", - "type": "string" - }, - "displayName": { - "description": "The display name of the folder.", - "type": "string" - }, - "destinationParent": { - "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", - "type": "string" - } - }, - "id": "FolderOperation" + "id": "TestIamPermissionsRequest" }, "Policy": { "properties": { @@ -326,6 +760,8 @@ "type": "object" }, "FolderOperationError": { + "description": "A classification of the Folder Operation error.", + "type": "object", "properties": { "errorMessageId": { "enumDescriptions": [ @@ -356,8 +792,39 @@ "type": "string" } }, - "id": "FolderOperationError", - "description": "A classification of the Folder Operation error.", + "id": "FolderOperationError" + }, + "FolderOperation": { + "properties": { + "operationType": { + "enumDescriptions": [ + "Operation type not specified.", + "A create folder operation.", + "A move folder operation." + ], + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "CREATE", + "MOVE" + ], + "description": "The type of this operation.", + "type": "string" + }, + "sourceParent": { + "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", + "type": "string" + }, + "displayName": { + "description": "The display name of the folder.", + "type": "string" + }, + "destinationParent": { + "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", + "type": "string" + } + }, + "id": "FolderOperation", + "description": "Metadata describing a long running folder operation", "type": "object" }, "ResourceId": { @@ -404,22 +871,6 @@ "description": "Identifying information for a single ancestor of a project.", "type": "object" }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest" - }, "ListOrganizationsResponse": { "properties": { "nextPageToken": { @@ -437,13 +888,121 @@ "id": "ListOrganizationsResponse", "description": "The response returned from the `ListOrganizations` method.", "type": "object" + }, + "SetIamPolicyRequest": { + "properties": { + "updateMask": { + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + } + }, + "id": "SetIamPolicyRequest", + "description": "Request message for `SetIamPolicy` method.", + "type": "object" + }, + "Binding": { + "properties": { + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "Organization": { + "description": "The root node in the resource hierarchy to which a particular entity's\n(e.g., company) resources belong.", + "type": "object", + "properties": { + "organizationId": { + "description": "An immutable id for the Organization that is assigned on creation. This\nshould be omitted when creating a new Organization.\nThis field is read-only.\nThis field is deprecated and will be removed in v1. Use name instead.", + "type": "string" + }, + "lifecycleState": { + "enumDescriptions": [ + "Unspecified state. This is only useful for distinguishing unset values.", + "The normal and active state.", + "The organization has been marked for deletion by the user." + ], + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "ACTIVE", + "DELETE_REQUESTED" + ], + "description": "The organization's current lifecycle state. Assigned by the server.\n@OutputOnly", + "type": "string" + }, + "displayName": { + "description": "A friendly string to be used to refer to the Organization in the UI.\nAssigned by the server, set to the primary domain of the G Suite\ncustomer that owns the organization.\n@OutputOnly", + "type": "string" + }, + "creationTime": { + "format": "google-datetime", + "description": "Timestamp when the Organization was created. Assigned by the server.\n@OutputOnly", + "type": "string" + }, + "owner": { + "description": "The owner of this Organization. The owner should be specified on\ncreation. Once set, it cannot be changed.\nThis field is required.", + "$ref": "OrganizationOwner" + }, + "name": { + "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".", + "type": "string" + } + }, + "id": "Organization" + }, + "UndeleteProjectRequest": { + "description": "The request sent to the UndeleteProject\nmethod.", + "type": "object", + "properties": {}, + "id": "UndeleteProjectRequest" + }, + "ProjectCreationStatus": { + "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", + "type": "object", + "properties": { + "ready": { + "description": "True if the project creation process is complete.", + "type": "boolean" + }, + "gettable": { + "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", + "type": "boolean" + }, + "createTime": { + "format": "google-datetime", + "description": "Creation time of the project creation workflow.", + "type": "string" + } + }, + "id": "ProjectCreationStatus" } }, + "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, - "protocol": "rest", "canonicalName": "Cloud Resource Manager", "auth": { "oauth2": { @@ -457,564 +1016,5 @@ } } }, - "rootUrl": "https://cloudresourcemanager.googleapis.com/", - "ownerDomain": "google.com", - "name": "cloudresourcemanager", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Cloud Resource Manager API", - "ownerName": "Google", - "resources": { - "projects": { - "methods": { - "setIamPolicy": { - "id": "cloudresourcemanager.projects.setIamPolicy", - "path": "v1beta1/projects/{resource}:setIamPolicy", - "description": "Sets the IAM access control policy for the specified Project. Replaces\nany existing policy.\n\nThe following constraints apply when using `setIamPolicy()`:\n\n+ Project does not support `allUsers` and `allAuthenticatedUsers` as\n`members` in a `Binding` of a `Policy`.\n\n+ The owner role can be granted only to `user` and `serviceAccount`.\n\n+ Service accounts can be made owners of a project directly\nwithout any restrictions. However, to be added as an owner, a user must be\ninvited via Cloud Platform console and must accept the invitation.\n\n+ A user cannot be granted the owner role using `setIamPolicy()`. The user\nmust be granted the owner role using the Cloud Platform Console and must\nexplicitly accept the invitation.\n\n+ Invitations to grant the owner role cannot be sent using\n`setIamPolicy()`; they must be sent only using the Cloud Platform Console.\n\n+ Membership changes that leave the project without any owners that have\naccepted the Terms of Service (ToS) will be rejected.\n\n+ If the project is not part of an organization, there must be at least\none owner who has accepted the Terms of Service (ToS) agreement in the\npolicy. Calling `setIamPolicy()` to remove the last ToS-accepted owner\nfrom the policy will fail. This restriction also applies to legacy\nprojects that no longer have owners who have accepted the ToS. Edits to\nIAM policies will be rejected until the lack of a ToS-accepting owner is\nrectified.\n\n+ Calling this method requires enabling the App Engine Admin API.\n\nNote: Removing service accounts from policies or changing their roles\ncan render services completely inoperable. It is important to understand\nhow the service account is being used before removing or updating its\nroles.", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{resource}:setIamPolicy" - }, - "create": { - "response": { - "$ref": "Project" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": { - "useLegacyStack": { - "description": "A safety hatch to opt out of the new reliable project creation process.", - "type": "boolean", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects", - "id": "cloudresourcemanager.projects.create", - "path": "v1beta1/projects", - "description": "Creates a Project resource.\n\nInitially, the Project resource is owned by its creator exclusively.\nThe creator can later grant permission to others to read or update the\nProject.\n\nSeveral APIs are activated automatically for the Project, including\nGoogle Cloud Storage.", - "request": { - "$ref": "Project" - } - }, - "getIamPolicy": { - "description": "Returns the IAM access control policy for the specified Project.\nPermission is denied if the policy or the resource does not exist.", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta1/projects/{resource}:getIamPolicy", - "id": "cloudresourcemanager.projects.getIamPolicy", - "path": "v1beta1/projects/{resource}:getIamPolicy" - }, - "get": { - "description": "Retrieves the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", - "response": { - "$ref": "Project" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "GET", - "parameters": { - "projectId": { - "location": "path", - "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta1/projects/{projectId}", - "id": "cloudresourcemanager.projects.get", - "path": "v1beta1/projects/{projectId}" - }, - "undelete": { - "path": "v1beta1/projects/{projectId}:undelete", - "id": "cloudresourcemanager.projects.undelete", - "request": { - "$ref": "UndeleteProjectRequest" - }, - "description": "Restores the Project identified by the specified\n`project_id` (for example, `my-project-123`).\nYou can only use this method for a Project that has a lifecycle state of\nDELETE_REQUESTED.\nAfter deletion starts, the Project cannot be restored.\n\nThe caller must have modify permissions for this Project.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The project ID (for example, `foo-bar-123`).\n\nRequired.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectId}:undelete" - }, - "getAncestry": { - "id": "cloudresourcemanager.projects.getAncestry", - "path": "v1beta1/projects/{projectId}:getAncestry", - "description": "Gets a list of ancestors in the resource hierarchy for the Project\nidentified by the specified `project_id` (for example, `my-project-123`).\n\nThe caller must have read permissions for this Project.", - "request": { - "$ref": "GetAncestryRequest" - }, - "response": { - "$ref": "GetAncestryResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta1/projects/{projectId}:getAncestry" - }, - "update": { - "response": { - "$ref": "Project" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "PUT", - "parameters": { - "projectId": { - "location": "path", - "description": "The project ID (for example, `my-project-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}", - "id": "cloudresourcemanager.projects.update", - "path": "v1beta1/projects/{projectId}", - "description": "Updates the attributes of the Project identified by the specified\n`project_id` (for example, `my-project-123`).\n\nThe caller must have modify permissions for this Project.", - "request": { - "$ref": "Project" - } - }, - "testIamPermissions": { - "id": "cloudresourcemanager.projects.testIamPermissions", - "path": "v1beta1/projects/{resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified Project.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{resource}:testIamPermissions" - }, - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "projectId" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Project ID (for example, `foo-bar-123`).\n\nRequired.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}", - "path": "v1beta1/projects/{projectId}", - "id": "cloudresourcemanager.projects.delete", - "description": "Marks the Project identified by the specified\n`project_id` (for example, `my-project-123`) for deletion.\nThis method will only affect the Project if the following criteria are met:\n\n+ The Project does not have a billing account associated with it.\n+ The Project has a lifecycle state of\nACTIVE.\n\nThis method changes the Project's lifecycle state from\nACTIVE\nto DELETE_REQUESTED.\nThe deletion starts at an unspecified time, at which point the project is\nno longer accessible.\n\nUntil the deletion completes, you can check the lifecycle state\nchecked by retrieving the Project with GetProject,\nand the Project remains visible to ListProjects.\nHowever, you cannot update the project.\n\nAfter the deletion completes, the Project is not retrievable by\nthe GetProject and\nListProjects methods.\n\nThe caller must have modify permissions for this Project." - }, - "list": { - "id": "cloudresourcemanager.projects.list", - "path": "v1beta1/projects", - "description": "Lists Projects that are visible to the user and satisfy the\nspecified filter. This method returns Projects in an unspecified order.\nNew Projects do not necessarily appear at the end of the list.", - "parameterOrder": [], - "httpMethod": "GET", - "response": { - "$ref": "ListProjectsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "filter": { - "location": "query", - "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n+ `name`\n+ `id`\n+ \u003ccode\u003elabels.\u003cem\u003ekey\u003c/em\u003e\u003c/code\u003e where *key* is the name of a label\n\nSome examples of using labels as filters:\n\n|Filter|Description|\n|------|-----------|\n|name:how*|The project's name starts with \"how\".|\n|name:Howl|The project's name is `Howl` or `howl`.|\n|name:HOWL|Equivalent to above.|\n|NAME:howl|Equivalent to above.|\n|labels.color:*|The project has the label `color`.|\n|labels.color:red|The project's label `color` has the value `red`.|\n|labels.color:red labels.size:big|The project's label `color` has the value `red` and its label `size` has the value `big`.\n\nIf you specify a filter that has both `parent.type` and `parent.id`, then\nthe `resourcemanager.projects.list` permission is checked on the parent.\nIf the user has this permission, all projects under the parent will be\nreturned after remaining filters have been applied. If the user lacks this\npermission, then all projects for which the user has the\n`resourcemanager.projects.get` permission will be returned after remaining\nfilters have been applied. If no filter is specified, the call will return\nprojects for which the user has `resourcemanager.projects.get` permissions.\n\nOptional.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "A pagination token returned from a previous call to ListProjects\nthat indicates from where listing should continue.\n\nOptional.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of Projects to return in the response.\nThe server can return fewer Projects than requested.\nIf unspecified, server picks an appropriate default.\n\nOptional.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1beta1/projects" - } - } - }, - "organizations": { - "methods": { - "setIamPolicy": { - "id": "cloudresourcemanager.organizations.setIamPolicy", - "path": "v1beta1/{+resource}:setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on an Organization resource. Replaces any\nexisting policy. The `resource` field should be the organization's resource\nname, e.g. \"organizations/123\".", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/organizations/{organizationsId}:setIamPolicy" - }, - "getIamPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta1/organizations/{organizationsId}:getIamPolicy", - "path": "v1beta1/{+resource}:getIamPolicy", - "id": "cloudresourcemanager.organizations.getIamPolicy", - "description": "Gets the access control policy for an Organization resource. May be empty\nif no such policy or resource exists. The `resource` field should be the\norganization's resource name, e.g. \"organizations/123\".", - "request": { - "$ref": "GetIamPolicyRequest" - } - }, - "get": { - "path": "v1beta1/{+name}", - "id": "cloudresourcemanager.organizations.get", - "description": "Fetches an Organization resource identified by the specified resource name.", - "httpMethod": "GET", - "response": { - "$ref": "Organization" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "name": { - "description": "The resource name of the Organization to fetch, e.g. \"organizations/1234\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - }, - "organizationId": { - "location": "query", - "description": "The id of the Organization resource to fetch.\nThis field is deprecated and will be removed in v1. Use name instead.", - "type": "string" - } - }, - "flatPath": "v1beta1/organizations/{organizationsId}" - }, - "update": { - "httpMethod": "PUT", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Organization" - }, - "parameters": { - "name": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "Output Only. The resource name of the organization. This is the\norganization's relative path in the API. Its format is\n\"organizations/[organization_id]\". For example, \"organizations/1234\".", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/organizations/{organizationsId}", - "path": "v1beta1/{+name}", - "id": "cloudresourcemanager.organizations.update", - "description": "Updates an Organization resource identified by the specified resource name.", - "request": { - "$ref": "Organization" - } - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "resource": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/organizations/{organizationsId}:testIamPermissions", - "id": "cloudresourcemanager.organizations.testIamPermissions", - "path": "v1beta1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified Organization.\nThe `resource` field should be the organization's resource name,\ne.g. \"organizations/123\"." - }, - "list": { - "description": "Lists Organization resources that are visible to the user and satisfy\nthe specified filter. This method returns Organizations in an unspecified\norder. New Organizations do not necessarily appear at the end of the list.", - "httpMethod": "GET", - "response": { - "$ref": "ListOrganizationsResponse" - }, - "parameterOrder": [], - "parameters": { - "pageToken": { - "location": "query", - "description": "A pagination token returned from a previous call to `ListOrganizations`\nthat indicates from where listing should continue.\nThis field is optional.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of Organizations to return in the response.\nThis field is optional.", - "type": "integer", - "location": "query" - }, - "filter": { - "location": "query", - "description": "An optional query string used to filter the Organizations to return in\nthe response. Filter rules are case-insensitive.\n\n\nOrganizations may be filtered by `owner.directoryCustomerId` or by\n`domain`, where the domain is a Google for Work domain, for example:\n\n|Filter|Description|\n|------|-----------|\n|owner.directorycustomerid:123456789|Organizations with `owner.directory_customer_id` equal to `123456789`.|\n|domain:google.com|Organizations corresponding to the domain `google.com`.|\n\nThis field is optional.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1beta1/organizations", - "path": "v1beta1/organizations", - "id": "cloudresourcemanager.organizations.list" - } - } - } - }, - "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - } - }, - "version": "v1beta1", - "baseUrl": "https://cloudresourcemanager.googleapis.com/", - "servicePath": "", - "description": "The Google Cloud Resource Manager API provides methods for creating, reading, and updating project metadata.", - "kind": "discovery#restDescription", - "basePath": "" + "rootUrl": "https://cloudresourcemanager.googleapis.com/" } diff --git a/vendor/google.golang.org/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/vendor/google.golang.org/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json index d7b28a5fd..07b100314 100644 --- a/vendor/google.golang.org/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json +++ b/vendor/google.golang.org/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json @@ -1,7 +1,416 @@ { + "rootUrl": "https://cloudresourcemanager.googleapis.com/", + "ownerDomain": "google.com", + "name": "cloudresourcemanager", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Google Cloud Resource Manager API", + "ownerName": "Google", + "resources": { + "folders": { + "methods": { + "search": { + "path": "v2beta1/folders:search", + "id": "cloudresourcemanager.folders.search", + "request": { + "$ref": "SearchFoldersRequest" + }, + "description": "Search for folders that match specific filter criteria.\nSearch provides an eventually consistent view of the folders a user has\naccess to which meet the specified filter criteria.\n\nThis will only return folders on which the caller has the\npermission `resourcemanager.folders.get`.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "SearchFoldersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": {}, + "flatPath": "v2beta1/folders:search" + }, + "undelete": { + "flatPath": "v2beta1/folders/{foldersId}:undelete", + "path": "v2beta1/{+name}:undelete", + "id": "cloudresourcemanager.folders.undelete", + "request": { + "$ref": "UndeleteFolderRequest" + }, + "description": "Cancels the deletion request for a Folder. This method may only be\ncalled on a Folder in the [DELETE_REQUESTED] state.\nIn order to succeed, the Folder's parent must be in the [ACTIVE] state.\nIn addition, reintroducing the folder into the tree must not violate\nfolder naming, height and fanout constraints described in the\n[CreateFolder] documentation.\nThe caller must have `resourcemanager.folders.undelete` permission on the\nidentified folder.", + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Folder" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The resource name of the Folder to undelete.\nMust be of the form `folders/{folder_id}`.", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path" + } + } + }, + "get": { + "flatPath": "v2beta1/folders/{foldersId}", + "id": "cloudresourcemanager.folders.get", + "path": "v2beta1/{+name}", + "description": "Retrieves a Folder identified by the supplied resource name.\nValid Folder resource names have the format `folders/{folder_id}`\n(for example, `folders/1234`).\nThe caller must have `resourcemanager.folders.get` permission on the\nidentified folder.", + "response": { + "$ref": "Folder" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The resource name of the Folder to retrieve.\nMust be of the form `folders/{folder_id}`.", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "patch": { + "response": { + "$ref": "Folder" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "Output only. The resource name of the Folder.\nIts format is `folders/{folder_id}`, for example: \"folders/1234\".", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$" + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Fields to be updated.\nOnly the `display_name` can be updated.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/folders/{foldersId}", + "id": "cloudresourcemanager.folders.patch", + "path": "v2beta1/{+name}", + "request": { + "$ref": "Folder" + }, + "description": "Updates a Folder, changing its display_name.\nChanges to the folder display_name will be rejected if they violate either\nthe display_name formatting rules or naming constraints described in\nthe [CreateFolder] documentation.\n+ The Folder's display name must start and end with a letter or digit,\nmay contain letters, digits, spaces, hyphens and underscores and can be\nno longer than 30 characters. This is captured by the regular expression:\n[\\p{L}\\p{N}]({\\p{L}\\p{N}_- ]{0,28}[\\p{L}\\p{N}])?.\nThe caller must have `resourcemanager.folders.update` permission on the\nidentified folder.\n\nIf the update fails due to the unique name constraint then a\nPreconditionFailure explaining this violation will be returned\nin the Status.details field." + }, + "move": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "The resource name of the Folder to move.\nMust be of the form folders/{folder_id}" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/folders/{foldersId}:move", + "id": "cloudresourcemanager.folders.move", + "path": "v2beta1/{+name}:move", + "description": "Moves a Folder under a new resource parent.\nReturns an Operation which can be used to track the progress of the\nfolder move workflow.\nUpon success the Operation.response field will be populated with the\nmoved Folder.\nUpon failure, a FolderOperationError categorizing the failure cause will\nbe returned - if the failure occurs synchronously then the\nFolderOperationError will be returned via the Status.details field\nand if it occurs asynchronously then the FolderOperation will be returned\nvia the the Operation.error field.\nIn addition, the Operation.metadata field will be populated with a\nFolderOperation message as an aid to stateless clients.\nFolder moves will be rejected if they violate either the naming, height\nor fanout constraints described in the [CreateFolder] documentation.\nThe caller must have `resourcemanager.folders.move` permission on the\nfolder's current and proposed new parent.", + "request": { + "$ref": "MoveFolderRequest" + } + }, + "testIamPermissions": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field." + } + }, + "flatPath": "v2beta1/folders/{foldersId}:testIamPermissions", + "path": "v2beta1/{+resource}:testIamPermissions", + "id": "cloudresourcemanager.folders.testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified Folder.\nThe `resource` field should be the Folder's resource name,\ne.g. \"folders/1234\".\n\nThere are no permissions required for making this API call." + }, + "delete": { + "response": { + "$ref": "Folder" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "location": "path", + "description": "the resource name of the Folder to be deleted.\nMust be of the form `folders/{folder_id}`.", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/folders/{foldersId}", + "id": "cloudresourcemanager.folders.delete", + "path": "v2beta1/{+name}", + "description": "Requests deletion of a Folder. The Folder is moved into the\n[DELETE_REQUESTED] state immediately, and is deleted approximately 30 days\nlater. This method may only be called on an empty Folder in the [ACTIVE]\nstate, where a Folder is empty if it doesn't contain any Folders or\nProjects in the [ACTIVE] state.\nThe caller must have `resourcemanager.folders.delete` permission on the\nidentified folder." + }, + "list": { + "response": { + "$ref": "ListFoldersResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "showDeleted": { + "description": "Controls whether Folders in the [DELETE_REQUESTED} state should\nbe returned.", + "type": "boolean", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "A pagination token returned from a previous call to `ListFolders`\nthat indicates where this listing should continue from.\nThis field is optional." + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of Folders to return in the response.\nThis field is optional.", + "type": "integer" + }, + "parent": { + "type": "string", + "location": "query", + "description": "The resource name of the Organization or Folder whose Folders are\nbeing listed.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.\nAccess to this method is controlled by checking the\n`resourcemanager.folders.list` permission on the `parent`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v2beta1/folders", + "id": "cloudresourcemanager.folders.list", + "path": "v2beta1/folders", + "description": "Lists the Folders that are direct descendants of supplied parent resource.\nList provides a strongly consistent view of the Folders underneath\nthe specified parent resource.\nList returns Folders sorted based upon the (ascending) lexical ordering\nof their display_name.\nThe caller must have `resourcemanager.folders.list` permission on the\nidentified parent." + }, + "setIamPolicy": { + "id": "cloudresourcemanager.folders.setIamPolicy", + "path": "v2beta1/{+resource}:setIamPolicy", + "description": "Sets the access control policy on a Folder, replacing any existing policy.\nThe `resource` field should be the Folder's resource name, e.g.\n\"folders/1234\".\nThe caller must have `resourcemanager.folders.setIamPolicy` permission\non the identified folder.", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/folders/{foldersId}:setIamPolicy" + }, + "create": { + "flatPath": "v2beta1/folders", + "id": "cloudresourcemanager.folders.create", + "path": "v2beta1/folders", + "description": "Creates a Folder in the resource hierarchy.\nReturns an Operation which can be used to track the progress of the\nfolder creation workflow.\nUpon success the Operation.response field will be populated with the\ncreated Folder.\n\nIn order to succeed, the addition of this new Folder must not violate\nthe Folder naming, height or fanout constraints.\n+ The Folder's display_name must be distinct from all other Folder's that\nshare its parent.\n+ The addition of the Folder must not cause the active Folder hierarchy\nto exceed a height of 4. Note, the full active + deleted Folder hierarchy\nis allowed to reach a height of 8; this provides additional headroom when\nmoving folders that contain deleted folders.\n+ The addition of the Folder must not cause the total number of Folders\nunder its parent to exceed 100.\n\nIf the operation fails due to a folder constraint violation,\na PreconditionFailure explaining the violation will be returned.\nIf the failure occurs synchronously then the PreconditionFailure\nwill be returned via the Status.details field and if it occurs\nasynchronously then the PreconditionFailure will be returned\nvia the the Operation.error field.\n\nThe caller must have `resourcemanager.folders.create` permission on the\nidentified parent.", + "request": { + "$ref": "Folder" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": { + "parent": { + "description": "The resource name of the new Folder's parent.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "resource": { + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/folders/{foldersId}:getIamPolicy", + "id": "cloudresourcemanager.folders.getIamPolicy", + "path": "v2beta1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for a Folder. The returned policy may be\nempty if no such policy or resource exists. The `resource` field should\nbe the Folder's resource name, e.g. \"folders/1234\".\nThe caller must have `resourcemanager.folders.getIamPolicy` permission\non the identified folder.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST" + } + } + } + }, + "parameters": { + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + } + }, + "version": "v2beta1", "baseUrl": "https://cloudresourcemanager.googleapis.com/", - "kind": "discovery#restDescription", "description": "The Google Cloud Resource Manager API provides methods for creating, reading, and updating project metadata.", + "kind": "discovery#restDescription", "servicePath": "", "basePath": "", "revision": "20170927", @@ -9,283 +418,25 @@ "id": "cloudresourcemanager:v2beta1", "discoveryVersion": "v1", "schemas": { - "Operation": { - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." - }, - "metadata": { - "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." - }, - "AuditConfig": { - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", - "type": "object", - "properties": { - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", - "type": "string" - }, - "auditLogConfigs": { - "items": { - "$ref": "AuditLogConfig" - }, - "type": "array", - "description": "The configuration for logging of each type of permission.\nNext ID: 4" - } - }, - "id": "AuditConfig" - }, - "ListFoldersResponse": { - "properties": { - "folders": { - "description": "A possibly paginated list of Folders that are direct descendants of\nthe specified parent resource.", - "items": { - "$ref": "Folder" - }, - "type": "array" - }, - "nextPageToken": { - "type": "string", - "description": "A pagination token returned from a previous call to `ListFolders`\nthat indicates from where listing should continue.\nThis field is optional." - } - }, - "id": "ListFoldersResponse", - "description": "The ListFolders response message.", - "type": "object" - }, - "MoveFolderRequest": { - "id": "MoveFolderRequest", - "description": "The MoveFolder request message.", - "type": "object", - "properties": { - "destinationParent": { - "description": "The resource name of the Folder or Organization to reparent\nthe folder under.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.", - "type": "string" - } - } - }, - "SearchFoldersResponse": { - "description": "The response message for searching folders.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "A pagination token returned from a previous call to `SearchFolders`\nthat indicates from where searching should continue.\nThis field is optional.", - "type": "string" - }, - "folders": { - "description": "A possibly paginated folder search results.\nthe specified parent resource.", - "items": { - "$ref": "Folder" - }, - "type": "array" - } - }, - "id": "SearchFoldersResponse" - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - }, - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - } - }, - "id": "SetIamPolicyRequest" - }, - "Status": { - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - } - } - }, - "Binding": { - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding", - "description": "Associates `members` with a `role`.", - "type": "object" - }, - "SearchFoldersRequest": { - "description": "The request message for searching folders.", - "type": "object", - "properties": { - "pageToken": { - "description": "A pagination token returned from a previous call to `SearchFolders`\nthat indicates from where search should continue.\nThis field is optional.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of folders to return in the response.\nThis field is optional.", - "type": "integer" - }, - "query": { - "description": "Search criteria used to select the Folders to return.\nIf no search criteria is specified then all accessible folders will be\nreturned.\n\nQuery expressions can be used to restrict results based upon displayName,\nlifecycleState and parent, where the operators `=`, `NOT`, `AND` and `OR`\ncan be used along with the suffix wildcard symbol `*`.\n\nSome example queries are:\n|Query|Description|\n|------|-----------|\n|displayName=Test*|Folders whose display name starts with \"Test\".|\n|lifecycleState=ACTIVE|Folders whose lifecycleState is ACTIVE.|\n|parent=folders/123|Folders whose parent is \"folders/123\".|\n|parent=folders/123 AND lifecycleState=ACTIVE|Active folders whose\nparent is \"folders/123\".|", - "type": "string" - } - }, - "id": "SearchFoldersRequest" - }, - "ProjectCreationStatus": { - "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", - "type": "object", - "properties": { - "ready": { - "description": "True if the project creation process is complete.", - "type": "boolean" - }, - "gettable": { - "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", - "type": "boolean" - }, - "createTime": { - "format": "google-datetime", - "description": "Creation time of the project creation workflow.", - "type": "string" - } - }, - "id": "ProjectCreationStatus" - }, - "Folder": { - "description": "A Folder in an Organization's resource hierarchy, used to\norganize that Organization's resources.", - "type": "object", - "properties": { - "parent": { - "description": "The Folder’s parent's resource name.\nUpdates to the folder's parent must be performed via [MoveFolders].", - "type": "string" - }, - "createTime": { - "format": "google-datetime", - "description": "Output only. Timestamp when the Folder was created. Assigned by the server.", - "type": "string" - }, - "lifecycleState": { - "description": "Output only. The lifecycle state of the folder.\nUpdates to the lifecycle_state must be performed via\n[DeleteFolder] and [UndeleteFolder].", - "type": "string", - "enumDescriptions": [ - "Unspecified state.", - "The normal and active state.", - "The folder has been marked for deletion by the user." - ], - "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "ACTIVE", - "DELETE_REQUESTED" - ] - }, - "name": { - "type": "string", - "description": "Output only. The resource name of the Folder.\nIts format is `folders/{folder_id}`, for example: \"folders/1234\"." - }, - "displayName": { - "description": "The folder’s display name.\nA folder’s display name must be unique amongst its siblings, e.g.\nno two folders with the same parent can share the same display name.\nThe display name must start and end with a letter or digit, may contain\nletters, digits, spaces, hyphens and underscores and can be no longer\nthan 30 characters. This is captured by the regular expression:\n[\\p{L}\\p{N}]({\\p{L}\\p{N}_- ]{0,28}[\\p{L}\\p{N}])?.", - "type": "string" - } - }, - "id": "Folder" - }, - "GetIamPolicyRequest": { - "description": "Request message for `GetIamPolicy` method.", - "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" - }, - "TestIamPermissionsResponse": { - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse", - "description": "Response message for `TestIamPermissions` method.", - "type": "object" - }, "UndeleteFolderRequest": { + "description": "The UndeleteFolder request message.", "type": "object", "properties": {}, - "id": "UndeleteFolderRequest", - "description": "The UndeleteFolder request message." + "id": "UndeleteFolderRequest" }, "AuditLogConfig": { "id": "AuditLogConfig", "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", "type": "object", "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, "logType": { - "enum": [ - "LOG_TYPE_UNSPECIFIED", - "ADMIN_READ", - "DATA_WRITE", - "DATA_READ" - ], "description": "The log type that this config enables.", "type": "string", "enumDescriptions": [ @@ -293,20 +444,17 @@ "Admin reads. Example: CloudIAM getIamPolicy", "Data writes. Example: CloudSQL Users create", "Data reads. Example: CloudSQL Users list" + ], + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" ] - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" } } }, "TestIamPermissionsRequest": { - "description": "Request message for `TestIamPermissions` method.", - "type": "object", "properties": { "permissions": { "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", @@ -316,14 +464,79 @@ "type": "array" } }, - "id": "TestIamPermissionsRequest" + "id": "TestIamPermissionsRequest", + "description": "Request message for `TestIamPermissions` method.", + "type": "object" + }, + "Policy": { + "id": "Policy", + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object", + "properties": { + "etag": { + "format": "byte", + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "type": "string" + }, + "version": { + "format": "int32", + "description": "Version of the `Policy`. The default version is 0.", + "type": "integer" + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "items": { + "$ref": "Binding" + }, + "type": "array" + } + } + }, + "FolderOperation": { + "description": "Metadata describing a long running folder operation", + "type": "object", + "properties": { + "operationType": { + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "CREATE", + "MOVE" + ], + "description": "The type of this operation.", + "type": "string", + "enumDescriptions": [ + "Operation type not specified.", + "A create folder operation.", + "A move folder operation." + ] + }, + "sourceParent": { + "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", + "type": "string" + }, + "displayName": { + "type": "string", + "description": "The display name of the folder." + }, + "destinationParent": { + "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", + "type": "string" + } + }, + "id": "FolderOperation" }, "FolderOperationError": { + "description": "A classification of the Folder Operation error.", "type": "object", "properties": { "errorMessageId": { - "description": "The type of operation error experienced.", - "type": "string", "enumDescriptions": [ "The error type was unrecognized or unspecified.", "The attempted action would violate the max folder depth constraint.", @@ -347,81 +560,277 @@ "FOLDER_BEING_MOVED_VIOLATION", "FOLDER_TO_DELETE_NON_EMPTY_VIOLATION", "DELETED_FOLDER_HEIGHT_VIOLATION" - ] + ], + "description": "The type of operation error experienced.", + "type": "string" } }, - "id": "FolderOperationError", - "description": "A classification of the Folder Operation error." + "id": "FolderOperationError" }, - "FolderOperation": { + "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", "properties": { - "destinationParent": { - "description": "The resource name of the folder or organization we are either creating\nthe folder under or moving the folder to.", + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", "type": "string" }, - "operationType": { - "description": "The type of this operation.", + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any." + } + }, + "id": "Operation" + }, + "AuditConfig": { + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object", + "properties": { + "service": { + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "type": "string" + }, + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.\nNext ID: 4", + "items": { + "$ref": "AuditLogConfig" + }, + "type": "array" + } + }, + "id": "AuditConfig" + }, + "ListFoldersResponse": { + "id": "ListFoldersResponse", + "description": "The ListFolders response message.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "A pagination token returned from a previous call to `ListFolders`\nthat indicates from where listing should continue.\nThis field is optional.", + "type": "string" + }, + "folders": { + "description": "A possibly paginated list of Folders that are direct descendants of\nthe specified parent resource.", + "items": { + "$ref": "Folder" + }, + "type": "array" + } + } + }, + "MoveFolderRequest": { + "description": "The MoveFolder request message.", + "type": "object", + "properties": { + "destinationParent": { + "description": "The resource name of the Folder or Organization to reparent\nthe folder under.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.", + "type": "string" + } + }, + "id": "MoveFolderRequest" + }, + "SearchFoldersResponse": { + "description": "The response message for searching folders.", + "type": "object", + "properties": { + "folders": { + "description": "A possibly paginated folder search results.\nthe specified parent resource.", + "items": { + "$ref": "Folder" + }, + "type": "array" + }, + "nextPageToken": { "type": "string", + "description": "A pagination token returned from a previous call to `SearchFolders`\nthat indicates from where searching should continue.\nThis field is optional." + } + }, + "id": "SearchFoldersResponse" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "updateMask": { + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "type": "string" + }, + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + } + }, + "id": "SetIamPolicyRequest" + }, + "Status": { + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "type": "array" + } + } + }, + "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", + "properties": { + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding" + }, + "SearchFoldersRequest": { + "description": "The request message for searching folders.", + "type": "object", + "properties": { + "pageSize": { + "format": "int32", + "description": "The maximum number of folders to return in the response.\nThis field is optional.", + "type": "integer" + }, + "query": { + "description": "Search criteria used to select the Folders to return.\nIf no search criteria is specified then all accessible folders will be\nreturned.\n\nQuery expressions can be used to restrict results based upon displayName,\nlifecycleState and parent, where the operators `=`, `NOT`, `AND` and `OR`\ncan be used along with the suffix wildcard symbol `*`.\n\nSome example queries are:\n|Query|Description|\n|------|-----------|\n|displayName=Test*|Folders whose display name starts with \"Test\".|\n|lifecycleState=ACTIVE|Folders whose lifecycleState is ACTIVE.|\n|parent=folders/123|Folders whose parent is \"folders/123\".|\n|parent=folders/123 AND lifecycleState=ACTIVE|Active folders whose\nparent is \"folders/123\".|", + "type": "string" + }, + "pageToken": { + "description": "A pagination token returned from a previous call to `SearchFolders`\nthat indicates from where search should continue.\nThis field is optional.", + "type": "string" + } + }, + "id": "SearchFoldersRequest" + }, + "ProjectCreationStatus": { + "id": "ProjectCreationStatus", + "description": "A status object which is used as the `metadata` field for the Operation\nreturned by CreateProject. It provides insight for when significant phases of\nProject creation have completed.", + "type": "object", + "properties": { + "ready": { + "description": "True if the project creation process is complete.", + "type": "boolean" + }, + "gettable": { + "description": "True if the project can be retrieved using GetProject. No other operations\non the project are guaranteed to work until the project creation is\ncomplete.", + "type": "boolean" + }, + "createTime": { + "format": "google-datetime", + "description": "Creation time of the project creation workflow.", + "type": "string" + } + } + }, + "Folder": { + "id": "Folder", + "description": "A Folder in an Organization's resource hierarchy, used to\norganize that Organization's resources.", + "type": "object", + "properties": { + "parent": { + "type": "string", + "description": "The Folder’s parent's resource name.\nUpdates to the folder's parent must be performed via [MoveFolders]." + }, + "createTime": { + "format": "google-datetime", + "description": "Output only. Timestamp when the Folder was created. Assigned by the server.", + "type": "string" + }, + "lifecycleState": { "enumDescriptions": [ - "Operation type not specified.", - "A create folder operation.", - "A move folder operation." + "Unspecified state.", + "The normal and active state.", + "The folder has been marked for deletion by the user." ], "enum": [ - "OPERATION_TYPE_UNSPECIFIED", - "CREATE", - "MOVE" - ] + "LIFECYCLE_STATE_UNSPECIFIED", + "ACTIVE", + "DELETE_REQUESTED" + ], + "description": "Output only. The lifecycle state of the folder.\nUpdates to the lifecycle_state must be performed via\n[DeleteFolder] and [UndeleteFolder].", + "type": "string" }, - "sourceParent": { - "description": "The resource name of the folder's parent.\nOnly applicable when the operation_type is MOVE.", + "name": { + "description": "Output only. The resource name of the Folder.\nIts format is `folders/{folder_id}`, for example: \"folders/1234\".", "type": "string" }, "displayName": { - "description": "The display name of the folder.", + "description": "The folder’s display name.\nA folder’s display name must be unique amongst its siblings, e.g.\nno two folders with the same parent can share the same display name.\nThe display name must start and end with a letter or digit, may contain\nletters, digits, spaces, hyphens and underscores and can be no longer\nthan 30 characters. This is captured by the regular expression:\n[\\p{L}\\p{N}]({\\p{L}\\p{N}_- ]{0,28}[\\p{L}\\p{N}])?.", "type": "string" } - }, - "id": "FolderOperation", - "description": "Metadata describing a long running folder operation", - "type": "object" + } }, - "Policy": { + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", "properties": { - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - }, - "auditConfigs": { + "permissions": { "items": { - "$ref": "AuditConfig" + "type": "string" }, "type": "array", - "description": "Specifies cloud audit logging configuration for this policy." - }, - "bindings": { - "items": { - "$ref": "Binding" - }, - "type": "array", - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error." + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed." } }, - "id": "Policy", - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object" + "id": "TestIamPermissionsResponse" + }, + "GetIamPolicyRequest": { + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object", + "properties": {} } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "canonicalName": "Cloud Resource Manager", "auth": { @@ -435,414 +844,5 @@ } } } - }, - "rootUrl": "https://cloudresourcemanager.googleapis.com/", - "ownerDomain": "google.com", - "name": "cloudresourcemanager", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Cloud Resource Manager API", - "ownerName": "Google", - "resources": { - "folders": { - "methods": { - "move": { - "request": { - "$ref": "MoveFolderRequest" - }, - "description": "Moves a Folder under a new resource parent.\nReturns an Operation which can be used to track the progress of the\nfolder move workflow.\nUpon success the Operation.response field will be populated with the\nmoved Folder.\nUpon failure, a FolderOperationError categorizing the failure cause will\nbe returned - if the failure occurs synchronously then the\nFolderOperationError will be returned via the Status.details field\nand if it occurs asynchronously then the FolderOperation will be returned\nvia the the Operation.error field.\nIn addition, the Operation.metadata field will be populated with a\nFolderOperation message as an aid to stateless clients.\nFolder moves will be rejected if they violate either the naming, height\nor fanout constraints described in the [CreateFolder] documentation.\nThe caller must have `resourcemanager.folders.move` permission on the\nfolder's current and proposed new parent.", - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "The resource name of the Folder to move.\nMust be of the form folders/{folder_id}" - } - }, - "flatPath": "v2beta1/folders/{foldersId}:move", - "path": "v2beta1/{+name}:move", - "id": "cloudresourcemanager.folders.move" - }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified Folder.\nThe `resource` field should be the Folder's resource name,\ne.g. \"folders/1234\".\n\nThere are no permissions required for making this API call.", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta1/folders/{foldersId}:testIamPermissions", - "id": "cloudresourcemanager.folders.testIamPermissions", - "path": "v2beta1/{+resource}:testIamPermissions" - }, - "delete": { - "description": "Requests deletion of a Folder. The Folder is moved into the\n[DELETE_REQUESTED] state immediately, and is deleted approximately 30 days\nlater. This method may only be called on an empty Folder in the [ACTIVE]\nstate, where a Folder is empty if it doesn't contain any Folders or\nProjects in the [ACTIVE] state.\nThe caller must have `resourcemanager.folders.delete` permission on the\nidentified folder.", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Folder" - }, - "httpMethod": "DELETE", - "parameters": { - "name": { - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "the resource name of the Folder to be deleted.\nMust be of the form `folders/{folder_id}`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta1/folders/{foldersId}", - "id": "cloudresourcemanager.folders.delete", - "path": "v2beta1/{+name}" - }, - "list": { - "flatPath": "v2beta1/folders", - "path": "v2beta1/folders", - "id": "cloudresourcemanager.folders.list", - "description": "Lists the Folders that are direct descendants of supplied parent resource.\nList provides a strongly consistent view of the Folders underneath\nthe specified parent resource.\nList returns Folders sorted based upon the (ascending) lexical ordering\nof their display_name.\nThe caller must have `resourcemanager.folders.list` permission on the\nidentified parent.", - "httpMethod": "GET", - "response": { - "$ref": "ListFoldersResponse" - }, - "parameterOrder": [], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of Folders to return in the response.\nThis field is optional.", - "type": "integer" - }, - "parent": { - "description": "The resource name of the Organization or Folder whose Folders are\nbeing listed.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.\nAccess to this method is controlled by checking the\n`resourcemanager.folders.list` permission on the `parent`.", - "type": "string", - "location": "query" - }, - "showDeleted": { - "description": "Controls whether Folders in the [DELETE_REQUESTED} state should\nbe returned.", - "type": "boolean", - "location": "query" - }, - "pageToken": { - "description": "A pagination token returned from a previous call to `ListFolders`\nthat indicates where this listing should continue from.\nThis field is optional.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, - "create": { - "id": "cloudresourcemanager.folders.create", - "path": "v2beta1/folders", - "description": "Creates a Folder in the resource hierarchy.\nReturns an Operation which can be used to track the progress of the\nfolder creation workflow.\nUpon success the Operation.response field will be populated with the\ncreated Folder.\n\nIn order to succeed, the addition of this new Folder must not violate\nthe Folder naming, height or fanout constraints.\n+ The Folder's display_name must be distinct from all other Folder's that\nshare its parent.\n+ The addition of the Folder must not cause the active Folder hierarchy\nto exceed a height of 4. Note, the full active + deleted Folder hierarchy\nis allowed to reach a height of 8; this provides additional headroom when\nmoving folders that contain deleted folders.\n+ The addition of the Folder must not cause the total number of Folders\nunder its parent to exceed 100.\n\nIf the operation fails due to a folder constraint violation,\na PreconditionFailure explaining the violation will be returned.\nIf the failure occurs synchronously then the PreconditionFailure\nwill be returned via the Status.details field and if it occurs\nasynchronously then the PreconditionFailure will be returned\nvia the the Operation.error field.\n\nThe caller must have `resourcemanager.folders.create` permission on the\nidentified parent.", - "request": { - "$ref": "Folder" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": { - "parent": { - "location": "query", - "description": "The resource name of the new Folder's parent.\nMust be of the form `folders/{folder_id}` or `organizations/{org_id}`.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta1/folders" - }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta1/folders/{foldersId}:setIamPolicy", - "id": "cloudresourcemanager.folders.setIamPolicy", - "path": "v2beta1/{+resource}:setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on a Folder, replacing any existing policy.\nThe `resource` field should be the Folder's resource name, e.g.\n\"folders/1234\".\nThe caller must have `resourcemanager.folders.setIamPolicy` permission\non the identified folder." - }, - "getIamPolicy": { - "id": "cloudresourcemanager.folders.getIamPolicy", - "path": "v2beta1/{+resource}:getIamPolicy", - "description": "Gets the access control policy for a Folder. The returned policy may be\nempty if no such policy or resource exists. The `resource` field should\nbe the Folder's resource name, e.g. \"folders/1234\".\nThe caller must have `resourcemanager.folders.getIamPolicy` permission\non the identified folder.", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v2beta1/folders/{foldersId}:getIamPolicy" - }, - "search": { - "response": { - "$ref": "SearchFoldersResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": {}, - "flatPath": "v2beta1/folders:search", - "id": "cloudresourcemanager.folders.search", - "path": "v2beta1/folders:search", - "request": { - "$ref": "SearchFoldersRequest" - }, - "description": "Search for folders that match specific filter criteria.\nSearch provides an eventually consistent view of the folders a user has\naccess to which meet the specified filter criteria.\n\nThis will only return folders on which the caller has the\npermission `resourcemanager.folders.get`." - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Folder" - }, - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "Output only. The resource name of the Folder.\nIts format is `folders/{folder_id}`, for example: \"folders/1234\"." - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Fields to be updated.\nOnly the `display_name` can be updated.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta1/folders/{foldersId}", - "path": "v2beta1/{+name}", - "id": "cloudresourcemanager.folders.patch", - "description": "Updates a Folder, changing its display_name.\nChanges to the folder display_name will be rejected if they violate either\nthe display_name formatting rules or naming constraints described in\nthe [CreateFolder] documentation.\n+ The Folder's display name must start and end with a letter or digit,\nmay contain letters, digits, spaces, hyphens and underscores and can be\nno longer than 30 characters. This is captured by the regular expression:\n[\\p{L}\\p{N}]({\\p{L}\\p{N}_- ]{0,28}[\\p{L}\\p{N}])?.\nThe caller must have `resourcemanager.folders.update` permission on the\nidentified folder.\n\nIf the update fails due to the unique name constraint then a\nPreconditionFailure explaining this violation will be returned\nin the Status.details field.", - "request": { - "$ref": "Folder" - } - }, - "get": { - "description": "Retrieves a Folder identified by the supplied resource name.\nValid Folder resource names have the format `folders/{folder_id}`\n(for example, `folders/1234`).\nThe caller must have `resourcemanager.folders.get` permission on the\nidentified folder.", - "response": { - "$ref": "Folder" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The resource name of the Folder to retrieve.\nMust be of the form `folders/{folder_id}`.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v2beta1/folders/{foldersId}", - "id": "cloudresourcemanager.folders.get", - "path": "v2beta1/{+name}" - }, - "undelete": { - "response": { - "$ref": "Folder" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the Folder to undelete.\nMust be of the form `folders/{folder_id}`.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$" - } - }, - "flatPath": "v2beta1/folders/{foldersId}:undelete", - "id": "cloudresourcemanager.folders.undelete", - "path": "v2beta1/{+name}:undelete", - "request": { - "$ref": "UndeleteFolderRequest" - }, - "description": "Cancels the deletion request for a Folder. This method may only be\ncalled on a Folder in the [DELETE_REQUESTED] state.\nIn order to succeed, the Folder's parent must be in the [ACTIVE] state.\nIn addition, reintroducing the folder into the tree must not violate\nfolder naming, height and fanout constraints described in the\n[CreateFolder] documentation.\nThe caller must have `resourcemanager.folders.undelete` permission on the\nidentified folder." - } - } - } - }, - "parameters": { - "quotaUser": { - "type": "string", - "location": "query", - "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." - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "type": "string", - "location": "query", - "description": "OAuth bearer token." - }, - "oauth_token": { - "type": "string", - "location": "query", - "description": "OAuth 2.0 token for the current user." - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, - "$.xgafv": { - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ] - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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", - "description": "Data format for response.", - "default": "json" - }, - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - } - }, - "version": "v2beta1" + } } diff --git a/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-api.json b/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-api.json index c26db730d..e5112e07e 100644 --- a/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-api.json +++ b/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-api.json @@ -1,1463 +1,17 @@ { - "fullyEncodeReservedExpansion": true, - "title": "Cloud Tasks API", - "ownerName": "Google", - "resources": { - "projects": { - "resources": { - "locations": { - "methods": { - "get": { - "description": "Get information about a location.", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Location" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "Resource name for the location.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}", - "id": "cloudtasks.projects.locations.get", - "path": "v2beta2/{+name}" - }, - "list": { - "description": "Lists information about the supported locations for this service.", - "httpMethod": "GET", - "response": { - "$ref": "ListLocationsResponse" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "The standard list page token.", - "type": "string", - "location": "query" - }, - "name": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The resource that owns the locations collection, if applicable.", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations", - "path": "v2beta2/{+name}/locations", - "id": "cloudtasks.projects.locations.list" - } - }, - "resources": { - "queues": { - "methods": { - "patch": { - "response": { - "$ref": "Queue" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "A mask used to specify which fields of the queue are being updated.\n\nIf empty, then all fields will be updated.", - "type": "string" - }, - "name": { - "description": "The queue name.\n\nThe queue name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n\nCaller-specified and required in CreateQueueRequest, after which\nit becomes output only.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", - "id": "cloudtasks.projects.locations.queues.patch", - "path": "v2beta2/{+name}", - "request": { - "$ref": "Queue" - }, - "description": "Updates a queue.\n\nThis method creates the queue if it does not exist and updates\nthe queue if it does exist.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy)." - }, - "get": { - "response": { - "$ref": "Queue" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path", - "description": "Required.\n\nThe resource name of the queue. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", - "id": "cloudtasks.projects.locations.queues.get", - "path": "v2beta2/{+name}", - "description": "Gets a queue." - }, - "purge": { - "description": "Purges a queue by deleting all of its tasks.\n\nAll tasks created before this method is called are permanently deleted.\n\nPurge operations can take up to one minute to take effect. Tasks\nmight be dispatched before the purge takes effect. A purge is irreversible.", - "request": { - "$ref": "PurgeQueueRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Queue" - }, - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path", - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:purge", - "path": "v2beta2/{+name}:purge", - "id": "cloudtasks.projects.locations.queues.purge" - }, - "testIamPermissions": { - "path": "v2beta2/{+resource}:testIamPermissions", - "id": "cloudtasks.projects.locations.queues.testIamPermissions", - "description": "Returns permissions that a caller has on a Queue.\nIf the resource does not exist, this will return an empty set of\npermissions, not a google.rpc.Code.NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.\n", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:testIamPermissions" - }, - "pause": { - "description": "Pauses the queue.\n\nIf a queue is paused then the system will stop executing the\ntasks in the queue until it is resumed via\nCloudTasks.ResumeQueue. Tasks can still be added when the\nqueue is paused. The state of the queue is stored in\nQueue.queue_state; if paused it will be set to\nQueue.QueueState.PAUSED.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).", - "request": { - "$ref": "PauseQueueRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Queue" - }, - "parameters": { - "name": { - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:pause", - "path": "v2beta2/{+name}:pause", - "id": "cloudtasks.projects.locations.queues.pause" - }, - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path", - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", - "path": "v2beta2/{+name}", - "id": "cloudtasks.projects.locations.queues.delete", - "description": "Deletes a queue.\n\nThis command will delete the queue even if it has tasks in it.\n\nNote: If you delete a queue, a queue with the same name can't be created\nfor 7 days.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy)." - }, - "list": { - "parameters": { - "pageToken": { - "format": "byte", - "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListQueuesResponse.next_page_token returned from the previous\ncall to CloudTasks.ListQueues method. It is an error to\nswitch the value of ListQueuesRequest.filter while iterating\nthrough pages.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size.\n\nThe maximum page size is 9800. If unspecified, the page size will\nbe the maximum. Fewer queues than requested might be returned,\neven if more queues exist; use\nListQueuesResponse.next_page_token to determine if more\nqueues exist.", - "type": "integer", - "location": "query" - }, - "parent": { - "description": "Required.\n\nThe location name.\nFor example: `projects/PROJECT_ID/locations/LOCATION_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - }, - "filter": { - "location": "query", - "description": "`filter` can be used to specify a subset of queues. Any Queue\nfield can be used as a filter and several operators as supported.\nFor example: `\u003c=, \u003c, \u003e=, \u003e, !=, =, :`. The filter syntax is the same as\ndescribed in\n[Stackdriver's Advanced Logs Filters](/logging/docs/view/advanced_filters).\n\nSample filter \"app_engine_http_target: *\".\n\nNote that using filters might cause fewer queues than the\nrequested_page size to be returned.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", - "path": "v2beta2/{+parent}/queues", - "id": "cloudtasks.projects.locations.queues.list", - "description": "Lists queues.\n\nQueues are returned in lexicographical order.", - "httpMethod": "GET", - "response": { - "$ref": "ListQueuesResponse" - }, - "parameterOrder": [ - "parent" - ] - }, - "create": { - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", - "id": "cloudtasks.projects.locations.queues.create", - "path": "v2beta2/{+parent}/queues", - "request": { - "$ref": "Queue" - }, - "description": "Creates a queue.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).", - "response": { - "$ref": "Queue" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "parent": { - "location": "path", - "description": "Required.\n\nThe location name in which the queue will be created.\nFor example: `projects/PROJECT_ID/locations/LOCATION_ID`\n\nThe list of allowed locations can be obtained by calling Cloud\nTasks' implementation of\ngoogle.cloud.location.Locations.ListLocations.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$" - } - } - }, - "setIamPolicy": { - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy for a Queue. Replaces any existing\npolicy.\n\nAuthorization requires the following [Google IAM](/iam) permission on the\nspecified resource parent:\n\n* `cloudtasks.queues.setIamPolicy`\n", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:setIamPolicy", - "id": "cloudtasks.projects.locations.queues.setIamPolicy", - "path": "v2beta2/{+resource}:setIamPolicy" - }, - "resume": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Queue" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:resume", - "path": "v2beta2/{+name}:resume", - "id": "cloudtasks.projects.locations.queues.resume", - "request": { - "$ref": "ResumeQueueRequest" - }, - "description": "Resume a queue.\n\nThis method resumes a queue after it has been\nQueue.QueueState.PAUSED or Queue.QueueState.DISABLED. The state of\na queue is stored in Queue.queue_state; after calling this method it\nwill be set to Queue.QueueState.RUNNING.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).\n\nWARNING: Resuming many high-QPS queues at the same time can\nlead to target overloading. If you are resuming high-QPS\nqueues, follow the 500/50/5 pattern described in\n[Managing Cloud Tasks Scaling Risks](/cloud-tasks/pdfs/managing-cloud-tasks-scaling-risks-2017-06-05.pdf)." - }, - "getIamPolicy": { - "path": "v2beta2/{+resource}:getIamPolicy", - "id": "cloudtasks.projects.locations.queues.getIamPolicy", - "description": "Gets the access control policy for a Queue.\nReturns an empty policy if the resource exists and does not have a policy\nset.\n\nAuthorization requires the following [Google IAM](/iam) permission on the\nspecified resource parent:\n\n* `cloudtasks.queues.getIamPolicy`\n", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:getIamPolicy" - } - }, - "resources": { - "tasks": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", - "location": "path", - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}", - "path": "v2beta2/{+name}", - "id": "cloudtasks.projects.locations.queues.tasks.delete", - "description": "Deletes a task.\n\nA task can be deleted if it is scheduled or dispatched. A task\ncannot be deleted if it has completed successfully or permanently\nfailed." - }, - "pull": { - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks:pull", - "path": "v2beta2/{+name}/tasks:pull", - "id": "cloudtasks.projects.locations.queues.tasks.pull", - "request": { - "$ref": "PullTasksRequest" - }, - "description": "Pulls tasks from a pull queue and acquires a lease on them for a\nspecified PullTasksRequest.lease_duration.\n\nThis method is invoked by the lease holder to obtain the\nlease. The lease holder must acknowledge the task via\nCloudTasks.AcknowledgeTask after they have performed the work\nassociated with the task.\n\nThe payload is intended to store data that the lease holder needs\nto perform the work associated with the task. To return the\npayloads in the PullTasksResponse, set\nPullTasksRequest.response_view to Task.View.FULL.", - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "PullTasksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$" - } - } - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "ListTasksResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path", - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`" - }, - "pageToken": { - "format": "byte", - "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListTasksResponse.next_page_token returned from the previous\ncall to CloudTasks.ListTasks method.\n\nThe page token is valid for only 2 hours.", - "type": "string", - "location": "query" - }, - "orderBy": { - "location": "query", - "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullMessage.tag. All results will be\nreturned in ascending order. The default ordering is by\nTask.schedule_time.", - "type": "string" - }, - "responseView": { - "location": "query", - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. Fewer tasks than requested might be returned.\n\nThe maximum page size is 1000. If unspecified, the page size will\nbe the maximum. Fewer tasks than requested might be returned,\neven if more tasks exist; use\nListTasksResponse.next_page_token to determine if more tasks\nexist.", - "type": "integer" - } - }, - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", - "path": "v2beta2/{+parent}/tasks", - "id": "cloudtasks.projects.locations.queues.tasks.list", - "description": "Lists the tasks in a queue.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default due to performance\nconsiderations; ListTasksRequest.response_view controls the\nsubset of information which is returned." - }, - "create": { - "path": "v2beta2/{+parent}/tasks", - "id": "cloudtasks.projects.locations.queues.tasks.create", - "description": "Creates a task and adds it to a queue.\n\nTo add multiple tasks at the same time, use\n[HTTP batching](/storage/docs/json_api/v1/how-tos/batch)\nor the batching documentation for your client library, for example\nhttps://developers.google.com/api-client-library/python/guide/batch.\n\nTasks cannot be updated after creation; there is no UpdateTask command.", - "request": { - "$ref": "CreateTaskRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Task" - }, - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", - "location": "path", - "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\nThe queue must already exist." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks" - }, - "run": { - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:run", - "path": "v2beta2/{+name}:run", - "id": "cloudtasks.projects.locations.queues.tasks.run", - "description": "Forces a task to run now.\n\nThis command is meant to be used for manual debugging. For\nexample, CloudTasks.RunTask can be used to retry a failed\ntask after a fix has been made or to manually force a task to be\ndispatched now.\n\nWhen this method is called, Cloud Tasks will dispatch the task to its\ntarget, even if the queue is Queue.QueueState.PAUSED.\n\nThe dispatched task is returned. That is, the task that is returned\ncontains the Task.task_status after the task is dispatched but\nbefore the task is received by its target.\n\nIf Cloud Tasks receives a successful response from the task's\nhandler, then the task will be deleted; otherwise the task's\nTask.schedule_time will be reset to the time that\nCloudTasks.RunTask was called plus the retry delay specified\nin the queue and task's RetryConfig.\n\nCloudTasks.RunTask returns google.rpc.Code.NOT_FOUND when\nit is called on a task that has already succeeded or permanently\nfailed. google.rpc.Code.FAILED_PRECONDITION is returned when\nCloudTasks.RunTask is called on task that is dispatched or\nalready running.", - "request": { - "$ref": "RunTaskRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Task" - }, - "parameters": { - "name": { - "location": "path", - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "cancelLease": { - "description": "Cancel a pull task's lease.\n\nThe lease holder can use this method to cancel a task's lease\nby setting Task.schedule_time to now. This will make the task\navailable to be leased to the next caller of CloudTasks.PullTasks.", - "request": { - "$ref": "CancelLeaseRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Task" - }, - "parameters": { - "name": { - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:cancelLease", - "path": "v2beta2/{+name}:cancelLease", - "id": "cloudtasks.projects.locations.queues.tasks.cancelLease" - }, - "acknowledge": { - "path": "v2beta2/{+name}:acknowledge", - "id": "cloudtasks.projects.locations.queues.tasks.acknowledge", - "description": "Acknowledges a pull task.\n\nThe lease holder, that is, the entity that received this task in\na PullTasksResponse, must call this method to indicate that\nthe work associated with the task has finished.\n\nThe lease holder must acknowledge a task within the\nPullTasksRequest.lease_duration or the lease will expire and\nthe task will become ready to be returned in a different\nPullTasksResponse. After the task is acknowledged, it will\nnot be returned by a later CloudTasks.PullTasks,\nCloudTasks.GetTask, or CloudTasks.ListTasks.", - "request": { - "$ref": "AcknowledgeTaskRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "name": { - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:acknowledge" - }, - "renewLease": { - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:renewLease", - "id": "cloudtasks.projects.locations.queues.tasks.renewLease", - "path": "v2beta2/{+name}:renewLease", - "description": "Renew the current lease of a pull task.\n\nThe lease holder can use this method to extend the lease by a new\nduration, starting from now. The new task lease will be\nreturned in Task.schedule_time.", - "request": { - "$ref": "RenewLeaseRequest" - }, - "response": { - "$ref": "Task" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}", - "path": "v2beta2/{+name}", - "id": "cloudtasks.projects.locations.queues.tasks.get", - "description": "Gets a task.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Task" - }, - "parameters": { - "responseView": { - "location": "query", - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string" - }, - "name": { - "location": "path", - "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - } - } - } - } - } - }, - "parameters": { - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "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.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - } - }, - "version": "v2beta2", - "baseUrl": "https://cloudtasks.googleapis.com/", - "kind": "discovery#restDescription", - "servicePath": "", - "description": "Manages the execution of large numbers of distributed requests. Cloud Tasks is in Alpha.", - "basePath": "", "id": "cloudtasks:v2beta2", "documentationLink": "https://cloud.google.com/cloud-tasks/", - "revision": "20170926", + "revision": "20171020", "discoveryVersion": "v1", "version_module": true, "schemas": { - "CancelLeaseRequest": { - "description": "Request message for canceling a lease using\nCloudTasks.CancelLease.", - "type": "object", - "properties": { - "scheduleTime": { - "format": "google-datetime", - "description": "Required.\n\nThe task's current schedule time, available in the Task.schedule_time\nreturned in PullTasksResponse.tasks or\nCloudTasks.RenewLease. This restriction is to check that\nthe caller is canceling the correct task.", - "type": "string" - }, - "responseView": { - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string", - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ] - } - }, - "id": "CancelLeaseRequest" - }, - "AttemptStatus": { - "description": "The status of a task attempt.", - "type": "object", - "properties": { - "responseStatus": { - "description": "Output only.\n\nThe response from the target for this attempt.\n\nIf the task has not been attempted or the task is currently running\nthen the response status is google.rpc.Code.UNKNOWN.", - "$ref": "Status" - }, - "responseTime": { - "format": "google-datetime", - "description": "Output only.\n\nThe time that this attempt response was received.\n\n`response_time` will be truncated to the nearest microsecond.", - "type": "string" - }, - "scheduleTime": { - "format": "google-datetime", - "description": "Output only.\n\nThe time that this attempt was scheduled.\n\n`schedule_time` will be truncated to the nearest microsecond.", - "type": "string" - }, - "dispatchTime": { - "format": "google-datetime", - "description": "Output only.\n\nThe time that this attempt was dispatched.\n\n`dispatch_time` will be truncated to the nearest microsecond.", - "type": "string" - } - }, - "id": "AttemptStatus" - }, - "PurgeQueueRequest": { - "description": "Request message for CloudTasks.PurgeQueue.", - "type": "object", - "properties": {}, - "id": "PurgeQueueRequest" - }, - "PauseQueueRequest": { - "description": "Request message for CloudTasks.PauseQueue.", - "type": "object", - "properties": {}, - "id": "PauseQueueRequest" - }, - "RunTaskRequest": { - "id": "RunTaskRequest", - "description": "Request message for forcing a task to run now using\nCloudTasks.RunTask.", - "type": "object", - "properties": { - "responseView": { - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string", - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ], - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ] - } - } - }, - "PullTasksResponse": { - "description": "Response message for pulling tasks using CloudTasks.PullTasks.", - "type": "object", - "properties": { - "tasks": { - "description": "The leased tasks.", - "items": { - "$ref": "Task" - }, - "type": "array" - } - }, - "id": "PullTasksResponse" - }, - "Task": { - "id": "Task", - "description": "A unit of scheduled work.", - "type": "object", - "properties": { - "pullMessage": { - "$ref": "PullMessage", - "description": "Pull message contains data that should be used by the caller of\nCloudTasks.PullTasks to process the task. Can be set only if\nQueue.pull_target is set.\n\nA pull task is a task that has PullMessage set." - }, - "createTime": { - "format": "google-datetime", - "description": "Output only.\n\nThe time that the task was created.\n\n`create_time` will be truncated to the nearest second.", - "type": "string" - }, - "scheduleTime": { - "format": "google-datetime", - "description": "The time when the task is scheduled to be attempted.\n\nFor pull queues, this is the time when the task is available to\nbe leased; if a task is currently leased, this is the time when\nthe current lease expires, that is, the time that the task was\nleased plus the PullTasksRequest.lease_duration.\n\nFor App Engine queues, this is when the task will be attempted or retried.\n\n`schedule_time` will be truncated to the nearest microsecond.", - "type": "string" - }, - "name": { - "description": "The task name.\n\nThe task name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n* `TASK_ID` contain uppercase and lowercase letters, numbers,\n underscores, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d_-]+`. The maximum length is 500\n characters.\n\nOptionally caller-specified in CreateTaskRequest.", - "type": "string" - }, - "appEngineTaskTarget": { - "$ref": "AppEngineTaskTarget", - "description": "Deprecated. Use Task.app_engine_http_request." - }, - "taskStatus": { - "$ref": "TaskStatus", - "description": "Output only.\n\nTask status." - }, - "pullTaskTarget": { - "description": "Deprecated. Use Task.pull_message.", - "$ref": "PullTaskTarget" - }, - "appEngineHttpRequest": { - "description": "App Engine HTTP request that is sent to the task's target. Can be set\nonly if Queue.app_engine_http_target is set.\n\nAn App Engine task is a task that has AppEngineHttpRequest set.", - "$ref": "AppEngineHttpRequest" - }, - "view": { - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ], - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "Output only.\n\nThe view specifies which subset of the Task has been\nreturned.", - "type": "string" - } - } - }, - "PullMessage": { - "id": "PullMessage", - "description": "The pull message contains data that can be used by the caller of\nCloudTasks.PullTasks to process the task.\n\nThis proto can only be used for tasks in a queue which has\nQueue.pull_target set.", - "type": "object", - "properties": { - "payload": { - "format": "byte", - "description": "A data payload consumed by the task worker to execute the task.", - "type": "string" - }, - "tag": { - "format": "byte", - "description": "A meta-data tag for this task.\n\nThis value is used by CloudTasks.PullTasks calls when\nPullTasksRequest.filter is `tag=\u003ctag\u003e`.\n\nThe tag must be less than 500 bytes.", - "type": "string" - } - } - }, - "Status": { - "type": "object", - "properties": { - "details": { - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array", - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." - }, - "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "members": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding" - }, - "RenewLeaseRequest": { - "properties": { - "newLeaseDuration": { - "format": "google-duration", - "description": "Required.\n\nThe desired new lease duration, starting from now.\n\n\nThe maximum lease duration is 1 week.\n`new_lease_duration` will be truncated to the nearest second.", - "type": "string" - }, - "responseView": { - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string", - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ] - }, - "scheduleTime": { - "format": "google-datetime", - "description": "Required.\n\nThe task's current schedule time, available in the Task.schedule_time\nreturned in PullTasksResponse.tasks or\nCloudTasks.RenewLease. This restriction is to check that\nthe caller is renewing the correct task.", - "type": "string" - } - }, - "id": "RenewLeaseRequest", - "description": "Request message for renewing a lease using CloudTasks.RenewLease.", - "type": "object" - }, - "TaskStatus": { - "description": "Status of the task.", - "type": "object", - "properties": { - "lastAttemptStatus": { - "$ref": "AttemptStatus", - "description": "Output only.\n\nThe status of the task's last attempt.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget)." - }, - "attemptDispatchCount": { - "format": "int64", - "description": "Output only.\n\nThe number of attempts dispatched. This count includes tasks which have\nbeen dispatched but haven't received a response.", - "type": "string" - }, - "firstAttemptStatus": { - "$ref": "AttemptStatus", - "description": "Output only.\n\nThe status of the task's first attempt.\n\nOnly AttemptStatus.dispatch_time will be set.\nThe other AttemptStatus information is not retained by Cloud Tasks.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget)." - }, - "attemptResponseCount": { - "format": "int64", - "description": "Output only.\n\nThe number of attempts which have received a response.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).", - "type": "string" - } - }, - "id": "TaskStatus" - }, - "AppEngineHttpRequest": { - "description": "App Engine HTTP request.\n\nThe message defines the HTTP request that is sent to an App Engine app when\nthe task is dispatched.\n\nThis proto can only be used for tasks in a queue which has\nQueue.app_engine_http_target set.\n\nUsing AppEngineHttpRequest requires\n[`appengine.applications.get`](/appengine/docs/admin-api/access-control)\nGoogle IAM permission for the project\nand the following scope:\n\n`https://www.googleapis.com/auth/cloud-platform`\n\nThe task will be delivered to the App Engine app which belongs to the same\nproject as the queue. For more information, see\n[How Requests are Routed](/appengine/docs/standard/python/how-requests-are-routed)\nand how routing is affected by\n[dispatch files](/appengine/docs/python/config/dispatchref).\n\nThe AppEngineRouting used to construct the URL that the task is\ndelivered to can be set at the queue-level or task-level:\n\n* If set, AppEngineHttpTarget.app_engine_routing_override is used for\n all tasks in the queue, no matter what the setting is for the\n task-level app_engine_routing.\n\n\nThe `url` that the task will be sent to is:\n\n* `url =` AppEngineRouting.host `+` AppEngineHttpRequest.relative_url\n\nThe task will be sent to a task handler by an HTTP\nrequest using the specified AppEngineHttpRequest.http_method (for example\nPOST, HTTP GET, etc). The task attempt has succeeded if the task handler\nreturns an HTTP response code in the range [200 - 299]. Error 503 is\nconsidered an App Engine system error instead of an application error.\nRequests returning error 503 will be retried regardless of retry\nconfiguration and not counted against retry counts.\nAny other response code or a failure to receive a response before the\ndeadline is a failed attempt.", - "type": "object", - "properties": { - "headers": { - "additionalProperties": { - "type": "string" - }, - "description": "HTTP request headers.\n\nThis map contains the header field names and values.\nHeaders can be set when the\n[task is created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).\nRepeated headers are not supported but a header value can contain commas.\n\nCloud Tasks sets some headers to default values:\n\n* `User-Agent`: By default, this header is\n `\"AppEngine-Google; (+http://code.google.com/appengine)\"`.\n This header can be modified, but Cloud Tasks will append\n `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the\n modified `User-Agent`.\n\nIf the task has an AppEngineHttpRequest.payload, Cloud Tasks sets the\nfollowing headers:\n\n* `Content-Type`: By default, the `Content-Type` header is set to\n `\"application/octet-stream\"`. The default can be overridden by explictly\n setting `Content-Type` to a particular media type when the\n [task is created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).\n For example, `Content-Type` can be set to `\"application/json\"`.\n* `Content-Length`: This is computed by Cloud Tasks. This value is\n output only. It cannot be changed.\n\nThe headers below cannot be set or overridden:\n\n* `Host`\n* `X-Google-*`\n* `X-AppEngine-*`\n\nIn addition, some App Engine headers, which contain\ntask-specific information, are also be sent to the task handler; see\n[request headers](/appengine/docs/python/taskqueue/push/creating-handlers#reading_request_headers).", - "type": "object" - }, - "appEngineRouting": { - "$ref": "AppEngineRouting", - "description": "Task-level setting for App Engine routing.\n\nIf set, AppEngineHttpTarget.app_engine_routing_override is used for\nall tasks in the queue, no matter what the setting is for the\ntask-level app_engine_routing." - }, - "httpMethod": { - "enum": [ - "HTTP_METHOD_UNSPECIFIED", - "POST", - "GET", - "HEAD", - "PUT", - "DELETE" - ], - "description": "The HTTP method to use for the request. The default is POST.\n\nThe app's request handler for the task's target URL must be able to handle\nHTTP requests with this http_method, otherwise the task attempt will fail\nwith error code 405 \"Method Not Allowed\" because \"the method specified in\nthe Request-Line is not allowed for the resource identified by the\nRequest-URI\". See\n[Writing a push task request handler](/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler)\nand the documentation for the request handlers in the language your app is\nwritten in e.g.\n[python RequestHandler](/appengine/docs/python/tools/webapp/requesthandlerclass).", - "type": "string", - "enumDescriptions": [ - "HTTP method unspecified", - "HTTP Post", - "HTTP Get", - "HTTP Head", - "HTTP Put", - "HTTP Delete" - ] - }, - "payload": { - "format": "byte", - "description": "Payload.\n\nThe payload will be sent as the HTTP message body. A message\nbody, and thus a payload, is allowed only if the HTTP method is\nPOST or PUT. It is an error to set a data payload on a task with\nan incompatible HttpMethod.", - "type": "string" - }, - "relativeUrl": { - "description": "The relative URL.\n\nThe relative URL must begin with \"/\" and must be a valid HTTP relative URL.\nIt can contain a path, query string arguments, and `#` fragments.\nIf the relative URL is empty, then the root path \"/\" will be used.\nNo spaces are allowed, and the maximum length allowed is 2083 characters.", - "type": "string" - } - }, - "id": "AppEngineHttpRequest" - }, - "AppEngineQueueConfig": { - "description": "Deprecated. Use AppEngineTarget.", - "type": "object", - "properties": { - "appEngineRoutingOverride": { - "description": "Deprecated. Use AppEngineTarget.app_engine_routing_override.", - "$ref": "AppEngineRouting" - } - }, - "id": "AppEngineQueueConfig" - }, - "PullTaskTarget": { - "description": "Deprecated. Use PullMessage.", - "type": "object", - "properties": { - "tag": { - "format": "byte", - "description": "Deprecated. Use PullMessage.tag.", - "type": "string" - }, - "payload": { - "format": "byte", - "description": "Deprecated. Use PullMessage.payload.", - "type": "string" - } - }, - "id": "PullTaskTarget" - }, - "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse" - }, - "GetIamPolicyRequest": { - "description": "Request message for `GetIamPolicy` method.", - "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" - }, - "RetryConfig": { - "description": "Retry config.\n\nThese settings determine retry behavior.\n\nIf a task does not complete successfully, meaning that an\nacknowledgement is not received from the handler before the\n[deadline](/appengine/docs/python/taskqueue/push/#the_task_deadline),\nthen it will be retried with exponential backoff according to the\nsettings in RetryConfig.", - "type": "object", - "properties": { - "taskAgeLimit": { - "format": "google-duration", - "description": "If positive, task_age_limit specifies the time limit for retrying a failed\ntask, measured from when the task was first run. If specified with\nRetryConfig.max_attempts, the task will be retried until both\nlimits are reached.\n\nIf zero, then the task age is unlimited. This field is zero by default.\n\n`task_age_limit` will be truncated to the nearest second.", - "type": "string" - }, - "unlimitedAttempts": { - "description": "If true, then the number of attempts is unlimited.", - "type": "boolean" - }, - "minBackoff": { - "format": "google-duration", - "description": "The minimum amount of time to wait before retrying a task after\nit fails.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 0.1 seconds by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this\n field is output only and always 0.\n\n`min_backoff` will be truncated to the nearest second.", - "type": "string" - }, - "maxBackoff": { - "format": "google-duration", - "description": "The maximum amount of time to wait before retrying a task after\nit fails. The default is 1 hour.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 1 hour by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this field\n is output only and always 0.\n\n`max_backoff` will be truncated to the nearest second.", - "type": "string" - }, - "maxAttempts": { - "type": "integer", - "format": "int32", - "description": "The maximum number of attempts for a task.\n\nCloud Tasks will attempt the task `max_attempts` times (that\nis, if the first attempt fails, then there will be\n`max_attempts - 1` retries). Must be \u003e 0." - }, - "maxDoublings": { - "format": "int32", - "description": "The maximum number of times that the interval between failed task\nretries will be doubled before the increase becomes constant. The\nconstant is: 2**(max_doublings - 1) *\nRetryConfig.min_backoff.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 16 by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this field\n is output only and always 0.", - "type": "integer" - } - }, - "id": "RetryConfig" - }, - "PullTarget": { - "description": "Pull target.", - "type": "object", - "properties": {}, - "id": "PullTarget" - }, - "ThrottleConfig": { - "type": "object", - "properties": { - "maxOutstandingTasks": { - "format": "int32", - "description": "The maximum number of outstanding tasks that Cloud Tasks allows\nto be dispatched for this queue. After this threshold has been\nreached, Cloud Tasks stops dispatching tasks until the number of\noutstanding requests decreases.\n\nThe maximum allowed value is 5,000.\n\n* For App Engine queues, this field is 10 by default.\n* For pull queues, this field is output only and always -1, which\n indicates no limit.\n\nThis field has the same meaning as\n[max_concurrent_requests in queue.yaml](/appengine/docs/standard/python/config/queueref#max_concurrent_requests).", - "type": "integer" - }, - "maxTasksDispatchedPerSecond": { - "format": "double", - "description": "The maximum rate at which tasks are dispatched from this\nqueue.\n\nThe maximum allowed value is 500.\n\n* For App Engine queues, this field is 1 by default.\n* For pull queues, this field is output only and always 10,000.\n\nThis field has the same meaning as\n[rate in queue.yaml](/appengine/docs/standard/python/config/queueref#rate).", - "type": "number" - }, - "maxBurstSize": { - "type": "integer", - "format": "int32", - "description": "Output only.\n\nThe max burst size limits how fast the queue is processed when\nmany tasks are in the queue and the rate is high. This field\nallows the queue to have a high rate so processing starts shortly\nafter a task is enqueued, but still limits resource usage when\nmany tasks are enqueued in a short period of time.\n\n* For App Engine queues, if\n ThrottleConfig.max_tasks_dispatched_per_second is 1, this\n field is 10; otherwise this field is\n ThrottleConfig.max_tasks_dispatched_per_second / 5.\n* For pull queues, this field is output only and always 10,000.\n\nNote: For App Engine queues that were created through\n`queue.yaml/xml`, `max_burst_size` might not have the same\nsettings as specified above; CloudTasks.UpdateQueue can be\nused to set `max_burst_size` only to the values specified above.\n\nThis field has the same meaning as\n[bucket_size in queue.yaml](/appengine/docs/standard/python/config/queueref#bucket_size)." - } - }, - "id": "ThrottleConfig", - "description": "Throttle config.\n\nThese settings determine the throttling behavior." - }, - "ResumeQueueRequest": { - "type": "object", - "properties": {}, - "id": "ResumeQueueRequest", - "description": "Request message for CloudTasks.ResumeQueue." - }, - "ListTasksResponse": { - "description": "Response message for listing tasks using CloudTasks.ListTasks.", - "type": "object", - "properties": { - "nextPageToken": { - "type": "string", - "format": "byte", - "description": "A token to retrieve next page of results.\n\nTo return the next page of results, call\nCloudTasks.ListTasks with this value as the\nListTasksRequest.page_token.\n\nIf the next_page_token is empty, there are no more results." - }, - "tasks": { - "description": "The list of tasks.", - "items": { - "$ref": "Task" - }, - "type": "array" - } - }, - "id": "ListTasksResponse" - }, - "CreateTaskRequest": { - "type": "object", - "properties": { - "responseView": { - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ], - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string" - }, - "task": { - "$ref": "Task", - "description": "Required.\n\nThe task to add.\n\nTask names have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`.\nThe user can optionally specify a name for the task in\nTask.name. If a name is not specified then the system will\ngenerate a random unique task id, which will be returned in the\nresponse's Task.name.\n\nExplicitly specifying a Task.name enables task\nde-duplication. If a task's name is identical to the name of an\nexisting task or a task that was deleted or completed within the\nlast ~10 days then the call to CloudTasks.CreateTask will\nfail with google.rpc.Code.ALREADY_EXISTS. Because there is an\nextra lookup cost to identify duplicate task names, these\nCloudTasks.CreateTask calls have significantly increased\nlatency. Using hashed strings for the task id or for the prefix\nof the task id is recommended. Choosing task ids that are\nsequential or have sequential prefixes, for example using a\ntimestamp, causes an increase in latency and error rates in all\ntask commands. The infrastructure relies on an approximately\nuniform distribution of task ids to store and serve tasks\nefficiently.\n\nIf Task.schedule_time is not set or is in the past then Cloud\nTasks will set it to the current time." - } - }, - "id": "CreateTaskRequest", - "description": "Request message for CloudTasks.CreateTask." - }, - "Queue": { - "id": "Queue", - "description": "A queue is a container of related tasks. Queues are configured to manage\nhow those tasks are dispatched. Configurable properties include rate limits,\nretry options, target types, and others.", - "type": "object", - "properties": { - "appEngineHttpTarget": { - "description": "App Engine HTTP target.\n\nAn App Engine queue is a queue that has an AppEngineHttpTarget.", - "$ref": "AppEngineHttpTarget" - }, - "purgeTime": { - "format": "google-datetime", - "description": "Output only.\n\nThe last time this queue was purged. All tasks that were\ncreated before this time were purged.\n\nA queue can be purged using CloudTasks.PurgeQueue, the\n[App Engine Task Queue SDK, or the Cloud Console](/appengine/docs/standard/python/taskqueue/push/deleting-tasks-and-queues#purging_all_tasks_from_a_queue).\n\nPurge time will be truncated to the nearest microsecond. Purge\ntime will be zero if the queue has never been purged.", - "type": "string" - }, - "retryConfig": { - "$ref": "RetryConfig", - "description": "Settings that determine the retry behavior.\n\n* For tasks created using Cloud Tasks: the queue-level retry settings\n apply to all tasks in the queue that were created using Cloud Tasks.\n Retry settings cannot be set on individual tasks.\n* For tasks created using the App Engine SDK: the queue-level retry\n settings apply to all tasks in the queue which do not have retry settings\n explicitly set on the task and were created by the App Engine SDK. See\n [App Engine documentation](/appengine/docs/standard/python/taskqueue/push/retrying-tasks)." - }, - "queueState": { - "enum": [ - "QUEUE_STATE_UNSPECIFIED", - "RUNNING", - "PAUSED", - "DISABLED" - ], - "description": "Output only.\n\nThe state of the queue.\n\n`queue_state` can only be changed by called\nCloudTasks.PauseQueue, CloudTasks.ResumeQueue, or uploading\n[queue.yaml](/appengine/docs/python/config/queueref).\nCloudTasks.UpdateQueue cannot be used to change `queue_state`.", - "type": "string", - "enumDescriptions": [ - "Unspecified state.", - "The queue is running. Tasks can be dispatched.", - "Tasks are paused by the user. If the queue is paused then Cloud\nTasks will stop delivering tasks from it, but more tasks can\nstill be added to it by the user. When a pull queue is paused,\nall CloudTasks.PullTasks calls will return a\n`FAILED_PRECONDITION` error.", - "The queue is disabled.\n\nA queue becomes `DISABLED` when\n[queue.yaml](/appengine/docs/python/config/queueref) or\n[queue.xml](appengine/docs/standard/java/config/queueref) is uploaded\nwhich does not contain the queue. You cannot directly disable a queue.\n\nWhen a queue is disabled, tasks can still be added to a queue\nbut the tasks are not dispatched and CloudTasks.PullTasks calls\nreturn a `FAILED_PRECONDITION` error.\n\nTo permanently delete this queue and all of its tasks, call\nCloudTasks.DeleteQueue." - ] - }, - "name": { - "type": "string", - "description": "The queue name.\n\nThe queue name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n\nCaller-specified and required in CreateQueueRequest, after which\nit becomes output only." - }, - "appEngineQueueConfig": { - "description": "Deprecated. Use Queue.app_engine_http_target.", - "$ref": "AppEngineQueueConfig" - }, - "throttleConfig": { - "description": "Config for throttling task dispatches.", - "$ref": "ThrottleConfig" - }, - "pullTarget": { - "description": "Pull target.\n\nA pull queue is a queue that has a PullTarget.", - "$ref": "PullTarget" - }, - "pullQueueConfig": { - "description": "Deprecated. Use Queue.pull_target.", - "$ref": "PullQueueConfig" - } - } - }, - "PullQueueConfig": { - "description": "Deprecated. Use PullTarget.", - "type": "object", - "properties": {}, - "id": "PullQueueConfig" - }, - "PullTasksRequest": { - "description": "Request message for pulling tasks using CloudTasks.PullTasks.", - "type": "object", - "properties": { - "leaseDuration": { - "format": "google-duration", - "description": "The duration of the lease.\n\nEach task returned in the PullTasksResponse will have its\nTask.schedule_time set to the current time plus the\n`lease_duration`. A task that has been returned in a\nPullTasksResponse is leased -- that task will not be\nreturned in a different PullTasksResponse before the\nTask.schedule_time.\n\nAfter the lease holder has successfully finished the work\nassociated with the task, the lease holder must call\nCloudTasks.AcknowledgeTask. If the task is not acknowledged\nvia CloudTasks.AcknowledgeTask before the\nTask.schedule_time then it will be returned in a later\nPullTasksResponse so that another lease holder can process\nit.\n\nThe maximum lease duration is 1 week.\n`lease_duration` will be truncated to the nearest second.", - "type": "string" - }, - "maxTasks": { - "format": "int32", - "description": "The maximum number of tasks to lease. The maximum that can be\nrequested is 1000.", - "type": "integer" - }, - "responseView": { - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", - "type": "string", - "enumDescriptions": [ - "Unspecified. Defaults to BASIC.", - "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", - "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." - ] - }, - "filter": { - "description": "`filter` can be used to specify a subset of tasks to lease.\n\nWhen `filter` is set to `tag=\u003cmy-tag\u003e` then the\nPullTasksResponse will contain only tasks whose\nPullMessage.tag is equal to `\u003cmy-tag\u003e`. `\u003cmy-tag\u003e` can be\na bytes encoded as a string and must be less than 500 bytes.\nIf `\u003cmy-tag\u003e` includes whitespace or special characters (characters which\naren't letters, numbers, or underscores), then it must be double-quoted.\nDouble quotes and backslashes in quoted strings must be escaped by\npreceding it with a backslash (`\\`).\n\nWhen `filter` is set to `tag=oldest_tag()`, only tasks which have the same\ntag as the task with the oldest schedule_time will be returned.\n\nGrammar Syntax:\n\n* `filter = \"tag=\" comparable`\n\n* `comparable = tag | function`\n\n* `tag = string | bytes`\n\n* `function = \"oldest_tag()\"`\n\n\n\nThe `oldest_tag()` function returns tasks which have the same tag as the\noldest task (ordered by schedule time).", - "type": "string" - } - }, - "id": "PullTasksRequest" - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "policy": { - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", - "$ref": "Policy" - } - }, - "id": "SetIamPolicyRequest" - }, - "AppEngineRouting": { - "description": "App Engine Routing.\n\nFor more information about services, versions, and instances see\n[An Overview of App Engine](/appengine/docs/python/an-overview-of-app-engine),\n[Microservices Architecture on Google App Engine](/appengine/docs/python/microservices-on-app-engine),\n[App Engine Standard request routing](/appengine/docs/standard/python/how-requests-are-routed),\nand [App Engine Flex request routing](/appengine/docs/flexible/python/how-requests-are-routed).", - "type": "object", - "properties": { - "service": { - "description": "App service.\n\nBy default, the task is sent to the service which is the default\nservice when the task is attempted (\"default\").\n\nFor some queues or tasks which were created using the App Engine Task Queue\nAPI, AppEngineRouting.host is not parsable into\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance. For example, some tasks which were created\nusing the App Engine SDK use a custom domain name; custom domains are not\nparsed by Cloud Tasks. If AppEngineRouting.host is not parsable, then\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance are the empty string.", - "type": "string" - }, - "instance": { - "description": "App instance.\n\nBy default, the task is sent to an instance which is available when\nthe task is attempted.\n\nRequests can only be sent to a specific instance if\n[manual scaling is used in App Engine Standard](/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes).\nApp Engine Flex does not support instances. For more information, see\n[App Engine Standard request routing](/appengine/docs/standard/python/how-requests-are-routed)\nand [App Engine Flex request routing](/appengine/docs/flexible/python/how-requests-are-routed).", - "type": "string" - }, - "version": { - "description": "App version.\n\nBy default, the task is sent to the version which is the default\nversion when the task is attempted (\"default\").\n\nFor some queues or tasks which were created using the App Engine Task Queue\nAPI, AppEngineRouting.host is not parsable into\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance. For example, some tasks which were created\nusing the App Engine SDK use a custom domain name; custom domains are not\nparsed by Cloud Tasks. If AppEngineRouting.host is not parsable, then\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance are the empty string.", - "type": "string" - }, - "host": { - "description": "Output only.\n\nThe host that the task is sent to. For more information, see\n[How Requests are Routed](/appengine/docs/standard/python/how-requests-are-routed).\n\nThe host is constructed as:\n\n\n* `host = [application_domain_name]`\u003c/br\u003e\n `| [service] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [version] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [version_dot_service]+ '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_service] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_version] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_version_dot_service] + '.' + [application_domain_name]`\n\n* `application_domain_name` = The domain name of the app, for\n example \u003capp-id\u003e.appspot.com, which is associated with the\n queue's project ID. Some tasks which were created using the App Engine\n SDK use a custom domain name.\n\n* `service =` AppEngineRouting.service\n\n* `version =` AppEngineRouting.version\n\n* `version_dot_service =`\n AppEngineRouting.version `+ '.' +` AppEngineRouting.service\n\n* `instance =` AppEngineRouting.instance\n\n* `instance_dot_service =`\n AppEngineRouting.instance `+ '.' +` AppEngineRouting.service\n\n* `instance_dot_version =`\n AppEngineRouting.instance `+ '.' +` AppEngineRouting.version\n\n* `instance_dot_version_dot_service =`\n AppEngineRouting.instance `+ '.' +`\n AppEngineRouting.version `+ '.' +` AppEngineRouting.service\n\nIf AppEngineRouting.service is empty, then the task will be sent\nto the service which is the default service when the task is attempted.\n\nIf AppEngineRouting.version is empty, then the task will be sent\nto the version which is the default version when the task is attempted.\n\nIf AppEngineRouting.instance is empty, then the task will be sent\nto an instance which is available when the task is attempted.\n\nWhen AppEngineRouting.service is \"default\",\nAppEngineRouting.version is \"default\", and\nAppEngineRouting.instance is empty, AppEngineRouting.host is\nshortened to just the `application_domain_name`.\n\nIf AppEngineRouting.service, AppEngineRouting.version, or\nAppEngineRouting.instance is invalid, then the task will be sent\nto the default version of the default service when the task is attempted.", - "type": "string" - } - }, - "id": "AppEngineRouting" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "AppEngineHttpTarget": { - "description": "App Engine HTTP target.\n\nThe task will be delivered to the App Engine application hostname\nspecified by its AppEngineHttpTarget and AppEngineHttpRequest.\nThe documentation for AppEngineHttpRequest explains how the\ntask's host URL is constructed.\n\nUsing AppEngineHttpTarget requires\n[`appengine.applications.get`](/appengine/docs/admin-api/access-control)\nGoogle IAM permission for the project\nand the following scope:\n\n`https://www.googleapis.com/auth/cloud-platform`", - "type": "object", - "properties": { - "appEngineRoutingOverride": { - "$ref": "AppEngineRouting", - "description": "Overrides for the\ntask-level app_engine_routing.\n\nIf set, AppEngineHttpTarget.app_engine_routing_override is used for\nall tasks in the queue, no matter what the setting is for the\ntask-level app_engine_routing." - } - }, - "id": "AppEngineHttpTarget" - }, - "Location": { - "description": "A resource that represents Google Cloud Platform location.", - "type": "object", - "properties": { - "name": { - "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", - "type": "string" - }, - "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\nlocation.", - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object" - } - }, - "id": "Location" - }, "AcknowledgeTaskRequest": { "description": "Request message for acknowledging a task using\nCloudTasks.AcknowledgeTask.", "type": "object", "properties": { "scheduleTime": { - "format": "google-datetime", "description": "Required.\n\nThe task's current schedule time, available in the Task.schedule_time\nreturned in PullTasksResponse.tasks or\nCloudTasks.RenewLease. This restriction is to check that\nthe caller is acknowledging the correct task.", + "format": "google-datetime", "type": "string" } }, @@ -1469,13 +23,12 @@ "properties": { "queues": { "description": "The list of queues.", + "type": "array", "items": { "$ref": "Queue" - }, - "type": "array" + } }, "nextPageToken": { - "format": "byte", "description": "A token to retrieve next page of results.\n\nTo return the next page of results, call\nCloudTasks.ListQueues with this value as the\nListQueuesRequest.page_token.\n\nIf the next_page_token is empty, there are no more results.\n\nThe page token is valid for only 2 hours.", "type": "string" } @@ -1483,66 +36,80 @@ "id": "ListQueuesResponse" }, "TestIamPermissionsRequest": { - "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "type": "array", "items": { "type": "string" - }, - "type": "array", - "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions)." - } - } - }, - "ListLocationsResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "type": "string", - "description": "The standard List next-page token." - }, - "locations": { - "description": "A list of locations that matches the specified filter in the request.", - "items": { - "$ref": "Location" - }, - "type": "array" + } } }, - "id": "ListLocationsResponse", - "description": "The response message for Locations.ListLocations." + "id": "TestIamPermissionsRequest" }, "Policy": { "type": "object", "properties": { + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, "etag": { - "format": "byte", "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "format": "byte", "type": "string" }, "version": { - "format": "int32", "description": "Version of the `Policy`. The default version is 0.", + "format": "int32", "type": "integer" - }, - "bindings": { - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", - "items": { - "$ref": "Binding" - }, - "type": "array" } }, "id": "Policy", "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam)." }, + "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "type": "object", + "properties": { + "locations": { + "type": "array", + "items": { + "$ref": "Location" + }, + "description": "A list of locations that matches the specified filter in the request." + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "id": "ListLocationsResponse" + }, "AppEngineTaskTarget": { - "id": "AppEngineTaskTarget", "description": "Deprecated. Use AppEngineHttpRequest.", "type": "object", "properties": { + "relativeUrl": { + "description": "Deprecated. Use AppEngineHttpRequest.relative_url.", + "type": "string" + }, + "headers": { + "description": "Deprecated. Use AppEngineHttpRequest.headers.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "appEngineRouting": { + "description": "Deprecated. Use AppEngineHttpRequest.app_engine_routing.", + "$ref": "AppEngineRouting" + }, "httpMethod": { "type": "string", "enumDescriptions": [ @@ -1564,32 +131,676 @@ "description": "Deprecated. Use AppEngineHttpRequest.http_method." }, "payload": { - "type": "string", + "description": "Deprecated. Use AppEngineHttpRequest.payload.", "format": "byte", - "description": "Deprecated. Use AppEngineHttpRequest.payload." - }, - "relativeUrl": { - "description": "Deprecated. Use AppEngineHttpRequest.relative_url.", + "type": "string" + } + }, + "id": "AppEngineTaskTarget" + }, + "CancelLeaseRequest": { + "description": "Request message for canceling a lease using\nCloudTasks.CancelLease.", + "type": "object", + "properties": { + "responseView": { + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ], + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", "type": "string" }, - "headers": { - "description": "Deprecated. Use AppEngineHttpRequest.headers.", - "type": "object", - "additionalProperties": { + "scheduleTime": { + "description": "Required.\n\nThe task's current schedule time, available in the Task.schedule_time\nreturned in PullTasksResponse.tasks or\nCloudTasks.RenewLease. This restriction is to check that\nthe caller is canceling the correct task.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "CancelLeaseRequest" + }, + "AttemptStatus": { + "description": "The status of a task attempt.", + "type": "object", + "properties": { + "responseTime": { + "description": "Output only.\n\nThe time that this attempt response was received.\n\n`response_time` will be truncated to the nearest microsecond.", + "format": "google-datetime", + "type": "string" + }, + "responseStatus": { + "$ref": "Status", + "description": "Output only.\n\nThe response from the target for this attempt.\n\nIf the task has not been attempted or the task is currently running\nthen the response status is google.rpc.Code.UNKNOWN." + }, + "scheduleTime": { + "description": "Output only.\n\nThe time that this attempt was scheduled.\n\n`schedule_time` will be truncated to the nearest microsecond.", + "format": "google-datetime", + "type": "string" + }, + "dispatchTime": { + "description": "Output only.\n\nThe time that this attempt was dispatched.\n\n`dispatch_time` will be truncated to the nearest microsecond.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "AttemptStatus" + }, + "RateLimits": { + "properties": { + "maxTasksDispatchedPerSecond": { + "description": "The maximum rate at which tasks are dispatched from this\nqueue.\n\nThe maximum allowed value is 500.\n\n* For App Engine queues, this field is 1 by default.\n* For pull queues, this field is output only and always 10,000.\n\nThis field has the same meaning as\n[rate in queue.yaml](/appengine/docs/standard/python/config/queueref#rate).", + "format": "double", + "type": "number" + }, + "maxBurstSize": { + "type": "integer", + "description": "Output only.\n\nThe max burst size limits how fast the queue is processed when\nmany tasks are in the queue and the rate is high. This field\nallows the queue to have a high rate so processing starts shortly\nafter a task is enqueued, but still limits resource usage when\nmany tasks are enqueued in a short period of time.\n\n* For App Engine queues, if\n RateLimits.max_tasks_dispatched_per_second is 1, this\n field is 10; otherwise this field is\n RateLimits.max_tasks_dispatched_per_second / 5.\n* For pull queues, this field is output only and always 10,000.\n\nNote: For App Engine queues that were created through\n`queue.yaml/xml`, `max_burst_size` might not have the same\nsettings as specified above; CloudTasks.UpdateQueue can be\nused to set `max_burst_size` only to the values specified above.\n\nThis field has the same meaning as\n[bucket_size in queue.yaml](/appengine/docs/standard/python/config/queueref#bucket_size).", + "format": "int32" + }, + "maxConcurrentTasks": { + "description": "The maximum number of concurrent tasks that Cloud Tasks allows\nto be dispatched for this queue. After this threshold has been\nreached, Cloud Tasks stops dispatching tasks until the number of\nconcurrent requests decreases.\n\nThe maximum allowed value is 5,000.\n\n* For App Engine queues, this field is 10 by default.\n* For pull queues, this field is output only and always -1, which\n indicates no limit.\n\nThis field has the same meaning as\n[max_concurrent_requests in queue.yaml](/appengine/docs/standard/python/config/queueref#max_concurrent_requests).", + "format": "int32", + "type": "integer" + } + }, + "id": "RateLimits", + "description": "Rate limits.\n\nThis message determines the maximum rate that tasks can be dispatched by a\nqueue, regardless of whether the dispatch is a first task attempt or a retry.", + "type": "object" + }, + "PurgeQueueRequest": { + "description": "Request message for CloudTasks.PurgeQueue.", + "type": "object", + "properties": {}, + "id": "PurgeQueueRequest" + }, + "PauseQueueRequest": { + "type": "object", + "properties": {}, + "id": "PauseQueueRequest", + "description": "Request message for CloudTasks.PauseQueue." + }, + "RunTaskRequest": { + "id": "RunTaskRequest", + "description": "Request message for forcing a task to run now using\nCloudTasks.RunTask.", + "type": "object", + "properties": { + "responseView": { + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ], + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string" + } + } + }, + "PullTasksResponse": { + "description": "Response message for pulling tasks using CloudTasks.PullTasks.", + "type": "object", + "properties": { + "tasks": { + "description": "The leased tasks.", + "type": "array", + "items": { + "$ref": "Task" + } + } + }, + "id": "PullTasksResponse" + }, + "Task": { + "type": "object", + "properties": { + "name": { + "description": "The task name.\n\nThe task name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n* `TASK_ID` contain uppercase and lowercase letters, numbers,\n underscores, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d_-]+`. The maximum length is 500\n characters.\n\nOptionally caller-specified in CreateTaskRequest.", + "type": "string" + }, + "appEngineTaskTarget": { + "description": "Deprecated. Use Task.app_engine_http_request.", + "$ref": "AppEngineTaskTarget" + }, + "taskStatus": { + "$ref": "TaskStatus", + "description": "Output only.\n\nTask status." + }, + "appEngineHttpRequest": { + "$ref": "AppEngineHttpRequest", + "description": "App Engine HTTP request that is sent to the task's target. Can be set\nonly if Queue.app_engine_http_target is set.\n\nAn App Engine task is a task that has AppEngineHttpRequest set." + }, + "pullTaskTarget": { + "description": "Deprecated. Use Task.pull_message.", + "$ref": "PullTaskTarget" + }, + "view": { + "type": "string", + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ], + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "Output only.\n\nThe view specifies which subset of the Task has been\nreturned." + }, + "pullMessage": { + "description": "Pull message contains data that should be used by the caller of\nCloudTasks.PullTasks to process the task. Can be set only if\nQueue.pull_target is set.\n\nA pull task is a task that has PullMessage set.", + "$ref": "PullMessage" + }, + "createTime": { + "type": "string", + "description": "Output only.\n\nThe time that the task was created.\n\n`create_time` will be truncated to the nearest second.", + "format": "google-datetime" + }, + "scheduleTime": { + "type": "string", + "description": "The time when the task is scheduled to be attempted.\n\nFor pull queues, this is the time when the task is available to\nbe leased; if a task is currently leased, this is the time when\nthe current lease expires, that is, the time that the task was\nleased plus the PullTasksRequest.lease_duration.\n\nFor App Engine queues, this is when the task will be attempted or retried.\n\n`schedule_time` will be truncated to the nearest microsecond.", + "format": "google-datetime" + } + }, + "id": "Task", + "description": "A unit of scheduled work." + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "code": { + "type": "integer", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + } + }, + "id": "Status" + }, + "PullMessage": { + "description": "The pull message contains data that can be used by the caller of\nCloudTasks.PullTasks to process the task.\n\nThis proto can only be used for tasks in a queue which has\nQueue.pull_target set.", + "type": "object", + "properties": { + "payload": { + "description": "A data payload consumed by the task worker to execute the task.", + "format": "byte", + "type": "string" + }, + "tag": { + "description": "A meta-data tag for this task.\n\nThis value is used by CloudTasks.PullTasks calls when\nPullTasksRequest.filter is `tag=\u003ctag\u003e`.\n\nThe tag must be less than 500 bytes.", + "format": "byte", + "type": "string" + } + }, + "id": "PullMessage" + }, + "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", + "properties": { + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "type": "array", + "items": { "type": "string" } }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding" + }, + "RenewLeaseRequest": { + "description": "Request message for renewing a lease using CloudTasks.RenewLease.", + "type": "object", + "properties": { + "newLeaseDuration": { + "description": "Required.\n\nThe desired new lease duration, starting from now.\n\n\nThe maximum lease duration is 1 week.\n`new_lease_duration` will be truncated to the nearest second.", + "format": "google-duration", + "type": "string" + }, + "responseView": { + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string", + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ], + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ] + }, + "scheduleTime": { + "description": "Required.\n\nThe task's current schedule time, available in the Task.schedule_time\nreturned in PullTasksResponse.tasks or\nCloudTasks.RenewLease. This restriction is to check that\nthe caller is renewing the correct task.", + "format": "google-datetime", + "type": "string" + } + }, + "id": "RenewLeaseRequest" + }, + "TaskStatus": { + "description": "Status of the task.", + "type": "object", + "properties": { + "attemptDispatchCount": { + "type": "string", + "description": "Output only.\n\nThe number of attempts dispatched. This count includes tasks which have\nbeen dispatched but haven't received a response.", + "format": "int64" + }, + "firstAttemptStatus": { + "description": "Output only.\n\nThe status of the task's first attempt.\n\nOnly AttemptStatus.dispatch_time will be set.\nThe other AttemptStatus information is not retained by Cloud Tasks.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).", + "$ref": "AttemptStatus" + }, + "attemptResponseCount": { + "description": "Output only.\n\nThe number of attempts which have received a response.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).", + "format": "int64", + "type": "string" + }, + "lastAttemptStatus": { + "$ref": "AttemptStatus", + "description": "Output only.\n\nThe status of the task's last attempt.\n\nThis field is not calculated for\n[pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget)." + } + }, + "id": "TaskStatus" + }, + "AppEngineHttpRequest": { + "id": "AppEngineHttpRequest", + "description": "App Engine HTTP request.\n\nThe message defines the HTTP request that is sent to an App Engine app when\nthe task is dispatched.\n\nThis proto can only be used for tasks in a queue which has\nQueue.app_engine_http_target set.\n\nUsing AppEngineHttpRequest requires\n[`appengine.applications.get`](/appengine/docs/admin-api/access-control)\nGoogle IAM permission for the project\nand the following scope:\n\n`https://www.googleapis.com/auth/cloud-platform`\n\nThe task will be delivered to the App Engine app which belongs to the same\nproject as the queue. For more information, see\n[How Requests are Routed](/appengine/docs/standard/python/how-requests-are-routed)\nand how routing is affected by\n[dispatch files](/appengine/docs/python/config/dispatchref).\n\nThe AppEngineRouting used to construct the URL that the task is\ndelivered to can be set at the queue-level or task-level:\n\n* If set, AppEngineHttpTarget.app_engine_routing_override is used for\n all tasks in the queue, no matter what the setting is for the\n task-level app_engine_routing.\n\n\nThe `url` that the task will be sent to is:\n\n* `url =` AppEngineRouting.host `+` AppEngineHttpRequest.relative_url\n\nThe task will be sent to a task handler by an HTTP\nrequest using the specified AppEngineHttpRequest.http_method (for example\nPOST, HTTP GET, etc). The task attempt has succeeded if the task handler\nreturns an HTTP response code in the range [200 - 299]. Error 503 is\nconsidered an App Engine system error instead of an application error.\nRequests returning error 503 will be retried regardless of retry\nconfiguration and not counted against retry counts.\nAny other response code or a failure to receive a response before the\ndeadline is a failed attempt.", + "type": "object", + "properties": { + "httpMethod": { + "enumDescriptions": [ + "HTTP method unspecified", + "HTTP Post", + "HTTP Get", + "HTTP Head", + "HTTP Put", + "HTTP Delete" + ], + "enum": [ + "HTTP_METHOD_UNSPECIFIED", + "POST", + "GET", + "HEAD", + "PUT", + "DELETE" + ], + "description": "The HTTP method to use for the request. The default is POST.\n\nThe app's request handler for the task's target URL must be able to handle\nHTTP requests with this http_method, otherwise the task attempt will fail\nwith error code 405 (Method Not Allowed). See\nthe Request-Line is not allowed for the resource identified by the\nRequest-URI\". See\n[Writing a push task request handler](/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler)\nand the documentation for the request handlers in the language your app is\nwritten in e.g.\n[python RequestHandler](/appengine/docs/python/tools/webapp/requesthandlerclass).", + "type": "string" + }, + "payload": { + "description": "Payload.\n\nThe payload will be sent as the HTTP message body. A message\nbody, and thus a payload, is allowed only if the HTTP method is\nPOST or PUT. It is an error to set a data payload on a task with\nan incompatible HttpMethod.", + "format": "byte", + "type": "string" + }, + "relativeUrl": { + "description": "The relative URL.\n\nThe relative URL must begin with \"/\" and must be a valid HTTP relative URL.\nIt can contain a path and query string arguments.\nIf the relative URL is empty, then the root path \"/\" will be used.\nNo spaces are allowed, and the maximum length allowed is 2083 characters.", + "type": "string" + }, + "headers": { + "additionalProperties": { + "type": "string" + }, + "description": "HTTP request headers.\n\nThis map contains the header field names and values.\nHeaders can be set when the\n[task is created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).\nRepeated headers are not supported but a header value can contain commas.\n\nCloud Tasks sets some headers to default values:\n\n* `User-Agent`: By default, this header is\n `\"AppEngine-Google; (+http://code.google.com/appengine)\"`.\n This header can be modified, but Cloud Tasks will append\n `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the\n modified `User-Agent`.\n\nIf the task has an AppEngineHttpRequest.payload, Cloud Tasks sets the\nfollowing headers:\n\n* `Content-Type`: By default, the `Content-Type` header is set to\n `\"application/octet-stream\"`. The default can be overridden by explictly\n setting `Content-Type` to a particular media type when the\n [task is created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).\n For example, `Content-Type` can be set to `\"application/json\"`.\n* `Content-Length`: This is computed by Cloud Tasks. This value is\n output only. It cannot be changed.\n\nThe headers below cannot be set or overridden:\n\n* `Host`\n* `X-Google-*`\n* `X-AppEngine-*`\n\nIn addition, some App Engine headers, which contain\ntask-specific information, are also be sent to the task handler; see\n[request headers](/appengine/docs/python/taskqueue/push/creating-handlers#reading_request_headers).", + "type": "object" + }, "appEngineRouting": { "$ref": "AppEngineRouting", - "description": "Deprecated. Use AppEngineHttpRequest.app_engine_routing." + "description": "Task-level setting for App Engine routing.\n\nIf set, AppEngineHttpTarget.app_engine_routing_override is used for\nall tasks in the queue, no matter what the setting is for the\ntask-level app_engine_routing." + } + } + }, + "AppEngineQueueConfig": { + "description": "Deprecated. Use AppEngineHttpTarget.", + "type": "object", + "properties": { + "appEngineRoutingOverride": { + "description": "Deprecated. Use AppEngineHttpTarget.app_engine_routing_override.", + "$ref": "AppEngineRouting" + } + }, + "id": "AppEngineQueueConfig" + }, + "PullTaskTarget": { + "description": "Deprecated. Use PullMessage.", + "type": "object", + "properties": { + "payload": { + "description": "Deprecated. Use PullMessage.payload.", + "format": "byte", + "type": "string" + }, + "tag": { + "description": "Deprecated. Use PullMessage.tag.", + "format": "byte", + "type": "string" + } + }, + "id": "PullTaskTarget" + }, + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsResponse" + }, + "GetIamPolicyRequest": { + "description": "Request message for `GetIamPolicy` method.", + "type": "object", + "properties": {}, + "id": "GetIamPolicyRequest" + }, + "RetryConfig": { + "description": "Retry config.\n\nThese settings determine how a failed task attempt is retried.", + "type": "object", + "properties": { + "minBackoff": { + "type": "string", + "description": "The minimum amount of time to wait before retrying a task after\nit fails.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 0.1 seconds by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this\n field is output only and always 0.\n\n`min_backoff` will be truncated to the nearest second.\n\nThis field has the same meaning as\n[min_backoff_seconds in queue.yaml](/appengine/docs/standard/python/config/queueref#retry_parameters).", + "format": "google-duration" + }, + "maxBackoff": { + "description": "The maximum amount of time to wait before retrying a task after\nit fails. The default is 1 hour.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 1 hour by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this field\n is output only and always 0.\n\n`max_backoff` will be truncated to the nearest second.\n\nThis field has the same meaning as\n[max_backoff_seconds in queue.yaml](/appengine/docs/standard/python/config/queueref#retry_parameters).", + "format": "google-duration", + "type": "string" + }, + "maxRetryDuration": { + "description": "If positive, `max_retry_duration` specifies the time limit for retrying a\nfailed task, measured from when the task was first attempted. Once\n`max_retry_duration` time has passed *and* the task has been attempted\nRetryConfig.max_attempts times, no further attempts will be made and\nthe task will be deleted.\n\nIf zero, then the task age is unlimited.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 0 seconds by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this\n field is output only and always 0.\n\n`max_retry_duration` will be truncated to the nearest second.\n\nThis field has the same meaning as\n[task_age_limit in queue.yaml](/appengine/docs/standard/python/config/queueref#retry_parameters).", + "format": "google-duration", + "type": "string" + }, + "maxDoublings": { + "description": "The time between retries increases exponentially `max_doublings` times.\n`max_doublings` is maximum number of times that the interval between failed\ntask retries will be doubled before the interval increases linearly.\nAfter max_doublings intervals, the retry interval will be\n2^(max_doublings - 1) * RetryConfig.min_backoff.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n this field is 16 by default.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this field\n is output only and always 0.\n\nThis field has the same meaning as\n[max_doublings in queue.yaml](/appengine/docs/standard/python/config/queueref#retry_parameters).", + "format": "int32", + "type": "integer" + }, + "maxAttempts": { + "description": "The maximum number of attempts for a task.\n\nCloud Tasks will attempt the task `max_attempts` times (that\nis, if the first attempt fails, then there will be\n`max_attempts - 1` retries). Must be \u003e 0.", + "format": "int32", + "type": "integer" + }, + "unlimitedAttempts": { + "description": "If true, then the number of attempts is unlimited.", + "type": "boolean" + } + }, + "id": "RetryConfig" + }, + "PullTarget": { + "description": "Pull target.", + "type": "object", + "properties": {}, + "id": "PullTarget" + }, + "ResumeQueueRequest": { + "description": "Request message for CloudTasks.ResumeQueue.", + "type": "object", + "properties": {}, + "id": "ResumeQueueRequest" + }, + "ListTasksResponse": { + "properties": { + "tasks": { + "description": "The list of tasks.", + "type": "array", + "items": { + "$ref": "Task" + } + }, + "nextPageToken": { + "description": "A token to retrieve next page of results.\n\nTo return the next page of results, call\nCloudTasks.ListTasks with this value as the\nListTasksRequest.page_token.\n\nIf the next_page_token is empty, there are no more results.", + "type": "string" + } + }, + "id": "ListTasksResponse", + "description": "Response message for listing tasks using CloudTasks.ListTasks.", + "type": "object" + }, + "CreateTaskRequest": { + "description": "Request message for CloudTasks.CreateTask.", + "type": "object", + "properties": { + "responseView": { + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ], + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string" + }, + "task": { + "$ref": "Task", + "description": "Required.\n\nThe task to add.\n\nTask names have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`.\nThe user can optionally specify a name for the task in\nTask.name. If a name is not specified then the system will\ngenerate a random unique task id, which will be returned in the\nresponse's Task.name.\n\nIf Task.schedule_time is not set or is in the past then Cloud\nTasks will set it to the current time.\n\nTask De-duplication:\n\nExplicitly specifying a task ID enables task de-duplication. If\na task's ID is identical to that of an existing task or a task\nthat was deleted or completed recently then the call will fail\nwith google.rpc.Code.ALREADY_EXISTS. If the task's queue was\ncreated using Cloud Tasks, then another task with the same name\ncan't be created for ~1hour after the original task was deleted\nor completed. If the task's queue was created using queue.yaml or\nqueue.xml, then another task with the same name can't be created\nfor ~9days after the original task was deleted or completed.\n\nBecause there is an extra lookup cost to identify duplicate task\nnames, these CloudTasks.CreateTask calls have significantly\nincreased latency. Using hashed strings for the task id or for\nthe prefix of the task id is recommended. Choosing task ids that\nare sequential or have sequential prefixes, for example using a\ntimestamp, causes an increase in latency and error rates in all\ntask commands. The infrastructure relies on an approximately\nuniform distribution of task ids to store and serve tasks\nefficiently." + } + }, + "id": "CreateTaskRequest" + }, + "Queue": { + "properties": { + "purgeTime": { + "type": "string", + "description": "Output only.\n\nThe last time this queue was purged. All tasks that were\ncreated before this time were purged.\n\nA queue can be purged using CloudTasks.PurgeQueue, the\n[App Engine Task Queue SDK, or the Cloud Console](/appengine/docs/standard/python/taskqueue/push/deleting-tasks-and-queues#purging_all_tasks_from_a_queue).\n\nPurge time will be truncated to the nearest microsecond. Purge\ntime will be zero if the queue has never been purged.", + "format": "google-datetime" + }, + "queueState": { + "enumDescriptions": [ + "Unspecified state.", + "The queue is running. Tasks can be dispatched.", + "Tasks are paused by the user. If the queue is paused then Cloud\nTasks will stop delivering tasks from it, but more tasks can\nstill be added to it by the user. When a pull queue is paused,\nall CloudTasks.PullTasks calls will return a\n`FAILED_PRECONDITION` error.", + "The queue is disabled.\n\nA queue becomes `DISABLED` when\n[queue.yaml](/appengine/docs/python/config/queueref) or\n[queue.xml](appengine/docs/standard/java/config/queueref) is uploaded\nwhich does not contain the queue. You cannot directly disable a queue.\n\nWhen a queue is disabled, tasks can still be added to a queue\nbut the tasks are not dispatched and CloudTasks.PullTasks calls\nreturn a `FAILED_PRECONDITION` error.\n\nTo permanently delete this queue and all of its tasks, call\nCloudTasks.DeleteQueue." + ], + "enum": [ + "QUEUE_STATE_UNSPECIFIED", + "RUNNING", + "PAUSED", + "DISABLED" + ], + "description": "Output only.\n\nThe state of the queue.\n\n`queue_state` can only be changed by called\nCloudTasks.PauseQueue, CloudTasks.ResumeQueue, or uploading\n[queue.yaml](/appengine/docs/python/config/queueref).\nCloudTasks.UpdateQueue cannot be used to change `queue_state`.", + "type": "string" + }, + "retryConfig": { + "$ref": "RetryConfig", + "description": "Settings that determine the retry behavior.\n\n* For tasks created using Cloud Tasks: the queue-level retry settings\n apply to all tasks in the queue that were created using Cloud Tasks.\n Retry settings cannot be set on individual tasks.\n* For tasks created using the App Engine SDK: the queue-level retry\n settings apply to all tasks in the queue which do not have retry settings\n explicitly set on the task and were created by the App Engine SDK. See\n [App Engine documentation](/appengine/docs/standard/python/taskqueue/push/retrying-tasks)." + }, + "name": { + "description": "The queue name.\n\nThe queue name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n\nCaller-specified and required in CreateQueueRequest, after which\nit becomes output only.", + "type": "string" + }, + "rateLimits": { + "$ref": "RateLimits", + "description": "Rate limits for task dispatches.\n\nQueue.rate_limits and Queue.retry_config are related because they\nboth control task attempts however they control how tasks are attempted in\ndifferent ways:\n\n* Queue.rate_limits controls the total rate of dispatches from a queue\n (i.e. all traffic dispatched from the queue, regardless of whether the\n dispatch is from a first attempt or a retry).\n* Queue.retry_config controls what happens to particular a task after\n its first attempt fails. That is, Queue.retry_config controls task\n retries (the second attempt, third attempt, etc)." + }, + "appEngineQueueConfig": { + "$ref": "AppEngineQueueConfig", + "description": "Deprecated. Use Queue.app_engine_http_target." + }, + "pullTarget": { + "$ref": "PullTarget", + "description": "Pull target.\n\nA pull queue is a queue that has a PullTarget." + }, + "pullQueueConfig": { + "description": "Deprecated. Use Queue.pull_target.", + "$ref": "PullQueueConfig" + }, + "appEngineHttpTarget": { + "$ref": "AppEngineHttpTarget", + "description": "App Engine HTTP target.\n\nAn App Engine queue is a queue that has an AppEngineHttpTarget." + } + }, + "id": "Queue", + "description": "A queue is a container of related tasks. Queues are configured to manage\nhow those tasks are dispatched. Configurable properties include rate limits,\nretry options, target types, and others.", + "type": "object" + }, + "PullQueueConfig": { + "properties": {}, + "id": "PullQueueConfig", + "description": "Deprecated. Use PullTarget.", + "type": "object" + }, + "PullTasksRequest": { + "description": "Request message for pulling tasks using CloudTasks.PullTasks.", + "type": "object", + "properties": { + "filter": { + "description": "`filter` can be used to specify a subset of tasks to lease.\n\nWhen `filter` is set to `tag=\u003cmy-tag\u003e` then the\nPullTasksResponse will contain only tasks whose\nPullMessage.tag is equal to `\u003cmy-tag\u003e`. `\u003cmy-tag\u003e` must be less than\n500 bytes.\n\nWhen `filter` is set to `tag_function=oldest_tag()`, only tasks which have\nthe same tag as the task with the oldest schedule_time will be returned.\n\nGrammar Syntax:\n\n* `filter = \"tag=\" tag | \"tag_function=\" function`\n\n* `tag = string | bytes`\n\n* `function = \"oldest_tag()\"`\n\nThe `oldest_tag()` function returns tasks which have the same tag as the\noldest task (ordered by schedule time).", + "type": "string" + }, + "maxTasks": { + "description": "The maximum number of tasks to lease. The maximum that can be\nrequested is 1000.", + "format": "int32", + "type": "integer" + }, + "leaseDuration": { + "description": "The duration of the lease.\n\nEach task returned in the PullTasksResponse will have its\nTask.schedule_time set to the current time plus the\n`lease_duration`. A task that has been returned in a\nPullTasksResponse is leased -- that task will not be\nreturned in a different PullTasksResponse before the\nTask.schedule_time.\n\nAfter the lease holder has successfully finished the work\nassociated with the task, the lease holder must call\nCloudTasks.AcknowledgeTask. If the task is not acknowledged\nvia CloudTasks.AcknowledgeTask before the\nTask.schedule_time then it will be returned in a later\nPullTasksResponse so that another lease holder can process\nit.\n\nThe maximum lease duration is 1 week.\n`lease_duration` will be truncated to the nearest second.", + "format": "google-duration", + "type": "string" + }, + "responseView": { + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string", + "enumDescriptions": [ + "Unspecified. Defaults to BASIC.", + "The basic view omits fields which can be large or can contain\nsensitive data.\n\nThis view does not include the payload.", + "All information is returned.\n\nPayloads might be desirable to return only when needed, because\nthey can be large and because of the sensitivity of the data\nthat you choose to store in it.\n\nAuthorization for Task.View.FULL requires\n`cloudtasks.tasks.fullView` [Google IAM](https://cloud.google.com/iam/)\npermission on the Queue.name resource." + ] + } + }, + "id": "PullTasksRequest" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + } + }, + "id": "SetIamPolicyRequest" + }, + "AppEngineRouting": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "Output only.\n\nThe host that the task is sent to. For more information, see\n[How Requests are Routed](/appengine/docs/standard/python/how-requests-are-routed).\n\nThe host is constructed as:\n\n\n* `host = [application_domain_name]`\u003c/br\u003e\n `| [service] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [version] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [version_dot_service]+ '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_service] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_version] + '.' + [application_domain_name]`\u003c/br\u003e\n `| [instance_dot_version_dot_service] + '.' + [application_domain_name]`\n\n* `application_domain_name` = The domain name of the app, for\n example \u003capp-id\u003e.appspot.com, which is associated with the\n queue's project ID. Some tasks which were created using the App Engine\n SDK use a custom domain name.\n\n* `service =` AppEngineRouting.service\n\n* `version =` AppEngineRouting.version\n\n* `version_dot_service =`\n AppEngineRouting.version `+ '.' +` AppEngineRouting.service\n\n* `instance =` AppEngineRouting.instance\n\n* `instance_dot_service =`\n AppEngineRouting.instance `+ '.' +` AppEngineRouting.service\n\n* `instance_dot_version =`\n AppEngineRouting.instance `+ '.' +` AppEngineRouting.version\n\n* `instance_dot_version_dot_service =`\n AppEngineRouting.instance `+ '.' +`\n AppEngineRouting.version `+ '.' +` AppEngineRouting.service\n\nIf AppEngineRouting.service is empty, then the task will be sent\nto the service which is the default service when the task is attempted.\n\nIf AppEngineRouting.version is empty, then the task will be sent\nto the version which is the default version when the task is attempted.\n\nIf AppEngineRouting.instance is empty, then the task will be sent\nto an instance which is available when the task is attempted.\n\nWhen AppEngineRouting.service is \"default\",\nAppEngineRouting.version is \"default\", and\nAppEngineRouting.instance is empty, AppEngineRouting.host is\nshortened to just the `application_domain_name`.\n\nIf AppEngineRouting.service, AppEngineRouting.version, or\nAppEngineRouting.instance is invalid, then the task will be sent\nto the default version of the default service when the task is attempted." + }, + "service": { + "description": "App service.\n\nBy default, the task is sent to the service which is the default\nservice when the task is attempted (\"default\").\n\nFor some queues or tasks which were created using the App Engine Task Queue\nAPI, AppEngineRouting.host is not parsable into\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance. For example, some tasks which were created\nusing the App Engine SDK use a custom domain name; custom domains are not\nparsed by Cloud Tasks. If AppEngineRouting.host is not parsable, then\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance are the empty string.", + "type": "string" + }, + "instance": { + "description": "App instance.\n\nBy default, the task is sent to an instance which is available when\nthe task is attempted.\n\nRequests can only be sent to a specific instance if\n[manual scaling is used in App Engine Standard](/appengine/docs/python/an-overview-of-app-engine?hl=en_US#scaling_types_and_instance_classes).\nApp Engine Flex does not support instances. For more information, see\n[App Engine Standard request routing](/appengine/docs/standard/python/how-requests-are-routed)\nand [App Engine Flex request routing](/appengine/docs/flexible/python/how-requests-are-routed).", + "type": "string" + }, + "version": { + "description": "App version.\n\nBy default, the task is sent to the version which is the default\nversion when the task is attempted (\"default\").\n\nFor some queues or tasks which were created using the App Engine Task Queue\nAPI, AppEngineRouting.host is not parsable into\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance. For example, some tasks which were created\nusing the App Engine SDK use a custom domain name; custom domains are not\nparsed by Cloud Tasks. If AppEngineRouting.host is not parsable, then\nAppEngineRouting.service, AppEngineRouting.version, and\nAppEngineRouting.instance are the empty string.", + "type": "string" + } + }, + "id": "AppEngineRouting", + "description": "App Engine Routing.\n\nFor more information about services, versions, and instances see\n[An Overview of App Engine](/appengine/docs/python/an-overview-of-app-engine),\n[Microservices Architecture on Google App Engine](/appengine/docs/python/microservices-on-app-engine),\n[App Engine Standard request routing](/appengine/docs/standard/python/how-requests-are-routed),\nand [App Engine Flex request routing](/appengine/docs/flexible/python/how-requests-are-routed)." + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "AppEngineHttpTarget": { + "description": "App Engine HTTP target.\n\nThe task will be delivered to the App Engine application hostname\nspecified by its AppEngineHttpTarget and AppEngineHttpRequest.\nThe documentation for AppEngineHttpRequest explains how the\ntask's host URL is constructed.\n\nUsing AppEngineHttpTarget requires\n[`appengine.applications.get`](/appengine/docs/admin-api/access-control)\nGoogle IAM permission for the project\nand the following scope:\n\n`https://www.googleapis.com/auth/cloud-platform`", + "type": "object", + "properties": { + "appEngineRoutingOverride": { + "$ref": "AppEngineRouting", + "description": "Overrides for the\ntask-level app_engine_routing.\n\nIf set, AppEngineHttpTarget.app_engine_routing_override is used for\nall tasks in the queue, no matter what the setting is for the\ntask-level app_engine_routing." + } + }, + "id": "AppEngineHttpTarget" + }, + "Location": { + "id": "Location", + "description": "A resource that represents Google Cloud Platform location.", + "type": "object", + "properties": { + "name": { + "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + }, + "locationId": { + "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "description": "Service-specific metadata. For example the available capacity at the given\nlocation." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" } } } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "canonicalName": "Cloud Tasks", "auth": { @@ -1604,5 +815,790 @@ "rootUrl": "https://cloudtasks.googleapis.com/", "ownerDomain": "google.com", "name": "cloudtasks", - "batchPath": "batch" + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Cloud Tasks API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "locations": { + "methods": { + "list": { + "description": "Lists information about the supported locations for this service.", + "response": { + "$ref": "ListLocationsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "name": { + "description": "The resource that owns the locations collection, if applicable.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "The standard list page token." + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations", + "path": "v2beta2/{+name}/locations", + "id": "cloudtasks.projects.locations.list" + }, + "get": { + "id": "cloudtasks.projects.locations.get", + "path": "v2beta2/{+name}", + "description": "Get information about a location.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Location" + }, + "parameters": { + "name": { + "location": "path", + "description": "Resource name for the location.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}" + } + }, + "resources": { + "queues": { + "methods": { + "resume": { + "request": { + "$ref": "ResumeQueueRequest" + }, + "description": "Resume a queue.\n\nThis method resumes a queue after it has been\nQueue.QueueState.PAUSED or Queue.QueueState.DISABLED. The state of\na queue is stored in Queue.queue_state; after calling this method it\nwill be set to Queue.QueueState.RUNNING.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).\n\nWARNING: Resuming many high-QPS queues at the same time can\nlead to target overloading. If you are resuming high-QPS\nqueues, follow the 500/50/5 pattern described in\n[Managing Cloud Tasks Scaling Risks](/cloud-tasks/pdfs/managing-cloud-tasks-scaling-risks-2017-06-05.pdf).", + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:resume", + "path": "v2beta2/{+name}:resume", + "id": "cloudtasks.projects.locations.queues.resume" + }, + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:getIamPolicy", + "path": "v2beta2/{+resource}:getIamPolicy", + "id": "cloudtasks.projects.locations.queues.getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for a Queue.\nReturns an empty policy if the resource exists and does not have a policy\nset.\n\nAuthorization requires the following [Google IAM](/iam) permission on the\nspecified resource parent:\n\n* `cloudtasks.queues.getIamPolicy`\n" + }, + "patch": { + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "updateMask": { + "description": "A mask used to specify which fields of the queue are being updated.\n\nIf empty, then all fields will be updated.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "The queue name.\n\nThe queue name must have the following format:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\n* `PROJECT_ID` can contain uppercase and lowercase letters,\n numbers, hyphens, colons, and periods; that is, it must match\n the regular expression: `[a-zA-Z\\\\d-:\\\\.]+`.\n* `QUEUE_ID` can contain uppercase and lowercase letters,\n numbers, and hyphens; that is, it must match the regular\n expression: `[a-zA-Z\\\\d-]+`. The maximum length is 100\n characters.\n\nCaller-specified and required in CreateQueueRequest, after which\nit becomes output only." + } + }, + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", + "path": "v2beta2/{+name}", + "id": "cloudtasks.projects.locations.queues.patch", + "description": "Updates a queue.\n\nThis method creates the queue if it does not exist and updates\nthe queue if it does exist.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).", + "request": { + "$ref": "Queue" + } + }, + "get": { + "description": "Gets a queue.", + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "Required.\n\nThe resource name of the queue. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", + "path": "v2beta2/{+name}", + "id": "cloudtasks.projects.locations.queues.get" + }, + "purge": { + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:purge", + "path": "v2beta2/{+name}:purge", + "id": "cloudtasks.projects.locations.queues.purge", + "request": { + "$ref": "PurgeQueueRequest" + }, + "description": "Purges a queue by deleting all of its tasks.\n\nAll tasks created before this method is called are permanently deleted.\n\nPurge operations can take up to one minute to take effect. Tasks\nmight be dispatched before the purge takes effect. A purge is irreversible." + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on a Queue.\nIf the resource does not exist, this will return an empty set of\npermissions, not a google.rpc.Code.NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.\n", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:testIamPermissions", + "path": "v2beta2/{+resource}:testIamPermissions", + "id": "cloudtasks.projects.locations.queues.testIamPermissions" + }, + "pause": { + "request": { + "$ref": "PauseQueueRequest" + }, + "description": "Pauses the queue.\n\nIf a queue is paused then the system will stop executing the\ntasks in the queue until it is resumed via\nCloudTasks.ResumeQueue. Tasks can still be added when the\nqueue is paused. The state of the queue is stored in\nQueue.queue_state; if paused it will be set to\nQueue.QueueState.PAUSED.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).", + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:pause", + "path": "v2beta2/{+name}:pause", + "id": "cloudtasks.projects.locations.queues.pause" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}", + "path": "v2beta2/{+name}", + "id": "cloudtasks.projects.locations.queues.delete", + "description": "Deletes a queue.\n\nThis command will delete the queue even if it has tasks in it.\n\nNote: If you delete a queue, a queue with the same name can't be created\nfor 7 days.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy)." + }, + "list": { + "response": { + "$ref": "ListQueuesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListQueuesResponse.next_page_token returned from the previous\ncall to CloudTasks.ListQueues method. It is an error to\nswitch the value of ListQueuesRequest.filter while iterating\nthrough pages.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Requested page size.\n\nThe maximum page size is 9800. If unspecified, the page size will\nbe the maximum. Fewer queues than requested might be returned,\neven if more queues exist; use\nListQueuesResponse.next_page_token to determine if more\nqueues exist.", + "format": "int32", + "type": "integer" + }, + "parent": { + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "Required.\n\nThe location name.\nFor example: `projects/PROJECT_ID/locations/LOCATION_ID`", + "required": true, + "type": "string" + }, + "filter": { + "type": "string", + "location": "query", + "description": "`filter` can be used to specify a subset of queues. Any Queue\nfield can be used as a filter and several operators as supported.\nFor example: `\u003c=, \u003c, \u003e=, \u003e, !=, =, :`. The filter syntax is the same as\ndescribed in\n[Stackdriver's Advanced Logs Filters](/logging/docs/view/advanced_filters).\n\nSample filter \"app_engine_http_target: *\".\n\nNote that using filters might cause fewer queues than the\nrequested_page size to be returned." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", + "path": "v2beta2/{+parent}/queues", + "id": "cloudtasks.projects.locations.queues.list", + "description": "Lists queues.\n\nQueues are returned in lexicographical order." + }, + "create": { + "description": "Creates a queue.\n\nWARNING: This method is only available to whitelisted\nusers. Using this method carries some risk. Read\n[Overview of Queue Management and queue.yaml](/cloud-tasks/docs/queue-yaml)\ncarefully and then sign up for\n[whitelist access to this method](https://goo.gl/Fe5mUy).", + "request": { + "$ref": "Queue" + }, + "response": { + "$ref": "Queue" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "description": "Required.\n\nThe location name in which the queue will be created.\nFor example: `projects/PROJECT_ID/locations/LOCATION_ID`\n\nThe list of allowed locations can be obtained by calling Cloud\nTasks' implementation of\ngoogle.cloud.location.Locations.ListLocations.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues", + "path": "v2beta2/{+parent}/queues", + "id": "cloudtasks.projects.locations.queues.create" + }, + "setIamPolicy": { + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy for a Queue. Replaces any existing\npolicy.\n\nAuthorization requires the following [Google IAM](/iam) permission on the\nspecified resource parent:\n\n* `cloudtasks.queues.setIamPolicy`\n", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}:setIamPolicy", + "path": "v2beta2/{+resource}:setIamPolicy", + "id": "cloudtasks.projects.locations.queues.setIamPolicy" + } + }, + "resources": { + "tasks": { + "methods": { + "delete": { + "path": "v2beta2/{+name}", + "id": "cloudtasks.projects.locations.queues.tasks.delete", + "description": "Deletes a task.\n\nA task can be deleted if it is scheduled or dispatched. A task\ncannot be deleted if it has completed successfully or permanently\nfailed.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "location": "path", + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}" + }, + "pull": { + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks:pull", + "path": "v2beta2/{+name}/tasks:pull", + "id": "cloudtasks.projects.locations.queues.tasks.pull", + "description": "Pulls tasks from a pull queue and acquires a lease on them for a\nspecified PullTasksRequest.lease_duration.\n\nThis method is invoked by the lease holder to obtain the\nlease. The lease holder must acknowledge the task via\nCloudTasks.AcknowledgeTask after they have performed the work\nassociated with the task.\n\nThe payload is intended to store data that the lease holder needs\nto perform the work associated with the task. To return the\npayloads in the PullTasksResponse, set\nPullTasksRequest.response_view to Task.View.FULL.\n\nA maximum of 10 qps of CloudTasks.PullTasks requests are allowed per\nqueue. google.rpc.Code.RESOURCE_EXHAUSTED is returned when this limit\nis exceeded. google.rpc.Code.RESOURCE_EXHAUSTED is also returned when\nRateLimits.max_tasks_dispatched_per_second is exceeded.", + "request": { + "$ref": "PullTasksRequest" + }, + "response": { + "$ref": "PullTasksResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$", + "location": "path" + } + } + }, + "list": { + "parameters": { + "parent": { + "location": "path", + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$" + }, + "responseView": { + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string", + "location": "query", + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ] + }, + "orderBy": { + "location": "query", + "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullMessage.tag. All results will be\nreturned in approximately ascending order. The default ordering is by\nTask.schedule_time.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListTasksResponse.next_page_token returned from the previous\ncall to CloudTasks.ListTasks method.\n\nThe page token is valid for only 2 hours.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Requested page size. Fewer tasks than requested might be returned.\n\nThe maximum page size is 1000. If unspecified, the page size will\nbe the maximum. Fewer tasks than requested might be returned,\neven if more tasks exist; use\nListTasksResponse.next_page_token to determine if more tasks\nexist.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", + "path": "v2beta2/{+parent}/tasks", + "id": "cloudtasks.projects.locations.queues.tasks.list", + "description": "Lists the tasks in a queue.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default due to performance\nconsiderations; ListTasksRequest.response_view controls the\nsubset of information which is returned.", + "response": { + "$ref": "ListTasksResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET" + }, + "create": { + "response": { + "$ref": "Task" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "location": "path", + "description": "Required.\n\nThe queue name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`\n\nThe queue must already exist.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", + "path": "v2beta2/{+parent}/tasks", + "id": "cloudtasks.projects.locations.queues.tasks.create", + "request": { + "$ref": "CreateTaskRequest" + }, + "description": "Creates a task and adds it to a queue.\n\nTo add multiple tasks at the same time, use\n[HTTP batching](/storage/docs/json_api/v1/how-tos/batch)\nor the batching documentation for your client library, for example\nhttps://developers.google.com/api-client-library/python/guide/batch.\n\nTasks cannot be updated after creation; there is no UpdateTask command.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n the maximum task size is 100KB.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this\n the maximum task size is 1MB." + }, + "cancelLease": { + "response": { + "$ref": "Task" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", + "location": "path", + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:cancelLease", + "path": "v2beta2/{+name}:cancelLease", + "id": "cloudtasks.projects.locations.queues.tasks.cancelLease", + "request": { + "$ref": "CancelLeaseRequest" + }, + "description": "Cancel a pull task's lease.\n\nThe lease holder can use this method to cancel a task's lease\nby setting Task.schedule_time to now. This will make the task\navailable to be leased to the next caller of CloudTasks.PullTasks." + }, + "run": { + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:run", + "path": "v2beta2/{+name}:run", + "id": "cloudtasks.projects.locations.queues.tasks.run", + "request": { + "$ref": "RunTaskRequest" + }, + "description": "Forces a task to run now.\n\nThis command is meant to be used for manual debugging. For\nexample, CloudTasks.RunTask can be used to retry a failed\ntask after a fix has been made or to manually force a task to be\ndispatched now.\n\nWhen this method is called, Cloud Tasks will dispatch the task to its\ntarget, even if the queue is Queue.QueueState.PAUSED.\n\nThe dispatched task is returned. That is, the task that is returned\ncontains the Task.task_status after the task is dispatched but\nbefore the task is received by its target.\n\nIf Cloud Tasks receives a successful response from the task's\nhandler, then the task will be deleted; otherwise the task's\nTask.schedule_time will be reset to the time that\nCloudTasks.RunTask was called plus the retry delay specified\nin the queue and task's RetryConfig.\n\nCloudTasks.RunTask returns google.rpc.Code.NOT_FOUND when\nit is called on a task that has already succeeded or permanently\nfailed. google.rpc.Code.FAILED_PRECONDITION is returned when\nCloudTasks.RunTask is called on task that is dispatched or\nalready running.", + "response": { + "$ref": "Task" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "acknowledge": { + "path": "v2beta2/{+name}:acknowledge", + "id": "cloudtasks.projects.locations.queues.tasks.acknowledge", + "request": { + "$ref": "AcknowledgeTaskRequest" + }, + "description": "Acknowledges a pull task.\n\nThe lease holder, that is, the entity that received this task in\na PullTasksResponse, must call this method to indicate that\nthe work associated with the task has finished.\n\nThe lease holder must acknowledge a task within the\nPullTasksRequest.lease_duration or the lease will expire and\nthe task will become ready to be returned in a different\nPullTasksResponse. After the task is acknowledged, it will\nnot be returned by a later CloudTasks.PullTasks,\nCloudTasks.GetTask, or CloudTasks.ListTasks.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:acknowledge" + }, + "renewLease": { + "response": { + "$ref": "Task" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:renewLease", + "path": "v2beta2/{+name}:renewLease", + "id": "cloudtasks.projects.locations.queues.tasks.renewLease", + "description": "Renew the current lease of a pull task.\n\nThe lease holder can use this method to extend the lease by a new\nduration, starting from now. The new task lease will be\nreturned in Task.schedule_time.", + "request": { + "$ref": "RenewLeaseRequest" + } + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Task" + }, + "parameters": { + "name": { + "location": "path", + "description": "Required.\n\nThe task name. For example:\n`projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/queues/[^/]+/tasks/[^/]+$" + }, + "responseView": { + "location": "query", + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "The response_view specifies which subset of the Task will be\nreturned.\n\nBy default response_view is Task.View.BASIC; not all\ninformation is retrieved by default because some data, such as\npayloads, might be desirable to return only when needed because\nof its large size or because of the sensitivity of data that it\ncontains.\n\nAuthorization for Task.View.FULL requires `cloudtasks.tasks.fullView`\n[Google IAM](/iam/) permission on the\nTask.name resource.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}", + "id": "cloudtasks.projects.locations.queues.tasks.get", + "path": "v2beta2/{+name}", + "description": "Gets a task." + } + } + } + } + } + } + } + } + } + }, + "parameters": { + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string" + }, + "access_token": { + "type": "string", + "location": "query", + "description": "OAuth access token." + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + } + }, + "version": "v2beta2", + "baseUrl": "https://cloudtasks.googleapis.com/", + "servicePath": "", + "description": "Manages the execution of large numbers of distributed requests. Cloud Tasks is in Alpha.", + "kind": "discovery#restDescription", + "basePath": "" } diff --git a/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-gen.go b/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-gen.go index a7541a54c..fcfc1bc8e 100644 --- a/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-gen.go +++ b/vendor/google.golang.org/api/cloudtasks/v2beta2/cloudtasks-gen.go @@ -276,8 +276,7 @@ type AppEngineHttpRequest struct { // handle // HTTP requests with this http_method, otherwise the task attempt will // fail - // with error code 405 "Method Not Allowed" because "the method - // specified in + // with error code 405 (Method Not Allowed). See // the Request-Line is not allowed for the resource identified by // the // Request-URI". See @@ -312,7 +311,7 @@ type AppEngineHttpRequest struct { // // The relative URL must begin with "/" and must be a valid HTTP // relative URL. - // It can contain a path, query string arguments, and `#` fragments. + // It can contain a path and query string arguments. // If the relative URL is empty, then the root path "/" will be used. // No spaces are allowed, and the maximum length allowed is 2083 // characters. @@ -395,10 +394,10 @@ func (s *AppEngineHttpTarget) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// AppEngineQueueConfig: Deprecated. Use AppEngineTarget. +// AppEngineQueueConfig: Deprecated. Use AppEngineHttpTarget. type AppEngineQueueConfig struct { // AppEngineRoutingOverride: Deprecated. Use - // AppEngineTarget.app_engine_routing_override. + // AppEngineHttpTarget.app_engine_routing_override. AppEngineRoutingOverride *AppEngineRouting `json:"appEngineRoutingOverride,omitempty"` // ForceSendFields is a list of field names (e.g. @@ -891,27 +890,34 @@ type CreateTaskRequest struct { // the // response's Task.name. // - // Explicitly specifying a Task.name enables task - // de-duplication. If a task's name is identical to the name of - // an - // existing task or a task that was deleted or completed within the - // last ~10 days then the call to CloudTasks.CreateTask will - // fail with google.rpc.Code.ALREADY_EXISTS. Because there is an - // extra lookup cost to identify duplicate task names, - // these - // CloudTasks.CreateTask calls have significantly increased - // latency. Using hashed strings for the task id or for the prefix - // of the task id is recommended. Choosing task ids that are - // sequential or have sequential prefixes, for example using + // If Task.schedule_time is not set or is in the past then Cloud + // Tasks will set it to the current time. + // + // Task De-duplication: + // + // Explicitly specifying a task ID enables task de-duplication. If + // a task's ID is identical to that of an existing task or a task + // that was deleted or completed recently then the call will fail + // with google.rpc.Code.ALREADY_EXISTS. If the task's queue was + // created using Cloud Tasks, then another task with the same name + // can't be created for ~1hour after the original task was deleted + // or completed. If the task's queue was created using queue.yaml + // or + // queue.xml, then another task with the same name can't be created + // for ~9days after the original task was deleted or completed. + // + // Because there is an extra lookup cost to identify duplicate + // task + // names, these CloudTasks.CreateTask calls have significantly + // increased latency. Using hashed strings for the task id or for + // the prefix of the task id is recommended. Choosing task ids that + // are sequential or have sequential prefixes, for example using // a // timestamp, causes an increase in latency and error rates in all // task commands. The infrastructure relies on an approximately // uniform distribution of task ids to store and serve // tasks // efficiently. - // - // If Task.schedule_time is not set or is in the past then Cloud - // Tasks will set it to the current time. Task *Task `json:"task,omitempty"` // ForceSendFields is a list of field names (e.g. "ResponseView") to @@ -1317,33 +1323,23 @@ type PullTasksRequest struct { // // When `filter` is set to `tag=` then the // PullTasksResponse will contain only tasks whose - // PullMessage.tag is equal to ``. `` can be - // a bytes encoded as a string and must be less than 500 bytes. - // If `` includes whitespace or special characters (characters - // which - // aren't letters, numbers, or underscores), then it must be - // double-quoted. - // Double quotes and backslashes in quoted strings must be escaped - // by - // preceding it with a backslash (`\`). + // PullMessage.tag is equal to ``. `` must be less + // than + // 500 bytes. // - // When `filter` is set to `tag=oldest_tag()`, only tasks which have the - // same - // tag as the task with the oldest schedule_time will be + // When `filter` is set to `tag_function=oldest_tag()`, only tasks which + // have + // the same tag as the task with the oldest schedule_time will be // returned. // // Grammar Syntax: // - // * `filter = "tag=" comparable` - // - // * `comparable = tag | function` + // * `filter = "tag=" tag | "tag_function=" function` // // * `tag = string | bytes` // // * `function = "oldest_tag()" // - // - // // The `oldest_tag()` function returns tasks which have the same tag as // the // oldest task (ordered by schedule time). @@ -1572,6 +1568,25 @@ type Queue struct { // CloudTasks.DeleteQueue. QueueState string `json:"queueState,omitempty"` + // RateLimits: Rate limits for task dispatches. + // + // Queue.rate_limits and Queue.retry_config are related because + // they + // both control task attempts however they control how tasks are + // attempted in + // different ways: + // + // * Queue.rate_limits controls the total rate of dispatches from a + // queue + // (i.e. all traffic dispatched from the queue, regardless of whether + // the + // dispatch is from a first attempt or a retry). + // * Queue.retry_config controls what happens to particular a task + // after + // its first attempt fails. That is, Queue.retry_config controls task + // retries (the second attempt, third attempt, etc). + RateLimits *RateLimits `json:"rateLimits,omitempty"` + // RetryConfig: Settings that determine the retry behavior. // // * For tasks created using Cloud Tasks: the queue-level retry @@ -1589,9 +1604,6 @@ type Queue struct { // -tasks). RetryConfig *RetryConfig `json:"retryConfig,omitempty"` - // ThrottleConfig: Config for throttling task dispatches. - ThrottleConfig *ThrottleConfig `json:"throttleConfig,omitempty"` - // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -1620,6 +1632,113 @@ func (s *Queue) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RateLimits: Rate limits. +// +// This message determines the maximum rate that tasks can be dispatched +// by a +// queue, regardless of whether the dispatch is a first task attempt or +// a retry. +type RateLimits struct { + // MaxBurstSize: Output only. + // + // The max burst size limits how fast the queue is processed when + // many tasks are in the queue and the rate is high. This field + // allows the queue to have a high rate so processing starts + // shortly + // after a task is enqueued, but still limits resource usage when + // many tasks are enqueued in a short period of time. + // + // * For App Engine queues, if + // RateLimits.max_tasks_dispatched_per_second is 1, this + // field is 10; otherwise this field is + // RateLimits.max_tasks_dispatched_per_second / 5. + // * For pull queues, this field is output only and always + // 10,000. + // + // Note: For App Engine queues that were created + // through + // `queue.yaml/xml`, `max_burst_size` might not have the same + // settings as specified above; CloudTasks.UpdateQueue can be + // used to set `max_burst_size` only to the values specified + // above. + // + // This field has the same meaning as + // [bucket_size in + // queue.yaml](/appengine/docs/standard/python/config/queueref#bucket_siz + // e). + MaxBurstSize int64 `json:"maxBurstSize,omitempty"` + + // MaxConcurrentTasks: The maximum number of concurrent tasks that Cloud + // Tasks allows + // to be dispatched for this queue. After this threshold has + // been + // reached, Cloud Tasks stops dispatching tasks until the number + // of + // concurrent requests decreases. + // + // The maximum allowed value is 5,000. + // + // * For App Engine queues, this field is 10 by default. + // * For pull queues, this field is output only and always -1, which + // indicates no limit. + // + // This field has the same meaning as + // [max_concurrent_requests in + // queue.yaml](/appengine/docs/standard/python/config/queueref#max_concur + // rent_requests). + MaxConcurrentTasks int64 `json:"maxConcurrentTasks,omitempty"` + + // MaxTasksDispatchedPerSecond: The maximum rate at which tasks are + // dispatched from this + // queue. + // + // The maximum allowed value is 500. + // + // * For App Engine queues, this field is 1 by default. + // * For pull queues, this field is output only and always 10,000. + // + // This field has the same meaning as + // [rate in + // queue.yaml](/appengine/docs/standard/python/config/queueref#rate). + MaxTasksDispatchedPerSecond float64 `json:"maxTasksDispatchedPerSecond,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MaxBurstSize") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MaxBurstSize") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RateLimits) MarshalJSON() ([]byte, error) { + type noMethod RateLimits + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *RateLimits) UnmarshalJSON(data []byte) error { + type noMethod RateLimits + var s1 struct { + MaxTasksDispatchedPerSecond gensupport.JSONFloat64 `json:"maxTasksDispatchedPerSecond"` + *noMethod + } + s1.noMethod = (*noMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.MaxTasksDispatchedPerSecond = float64(s1.MaxTasksDispatchedPerSecond) + return nil +} + // RenewLeaseRequest: Request message for renewing a lease using // CloudTasks.RenewLease. type RenewLeaseRequest struct { @@ -1707,17 +1826,7 @@ type ResumeQueueRequest struct { // RetryConfig: Retry config. // -// These settings determine retry behavior. -// -// If a task does not complete successfully, meaning that -// an -// acknowledgement is not received from the handler before -// the -// [deadline](/appengine/docs/python/taskqueue/push/#the_task_deadlin -// e), -// then it will be retried with exponential backoff according to -// the -// settings in RetryConfig. +// These settings determine how a failed task attempt is retried. type RetryConfig struct { // MaxAttempts: The maximum number of attempts for a task. // @@ -1738,14 +1847,22 @@ type RetryConfig struct { // is output only and always 0. // // `max_backoff` will be truncated to the nearest second. + // + // This field has the same meaning as + // [max_backoff_seconds in + // queue.yaml](/appengine/docs/standard/python/config/queueref#retry_para + // meters). MaxBackoff string `json:"maxBackoff,omitempty"` - // MaxDoublings: The maximum number of times that the interval between - // failed task - // retries will be doubled before the increase becomes constant. - // The - // constant is: 2**(max_doublings - 1) * - // RetryConfig.min_backoff. + // MaxDoublings: The time between retries increases exponentially + // `max_doublings` times. + // `max_doublings` is maximum number of times that the interval between + // failed + // task retries will be doubled before the interval increases + // linearly. + // After max_doublings intervals, the retry interval will + // be + // 2^(max_doublings - 1) * RetryConfig.min_backoff. // // * For [App Engine // queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget), @@ -1753,8 +1870,39 @@ type RetryConfig struct { // * For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this // field // is output only and always 0. + // + // This field has the same meaning as + // [max_doublings in + // queue.yaml](/appengine/docs/standard/python/config/queueref#retry_para + // meters). MaxDoublings int64 `json:"maxDoublings,omitempty"` + // MaxRetryDuration: If positive, `max_retry_duration` specifies the + // time limit for retrying a + // failed task, measured from when the task was first attempted. + // Once + // `max_retry_duration` time has passed *and* the task has been + // attempted + // RetryConfig.max_attempts times, no further attempts will be made + // and + // the task will be deleted. + // + // If zero, then the task age is unlimited. + // + // * For [App Engine + // queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget), + // this field is 0 seconds by default. + // * For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this + // field is output only and always 0. + // + // `max_retry_duration` will be truncated to the nearest second. + // + // This field has the same meaning as + // [task_age_limit in + // queue.yaml](/appengine/docs/standard/python/config/queueref#retry_para + // meters). + MaxRetryDuration string `json:"maxRetryDuration,omitempty"` + // MinBackoff: The minimum amount of time to wait before retrying a task // after // it fails. @@ -1766,21 +1914,13 @@ type RetryConfig struct { // field is output only and always 0. // // `min_backoff` will be truncated to the nearest second. + // + // This field has the same meaning as + // [min_backoff_seconds in + // queue.yaml](/appengine/docs/standard/python/config/queueref#retry_para + // meters). MinBackoff string `json:"minBackoff,omitempty"` - // TaskAgeLimit: If positive, task_age_limit specifies the time limit - // for retrying a failed - // task, measured from when the task was first run. If specified - // with - // RetryConfig.max_attempts, the task will be retried until both - // limits are reached. - // - // If zero, then the task age is unlimited. This field is zero by - // default. - // - // `task_age_limit` will be truncated to the nearest second. - TaskAgeLimit string `json:"taskAgeLimit,omitempty"` - // UnlimitedAttempts: If true, then the number of attempts is unlimited. UnlimitedAttempts bool `json:"unlimitedAttempts,omitempty"` @@ -2279,110 +2419,6 @@ func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// ThrottleConfig: Throttle config. -// -// These settings determine the throttling behavior. -type ThrottleConfig struct { - // MaxBurstSize: Output only. - // - // The max burst size limits how fast the queue is processed when - // many tasks are in the queue and the rate is high. This field - // allows the queue to have a high rate so processing starts - // shortly - // after a task is enqueued, but still limits resource usage when - // many tasks are enqueued in a short period of time. - // - // * For App Engine queues, if - // ThrottleConfig.max_tasks_dispatched_per_second is 1, this - // field is 10; otherwise this field is - // ThrottleConfig.max_tasks_dispatched_per_second / 5. - // * For pull queues, this field is output only and always - // 10,000. - // - // Note: For App Engine queues that were created - // through - // `queue.yaml/xml`, `max_burst_size` might not have the same - // settings as specified above; CloudTasks.UpdateQueue can be - // used to set `max_burst_size` only to the values specified - // above. - // - // This field has the same meaning as - // [bucket_size in - // queue.yaml](/appengine/docs/standard/python/config/queueref#bucket_siz - // e). - MaxBurstSize int64 `json:"maxBurstSize,omitempty"` - - // MaxOutstandingTasks: The maximum number of outstanding tasks that - // Cloud Tasks allows - // to be dispatched for this queue. After this threshold has - // been - // reached, Cloud Tasks stops dispatching tasks until the number - // of - // outstanding requests decreases. - // - // The maximum allowed value is 5,000. - // - // * For App Engine queues, this field is 10 by default. - // * For pull queues, this field is output only and always -1, which - // indicates no limit. - // - // This field has the same meaning as - // [max_concurrent_requests in - // queue.yaml](/appengine/docs/standard/python/config/queueref#max_concur - // rent_requests). - MaxOutstandingTasks int64 `json:"maxOutstandingTasks,omitempty"` - - // MaxTasksDispatchedPerSecond: The maximum rate at which tasks are - // dispatched from this - // queue. - // - // The maximum allowed value is 500. - // - // * For App Engine queues, this field is 1 by default. - // * For pull queues, this field is output only and always 10,000. - // - // This field has the same meaning as - // [rate in - // queue.yaml](/appengine/docs/standard/python/config/queueref#rate). - MaxTasksDispatchedPerSecond float64 `json:"maxTasksDispatchedPerSecond,omitempty"` - - // ForceSendFields is a list of field names (e.g. "MaxBurstSize") to - // unconditionally include in API requests. By default, fields with - // empty values are omitted from API requests. However, any non-pointer, - // non-interface field appearing in ForceSendFields will be sent to the - // server regardless of whether the field is empty or not. This may be - // used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "MaxBurstSize") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *ThrottleConfig) MarshalJSON() ([]byte, error) { - type noMethod ThrottleConfig - raw := noMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -func (s *ThrottleConfig) UnmarshalJSON(data []byte) error { - type noMethod ThrottleConfig - var s1 struct { - MaxTasksDispatchedPerSecond gensupport.JSONFloat64 `json:"maxTasksDispatchedPerSecond"` - *noMethod - } - s1.noMethod = (*noMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.MaxTasksDispatchedPerSecond = float64(s1.MaxTasksDispatchedPerSecond) - return nil -} - // method id "cloudtasks.projects.locations.get": type ProjectsLocationsGetCall struct { @@ -3467,7 +3503,6 @@ func (c *ProjectsLocationsQueuesListCall) Do(opts ...googleapi.CallOption) (*Lis // }, // "pageToken": { // "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListQueuesResponse.next_page_token returned from the previous\ncall to CloudTasks.ListQueues method. It is an error to\nswitch the value of ListQueuesRequest.filter while iterating\nthrough pages.", - // "format": "byte", // "location": "query", // "type": "string" // }, @@ -4720,6 +4755,12 @@ type ProjectsLocationsQueuesTasksCreateCall struct { // // Tasks cannot be updated after creation; there is no UpdateTask // command. +// +// * For [App Engine +// queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget), +// the maximum task size is 100KB. +// * For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this +// the maximum task size is 1MB. func (r *ProjectsLocationsQueuesTasksService) Create(parent string, createtaskrequest *CreateTaskRequest) *ProjectsLocationsQueuesTasksCreateCall { c := &ProjectsLocationsQueuesTasksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent @@ -4813,7 +4854,7 @@ func (c *ProjectsLocationsQueuesTasksCreateCall) Do(opts ...googleapi.CallOption } return ret, nil // { - // "description": "Creates a task and adds it to a queue.\n\nTo add multiple tasks at the same time, use\n[HTTP batching](/storage/docs/json_api/v1/how-tos/batch)\nor the batching documentation for your client library, for example\nhttps://developers.google.com/api-client-library/python/guide/batch.\n\nTasks cannot be updated after creation; there is no UpdateTask command.", + // "description": "Creates a task and adds it to a queue.\n\nTo add multiple tasks at the same time, use\n[HTTP batching](/storage/docs/json_api/v1/how-tos/batch)\nor the batching documentation for your client library, for example\nhttps://developers.google.com/api-client-library/python/guide/batch.\n\nTasks cannot be updated after creation; there is no UpdateTask command.\n\n* For [App Engine queues](google.cloud.tasks.v2beta2.AppEngineHttpTarget),\n the maximum task size is 100KB.\n* For [pull queues](google.cloud.tasks.v2beta2.PullTarget), this\n the maximum task size is 1MB.", // "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", // "httpMethod": "POST", // "id": "cloudtasks.projects.locations.queues.tasks.create", @@ -5177,7 +5218,7 @@ func (r *ProjectsLocationsQueuesTasksService) List(parent string) *ProjectsLocat // the query. The fields supported for sorting // are Task.schedule_time and PullMessage.tag. All results will // be -// returned in ascending order. The default ordering is +// returned in approximately ascending order. The default ordering is // by // Task.schedule_time. func (c *ProjectsLocationsQueuesTasksListCall) OrderBy(orderBy string) *ProjectsLocationsQueuesTasksListCall { @@ -5344,7 +5385,7 @@ func (c *ProjectsLocationsQueuesTasksListCall) Do(opts ...googleapi.CallOption) // ], // "parameters": { // "orderBy": { - // "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullMessage.tag. All results will be\nreturned in ascending order. The default ordering is by\nTask.schedule_time.", + // "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullMessage.tag. All results will be\nreturned in approximately ascending order. The default ordering is by\nTask.schedule_time.", // "location": "query", // "type": "string" // }, @@ -5356,7 +5397,6 @@ func (c *ProjectsLocationsQueuesTasksListCall) Do(opts ...googleapi.CallOption) // }, // "pageToken": { // "description": "A token identifying the page of results to return.\n\nTo request the first page results, page_token must be empty. To\nrequest the next page of results, page_token must be the value of\nListTasksResponse.next_page_token returned from the previous\ncall to CloudTasks.ListTasks method.\n\nThe page token is valid for only 2 hours.", - // "format": "byte", // "location": "query", // "type": "string" // }, @@ -5436,6 +5476,14 @@ type ProjectsLocationsQueuesTasksPullCall struct { // to perform the work associated with the task. To return the // payloads in the PullTasksResponse, set // PullTasksRequest.response_view to Task.View.FULL. +// +// A maximum of 10 qps of CloudTasks.PullTasks requests are allowed +// per +// queue. google.rpc.Code.RESOURCE_EXHAUSTED is returned when this +// limit +// is exceeded. google.rpc.Code.RESOURCE_EXHAUSTED is also returned +// when +// RateLimits.max_tasks_dispatched_per_second is exceeded. func (r *ProjectsLocationsQueuesTasksService) Pull(name string, pulltasksrequest *PullTasksRequest) *ProjectsLocationsQueuesTasksPullCall { c := &ProjectsLocationsQueuesTasksPullCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -5529,7 +5577,7 @@ func (c *ProjectsLocationsQueuesTasksPullCall) Do(opts ...googleapi.CallOption) } return ret, nil // { - // "description": "Pulls tasks from a pull queue and acquires a lease on them for a\nspecified PullTasksRequest.lease_duration.\n\nThis method is invoked by the lease holder to obtain the\nlease. The lease holder must acknowledge the task via\nCloudTasks.AcknowledgeTask after they have performed the work\nassociated with the task.\n\nThe payload is intended to store data that the lease holder needs\nto perform the work associated with the task. To return the\npayloads in the PullTasksResponse, set\nPullTasksRequest.response_view to Task.View.FULL.", + // "description": "Pulls tasks from a pull queue and acquires a lease on them for a\nspecified PullTasksRequest.lease_duration.\n\nThis method is invoked by the lease holder to obtain the\nlease. The lease holder must acknowledge the task via\nCloudTasks.AcknowledgeTask after they have performed the work\nassociated with the task.\n\nThe payload is intended to store data that the lease holder needs\nto perform the work associated with the task. To return the\npayloads in the PullTasksResponse, set\nPullTasksRequest.response_view to Task.View.FULL.\n\nA maximum of 10 qps of CloudTasks.PullTasks requests are allowed per\nqueue. google.rpc.Code.RESOURCE_EXHAUSTED is returned when this limit\nis exceeded. google.rpc.Code.RESOURCE_EXHAUSTED is also returned when\nRateLimits.max_tasks_dispatched_per_second is exceeded.", // "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks:pull", // "httpMethod": "POST", // "id": "cloudtasks.projects.locations.queues.tasks.pull", diff --git a/vendor/google.golang.org/api/cloudtrace/v1/cloudtrace-api.json b/vendor/google.golang.org/api/cloudtrace/v1/cloudtrace-api.json index 40b921462..3ab48b407 100644 --- a/vendor/google.golang.org/api/cloudtrace/v1/cloudtrace-api.json +++ b/vendor/google.golang.org/api/cloudtrace/v1/cloudtrace-api.json @@ -1,16 +1,270 @@ { + "fullyEncodeReservedExpansion": true, + "title": "Stackdriver Trace API", + "ownerName": "Google", + "resources": { + "projects": { + "methods": { + "patchTraces": { + "description": "Sends new traces to Stackdriver Trace or updates existing traces. If the ID\nof a trace that you send matches that of an existing trace, any fields\nin the existing trace and its spans are overwritten by the provided values,\nand any new fields provided are merged with the existing trace data. If the\nID does not match, a new trace is created.", + "request": { + "$ref": "Traces" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the Cloud project where the trace data is stored.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append" + ], + "flatPath": "v1/projects/{projectId}/traces", + "path": "v1/projects/{projectId}/traces", + "id": "cloudtrace.projects.patchTraces" + } + }, + "resources": { + "traces": { + "methods": { + "get": { + "description": "Gets a single trace by its ID.", + "httpMethod": "GET", + "response": { + "$ref": "Trace" + }, + "parameterOrder": [ + "projectId", + "traceId" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.readonly" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "ID of the Cloud project where the trace data is stored.", + "type": "string", + "required": true + }, + "traceId": { + "description": "ID of the trace to return.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/traces/{traceId}", + "path": "v1/projects/{projectId}/traces/{traceId}", + "id": "cloudtrace.projects.traces.get" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListTracesResponse" + }, + "parameterOrder": [ + "projectId" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.readonly" + ], + "parameters": { + "orderBy": { + "type": "string", + "location": "query", + "description": "Field used to sort the returned traces. Optional.\nCan be one of the following:\n\n* `trace_id`\n* `name` (`name` field of root span in the trace)\n* `duration` (difference between `end_time` and `start_time` fields of\n the root span)\n* `start` (`start_time` field of the root span)\n\nDescending order can be specified by appending `desc` to the sort field\n(for example, `name desc`).\n\nOnly one sort field is permitted." + }, + "projectId": { + "description": "ID of the Cloud project where the trace data is stored.", + "type": "string", + "required": true, + "location": "path" + }, + "filter": { + "location": "query", + "description": "An optional filter against labels for the request.\n\nBy default, searches use prefix matching. To specify exact match, prepend\na plus symbol (`+`) to the search term.\nMultiple terms are ANDed. Syntax:\n\n* `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root\n span starts with `NAME_PREFIX`.\n* `+root:NAME` or `+NAME`: Return traces where any root span's name is\n exactly `NAME`.\n* `span:NAME_PREFIX`: Return traces where any span starts with\n `NAME_PREFIX`.\n* `+span:NAME`: Return traces where any span's name is exactly\n `NAME`.\n* `latency:DURATION`: Return traces whose overall latency is\n greater or equal to than `DURATION`. Accepted units are nanoseconds\n (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For\n example, `latency:24ms` returns traces whose overall latency\n is greater than or equal to 24 milliseconds.\n* `label:LABEL_KEY`: Return all traces containing the specified\n label key (exact match, case-sensitive) regardless of the key:value\n pair's value (including empty values).\n* `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified\n label key (exact match, case-sensitive) whose value starts with\n `VALUE_PREFIX`. Both a key and a value must be specified.\n* `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair\n exactly matching the specified text. Both a key and a value must be\n specified.\n* `method:VALUE`: Equivalent to `/http/method:VALUE`.\n* `url:VALUE`: Equivalent to `/http/url:VALUE`.", + "type": "string" + }, + "endTime": { + "location": "query", + "format": "google-datetime", + "description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application.", + "type": "string" + }, + "startTime": { + "location": "query", + "format": "google-datetime", + "description": "Start of the time interval (inclusive) during which the trace data was\ncollected from the application.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Token identifying the page of results to return. If provided, use the\nvalue of the `next_page_token` field from a previous request. Optional.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum number of traces to return. If not specified or \u003c= 0, the\nimplementation selects a reasonable value. The implementation may\nreturn fewer traces than the requested page size. Optional.", + "type": "integer" + }, + "view": { + "location": "query", + "enum": [ + "VIEW_TYPE_UNSPECIFIED", + "MINIMAL", + "ROOTSPAN", + "COMPLETE" + ], + "description": "Type of data returned for traces in the list. Optional. Default is\n`MINIMAL`.", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/traces", + "path": "v1/projects/{projectId}/traces", + "id": "cloudtrace.projects.traces.list", + "description": "Returns of a list of traces that match the specified filter conditions." + } + } + } + } + } + }, + "parameters": { + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "type": "string", + "location": "query", + "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." + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + } + }, + "version": "v1", + "baseUrl": "https://cloudtrace.googleapis.com/", + "kind": "discovery#restDescription", + "servicePath": "", + "description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n", "basePath": "", - "revision": "20170927", "documentationLink": "https://cloud.google.com/trace", "id": "cloudtrace:v1", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { + "Traces": { + "description": "List of new or updated traces.", + "type": "object", + "properties": { + "traces": { + "description": "List of traces.", + "items": { + "$ref": "Trace" + }, + "type": "array" + } + }, + "id": "Traces" + }, "TraceSpan": { - "id": "TraceSpan", "description": "A span represents a single timed event within a trace. Spans can be nested\nand form a trace tree. Often, a trace contains a root span that describes the\nend-to-end latency of an operation and, optionally, one or more subspans for\nits suboperations. Spans do not need to be contiguous. There may be gaps\nbetween spans in a trace.", "type": "object", "properties": { + "name": { + "description": "Name of the span. Must be less than 128 bytes. The span name is sanitized\nand displayed in the Stackdriver Trace tool in the\n{% dynamic print site_values.console_name %}.\nThe name may be a method name or some other per-call site name.\nFor the same executable and the same call point, a best practice is\nto use a consistent name, which makes it easier to correlate\ncross-trace spans.", + "type": "string" + }, "spanId": { "format": "uint64", "description": "Identifier for the span. Must be a 64-bit integer other than 0 and\nunique within a trace.", @@ -46,17 +300,14 @@ ] }, "labels": { + "type": "object", "additionalProperties": { "type": "string" }, - "description": "Collection of labels associated with the span. Label keys must be less than\n128 bytes. Label values must be less than 16 kilobytes (10MB for\n`/stacktrace` values).\n\nSome predefined label keys exist, or you may create your own. When creating\nyour own, we recommend the following formats:\n\n* `/category/product/key` for agents of well-known products (e.g.\n `/db/mongodb/read_size`).\n* `short_host/path/key` for domain-specific keys (e.g.\n `foo.com/myproduct/bar`)\n\nPredefined labels include:\n\n* `/agent`\n* `/component`\n* `/error/message`\n* `/error/name`\n* `/http/client_city`\n* `/http/client_country`\n* `/http/client_protocol`\n* `/http/client_region`\n* `/http/host`\n* `/http/method`\n* `/http/redirected_url`\n* `/http/request/size`\n* `/http/response/size`\n* `/http/status_code`\n* `/http/url`\n* `/http/user_agent`\n* `/pid`\n* `/stacktrace`\n* `/tid`", - "type": "object" - }, - "name": { - "description": "Name of the span. Must be less than 128 bytes. The span name is sanitized\nand displayed in the Stackdriver Trace tool in the\n{% dynamic print site_values.console_name %}.\nThe name may be a method name or some other per-call site name.\nFor the same executable and the same call point, a best practice is\nto use a consistent name, which makes it easier to correlate\ncross-trace spans.", - "type": "string" + "description": "Collection of labels associated with the span. Label keys must be less than\n128 bytes. Label values must be less than 16 kilobytes (10MB for\n`/stacktrace` values).\n\nSome predefined label keys exist, or you may create your own. When creating\nyour own, we recommend the following formats:\n\n* `/category/product/key` for agents of well-known products (e.g.\n `/db/mongodb/read_size`).\n* `short_host/path/key` for domain-specific keys (e.g.\n `foo.com/myproduct/bar`)\n\nPredefined labels include:\n\n* `/agent`\n* `/component`\n* `/error/message`\n* `/error/name`\n* `/http/client_city`\n* `/http/client_country`\n* `/http/client_protocol`\n* `/http/client_region`\n* `/http/host`\n* `/http/method`\n* `/http/redirected_url`\n* `/http/request/size`\n* `/http/response/size`\n* `/http/status_code`\n* `/http/url`\n* `/http/user_agent`\n* `/pid`\n* `/stacktrace`\n* `/tid`" } - } + }, + "id": "TraceSpan" }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", @@ -65,6 +316,8 @@ "id": "Empty" }, "ListTracesResponse": { + "description": "The response message for the `ListTraces` method.", + "type": "object", "properties": { "nextPageToken": { "description": "If defined, indicates that there are more traces that match the request\nand that this value should be passed to the next request to continue\nretrieving additional traces.", @@ -78,11 +331,10 @@ "type": "array" } }, - "id": "ListTracesResponse", - "description": "The response message for the `ListTraces` method.", - "type": "object" + "id": "ListTracesResponse" }, "Trace": { + "id": "Trace", "description": "A trace describes how long it takes for an application to perform an\noperation. It consists of a set of spans, each of which represent a single\ntimed event within the operation.", "type": "object", "properties": { @@ -98,30 +350,15 @@ "type": "string" }, "traceId": { - "type": "string", - "description": "Globally unique identifier for the trace. This identifier is a 128-bit\nnumeric value formatted as a 32-byte hex string." + "description": "Globally unique identifier for the trace. This identifier is a 128-bit\nnumeric value formatted as a 32-byte hex string.", + "type": "string" } - }, - "id": "Trace" - }, - "Traces": { - "description": "List of new or updated traces.", - "type": "object", - "properties": { - "traces": { - "description": "List of traces.", - "items": { - "$ref": "Trace" - }, - "type": "array" - } - }, - "id": "Traces" + } } }, "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "protocol": "rest", "canonicalName": "Cloud Trace", @@ -143,242 +380,5 @@ "rootUrl": "https://cloudtrace.googleapis.com/", "ownerDomain": "google.com", "name": "cloudtrace", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Stackdriver Trace API", - "ownerName": "Google", - "resources": { - "projects": { - "methods": { - "patchTraces": { - "description": "Sends new traces to Stackdriver Trace or updates existing traces. If the ID\nof a trace that you send matches that of an existing trace, any fields\nin the existing trace and its spans are overwritten by the provided values,\nand any new fields provided are merged with the existing trace data. If the\nID does not match, a new trace is created.", - "request": { - "$ref": "Traces" - }, - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "PATCH", - "parameters": { - "projectId": { - "location": "path", - "description": "ID of the Cloud project where the trace data is stored.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/trace.append" - ], - "flatPath": "v1/projects/{projectId}/traces", - "id": "cloudtrace.projects.patchTraces", - "path": "v1/projects/{projectId}/traces" - } - }, - "resources": { - "traces": { - "methods": { - "get": { - "description": "Gets a single trace by its ID.", - "httpMethod": "GET", - "response": { - "$ref": "Trace" - }, - "parameterOrder": [ - "projectId", - "traceId" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/trace.readonly" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "ID of the Cloud project where the trace data is stored.", - "type": "string", - "required": true - }, - "traceId": { - "location": "path", - "description": "ID of the trace to return.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/traces/{traceId}", - "path": "v1/projects/{projectId}/traces/{traceId}", - "id": "cloudtrace.projects.traces.get" - }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/trace.readonly" - ], - "parameters": { - "orderBy": { - "description": "Field used to sort the returned traces. Optional.\nCan be one of the following:\n\n* `trace_id`\n* `name` (`name` field of root span in the trace)\n* `duration` (difference between `end_time` and `start_time` fields of\n the root span)\n* `start` (`start_time` field of the root span)\n\nDescending order can be specified by appending `desc` to the sort field\n(for example, `name desc`).\n\nOnly one sort field is permitted.", - "type": "string", - "location": "query" - }, - "projectId": { - "location": "path", - "description": "ID of the Cloud project where the trace data is stored.", - "type": "string", - "required": true - }, - "filter": { - "description": "An optional filter against labels for the request.\n\nBy default, searches use prefix matching. To specify exact match, prepend\na plus symbol (`+`) to the search term.\nMultiple terms are ANDed. Syntax:\n\n* `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root\n span starts with `NAME_PREFIX`.\n* `+root:NAME` or `+NAME`: Return traces where any root span's name is\n exactly `NAME`.\n* `span:NAME_PREFIX`: Return traces where any span starts with\n `NAME_PREFIX`.\n* `+span:NAME`: Return traces where any span's name is exactly\n `NAME`.\n* `latency:DURATION`: Return traces whose overall latency is\n greater or equal to than `DURATION`. Accepted units are nanoseconds\n (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For\n example, `latency:24ms` returns traces whose overall latency\n is greater than or equal to 24 milliseconds.\n* `label:LABEL_KEY`: Return all traces containing the specified\n label key (exact match, case-sensitive) regardless of the key:value\n pair's value (including empty values).\n* `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified\n label key (exact match, case-sensitive) whose value starts with\n `VALUE_PREFIX`. Both a key and a value must be specified.\n* `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair\n exactly matching the specified text. Both a key and a value must be\n specified.\n* `method:VALUE`: Equivalent to `/http/method:VALUE`.\n* `url:VALUE`: Equivalent to `/http/url:VALUE`.", - "type": "string", - "location": "query" - }, - "endTime": { - "location": "query", - "format": "google-datetime", - "description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application.", - "type": "string" - }, - "pageToken": { - "description": "Token identifying the page of results to return. If provided, use the\nvalue of the `next_page_token` field from a previous request. Optional.", - "type": "string", - "location": "query" - }, - "startTime": { - "location": "query", - "format": "google-datetime", - "description": "Start of the time interval (inclusive) during which the trace data was\ncollected from the application.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of traces to return. If not specified or \u003c= 0, the\nimplementation selects a reasonable value. The implementation may\nreturn fewer traces than the requested page size. Optional.", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "VIEW_TYPE_UNSPECIFIED", - "MINIMAL", - "ROOTSPAN", - "COMPLETE" - ], - "description": "Type of data returned for traces in the list. Optional. Default is\n`MINIMAL`.", - "type": "string" - } - }, - "flatPath": "v1/projects/{projectId}/traces", - "path": "v1/projects/{projectId}/traces", - "id": "cloudtrace.projects.traces.list", - "description": "Returns of a list of traces that match the specified filter conditions.", - "httpMethod": "GET", - "response": { - "$ref": "ListTracesResponse" - }, - "parameterOrder": [ - "projectId" - ] - } - } - } - } - } - }, - "parameters": { - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "default": "true", - "type": "boolean", - "location": "query", - "description": "Returns response with indentations and line breaks." - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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", - "description": "Data format for response.", - "default": "json" - } - }, - "version": "v1", - "baseUrl": "https://cloudtrace.googleapis.com/", - "servicePath": "", - "description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n", - "kind": "discovery#restDescription" + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-api.json b/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-api.json index 0e3c46f30..80b227f25 100644 --- a/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-api.json +++ b/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-api.json @@ -1,267 +1,7 @@ { - "basePath": "", - "id": "cloudtrace:v2", - "documentationLink": "https://cloud.google.com/trace", - "revision": "20170927", "discoveryVersion": "v1", "version_module": true, "schemas": { - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "Span": { - "description": "A span represents a single operation within a trace. Spans can be\nnested to form a trace tree. Often, a trace contains a root span\nthat describes the end-to-end latency, and one or more subspans for\nits sub-operations. A trace can also contain multiple root spans,\nor none at all. Spans do not need to be contiguous—there may be\ngaps or overlaps between spans in a trace.", - "type": "object", - "properties": { - "parentSpanId": { - "description": "The [SPAN_ID] of this span's parent span. If this is a root span,\nthen this field must be empty.", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "The end time of the span. On the client side, this is the time kept by\nthe local machine where the span execution ends. On the server side, this\nis the time when the server application handler stops running.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The start time of the span. On the client side, this is the time kept by\nthe local machine where the span execution starts. On the server side, this\nis the time when the server's application handler starts running.", - "type": "string" - }, - "displayName": { - "description": "A description of the span's operation (up to 128 bytes).\nStackdriver Trace displays the description in the\n{% dynamic print site_values.console_name %}.\nFor example, the display name can be a qualified method name or a file name\nand a line number where the operation is called. A best practice is to use\nthe same display name within an application and at the same call point.\nThis makes it easier to correlate spans in different traces.", - "$ref": "TruncatableString" - }, - "timeEvents": { - "$ref": "TimeEvents", - "description": "The included time events. There can be up to 32 annotations and 128 network\nevents per span." - }, - "links": { - "$ref": "Links", - "description": "A maximum of 128 links are allowed per Span." - }, - "attributes": { - "description": "A set of attributes on the span. There is a limit of 32 attributes per\nspan.", - "$ref": "Attributes" - }, - "spanId": { - "description": "The [SPAN_ID] portion of the span's resource name.", - "type": "string" - }, - "childSpanCount": { - "format": "uint32", - "description": "An optional number of child spans that were generated while this span\nwas active. If set, allows implementation to detect missing child spans.", - "type": "integer" - }, - "sameProcessAsParentSpan": { - "description": "A highly recommended but not required flag that identifies when a trace\ncrosses a process boundary. True when the parent_span belongs to the\nsame process as the current span.", - "type": "boolean" - }, - "status": { - "$ref": "Status", - "description": "An optional final status for this span." - }, - "name": { - "description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created.", - "type": "string" - }, - "stackTrace": { - "$ref": "StackTrace", - "description": "Stack trace captured at the start of the span." - } - }, - "id": "Span" - }, - "AttributeValue": { - "description": "The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.", - "type": "object", - "properties": { - "boolValue": { - "description": "A Boolean value represented by `true` or `false`.", - "type": "boolean" - }, - "stringValue": { - "$ref": "TruncatableString", - "description": "A string up to 256 bytes long." - }, - "intValue": { - "format": "int64", - "description": "A 64-bit signed integer.", - "type": "string" - } - }, - "id": "AttributeValue" - }, - "Attributes": { - "description": "A set of attributes, each in the format `[KEY]:[VALUE]`.", - "type": "object", - "properties": { - "droppedAttributesCount": { - "format": "int32", - "description": "The number of attributes that were discarded. Attributes can be discarded\nbecause their keys are too long or because there are too many attributes.\nIf this value is 0 then all attributes are valid.", - "type": "integer" - }, - "attributeMap": { - "additionalProperties": { - "$ref": "AttributeValue" - }, - "description": "The set of attributes. Each attribute's key can be up to 128 bytes\nlong. The value can be a string up to 256 bytes, an integer, or the\nBoolean values `true` and `false`. For example:\n\n \"/instance_id\": \"my-instance\"\n \"/http/user_agent\": \"\"\n \"/http/request_bytes\": 300\n \"abc.com/myattribute\": true", - "type": "object" - } - }, - "id": "Attributes" - }, - "Links": { - "description": "A collection of links, which are references from this span to a span\nin the same or different trace.", - "type": "object", - "properties": { - "droppedLinksCount": { - "format": "int32", - "description": "The number of dropped links after the maximum size was enforced. If\nthis value is 0, then no links were dropped.", - "type": "integer" - }, - "link": { - "description": "A collection of links.", - "items": { - "$ref": "Link" - }, - "type": "array" - } - }, - "id": "Links" - }, - "StackTrace": { - "description": "A call stack appearing in a trace.", - "type": "object", - "properties": { - "stackTraceHashId": { - "format": "uint64", - "description": "The hash ID is used to conserve network bandwidth for duplicate\nstack traces within a single trace.\n\nOften multiple spans will have identical stack traces.\nThe first occurrence of a stack trace should contain both the\n`stackFrame` content and a value in `stackTraceHashId`.\n\nSubsequent spans within the same request can refer\nto that stack trace by only setting `stackTraceHashId`.", - "type": "string" - }, - "stackFrames": { - "description": "Stack frames in this stack trace. A maximum of 128 frames are allowed.", - "$ref": "StackFrames" - } - }, - "id": "StackTrace" - }, - "TruncatableString": { - "description": "Represents a string that might be shortened to a specified length.", - "type": "object", - "properties": { - "truncatedByteCount": { - "format": "int32", - "description": "The number of bytes removed from the original string. If this\nvalue is 0, then the string was not shortened.", - "type": "integer" - }, - "value": { - "description": "The shortened string. For example, if the original string was 500\nbytes long and the limit of the string was 128 bytes, then this\nvalue contains the first 128 bytes of the 500-byte string. Note that\ntruncation always happens on the character boundary, to ensure that\ntruncated string is still valid UTF8. In case of multi-byte characters,\nsize of truncated string can be less than truncation limit.", - "type": "string" - } - }, - "id": "TruncatableString" - }, - "TimeEvent": { - "description": "A time-stamped annotation or network event in the Span.", - "type": "object", - "properties": { - "annotation": { - "$ref": "Annotation", - "description": "Text annotation with a set of attributes." - }, - "time": { - "format": "google-datetime", - "description": "The timestamp indicating the time the event occurred.", - "type": "string" - }, - "networkEvent": { - "$ref": "NetworkEvent", - "description": "An event describing an RPC message sent/received on the network." - } - }, - "id": "TimeEvent" - }, - "NetworkEvent": { - "description": "An event describing an RPC message sent or received on the network.", - "type": "object", - "properties": { - "time": { - "format": "google-datetime", - "description": "For sent messages, this is the time at which the first bit was sent.\nFor received messages, this is the time at which the last bit was\nreceived.", - "type": "string" - }, - "uncompressedMessageSize": { - "format": "uint64", - "description": "The number of uncompressed bytes sent or received.", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "Unknown event type.", - "Indicates a sent RPC message.", - "Indicates a received RPC message." - ], - "enum": [ - "TYPE_UNSPECIFIED", - "SENT", - "RECV" - ], - "description": "Type of NetworkEvent. Indicates whether the RPC message was sent or\nreceived.", - "type": "string" - }, - "messageId": { - "format": "uint64", - "description": "An identifier for the message, which must be unique in this span.", - "type": "string" - }, - "compressedMessageSize": { - "format": "uint64", - "description": "The number of compressed bytes sent or received.", - "type": "string" - } - }, - "id": "NetworkEvent" - }, - "StackFrame": { - "description": "Represents a single stack frame in a stack trace.", - "type": "object", - "properties": { - "lineNumber": { - "format": "int64", - "description": "The line number in `file_name` where the function call appears.", - "type": "string" - }, - "loadModule": { - "$ref": "Module", - "description": "The binary module from where the code was loaded." - }, - "columnNumber": { - "format": "int64", - "description": "The column number where the function call appears, if available.\nThis is important in JavaScript because of its anonymous functions.", - "type": "string" - }, - "fileName": { - "description": "The name of the source file where the function call appears (up to 256\nbytes).", - "$ref": "TruncatableString" - }, - "sourceVersion": { - "$ref": "TruncatableString", - "description": "The version of the deployed source code (up to 128 bytes)." - }, - "originalFunctionName": { - "$ref": "TruncatableString", - "description": "An un-mangled function name, if `function_name` is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can\nbe fully-qualified (up to 1024 bytes)." - }, - "functionName": { - "$ref": "TruncatableString", - "description": "The fully-qualified name that uniquely identifies the function or\nmethod that is active in this frame (up to 1024 bytes)." - } - }, - "id": "StackFrame" - }, "Link": { "description": "A pointer from the current span to another span in the same trace or in a\ndifferent trace. For example, this can be used in batching operations,\nwhere a single batch handler processes multiple requests from different\ntraces or when the handler receives a request from a different project.", "type": "object", @@ -304,8 +44,8 @@ "$ref": "TruncatableString" }, "attributes": { - "description": "A set of attributes on the annotation. There is a limit of 4 attributes\nper Annotation.", - "$ref": "Attributes" + "$ref": "Attributes", + "description": "A set of attributes on the annotation. There is a limit of 4 attributes\nper Annotation." } }, "id": "Annotation" @@ -314,35 +54,35 @@ "description": "A collection of stack frames, which can be truncated.", "type": "object", "properties": { + "droppedFramesCount": { + "format": "int32", + "description": "The number of stack frames that were dropped because there\nwere too many stack frames.\nIf this value is 0, then no stack frames were dropped.", + "type": "integer" + }, "frame": { "description": "Stack frames in this call stack.", "items": { "$ref": "StackFrame" }, "type": "array" - }, - "droppedFramesCount": { - "format": "int32", - "description": "The number of stack frames that were dropped because there\nwere too many stack frames.\nIf this value is 0, then no stack frames were dropped.", - "type": "integer" } }, "id": "StackFrames" }, "TimeEvents": { - "description": "A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation\non the span, consisting of either user-supplied key:value pairs, or\ndetails of an RPC message sent/received on the network.", + "description": "A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation\non the span, consisting of either user-supplied key:value pairs, or\ndetails of a message sent/received between Spans.", "type": "object", "properties": { - "droppedNetworkEventsCount": { - "format": "int32", - "description": "The number of dropped network events in all the included time events.\nIf the value is 0, then no network events were dropped.", - "type": "integer" - }, "droppedAnnotationsCount": { "format": "int32", "description": "The number of dropped annotations in all the included time events.\nIf the value is 0, then no annotations were dropped.", "type": "integer" }, + "droppedMessageEventsCount": { + "format": "int32", + "description": "The number of dropped message events in all the included time events.\nIf the value is 0, then no message events were dropped.", + "type": "integer" + }, "timeEvent": { "description": "A collection of `TimeEvent`s.", "items": { @@ -358,8 +98,8 @@ "type": "object", "properties": { "module": { - "$ref": "TruncatableString", - "description": "For example: main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so (up to 256 bytes)." + "description": "For example: main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so (up to 256 bytes).", + "$ref": "TruncatableString" }, "buildId": { "description": "A unique identifier for the module, usually a hash of its\ncontents (up to 128 bytes).", @@ -372,17 +112,6 @@ "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, "code": { "format": "int32", "description": "The status code, which should be an enum value of google.rpc.Code.", @@ -391,6 +120,17 @@ "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "type": "array" } }, "id": "Status" @@ -408,13 +148,264 @@ } }, "id": "BatchWriteSpansRequest" + }, + "Span": { + "description": "A span represents a single operation within a trace. Spans can be\nnested to form a trace tree. Often, a trace contains a root span\nthat describes the end-to-end latency, and one or more subspans for\nits sub-operations. A trace can also contain multiple root spans,\nor none at all. Spans do not need to be contiguous—there may be\ngaps or overlaps between spans in a trace.", + "type": "object", + "properties": { + "stackTrace": { + "description": "Stack trace captured at the start of the span.", + "$ref": "StackTrace" + }, + "parentSpanId": { + "description": "The [SPAN_ID] of this span's parent span. If this is a root span,\nthen this field must be empty.", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "The end time of the span. On the client side, this is the time kept by\nthe local machine where the span execution ends. On the server side, this\nis the time when the server application handler stops running.", + "type": "string" + }, + "startTime": { + "format": "google-datetime", + "description": "The start time of the span. On the client side, this is the time kept by\nthe local machine where the span execution starts. On the server side, this\nis the time when the server's application handler starts running.", + "type": "string" + }, + "displayName": { + "$ref": "TruncatableString", + "description": "A description of the span's operation (up to 128 bytes).\nStackdriver Trace displays the description in the\n{% dynamic print site_values.console_name %}.\nFor example, the display name can be a qualified method name or a file name\nand a line number where the operation is called. A best practice is to use\nthe same display name within an application and at the same call point.\nThis makes it easier to correlate spans in different traces." + }, + "timeEvents": { + "$ref": "TimeEvents", + "description": "The included time events. There can be up to 32 annotations and 128 message\nevents per span." + }, + "links": { + "$ref": "Links", + "description": "A maximum of 128 links are allowed per Span." + }, + "attributes": { + "$ref": "Attributes", + "description": "A set of attributes on the span. There is a limit of 32 attributes per\nspan." + }, + "spanId": { + "description": "The [SPAN_ID] portion of the span's resource name.", + "type": "string" + }, + "childSpanCount": { + "format": "int32", + "description": "An optional number of child spans that were generated while this span\nwas active. If set, allows implementation to detect missing child spans.", + "type": "integer" + }, + "sameProcessAsParentSpan": { + "description": "A highly recommended but not required flag that identifies when a trace\ncrosses a process boundary. True when the parent_span belongs to the\nsame process as the current span.", + "type": "boolean" + }, + "status": { + "$ref": "Status", + "description": "An optional final status for this span." + }, + "name": { + "description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created.", + "type": "string" + } + }, + "id": "Span" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "AttributeValue": { + "description": "The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.", + "type": "object", + "properties": { + "boolValue": { + "description": "A Boolean value represented by `true` or `false`.", + "type": "boolean" + }, + "stringValue": { + "$ref": "TruncatableString", + "description": "A string up to 256 bytes long." + }, + "intValue": { + "format": "int64", + "description": "A 64-bit signed integer.", + "type": "string" + } + }, + "id": "AttributeValue" + }, + "Attributes": { + "description": "A set of attributes, each in the format `[KEY]:[VALUE]`.", + "type": "object", + "properties": { + "droppedAttributesCount": { + "format": "int32", + "description": "The number of attributes that were discarded. Attributes can be discarded\nbecause their keys are too long or because there are too many attributes.\nIf this value is 0 then all attributes are valid.", + "type": "integer" + }, + "attributeMap": { + "description": "The set of attributes. Each attribute's key can be up to 128 bytes\nlong. The value can be a string up to 256 bytes, an integer, or the\nBoolean values `true` and `false`. For example:\n\n \"/instance_id\": \"my-instance\"\n \"/http/user_agent\": \"\"\n \"/http/request_bytes\": 300\n \"abc.com/myattribute\": true", + "type": "object", + "additionalProperties": { + "$ref": "AttributeValue" + } + } + }, + "id": "Attributes" + }, + "Links": { + "description": "A collection of links, which are references from this span to a span\nin the same or different trace.", + "type": "object", + "properties": { + "droppedLinksCount": { + "format": "int32", + "description": "The number of dropped links after the maximum size was enforced. If\nthis value is 0, then no links were dropped.", + "type": "integer" + }, + "link": { + "description": "A collection of links.", + "items": { + "$ref": "Link" + }, + "type": "array" + } + }, + "id": "Links" + }, + "TruncatableString": { + "description": "Represents a string that might be shortened to a specified length.", + "type": "object", + "properties": { + "truncatedByteCount": { + "format": "int32", + "description": "The number of bytes removed from the original string. If this\nvalue is 0, then the string was not shortened.", + "type": "integer" + }, + "value": { + "description": "The shortened string. For example, if the original string was 500\nbytes long and the limit of the string was 128 bytes, then this\nvalue contains the first 128 bytes of the 500-byte string. Note that\ntruncation always happens on the character boundary, to ensure that\ntruncated string is still valid UTF8. In case of multi-byte characters,\nsize of truncated string can be less than truncation limit.", + "type": "string" + } + }, + "id": "TruncatableString" + }, + "StackTrace": { + "description": "A call stack appearing in a trace.", + "type": "object", + "properties": { + "stackTraceHashId": { + "format": "int64", + "description": "The hash ID is used to conserve network bandwidth for duplicate\nstack traces within a single trace.\n\nOften multiple spans will have identical stack traces.\nThe first occurrence of a stack trace should contain both the\n`stackFrame` content and a value in `stackTraceHashId`.\n\nSubsequent spans within the same request can refer\nto that stack trace by only setting `stackTraceHashId`.", + "type": "string" + }, + "stackFrames": { + "$ref": "StackFrames", + "description": "Stack frames in this stack trace. A maximum of 128 frames are allowed." + } + }, + "id": "StackTrace" + }, + "TimeEvent": { + "description": "A time-stamped annotation or message event in the Span.", + "type": "object", + "properties": { + "time": { + "format": "google-datetime", + "description": "The timestamp indicating the time the event occurred.", + "type": "string" + }, + "annotation": { + "$ref": "Annotation", + "description": "Text annotation with a set of attributes." + }, + "messageEvent": { + "description": "An event describing a message sent/received between Spans.", + "$ref": "MessageEvent" + } + }, + "id": "TimeEvent" + }, + "MessageEvent": { + "description": "An event describing a message sent/received between Spans.", + "type": "object", + "properties": { + "type": { + "description": "Type of MessageEvent. Indicates whether the message was sent or\nreceived.", + "type": "string", + "enumDescriptions": [ + "Unknown event type.", + "Indicates a sent message.", + "Indicates a received message." + ], + "enum": [ + "TYPE_UNSPECIFIED", + "SENT", + "RECEIVED" + ] + }, + "id": { + "format": "int64", + "description": "An identifier for the MessageEvent's message that can be used to match\nSENT and RECEIVED MessageEvents. It is recommended to be unique within\na Span.", + "type": "string" + }, + "compressedSizeBytes": { + "format": "int64", + "description": "The number of compressed bytes sent or received. If missing assumed to\nbe the same size as uncompressed.", + "type": "string" + }, + "uncompressedSizeBytes": { + "format": "int64", + "description": "The number of uncompressed bytes sent or received.", + "type": "string" + } + }, + "id": "MessageEvent" + }, + "StackFrame": { + "description": "Represents a single stack frame in a stack trace.", + "type": "object", + "properties": { + "originalFunctionName": { + "$ref": "TruncatableString", + "description": "An un-mangled function name, if `function_name` is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can\nbe fully-qualified (up to 1024 bytes)." + }, + "functionName": { + "description": "The fully-qualified name that uniquely identifies the function or\nmethod that is active in this frame (up to 1024 bytes).", + "$ref": "TruncatableString" + }, + "lineNumber": { + "format": "int64", + "description": "The line number in `file_name` where the function call appears.", + "type": "string" + }, + "loadModule": { + "description": "The binary module from where the code was loaded.", + "$ref": "Module" + }, + "columnNumber": { + "format": "int64", + "description": "The column number where the function call appears, if available.\nThis is important in JavaScript because of its anonymous functions.", + "type": "string" + }, + "fileName": { + "$ref": "TruncatableString", + "description": "The name of the source file where the function call appears (up to 256\nbytes)." + }, + "sourceVersion": { + "description": "The version of the deployed source code (up to 128 bytes).", + "$ref": "TruncatableString" + } + }, + "id": "StackFrame" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "canonicalName": "Cloud Trace", "auth": { "oauth2": { @@ -441,10 +432,6 @@ "traces": { "methods": { "batchWrite": { - "description": "Sends new spans to Stackdriver Trace or updates existing traces. If the\nname of a trace that you send matches that of an existing trace, new spans\nare added to the existing trace. Attempt to update existing spans results\nundefined behavior. If the name does not match, a new trace is created\nwith given set of spans.", - "request": { - "$ref": "BatchWriteSpansRequest" - }, "response": { "$ref": "Empty" }, @@ -467,7 +454,11 @@ ], "flatPath": "v2/projects/{projectsId}/traces:batchWrite", "id": "cloudtrace.projects.traces.batchWrite", - "path": "v2/{+name}/traces:batchWrite" + "path": "v2/{+name}/traces:batchWrite", + "description": "Sends new spans to Stackdriver Trace or updates existing traces. If the\nname of a trace that you send matches that of an existing trace, new spans\nare added to the existing trace. Attempt to update existing spans results\nundefined behavior. If the name does not match, a new trace is created\nwith given set of spans.", + "request": { + "$ref": "BatchWriteSpansRequest" + } } }, "resources": { @@ -477,10 +468,10 @@ "flatPath": "v2/projects/{projectsId}/traces/{tracesId}/spans/{spansId}", "id": "cloudtrace.projects.traces.spans.create", "path": "v2/{+name}", - "description": "Creates a new Span.", "request": { "$ref": "Span" }, + "description": "Creates a new Span.", "response": { "$ref": "Span" }, @@ -488,6 +479,10 @@ "name" ], "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append" + ], "parameters": { "name": { "description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created.", @@ -496,11 +491,7 @@ "pattern": "^projects/[^/]+/traces/[^/]+/spans/[^/]+$", "location": "path" } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/trace.append" - ] + } } } } @@ -510,37 +501,31 @@ } }, "parameters": { - "pp": { + "oauth_token": { "location": "query", - "description": "Pretty-print response.", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", "default": "true", "type": "boolean" }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, "fields": { + "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" + "type": "string" }, "uploadType": { "location": "query", @@ -548,11 +533,13 @@ "type": "string" }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "$.xgafv": { + "description": "V1 error format.", + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -561,11 +548,10 @@ "enum": [ "1", "2" - ], - "description": "V1 error format.", - "type": "string" + ] }, "alt": { + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -578,8 +564,7 @@ "json", "media", "proto" - ], - "type": "string" + ] }, "key": { "location": "query", @@ -587,19 +572,29 @@ "type": "string" }, "access_token": { + "location": "query", "description": "OAuth access token.", - "type": "string", - "location": "query" + "type": "string" }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" } }, "version": "v2", "baseUrl": "https://cloudtrace.googleapis.com/", - "kind": "discovery#restDescription", + "servicePath": "", "description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n", - "servicePath": "" + "kind": "discovery#restDescription", + "basePath": "", + "id": "cloudtrace:v2", + "documentationLink": "https://cloud.google.com/trace", + "revision": "20171016" } diff --git a/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-gen.go b/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-gen.go index e4d28ce12..d48a83b48 100644 --- a/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-gen.go +++ b/vendor/google.golang.org/api/cloudtrace/v2/cloudtrace-gen.go @@ -362,6 +362,59 @@ func (s *Links) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// MessageEvent: An event describing a message sent/received between +// Spans. +type MessageEvent struct { + // CompressedSizeBytes: The number of compressed bytes sent or received. + // If missing assumed to + // be the same size as uncompressed. + CompressedSizeBytes int64 `json:"compressedSizeBytes,omitempty,string"` + + // Id: An identifier for the MessageEvent's message that can be used to + // match + // SENT and RECEIVED MessageEvents. It is recommended to be unique + // within + // a Span. + Id int64 `json:"id,omitempty,string"` + + // Type: Type of MessageEvent. Indicates whether the message was sent + // or + // received. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Unknown event type. + // "SENT" - Indicates a sent message. + // "RECEIVED" - Indicates a received message. + Type string `json:"type,omitempty"` + + // UncompressedSizeBytes: The number of uncompressed bytes sent or + // received. + UncompressedSizeBytes int64 `json:"uncompressedSizeBytes,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CompressedSizeBytes") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CompressedSizeBytes") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *MessageEvent) MarshalJSON() ([]byte, error) { + type noMethod MessageEvent + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Module: Binary module. type Module struct { // BuildId: A unique identifier for the module, usually a hash of @@ -397,63 +450,6 @@ func (s *Module) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// NetworkEvent: An event describing an RPC message sent or received on -// the network. -type NetworkEvent struct { - // CompressedMessageSize: The number of compressed bytes sent or - // received. - CompressedMessageSize uint64 `json:"compressedMessageSize,omitempty,string"` - - // MessageId: An identifier for the message, which must be unique in - // this span. - MessageId uint64 `json:"messageId,omitempty,string"` - - // Time: For sent messages, this is the time at which the first bit was - // sent. - // For received messages, this is the time at which the last bit - // was - // received. - Time string `json:"time,omitempty"` - - // Type: Type of NetworkEvent. Indicates whether the RPC message was - // sent or - // received. - // - // Possible values: - // "TYPE_UNSPECIFIED" - Unknown event type. - // "SENT" - Indicates a sent RPC message. - // "RECV" - Indicates a received RPC message. - Type string `json:"type,omitempty"` - - // UncompressedMessageSize: The number of uncompressed bytes sent or - // received. - UncompressedMessageSize uint64 `json:"uncompressedMessageSize,omitempty,string"` - - // ForceSendFields is a list of field names (e.g. - // "CompressedMessageSize") to unconditionally include in API requests. - // By default, fields with empty values are omitted from API requests. - // However, any non-pointer, non-interface field appearing in - // ForceSendFields will be sent to the server regardless of whether the - // field is empty or not. This may be used to include empty fields in - // Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "CompressedMessageSize") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. - NullFields []string `json:"-"` -} - -func (s *NetworkEvent) MarshalJSON() ([]byte, error) { - type noMethod NetworkEvent - raw := noMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // Span: A span represents a single operation within a trace. Spans can // be // nested to form a trace tree. Often, a trace contains a root span @@ -535,7 +531,7 @@ type Span struct { Status *Status `json:"status,omitempty"` // TimeEvents: The included time events. There can be up to 32 - // annotations and 128 network + // annotations and 128 message // events per span. TimeEvents *TimeEvents `json:"timeEvents,omitempty"` @@ -676,7 +672,7 @@ type StackTrace struct { // // Subsequent spans within the same request can refer // to that stack trace by only setting `stackTraceHashId`. - StackTraceHashId uint64 `json:"stackTraceHashId,omitempty,string"` + StackTraceHashId int64 `json:"stackTraceHashId,omitempty,string"` // ForceSendFields is a list of field names (e.g. "StackFrames") to // unconditionally include in API requests. By default, fields with @@ -820,14 +816,14 @@ func (s *Status) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// TimeEvent: A time-stamped annotation or network event in the Span. +// TimeEvent: A time-stamped annotation or message event in the Span. type TimeEvent struct { // Annotation: Text annotation with a set of attributes. Annotation *Annotation `json:"annotation,omitempty"` - // NetworkEvent: An event describing an RPC message sent/received on the - // network. - NetworkEvent *NetworkEvent `json:"networkEvent,omitempty"` + // MessageEvent: An event describing a message sent/received between + // Spans. + MessageEvent *MessageEvent `json:"messageEvent,omitempty"` // Time: The timestamp indicating the time the event occurred. Time string `json:"time,omitempty"` @@ -859,17 +855,17 @@ func (s *TimeEvent) MarshalJSON() ([]byte, error) { // time-stamped annotation // on the span, consisting of either user-supplied key:value pairs, // or -// details of an RPC message sent/received on the network. +// details of a message sent/received between Spans. type TimeEvents struct { // DroppedAnnotationsCount: The number of dropped annotations in all the // included time events. // If the value is 0, then no annotations were dropped. DroppedAnnotationsCount int64 `json:"droppedAnnotationsCount,omitempty"` - // DroppedNetworkEventsCount: The number of dropped network events in + // DroppedMessageEventsCount: The number of dropped message events in // all the included time events. - // If the value is 0, then no network events were dropped. - DroppedNetworkEventsCount int64 `json:"droppedNetworkEventsCount,omitempty"` + // If the value is 0, then no message events were dropped. + DroppedMessageEventsCount int64 `json:"droppedMessageEventsCount,omitempty"` // TimeEvent: A collection of `TimeEvent`s. TimeEvent []*TimeEvent `json:"timeEvent,omitempty"` diff --git a/vendor/google.golang.org/api/compute/v0.alpha/compute-api.json b/vendor/google.golang.org/api/compute/v0.alpha/compute-api.json index 936a25308..d799219b8 100644 --- a/vendor/google.golang.org/api/compute/v0.alpha/compute-api.json +++ b/vendor/google.golang.org/api/compute/v0.alpha/compute-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/3cMXWrWKedeDcxyJugoWfBBTcik\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/NpBkh9XkyF0YAHTBSC79BKebXps\"", "discoveryVersion": "v1", "id": "compute:alpha", "name": "compute", "version": "alpha", - "revision": "20170908", + "revision": "20171010", "title": "Compute Engine API", "description": "Creates and runs virtual machines on Google Cloud Platform.", "ownerDomain": "google.com", @@ -193,9 +193,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -206,7 +210,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -226,6 +232,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -293,9 +305,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -306,7 +322,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -326,6 +344,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -375,9 +399,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -388,7 +416,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -408,6 +438,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -600,7 +636,7 @@ }, "status": { "type": "string", - "description": "[Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", + "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", "enum": [ "IN_USE", "RESERVED" @@ -662,9 +698,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -675,7 +715,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -695,6 +737,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -762,9 +810,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -775,7 +827,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -795,6 +849,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -844,9 +904,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -857,7 +921,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -877,6 +943,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -993,7 +1065,7 @@ }, "source": { "type": "string", - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." + "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." }, "type": { "type": "string", @@ -1041,7 +1113,7 @@ }, "sourceImage": { "type": "string", - "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." + "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", @@ -1246,9 +1318,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1259,7 +1335,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1279,6 +1357,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1346,9 +1430,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1359,7 +1447,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1379,6 +1469,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1476,9 +1572,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1489,7 +1589,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1509,6 +1611,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1613,20 +1721,20 @@ "properties": { "filter": { "type": "string", - "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or global data.\n\nFor the filter to be valid for autoscaling purposes, the following rules apply: \n- You can only use the AND operator for joining selectors. \n- You can only use direct equality comparison operator (=) without any functions for each selector. \n- You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. \n- The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels.\nIf the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is / called a global metric for the purpose of autoscaling.\n\nIf not specified, the type defaults to gce_instance. \n\nYou should provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value." + "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data.\n\nFor the filter to be valid for autoscaling purposes, the following rules apply: \n- You can only use the AND operator for joining selectors. \n- You can only use direct equality comparison operator (=) without any functions for each selector. \n- You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. \n- The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels.\nIf the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a per-group metric for the purpose of autoscaling.\n\nIf not specified, the type defaults to gce_instance. \n\nYou should provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value." }, "metric": { "type": "string", - "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.\n\nThe metric must have a value type of INT64 or DOUBLE." + "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE." }, "singleInstanceAssignment": { "type": "number", - "description": "If scaling is based on a global metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler will keep the number of instances proportional to the value of this metric, the metric itself should not change value due to group resizing.\n\nA good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances.\n\nA bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", + "description": "If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler will keep the number of instances proportional to the value of this metric, the metric itself should not change value due to group resizing.\n\nA good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances.\n\nA bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", "format": "double" }, "utilizationTarget": { "type": "number", - "description": "The target value of the metric that autoscaler should maintain. This must be a positive value.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", + "description": "The target value of the metric that autoscaler should maintain. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", "format": "double" }, "utilizationTargetType": { @@ -1870,9 +1978,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1883,7 +1995,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1903,6 +2017,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2135,9 +2255,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2148,7 +2272,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2168,6 +2294,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2348,9 +2480,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2361,7 +2497,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2381,6 +2519,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2439,9 +2583,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2452,7 +2600,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2472,6 +2622,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2694,9 +2850,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2707,7 +2867,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2727,6 +2889,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2794,9 +2962,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2807,7 +2979,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2827,6 +3001,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2876,9 +3056,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2889,7 +3073,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2909,6 +3095,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3120,6 +3312,13 @@ "$ref": "CustomerEncryptionKey", "description": "Encrypts the disk using a customer-supplied encryption key.\n\nAfter you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later (e.g. to create a disk snapshot or an image, or to attach the disk to a virtual machine).\n\nCustomer-supplied encryption keys do not protect access to metadata of the disk.\n\nIf you do not provide an encryption key when creating the disk, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later." }, + "guestOsFeatures": { + "type": "array", + "description": "A list of features to enable on the guest OS. Applicable for bootable disks only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows disks, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux disks with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.\n\nFor newer Windows images, the server might also populate this property with the value WINDOWS to indicate that this is a Windows image.", + "items": { + "$ref": "GuestOsFeature" + } + }, "id": { "type": "string", "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", @@ -3312,9 +3511,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3325,7 +3528,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3345,6 +3550,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3373,6 +3584,47 @@ } } }, + "DiskInstantiationConfig": { + "id": "DiskInstantiationConfig", + "type": "object", + "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", + "properties": { + "autoDelete": { + "type": "boolean", + "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance)." + }, + "deviceName": { + "type": "string", + "description": "Specifies the device name of the disk to which the configurations apply to." + }, + "instantiateFrom": { + "type": "string", + "description": "Specifies whether to include the disk and what image to use.", + "enum": [ + "ATTACH_READ_ONLY", + "BLANK", + "DEFAULT", + "DO_NOT_INCLUDE", + "IMAGE_URL", + "SOURCE_IMAGE", + "SOURCE_IMAGE_FAMILY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + }, + "sourceImage": { + "type": "string", + "description": "The custom source image to be used to restore this disk when instantiating this instance template." + } + } + }, "DiskList": { "id": "DiskList", "type": "object", @@ -3412,9 +3664,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3425,7 +3681,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3445,6 +3703,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3577,9 +3841,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3590,7 +3858,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3610,6 +3880,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3677,9 +3953,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3690,7 +3970,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3710,6 +3992,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3759,9 +4047,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3772,7 +4064,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3792,6 +4086,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3852,9 +4152,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3865,7 +4169,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3885,6 +4191,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4036,6 +4348,10 @@ "" ] }, + "disabled": { + "type": "boolean", + "description": "Denotes whether the firewall rule is disabled, i.e not applied to the network it is associated with. When set to true, the firewall rule is not enforced and the network behaves as if it did not exist. If this is unspecified, the firewall rule will be enabled." + }, "enableLogging": { "type": "boolean", "description": "This field denotes whether to enable logging for a particular firewall rule. If logging is enabled, logs will be exported to the configured export destination for all firewall logs in the network. Logs may be exported to BigQuery or Pub/Sub." @@ -4104,7 +4420,7 @@ }, "targetTags": { "type": "array", - "description": "A list of instance tags indicating sets of instances located in the network that may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", + "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", "items": { "type": "string" } @@ -4150,9 +4466,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4163,7 +4483,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4183,6 +4505,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4218,17 +4546,17 @@ "properties": { "calculated": { "type": "integer", - "description": "[Output Only] Absolute value calculated based on mode: mode = fixed -\u003e calculated = fixed = percent -\u003e calculated = ceiling(percent/100 * base_value)", + "description": "[Output Only] Absolute value of VM instances calculated based on the specific mode.\n\n \n- If the value is fixed, then the caculated value is equal to the fixed value. \n- If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded up.", "format": "int32" }, "fixed": { "type": "integer", - "description": "fixed must be non-negative.", + "description": "Specifies a fixed number of VM instances. This must be a positive integer.", "format": "int32" }, "percent": { "type": "integer", - "description": "percent must belong to [0, 100].", + "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", "format": "int32" } } @@ -4240,7 +4568,7 @@ "properties": { "IPAddress": { "type": "string", - "description": "The IP address that this forwarding rule is serving on behalf of.\n\nFor global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule." + "description": "The IP address that this forwarding rule is serving on behalf of.\n\nAddresses are restricted based on the forwarding rule's load balancing scheme (EXTERNAL or INTERNAL) and scope (global or regional).\n\nWhen the load balancing scheme is EXTERNAL, for global forwarding rules, the address must be a global IP, and for regional forwarding rules, the address must live in the same region as the forwarding rule. If this field is empty, an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnet configured for the forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule.\n\nAn address can be specified either by a literal IP address or a URL reference to an existing Address resource. The following examples are all valid: \n- 100.1.2.3 \n- https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address \n- projects/project/regions/region/addresses/address \n- regions/region/addresses/address \n- global/addresses/address \n- address" }, "IPProtocol": { "type": "string", @@ -4429,9 +4757,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4442,7 +4774,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4462,6 +4796,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4529,9 +4869,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4542,7 +4886,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4562,6 +4908,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4620,9 +4972,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4633,7 +4989,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4653,6 +5011,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4734,10 +5098,14 @@ "enum": [ "FEATURE_TYPE_UNSPECIFIED", "MULTI_IP_SUBNET", + "SECURE_BOOT", + "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -5038,9 +5406,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5051,7 +5423,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5071,6 +5445,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5294,9 +5674,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5307,7 +5691,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5327,6 +5713,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5394,9 +5786,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5407,7 +5803,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5427,6 +5825,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5577,9 +5981,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5590,7 +5998,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5610,6 +6020,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5677,9 +6093,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5690,7 +6110,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5710,6 +6132,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5759,9 +6187,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5772,7 +6204,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5792,6 +6226,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5841,9 +6281,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5854,7 +6298,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5874,6 +6320,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6008,9 +6460,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6021,7 +6477,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6041,6 +6499,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6175,9 +6639,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6188,7 +6656,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6208,6 +6678,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6449,9 +6925,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6462,7 +6942,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6482,6 +6964,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6709,9 +7197,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6722,7 +7214,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6742,6 +7236,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6880,9 +7380,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6893,7 +7397,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6913,6 +7419,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6980,9 +7492,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6993,7 +7509,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7013,6 +7531,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7152,7 +7676,7 @@ "description": "[Output Only] The service account to be used as credentials for all operations performed by the managed instance group on instances. The service accounts needs all permissions required to create and delete instances. By default, the service account {projectNumber}@cloudservices.gserviceaccount.com is used." }, "statefulPolicy": { - "$ref": "InstanceGroupManagerStatefulPolicy", + "$ref": "StatefulPolicy", "description": "Stateful configuration for this Instanced Group Manager" }, "targetPools": { @@ -7179,7 +7703,7 @@ }, "versions": { "type": "array", - "description": "Versions supported by this IGM. User should set this field if they need fine-grained control over how many instances in each version are run by this IGM. Versions are keyed by instanceTemplate. Every instanceTemplate can appear at most once. This field overrides instanceTemplate field. If both instanceTemplate and versions are set, the user receives a warning. \"instanceTemplate: X\" is semantically equivalent to \"versions [ { instanceTemplate: X } ]\". Exactly one version must have targetSize field left unset. Size of such a version will be calculated automatically.", + "description": "Specifies the instance templates used by this managed instance group to create instances.\n\nEach version is defined by an instanceTemplate. Every template can appear at most once per instance group. This field overrides the top-level instanceTemplate field. Read more about the relationships between these fields. Exactly one version must leave the targetSize field unset. That version will be applied to all remaining instances. For more information, read about canary updates.", "items": { "$ref": "InstanceGroupManagerVersion" } @@ -7363,9 +7887,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7376,7 +7904,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7396,6 +7926,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7482,9 +8018,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7495,7 +8035,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7515,6 +8057,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7569,40 +8117,17 @@ } } }, - "InstanceGroupManagerStatefulPolicy": { - "id": "InstanceGroupManagerStatefulPolicy", - "type": "object", - "properties": { - "preservedDisks": { - "type": "array", - "description": "Disks created on the instances that will be preserved on instance delete, resize down, etc.", - "items": { - "$ref": "InstanceGroupManagerStatefulPolicyDiskPolicy" - } - } - } - }, - "InstanceGroupManagerStatefulPolicyDiskPolicy": { - "id": "InstanceGroupManagerStatefulPolicyDiskPolicy", - "type": "object", - "properties": { - "deviceName": { - "type": "string", - "description": "Device name of the disk to be preserved" - } - } - }, "InstanceGroupManagerUpdatePolicy": { "id": "InstanceGroupManagerUpdatePolicy", "type": "object", "properties": { "maxSurge": { "$ref": "FixedOrPercent", - "description": "Maximum number of instances that can be created above the InstanceGroupManager.targetSize during the update process. By default, a fixed value of 1 is used. Using maxSurge \u003e 0 will cause instance names to change during the update process. At least one of { maxSurge, maxUnavailable } must be greater than 0." + "description": "The maximum number of instances that can be created above the specified targetSize during the update process. By default, a fixed value of 1 is used. This value can be either a fixed number or a percentage if the instance group has 10 or more instances. If you set a percentage, the number of instances will be rounded up if necessary.\n\nAt least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge." }, "maxUnavailable": { "$ref": "FixedOrPercent", - "description": "Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0." + "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:\n\n \n- The instance's status is RUNNING. \n- If there is a health check on the instance grourp, the instance's liveness health check result 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. By default, a fixed value of 1 is used. This value can be either a fixed number or a percentage if the instance group has 10 or more instances. If you set a percentage, the number of instances will be rounded up if necessary.\n\nAt least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable." }, "minReadySec": { "type": "integer", @@ -7611,7 +8136,7 @@ }, "minimalAction": { "type": "string", - "description": "Minimal action to be taken on an instance. The order of action types is: RESTART \u003c REPLACE.", + "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 code\u003eRESTART, 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.", "enum": [ "NONE", "REFRESH", @@ -7655,7 +8180,7 @@ }, "targetSize": { "$ref": "FixedOrPercent", - "description": "Intended number of instances that are created from instanceTemplate. The final number of instances created from instanceTemplate will be equal to: * if expressed as fixed number: min(targetSize.fixed, instanceGroupManager.targetSize), * if expressed as percent: ceiling(targetSize.percent * InstanceGroupManager.targetSize). If unset, this version will handle all the remaining instances." + "description": "Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: \n- If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. \n- if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded up. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information." } } }, @@ -7787,9 +8312,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7800,7 +8329,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7820,6 +8351,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7897,9 +8434,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7910,7 +8451,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7930,6 +8473,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8063,9 +8612,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8076,7 +8629,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8096,6 +8651,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8176,9 +8737,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8189,7 +8754,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8209,6 +8776,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8294,9 +8867,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8307,7 +8884,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8327,6 +8906,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8394,9 +8979,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8407,7 +8996,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8427,6 +9018,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8598,6 +9195,10 @@ "sourceInstance": { "type": "string", "description": "The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: \n- https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n- projects/project/zones/zone/instances/instance" + }, + "sourceInstanceParams": { + "$ref": "SourceInstanceParams", + "description": "The source instance params to use to create this instance template." } } }, @@ -8640,9 +9241,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8653,7 +9258,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8673,6 +9280,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8763,9 +9376,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8776,7 +9393,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8796,6 +9415,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8911,7 +9536,7 @@ "Interconnect": { "id": "Interconnect", "type": "object", - "description": "Protocol definitions for Mixer API to support Interconnect. Next available tag: 23", + "description": "Protocol definitions for Mixer API to support Interconnect. Next available tag: 25", "properties": { "adminEnabled": { "type": "boolean", @@ -8924,10 +9549,6 @@ "$ref": "InterconnectCircuitInfo" } }, - "connectionAuthorization": { - "type": "string", - "description": "[Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports." - }, "creationTimestamp": { "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." @@ -8970,10 +9591,12 @@ "interconnectType": { "type": "string", "enum": [ - "IT_PARTNER", - "IT_PRIVATE" + "DEDICATED", + "IT_PRIVATE", + "PARTNER" ], "enumDescriptions": [ + "", "", "" ] @@ -9014,10 +9637,14 @@ "type": "string", "description": "[Output Only] The current status of whether or not this Interconnect is functional.", "enum": [ + "ACTIVE", "OS_ACTIVE", - "OS_UNPROVISIONED" + "OS_UNPROVISIONED", + "UNPROVISIONED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -9045,7 +9672,7 @@ "InterconnectAttachment": { "id": "InterconnectAttachment", "type": "object", - "description": "Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 18", + "description": "Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 23", "properties": { "cloudRouterIpAddress": { "type": "string", @@ -9090,10 +9717,14 @@ "type": "string", "description": "[Output Only] The current status of whether or not this interconnect attachment is functional.", "enum": [ + "ACTIVE", "OS_ACTIVE", - "OS_UNPROVISIONED" + "OS_UNPROVISIONED", + "UNPROVISIONED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -9155,9 +9786,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9168,7 +9803,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9188,6 +9825,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9255,9 +9898,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9268,7 +9915,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9288,6 +9937,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9349,9 +10004,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9362,7 +10021,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9382,6 +10043,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9468,9 +10135,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9481,7 +10152,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9501,6 +10174,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9550,13 +10229,23 @@ "type": "string", "description": "Continent for this location. Used by the location picker in the Interconnect UI.", "enum": [ + "AFRICA", + "ASIA_PAC", "C_AFRICA", "C_ASIA_PAC", "C_EUROPE", "C_NORTH_AMERICA", - "C_SOUTH_AMERICA" + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" ], "enumDescriptions": [ + "", + "", + "", + "", + "", "", "", "", @@ -9650,9 +10339,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9663,7 +10356,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9683,6 +10378,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9725,10 +10426,14 @@ "type": "string", "description": "Identifies the network presence of this location.", "enum": [ + "GLOBAL", + "LOCAL_REGION", "LP_GLOBAL", "LP_LOCAL_REGION" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -9736,10 +10441,6 @@ "region": { "type": "string", "description": "URL for the region of this location." - }, - "regionKey": { - "type": "string", - "description": "Scope key for the region of this location." } } }, @@ -9767,9 +10468,13 @@ "type": "string", "enum": [ "IT_OUTAGE", - "IT_PARTIAL_OUTAGE" + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -9781,9 +10486,11 @@ "source": { "type": "string", "enum": [ + "GOOGLE", "NSRC_GOOGLE" ], "enumDescriptions": [ + "", "" ] }, @@ -9795,10 +10502,14 @@ "state": { "type": "string", "enum": [ + "ACTIVE", + "CANCELLED", "NS_ACTIVE", "NS_CANCELED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -9865,9 +10576,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9878,7 +10593,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9898,6 +10615,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10111,9 +10834,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10124,7 +10851,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10144,6 +10873,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10355,9 +11090,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10368,7 +11107,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10388,6 +11129,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10455,9 +11202,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10468,7 +11219,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10488,6 +11241,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10537,9 +11296,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10550,7 +11313,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10570,6 +11335,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10743,7 +11514,7 @@ "description": "[Output Only] Indicates where does the override come from.", "enum": [ "AUTO_GENERATED", - "USER_GENERATED" + "USER_PROVIDED" ], "enumDescriptions": [ "", @@ -11071,9 +11842,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11084,7 +11859,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11104,6 +11881,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11194,9 +11977,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11207,7 +11994,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11227,6 +12016,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11333,9 +12128,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11346,7 +12145,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11366,6 +12167,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11415,9 +12222,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11428,7 +12239,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11448,6 +12261,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11579,9 +12398,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11592,7 +12415,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11612,6 +12437,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11861,9 +12692,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11874,7 +12709,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11894,6 +12731,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11966,9 +12809,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11979,7 +12826,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11999,6 +12848,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12066,9 +12921,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12079,7 +12938,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12099,6 +12960,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12148,9 +13015,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12161,7 +13032,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12181,6 +13054,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12714,9 +13593,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12727,7 +13610,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12747,6 +13632,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12813,9 +13704,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12826,7 +13721,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12846,6 +13743,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12924,9 +13827,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12937,7 +13844,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12957,6 +13866,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13038,9 +13953,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13051,7 +13970,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13071,6 +13992,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13210,9 +14137,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13223,7 +14154,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13243,6 +14176,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13379,9 +14318,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13392,7 +14335,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13412,6 +14357,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13520,9 +14471,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13533,7 +14488,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13553,6 +14510,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13750,9 +14713,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13763,7 +14730,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13783,6 +14752,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13851,9 +14826,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13864,7 +14843,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13884,6 +14865,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13989,6 +14976,21 @@ } } }, + "RouterAdvertisedIpRange": { + "id": "RouterAdvertisedIpRange", + "type": "object", + "description": "Description-tagged IP ranges for the router to advertise.", + "properties": { + "description": { + "type": "string", + "description": "User-specified description for the IP range." + }, + "range": { + "type": "string", + "description": "The IP range to advertise. The value must be a CIDR-formatted string." + } + } + }, "RouterAdvertisedPrefix": { "id": "RouterAdvertisedPrefix", "type": "object", @@ -14044,9 +15046,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14057,7 +15063,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14077,6 +15085,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14134,6 +15148,13 @@ ] } }, + "advertisedIpRanges": { + "type": "array", + "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", + "items": { + "$ref": "RouterAdvertisedIpRange" + } + }, "advertisedPrefixs": { "type": "array", "description": "User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.", @@ -14177,6 +15198,13 @@ ] } }, + "advertisedIpRanges": { + "type": "array", + "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", + "items": { + "$ref": "RouterAdvertisedIpRange" + } + }, "advertisedPrefixs": { "type": "array", "description": "User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.", @@ -14275,9 +15303,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14288,7 +15320,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14308,6 +15342,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14613,9 +15653,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14626,7 +15670,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14646,6 +15692,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14701,7 +15753,7 @@ }, "conditions": { "type": "array", - "description": "Additional restrictions that must be met", + "description": "Additional restrictions that must be met. All conditions must pass for the rule to match.", "items": { "$ref": "Condition" } @@ -14896,9 +15948,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14909,7 +15965,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14929,6 +15987,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15008,6 +16072,10 @@ "$ref": "SecurityPolicyRuleMatcherConfig", "description": "The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified." }, + "expr": { + "$ref": "Expr", + "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header." + }, "srcIpRanges": { "type": "array", "description": "CIDR IP address range. Only IPv4 is supported.", @@ -15269,9 +16337,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15282,7 +16354,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15302,6 +16376,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15330,6 +16410,20 @@ } } }, + "SourceInstanceParams": { + "id": "SourceInstanceParams", + "type": "object", + "description": "A specification of the parameters to use when creating the instance template from a source instance.", + "properties": { + "diskConfigs": { + "type": "array", + "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.", + "items": { + "$ref": "DiskInstantiationConfig" + } + } + } + }, "SslCertificate": { "id": "SslCertificate", "type": "object", @@ -15411,9 +16505,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15424,7 +16522,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15444,6 +16544,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15510,9 +16616,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15523,7 +16633,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15543,6 +16655,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15678,9 +16796,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15691,7 +16813,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15711,6 +16835,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15750,6 +16880,46 @@ } } }, + "StatefulPolicy": { + "id": "StatefulPolicy", + "type": "object", + "properties": { + "preservedDisks": { + "type": "array", + "description": "Disks created on the instances that will be preserved on instance delete, resize down, etc. DEPRECATED in favor of preservedResources.disks field.", + "items": { + "$ref": "StatefulPolicyPreservedDisk" + } + }, + "preservedResources": { + "$ref": "StatefulPolicyPreservedResources" + } + } + }, + "StatefulPolicyPreservedDisk": { + "id": "StatefulPolicyPreservedDisk", + "type": "object", + "properties": { + "deviceName": { + "type": "string", + "description": "Device name of the disk to be preserved" + } + } + }, + "StatefulPolicyPreservedResources": { + "id": "StatefulPolicyPreservedResources", + "type": "object", + "description": "Configuration of all preserved resources.", + "properties": { + "disks": { + "type": "array", + "description": "Disks created on the instances that will be preserved on instance delete, resize down, etc.", + "items": { + "$ref": "StatefulPolicyPreservedDisk" + } + } + } + }, "Subnetwork": { "id": "Subnetwork", "type": "object", @@ -15859,9 +17029,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15872,7 +17046,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15892,6 +17068,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15959,9 +17141,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15972,7 +17158,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15992,6 +17180,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16066,9 +17260,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16079,7 +17277,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16099,6 +17299,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16281,9 +17487,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16294,7 +17504,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16314,6 +17526,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16481,9 +17699,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16494,7 +17716,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16514,6 +17738,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16633,9 +17863,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16646,7 +17880,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16666,6 +17902,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16733,9 +17975,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16746,7 +17992,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16766,6 +18014,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16815,9 +18069,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -16828,7 +18086,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -16848,6 +18108,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -16994,9 +18260,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17007,7 +18277,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17027,6 +18299,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17111,9 +18389,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17124,7 +18406,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17144,6 +18428,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17245,9 +18535,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17258,7 +18552,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17278,6 +18574,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17460,9 +18762,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17473,7 +18779,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17493,6 +18801,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17638,9 +18952,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17651,7 +18969,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17671,6 +18991,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17832,9 +19158,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17845,7 +19175,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17865,6 +19197,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -17932,9 +19270,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -17945,7 +19287,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -17965,6 +19309,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18014,9 +19364,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18027,7 +19381,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18047,6 +19403,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18245,9 +19607,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18258,7 +19624,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18278,6 +19646,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18389,6 +19763,14 @@ "type": "object", "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", "properties": { + "ipCidrRange": { + "type": "string", + "description": "The range of internal addresses that are owned by this subnetwork." + }, + "network": { + "type": "string", + "description": "Network URL." + }, "subnetwork": { "type": "string", "description": "Subnetwork URL." @@ -18433,9 +19815,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18446,7 +19832,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18466,6 +19854,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18682,9 +20076,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18695,7 +20093,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18715,6 +20115,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18782,9 +20188,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18795,7 +20205,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18815,6 +20227,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18864,9 +20282,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18877,7 +20299,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18897,6 +20321,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -18963,9 +20393,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -18976,7 +20410,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -18996,6 +20432,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -19146,9 +20588,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -19159,7 +20605,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -19179,6 +20627,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -27977,7 +29431,7 @@ "id": "compute.instances.stop", "path": "{project}/zones/{zone}/instances/{instance}/stop", "httpMethod": "POST", - "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", "parameters": { "discardLocalSsd": { "type": "boolean", @@ -34445,6 +35899,42 @@ }, "securityPolicies": { "methods": { + "addRule": { + "id": "compute.securityPolicies.addRule", + "path": "{project}/global/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "description": "Inserts a rule into a security policy.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "securityPolicy": { + "type": "string", + "description": "Name of the security policy to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "id": "compute.securityPolicies.delete", "path": "{project}/global/securityPolicies/{securityPolicy}", @@ -34517,6 +36007,46 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRule": { + "id": "compute.securityPolicies.getRule", + "path": "{project}/global/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "description": "Gets a rule at the specified priority.", + "parameters": { + "priority": { + "type": "integer", + "description": "The priority of the rule to get from the security policy.", + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "securityPolicy": { + "type": "string", + "description": "Name of the security policy to which the queried rule belongs.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "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": { "id": "compute.securityPolicies.insert", "path": "{project}/global/securityPolicies", @@ -34640,6 +36170,87 @@ "https://www.googleapis.com/auth/compute" ] }, + "patchRule": { + "id": "compute.securityPolicies.patchRule", + "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "description": "Patches a rule at the specified priority.", + "parameters": { + "priority": { + "type": "integer", + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "securityPolicy": { + "type": "string", + "description": "Name of the security policy to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeRule": { + "id": "compute.securityPolicies.removeRule", + "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "description": "Deletes a rule at the specified priority.", + "parameters": { + "priority": { + "type": "integer", + "description": "The priority of the rule to remove from the security policy.", + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "securityPolicy": { + "type": "string", + "description": "Name of the security policy to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "testIamPermissions": { "id": "compute.securityPolicies.testIamPermissions", "path": "{project}/global/securityPolicies/{resource}/testIamPermissions", @@ -38319,6 +39930,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "setLabels": { + "id": "compute.targetVpnGateways.setLabels", + "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "The region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "resource": { + "type": "string", + "description": "Name of the resource for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "testIamPermissions": { "id": "compute.targetVpnGateways.testIamPermissions", "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions", diff --git a/vendor/google.golang.org/api/compute/v0.alpha/compute-gen.go b/vendor/google.golang.org/api/compute/v0.alpha/compute-gen.go index ca01e7d57..a7c132185 100644 --- a/vendor/google.golang.org/api/compute/v0.alpha/compute-gen.go +++ b/vendor/google.golang.org/api/compute/v0.alpha/compute-gen.go @@ -959,9 +959,13 @@ type AcceleratorTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -972,7 +976,9 @@ type AcceleratorTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1109,9 +1115,13 @@ type AcceleratorTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1122,7 +1132,9 @@ type AcceleratorTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1238,9 +1250,13 @@ type AcceleratorTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1251,7 +1267,9 @@ type AcceleratorTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1492,10 +1510,11 @@ type Address struct { // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of the address, which can be either - // IN_USE or RESERVED. An address that is RESERVED is currently reserved - // and available to use. An IN_USE address is currently being used by - // another resource and is not available. + // Status: [Output Only] The status of the address, which can be one of + // RESERVING, RESERVED, or IN_USE. An address that is RESERVING is + // currently in the process of being reserved. A RESERVED address is + // currently reserved and available to use. An IN_USE address is + // currently being used by another resource and is not available. // // Possible values: // "IN_USE" @@ -1603,9 +1622,13 @@ type AddressAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1616,7 +1639,9 @@ type AddressAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1752,9 +1777,13 @@ type AddressListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1765,7 +1794,9 @@ type AddressListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1879,9 +1910,13 @@ type AddressesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1892,7 +1927,9 @@ type AddressesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2098,7 +2135,8 @@ type AttachedDisk struct { // Source: Specifies a valid partial or full URL to an existing // Persistent Disk resource. When creating a new instance, one of - // initializeParams.sourceImage or disks.source is required. + // initializeParams.sourceImage or disks.source is required except for + // local SSD. // // If desired, you can also attach existing non-root persistent disks // using this property. This field is only applicable for persistent @@ -2181,7 +2219,7 @@ type AttachedDiskInitializeParams struct { // SourceImage: The source image to create this disk. When creating a // new instance, one of initializeParams.sourceImage or disks.source is - // required. + // required except for local SSD. // // To create a disk with one of the public operating system images, // specify the image by its family name. For example, specify @@ -2545,9 +2583,13 @@ type AutoscalerAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2558,7 +2600,9 @@ type AutoscalerAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2694,9 +2738,13 @@ type AutoscalerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2707,7 +2755,9 @@ type AutoscalerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2869,9 +2919,13 @@ type AutoscalersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2882,7 +2936,9 @@ type AutoscalersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -3093,7 +3149,7 @@ type AutoscalingPolicyCustomMetricUtilization struct { // Filter: A filter string, compatible with a Stackdriver Monitoring // filter string for TimeSeries.list API call. This filter is used to // select a specific TimeSeries for the purpose of autoscaling and to - // determine whether the metric is exporting per-instance or global + // determine whether the metric is exporting per-instance or per-group // data. // // For the filter to be valid for autoscaling purposes, the following @@ -3111,8 +3167,8 @@ type AutoscalingPolicyCustomMetricUtilization struct { // If the resource type is any other value, the autoscaler expects this // metric to contain values that apply to the entire autoscaled instance // group and resource label filtering can be performed to point - // autoscaler at the correct TimeSeries to scale upon. This is / called - // a global metric for the purpose of autoscaling. + // autoscaler at the correct TimeSeries to scale upon. This is called a + // per-group metric for the purpose of autoscaling. // // If not specified, the type defaults to gce_instance. // @@ -3124,15 +3180,12 @@ type AutoscalingPolicyCustomMetricUtilization struct { Filter string `json:"filter,omitempty"` // Metric: The identifier (type) of the Stackdriver Monitoring metric. - // The metric cannot have negative values and should be a utilization - // metric, which means that the number of virtual machines handling - // requests should increase or decrease proportionally to the - // metric. + // The metric cannot have negative values. // // The metric must have a value type of INT64 or DOUBLE. Metric string `json:"metric,omitempty"` - // SingleInstanceAssignment: If scaling is based on a global metric + // SingleInstanceAssignment: If scaling is based on a per-group metric // value that represents the total amount of work to be done or resource // usage, set this value to an amount assigned for a single instance of // the scaled group. Autoscaler will keep the number of instances @@ -3151,7 +3204,9 @@ type AutoscalingPolicyCustomMetricUtilization struct { SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"` // UtilizationTarget: The target value of the metric that autoscaler - // should maintain. This must be a positive value. + // should maintain. This must be a positive value. A utilization metric + // scales number of virtual machines handling requests to increase or + // decrease proportionally to the metric. // // For example, a good metric to use as a utilization_target is // compute.googleapis.com/instance/network/received_bytes_count. The @@ -3674,9 +3729,13 @@ type BackendBucketListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -3687,7 +3746,9 @@ type BackendBucketListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4012,9 +4073,13 @@ type BackendServiceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4025,7 +4090,9 @@ type BackendServiceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4423,9 +4490,13 @@ type BackendServiceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4436,7 +4507,9 @@ type BackendServiceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4578,9 +4651,13 @@ type BackendServicesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4591,7 +4668,9 @@ type BackendServicesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4982,9 +5061,13 @@ type CommitmentAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4995,7 +5078,9 @@ type CommitmentAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5131,9 +5216,13 @@ type CommitmentListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5144,7 +5233,9 @@ type CommitmentListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5259,9 +5350,13 @@ type CommitmentsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5272,7 +5367,9 @@ type CommitmentsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5617,6 +5714,19 @@ type Disk struct { // you do not need to provide a key to use the disk later. DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` + // GuestOsFeatures: A list of features to enable on the guest OS. + // Applicable for bootable disks only. Currently, only one feature can + // be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to + // have its own queue. For Windows disks, you can only enable + // VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or + // higher. Linux disks with kernel versions 3.17 and higher will support + // VIRTIO_SCSI_MULTIQUEUE. + // + // For newer Windows images, the server might also populate this + // property with the value WINDOWS to indicate that this is a Windows + // image. + GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This // identifier is defined by the server. Id uint64 `json:"id,omitempty,string"` @@ -5879,9 +5989,13 @@ type DiskAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5892,7 +6006,9 @@ type DiskAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5965,6 +6081,59 @@ func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DiskInstantiationConfig: A specification of the desired way to +// instantiate a disk in the instance template when its created from a +// source instance. +type DiskInstantiationConfig struct { + // AutoDelete: Specifies whether the disk will be auto-deleted when the + // instance is deleted (but not when the disk is detached from the + // instance). + AutoDelete bool `json:"autoDelete,omitempty"` + + // DeviceName: Specifies the device name of the disk to which the + // configurations apply to. + DeviceName string `json:"deviceName,omitempty"` + + // InstantiateFrom: Specifies whether to include the disk and what image + // to use. + // + // Possible values: + // "ATTACH_READ_ONLY" + // "BLANK" + // "DEFAULT" + // "DO_NOT_INCLUDE" + // "IMAGE_URL" + // "SOURCE_IMAGE" + // "SOURCE_IMAGE_FAMILY" + InstantiateFrom string `json:"instantiateFrom,omitempty"` + + // SourceImage: The custom source image to be used to restore this disk + // when instantiating this instance template. + SourceImage string `json:"sourceImage,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AutoDelete") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AutoDelete") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) { + type noMethod DiskInstantiationConfig + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskList: A list of Disk resources. type DiskList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -6028,9 +6197,13 @@ type DiskListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6041,7 +6214,9 @@ type DiskListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6286,9 +6461,13 @@ type DiskTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6299,7 +6478,9 @@ type DiskTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6435,9 +6616,13 @@ type DiskTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6448,7 +6633,9 @@ type DiskTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6562,9 +6749,13 @@ type DiskTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6575,7 +6766,9 @@ type DiskTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6717,9 +6910,13 @@ type DisksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6730,7 +6927,9 @@ type DisksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6944,6 +7143,12 @@ type Firewall struct { // "INGRESS" Direction string `json:"direction,omitempty"` + // Disabled: Denotes whether the firewall rule is disabled, i.e not + // applied to the network it is associated with. When set to true, the + // firewall rule is not enforced and the network behaves as if it did + // not exist. If this is unspecified, the firewall rule will be enabled. + Disabled bool `json:"disabled,omitempty"` + // EnableLogging: This field denotes whether to enable logging for a // particular firewall rule. If logging is enabled, logs will be // exported to the configured export destination for all firewall logs @@ -7037,10 +7242,11 @@ type Firewall struct { // applies to all instances on the specified network. TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` - // TargetTags: A list of instance tags indicating sets of instances - // located in the network that may make network connections as specified - // in allowed[]. If no targetTags are specified, the firewall rule - // applies to all instances on the specified network. + // TargetTags: A list of tags that controls which instances the firewall + // rule applies to. If targetTags are specified, then the firewall rule + // applies only to instances in the VPC network that have one of those + // tags. If no targetTags are specified, the firewall rule applies to + // all instances on the specified network. TargetTags []string `json:"targetTags,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -7209,9 +7415,13 @@ type FirewallListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7222,7 +7432,9 @@ type FirewallListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7298,15 +7510,24 @@ func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) { // FixedOrPercent: Encapsulates numeric value that can be either // absolute or relative. type FixedOrPercent struct { - // Calculated: [Output Only] Absolute value calculated based on mode: - // mode = fixed -> calculated = fixed = percent -> calculated = - // ceiling(percent/100 * base_value) + // Calculated: [Output Only] Absolute value of VM instances calculated + // based on the specific mode. + // + // + // - If the value is fixed, then the caculated value is equal to the + // fixed value. + // - If the value is a percent, then the calculated value is percent/100 + // * targetSize. For example, the calculated value of a 80% of a managed + // instance group with 150 instances would be (80/100 * 150) = 120 VM + // instances. If there is a remainder, the number is rounded up. Calculated int64 `json:"calculated,omitempty"` - // Fixed: fixed must be non-negative. + // Fixed: Specifies a fixed number of VM instances. This must be a + // positive integer. Fixed int64 `json:"fixed,omitempty"` - // Percent: percent must belong to [0, 100]. + // Percent: Specifies a percentage of instances between 0 to 100%, + // inclusive. For example, specify 80 for 80%. Percent int64 `json:"percent,omitempty"` // ForceSendFields is a list of field names (e.g. "Calculated") to @@ -7339,19 +7560,34 @@ type ForwardingRule struct { // IPAddress: The IP address that this forwarding rule is serving on // behalf of. // - // For global forwarding rules, the address must be a global IP. For - // regional forwarding rules, the address must live in the same region - // as the forwarding rule. By default, this field is empty and an - // ephemeral IPv4 address from the same scope (global or regional) will - // be assigned. A regional forwarding rule supports IPv4 only. A global - // forwarding rule supports either IPv4 or IPv6. + // Addresses are restricted based on the forwarding rule's load + // balancing scheme (EXTERNAL or INTERNAL) and scope (global or + // regional). + // + // When the load balancing scheme is EXTERNAL, for global forwarding + // rules, the address must be a global IP, and for regional forwarding + // rules, the address must live in the same region as the forwarding + // rule. If this field is empty, an ephemeral IPv4 address from the same + // scope (global or regional) will be assigned. A regional forwarding + // rule supports IPv4 only. A global forwarding rule supports either + // IPv4 or IPv6. // // When the load balancing scheme is INTERNAL, this can only be an RFC - // 1918 IP address belonging to the network/subnetwork configured for - // the forwarding rule. A reserved address cannot be used. If the field - // is empty, the IP address will be automatically allocated from the - // internal IP range of the subnetwork or network configured for this - // forwarding rule. + // 1918 IP address belonging to the network/subnet configured for the + // forwarding rule. By default, if this field is empty, an ephemeral + // internal IP address will be automatically allocated from the IP range + // of the subnet or network configured for this forwarding rule. + // + // An address can be specified either by a literal IP address or a URL + // reference to an existing Address resource. The following examples are + // all valid: + // - 100.1.2.3 + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address + // - projects/project/regions/region/addresses/address + // - regions/region/addresses/address + // - global/addresses/address + // - address IPAddress string `json:"IPAddress,omitempty"` // IPProtocol: The IP protocol to which this rule applies. Valid options @@ -7644,9 +7880,13 @@ type ForwardingRuleAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7657,7 +7897,9 @@ type ForwardingRuleAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7793,9 +8035,13 @@ type ForwardingRuleListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7806,7 +8052,9 @@ type ForwardingRuleListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7948,9 +8196,13 @@ type ForwardingRulesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7961,7 +8213,9 @@ type ForwardingRulesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8129,6 +8383,8 @@ type GuestOsFeature struct { // Possible values: // "FEATURE_TYPE_UNSPECIFIED" // "MULTI_IP_SUBNET" + // "SECURE_BOOT" + // "UEFI_COMPATIBLE" // "VIRTIO_SCSI_MULTIQUEUE" // "WINDOWS" Type string `json:"type,omitempty"` @@ -8568,9 +8824,13 @@ type HealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8581,7 +8841,9 @@ type HealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8940,9 +9202,13 @@ type HostAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8953,7 +9219,9 @@ type HostAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9089,9 +9357,13 @@ type HostListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9102,7 +9374,9 @@ type HostListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9352,9 +9626,13 @@ type HostTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9365,7 +9643,9 @@ type HostTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9501,9 +9781,13 @@ type HostTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9514,7 +9798,9 @@ type HostTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9628,9 +9914,13 @@ type HostTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9641,7 +9931,9 @@ type HostTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9755,9 +10047,13 @@ type HostsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9768,7 +10064,9 @@ type HostsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9995,9 +10293,13 @@ type HttpHealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10008,7 +10310,9 @@ type HttpHealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10234,9 +10538,13 @@ type HttpsHealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10247,7 +10555,9 @@ type HttpsHealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10610,9 +10920,13 @@ type ImageListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10623,7 +10937,9 @@ type ImageListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10971,9 +11287,13 @@ type InstanceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10984,7 +11304,9 @@ type InstanceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11210,9 +11532,13 @@ type InstanceGroupAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11223,7 +11549,9 @@ type InstanceGroupAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11360,9 +11688,13 @@ type InstanceGroupListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11373,7 +11705,9 @@ type InstanceGroupListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11536,7 +11870,7 @@ type InstanceGroupManager struct { // StatefulPolicy: Stateful configuration for this Instanced Group // Manager - StatefulPolicy *InstanceGroupManagerStatefulPolicy `json:"statefulPolicy,omitempty"` + StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"` // TargetPools: The URLs for all TargetPool resources to which instances // in the instanceGroup field are added. The target pools automatically @@ -11551,15 +11885,15 @@ type InstanceGroupManager struct { // UpdatePolicy: The update policy for this managed instance group. UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"` - // Versions: Versions supported by this IGM. User should set this field - // if they need fine-grained control over how many instances in each - // version are run by this IGM. Versions are keyed by instanceTemplate. - // Every instanceTemplate can appear at most once. This field overrides - // instanceTemplate field. If both instanceTemplate and versions are - // set, the user receives a warning. "instanceTemplate: X" is - // semantically equivalent to "versions [ { instanceTemplate: X } ]". - // Exactly one version must have targetSize field left unset. Size of - // such a version will be calculated automatically. + // Versions: Specifies the instance templates used by this managed + // instance group to create instances. + // + // Each version is defined by an instanceTemplate. Every template can + // appear at most once per instance group. This field overrides the + // top-level instanceTemplate field. Read more about the relationships + // between these fields. Exactly one version must leave the targetSize + // field unset. That version will be applied to all remaining instances. + // For more information, read about canary updates. Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"` // Zone: [Output Only] The URL of the zone where the managed instance @@ -11796,9 +12130,13 @@ type InstanceGroupManagerAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11809,7 +12147,9 @@ type InstanceGroupManagerAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11991,9 +12331,13 @@ type InstanceGroupManagerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12004,7 +12348,9 @@ type InstanceGroupManagerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12117,76 +12463,35 @@ func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatefulPolicy struct { - // PreservedDisks: Disks created on the instances that will be preserved - // on instance delete, resize down, etc. - PreservedDisks []*InstanceGroupManagerStatefulPolicyDiskPolicy `json:"preservedDisks,omitempty"` - - // ForceSendFields is a list of field names (e.g. "PreservedDisks") to - // unconditionally include in API requests. By default, fields with - // empty values are omitted from API requests. However, any non-pointer, - // non-interface field appearing in ForceSendFields will be sent to the - // server regardless of whether the field is empty or not. This may be - // used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "PreservedDisks") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupManagerStatefulPolicy) MarshalJSON() ([]byte, error) { - type noMethod InstanceGroupManagerStatefulPolicy - raw := noMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - -type InstanceGroupManagerStatefulPolicyDiskPolicy struct { - // DeviceName: Device name of the disk to be preserved - DeviceName string `json:"deviceName,omitempty"` - - // ForceSendFields is a list of field names (e.g. "DeviceName") to - // unconditionally include in API requests. By default, fields with - // empty values are omitted from API requests. However, any non-pointer, - // non-interface field appearing in ForceSendFields will be sent to the - // server regardless of whether the field is empty or not. This may be - // used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` - - // NullFields is a list of field names (e.g. "DeviceName") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupManagerStatefulPolicyDiskPolicy) MarshalJSON() ([]byte, error) { - type noMethod InstanceGroupManagerStatefulPolicyDiskPolicy - raw := noMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - type InstanceGroupManagerUpdatePolicy struct { - // MaxSurge: Maximum number of instances that can be created above the - // InstanceGroupManager.targetSize during the update process. By - // default, a fixed value of 1 is used. Using maxSurge > 0 will cause - // instance names to change during the update process. At least one of { - // maxSurge, maxUnavailable } must be greater than 0. + // MaxSurge: The maximum number of instances that can be created above + // the specified targetSize during the update process. By default, a + // fixed value of 1 is used. This value can be either a fixed number or + // a percentage if the instance group has 10 or more instances. If you + // set a percentage, the number of instances will be rounded up if + // necessary. + // + // At least one of either maxSurge or maxUnavailable must be greater + // than 0. Learn more about maxSurge. MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"` - // MaxUnavailable: Maximum number of instances that can be unavailable - // during the update process. The instance is considered available if - // all of the following conditions are satisfied: 1. Instance's status - // is RUNNING. 2. Instance's liveness health check result was observed - // to be HEALTHY at least once. By default, a fixed value of 1 is used. - // At least one of { maxSurge, maxUnavailable } must be greater than 0. + // MaxUnavailable: 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 grourp, the instance's + // liveness health check result 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. By default, a fixed + // value of 1 is used. This value can be either a fixed number or a + // percentage if the instance group has 10 or more instances. If you set + // a percentage, the number of instances will be rounded up if + // necessary. + // + // At least one of either maxSurge or maxUnavailable must be greater + // than 0. Learn more about maxUnavailable. MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"` // MinReadySec: Minimum number of seconds to wait for after a newly @@ -12194,8 +12499,13 @@ type InstanceGroupManagerUpdatePolicy struct { // 3600]. MinReadySec int64 `json:"minReadySec,omitempty"` - // MinimalAction: Minimal action to be taken on an instance. The order - // of action types is: RESTART < REPLACE. + // MinimalAction: 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 code>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. // // Possible values: // "NONE" @@ -12244,13 +12554,16 @@ type InstanceGroupManagerVersion struct { // favor of 'name'. Tag string `json:"tag,omitempty"` - // TargetSize: Intended number of instances that are created from - // instanceTemplate. The final number of instances created from - // instanceTemplate will be equal to: * if expressed as fixed number: - // min(targetSize.fixed, instanceGroupManager.targetSize), * if - // expressed as percent: ceiling(targetSize.percent * - // InstanceGroupManager.targetSize). If unset, this version will handle - // all the remaining instances. + // TargetSize: Specifies the intended number of instances to be created + // from the instanceTemplate. The final number of instances created from + // the template will be equal to: + // - If expressed as a fixed number, the minimum of either + // targetSize.fixed or instanceGroupManager.targetSize is used. + // - if expressed as a percent, the targetSize would be + // (targetSize.percent/100 * InstanceGroupManager.targetSize) If there + // is a remainder, the number is rounded up. If unset, this version + // will update any remaining instances not updated by another version. + // Read Starting a canary update for more information. TargetSize *FixedOrPercent `json:"targetSize,omitempty"` // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to @@ -12510,9 +12823,13 @@ type InstanceGroupManagersListPerInstanceConfigsRespWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12523,7 +12840,9 @@ type InstanceGroupManagersListPerInstanceConfigsRespWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12724,9 +13043,13 @@ type InstanceGroupManagersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12737,7 +13060,9 @@ type InstanceGroupManagersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13028,9 +13353,13 @@ type InstanceGroupsListInstancesWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13041,7 +13370,9 @@ type InstanceGroupsListInstancesWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13219,9 +13550,13 @@ type InstanceGroupsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13232,7 +13567,9 @@ type InstanceGroupsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13403,9 +13740,13 @@ type InstanceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13416,7 +13757,9 @@ type InstanceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13553,9 +13896,13 @@ type InstanceListReferrersWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13566,7 +13913,9 @@ type InstanceListReferrersWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13838,6 +14187,10 @@ type InstanceTemplate struct { // - projects/project/zones/zone/instances/instance SourceInstance string `json:"sourceInstance,omitempty"` + // SourceInstanceParams: The source instance params to use to create + // this instance template. + SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -13930,9 +14283,13 @@ type InstanceTemplateListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13943,7 +14300,9 @@ type InstanceTemplateListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14101,9 +14460,13 @@ type InstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14114,7 +14477,9 @@ type InstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14380,7 +14745,7 @@ func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) { } // Interconnect: Protocol definitions for Mixer API to support -// Interconnect. Next available tag: 23 +// Interconnect. Next available tag: 25 type Interconnect struct { // AdminEnabled: Administrative status of the interconnect. When this is // set to ?true?, the Interconnect is functional and may carry traffic @@ -14394,12 +14759,6 @@ type Interconnect struct { // describe the individual circuits in this LAG. CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"` - // ConnectionAuthorization: [Output Only] URL to retrieve the Letter Of - // Authority and Customer Facility Assignment (LOA-CFA) documentation - // relating to this Interconnect. This documentation authorizes the - // facility provider to connect to the specified crossconnect ports. - ConnectionAuthorization string `json:"connectionAuthorization,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` @@ -14434,8 +14793,9 @@ type Interconnect struct { InterconnectAttachments []string `json:"interconnectAttachments,omitempty"` // Possible values: - // "IT_PARTNER" + // "DEDICATED" // "IT_PRIVATE" + // "PARTNER" InterconnectType string `json:"interconnectType,omitempty"` // Kind: [Output Only] Type of the resource. Always compute#interconnect @@ -14470,8 +14830,10 @@ type Interconnect struct { // this Interconnect is functional. // // Possible values: + // "ACTIVE" // "OS_ACTIVE" // "OS_UNPROVISIONED" + // "UNPROVISIONED" OperationalStatus string `json:"operationalStatus,omitempty"` // PeerIpAddress: [Output Only] IP address configured on the customer @@ -14519,7 +14881,7 @@ func (s *Interconnect) MarshalJSON() ([]byte, error) { } // InterconnectAttachment: Protocol definitions for Mixer API to support -// InterconnectAttachment. Next available tag: 18 +// InterconnectAttachment. Next available tag: 23 type InterconnectAttachment struct { // CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to // be configured on Cloud Router Interface for this interconnect @@ -14569,8 +14931,10 @@ type InterconnectAttachment struct { // this interconnect attachment is functional. // // Possible values: + // "ACTIVE" // "OS_ACTIVE" // "OS_UNPROVISIONED" + // "UNPROVISIONED" OperationalStatus string `json:"operationalStatus,omitempty"` // PrivateInterconnectInfo: [Output Only] Information specific to a @@ -14684,9 +15048,13 @@ type InterconnectAttachmentAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14697,7 +15065,9 @@ type InterconnectAttachmentAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14836,9 +15206,13 @@ type InterconnectAttachmentListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14849,7 +15223,9 @@ type InterconnectAttachmentListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14998,9 +15374,13 @@ type InterconnectAttachmentsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15011,7 +15391,9 @@ type InterconnectAttachmentsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15189,9 +15571,13 @@ type InterconnectListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15202,7 +15588,9 @@ type InterconnectListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15296,11 +15684,16 @@ type InterconnectLocation struct { // in the Interconnect UI. // // Possible values: + // "AFRICA" + // "ASIA_PAC" // "C_AFRICA" // "C_ASIA_PAC" // "C_EUROPE" // "C_NORTH_AMERICA" // "C_SOUTH_AMERICA" + // "EUROPE" + // "NORTH_AMERICA" + // "SOUTH_AMERICA" Continent string `json:"continent,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -15433,9 +15826,13 @@ type InterconnectLocationListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15446,7 +15843,9 @@ type InterconnectLocationListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15530,6 +15929,8 @@ type InterconnectLocationRegionInfo struct { // LocationPresence: Identifies the network presence of this location. // // Possible values: + // "GLOBAL" + // "LOCAL_REGION" // "LP_GLOBAL" // "LP_LOCAL_REGION" LocationPresence string `json:"locationPresence,omitempty"` @@ -15537,9 +15938,6 @@ type InterconnectLocationRegionInfo struct { // Region: URL for the region of this location. Region string `json:"region,omitempty"` - // RegionKey: Scope key for the region of this location. - RegionKey string `json:"regionKey,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -15579,12 +15977,15 @@ type InterconnectOutageNotification struct { // Possible values: // "IT_OUTAGE" // "IT_PARTIAL_OUTAGE" + // "OUTAGE" + // "PARTIAL_OUTAGE" IssueType string `json:"issueType,omitempty"` // Name: Unique identifier for this outage notification. Name string `json:"name,omitempty"` // Possible values: + // "GOOGLE" // "NSRC_GOOGLE" Source string `json:"source,omitempty"` @@ -15593,6 +15994,8 @@ type InterconnectOutageNotification struct { StartTime int64 `json:"startTime,omitempty,string"` // Possible values: + // "ACTIVE" + // "CANCELLED" // "NS_ACTIVE" // "NS_CANCELED" State string `json:"state,omitempty"` @@ -15717,9 +16120,13 @@ type IpOwnerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15730,7 +16137,9 @@ type IpOwnerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16063,9 +16472,13 @@ type LicensesListResponseWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16076,7 +16489,9 @@ type LicensesListResponseWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16453,9 +16868,13 @@ type MachineTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16466,7 +16885,9 @@ type MachineTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16602,9 +17023,13 @@ type MachineTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16615,7 +17040,9 @@ type MachineTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16730,9 +17157,13 @@ type MachineTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16743,7 +17174,9 @@ type MachineTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17026,7 +17459,7 @@ type ManagedInstanceOverride struct { // // Possible values: // "AUTO_GENERATED" - // "USER_GENERATED" + // "USER_PROVIDED" Origin string `json:"origin,omitempty"` // ForceSendFields is a list of field names (e.g. "Disks") to @@ -17529,9 +17962,13 @@ type NetworkEndpointGroupAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17542,7 +17979,9 @@ type NetworkEndpointGroupAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17721,9 +18160,13 @@ type NetworkEndpointGroupListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17734,7 +18177,9 @@ type NetworkEndpointGroupListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17958,9 +18403,13 @@ type NetworkEndpointGroupsListNetworkEndpointsWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17971,7 +18420,9 @@ type NetworkEndpointGroupsListNetworkEndpointsWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18089,9 +18540,13 @@ type NetworkEndpointGroupsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18102,7 +18557,9 @@ type NetworkEndpointGroupsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18354,9 +18811,13 @@ type NetworkListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18367,7 +18828,9 @@ type NetworkListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18807,9 +19270,13 @@ type OperationWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18820,7 +19287,9 @@ type OperationWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18956,9 +19425,13 @@ type OperationAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18969,7 +19442,9 @@ type OperationAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19105,9 +19580,13 @@ type OperationListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19118,7 +19597,9 @@ type OperationListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19232,9 +19713,13 @@ type OperationsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19245,7 +19730,9 @@ type OperationsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20068,9 +20555,13 @@ type RegionAutoscalerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20081,7 +20572,9 @@ type RegionAutoscalerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20217,9 +20710,13 @@ type RegionDiskTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20230,7 +20727,9 @@ type RegionDiskTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20394,9 +20893,13 @@ type RegionInstanceGroupListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20407,7 +20910,9 @@ type RegionInstanceGroupListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20576,9 +21081,13 @@ type RegionInstanceGroupManagerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20589,7 +21098,9 @@ type RegionInstanceGroupManagerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20853,9 +21364,13 @@ type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20866,7 +21381,9 @@ type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21160,9 +21677,13 @@ type RegionInstanceGroupsListInstancesWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21173,7 +21694,9 @@ type RegionInstanceGroupsListInstancesWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21382,9 +21905,13 @@ type RegionListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21395,7 +21922,9 @@ type RegionListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21709,9 +22238,13 @@ type RouteWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21722,7 +22255,9 @@ type RouteWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21857,9 +22392,13 @@ type RouteListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21870,7 +22409,9 @@ type RouteListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22023,6 +22564,39 @@ func (s *Router) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RouterAdvertisedIpRange: Description-tagged IP ranges for the router +// to advertise. +type RouterAdvertisedIpRange struct { + // Description: User-specified description for the IP range. + Description string `json:"description,omitempty"` + + // Range: The IP range to advertise. The value must be a CIDR-formatted + // string. + Range string `json:"range,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) { + type noMethod RouterAdvertisedIpRange + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RouterAdvertisedPrefix: Description-tagged prefixes for the router to // advertise. type RouterAdvertisedPrefix struct { @@ -22119,9 +22693,13 @@ type RouterAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22132,7 +22710,9 @@ type RouterAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22224,6 +22804,14 @@ type RouterBgp struct { // "ALL_SUBNETS" AdvertisedGroups []string `json:"advertisedGroups,omitempty"` + // AdvertisedIpRanges: User-specified list of individual IP ranges to + // advertise in custom mode. This field can only be populated if + // advertise_mode is CUSTOM and is advertised to all peers of the + // router. These IP ranges will be advertised in addition to any + // specified groups. Leave this field blank to advertise no custom IP + // ranges. + AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` + // AdvertisedPrefixs: User-specified list of individual prefixes to // advertise in custom mode. This field can only be populated if // advertise_mode is CUSTOM and is advertised to all peers of the @@ -22281,6 +22869,14 @@ type RouterBgpPeer struct { // "ALL_SUBNETS" AdvertisedGroups []string `json:"advertisedGroups,omitempty"` + // AdvertisedIpRanges: User-specified list of individual IP ranges to + // advertise in custom mode. This field can only be populated if + // advertise_mode is CUSTOM and overrides the list defined for the + // router (in Bgp message). These IP ranges will be advertised in + // addition to any specified groups. Leave this field blank to advertise + // no custom IP ranges. + AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` + // AdvertisedPrefixs: User-specified list of individual prefixes to // advertise in custom mode. This field can only be populated if // advertise_mode is CUSTOM and overrides the list defined for the @@ -22446,9 +23042,13 @@ type RouterListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22459,7 +23059,9 @@ type RouterListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22905,9 +23507,13 @@ type RoutersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22918,7 +23524,9 @@ type RoutersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23004,7 +23612,8 @@ type Rule struct { // "NO_ACTION" Action string `json:"action,omitempty"` - // Conditions: Additional restrictions that must be met + // Conditions: Additional restrictions that must be met. All conditions + // must pass for the rule to match. Conditions []*Condition `json:"conditions,omitempty"` // Description: Human-readable description of the rule. @@ -23318,9 +23927,13 @@ type SecurityPolicyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -23331,7 +23944,9 @@ type SecurityPolicyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23460,6 +24075,10 @@ type SecurityPolicyRule struct { // are evaluated in the increasing order of priority. Priority int64 `json:"priority,omitempty"` + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Action") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -23491,6 +24110,11 @@ type SecurityPolicyRuleMatcher struct { // specified and cannot be specified if versioned_expr is not specified. Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"` + // Expr: User defined CEVAL expression. A CEVAL expression is used to + // specify match criteria such as origin.ip, source.region_code and + // contents in the request header. + Expr *Expr `json:"expr,omitempty"` + // SrcIpRanges: CIDR IP address range. Only IPv4 is supported. SrcIpRanges []string `json:"srcIpRanges,omitempty"` @@ -23883,9 +24507,13 @@ type SnapshotListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -23896,7 +24524,9 @@ type SnapshotListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23969,6 +24599,39 @@ func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SourceInstanceParams: A specification of the parameters to use when +// creating the instance template from a source instance. +type SourceInstanceParams struct { + // DiskConfigs: 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. + DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DiskConfigs") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DiskConfigs") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) { + type noMethod SourceInstanceParams + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SslCertificate: An SslCertificate resource. This resource provides a // mechanism to upload an SSL key and certificate to the load balancer // to serve secure connections from the user. @@ -24100,9 +24763,13 @@ type SslCertificateListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24113,7 +24780,9 @@ type SslCertificateListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24248,9 +24917,13 @@ type SslPoliciesListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24261,7 +24934,9 @@ type SslPoliciesListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24479,9 +25154,13 @@ type SslPolicyWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24492,7 +25171,9 @@ type SslPolicyWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24594,6 +25275,95 @@ func (s *SslPolicyReference) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type StatefulPolicy struct { + // PreservedDisks: Disks created on the instances that will be preserved + // on instance delete, resize down, etc. DEPRECATED in favor of + // preservedResources.disks field. + PreservedDisks []*StatefulPolicyPreservedDisk `json:"preservedDisks,omitempty"` + + PreservedResources *StatefulPolicyPreservedResources `json:"preservedResources,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PreservedDisks") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "PreservedDisks") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *StatefulPolicy) MarshalJSON() ([]byte, error) { + type noMethod StatefulPolicy + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type StatefulPolicyPreservedDisk struct { + // DeviceName: Device name of the disk to be preserved + DeviceName string `json:"deviceName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DeviceName") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DeviceName") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StatefulPolicyPreservedDisk) MarshalJSON() ([]byte, error) { + type noMethod StatefulPolicyPreservedDisk + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StatefulPolicyPreservedResources: Configuration of all preserved +// resources. +type StatefulPolicyPreservedResources struct { + // Disks: Disks created on the instances that will be preserved on + // instance delete, resize down, etc. + Disks []*StatefulPolicyPreservedDisk `json:"disks,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Disks") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Disks") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StatefulPolicyPreservedResources) MarshalJSON() ([]byte, error) { + type noMethod StatefulPolicyPreservedResources + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Subnetwork: A Subnetwork resource. type Subnetwork struct { // AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict @@ -24774,9 +25544,13 @@ type SubnetworkAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24787,7 +25561,9 @@ type SubnetworkAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24923,9 +25699,13 @@ type SubnetworkListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24936,7 +25716,9 @@ type SubnetworkListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -25120,9 +25902,13 @@ type SubnetworksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -25133,7 +25919,9 @@ type SubnetworksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -25479,9 +26267,13 @@ type TargetHttpProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -25492,7 +26284,9 @@ type TargetHttpProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -25788,9 +26582,13 @@ type TargetHttpsProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -25801,7 +26599,9 @@ type TargetHttpsProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -26016,9 +26816,13 @@ type TargetInstanceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -26029,7 +26833,9 @@ type TargetInstanceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -26165,9 +26971,13 @@ type TargetInstanceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -26178,7 +26988,9 @@ type TargetInstanceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -26293,9 +27105,13 @@ type TargetInstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -26306,7 +27122,9 @@ type TargetInstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -26586,9 +27404,13 @@ type TargetPoolAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -26599,7 +27421,9 @@ type TargetPoolAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -26770,9 +27594,13 @@ type TargetPoolListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -26783,7 +27611,9 @@ type TargetPoolListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -27016,9 +27846,13 @@ type TargetPoolsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -27029,7 +27863,9 @@ type TargetPoolsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -27366,9 +28202,13 @@ type TargetSslProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -27379,7 +28219,9 @@ type TargetSslProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -27646,9 +28488,13 @@ type TargetTcpProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -27659,7 +28505,9 @@ type TargetTcpProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -27896,9 +28744,13 @@ type TargetVpnGatewayAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -27909,7 +28761,9 @@ type TargetVpnGatewayAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -28046,9 +28900,13 @@ type TargetVpnGatewayListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -28059,7 +28917,9 @@ type TargetVpnGatewayListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -28175,9 +29035,13 @@ type TargetVpnGatewaysScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -28188,7 +29052,9 @@ type TargetVpnGatewaysScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -28537,9 +29403,13 @@ type UrlMapListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -28550,7 +29420,9 @@ type UrlMapListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -28786,10 +29658,17 @@ func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) { // UsableSubnetwork: Subnetwork which the current user has // compute.subnetworks.use permission on. type UsableSubnetwork struct { + // IpCidrRange: The range of internal addresses that are owned by this + // subnetwork. + IpCidrRange string `json:"ipCidrRange,omitempty"` + + // Network: Network URL. + Network string `json:"network,omitempty"` + // Subnetwork: Subnetwork URL. Subnetwork string `json:"subnetwork,omitempty"` - // ForceSendFields is a list of field names (e.g. "Subnetwork") to + // ForceSendFields is a list of field names (e.g. "IpCidrRange") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -28797,10 +29676,10 @@ type UsableSubnetwork struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Subnetwork") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "IpCidrRange") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -28876,9 +29755,13 @@ type UsableSubnetworksAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -28889,7 +29772,9 @@ type UsableSubnetworksAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -29199,9 +30084,13 @@ type VpnTunnelAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -29212,7 +30101,9 @@ type VpnTunnelAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -29348,9 +30239,13 @@ type VpnTunnelListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -29361,7 +30256,9 @@ type VpnTunnelListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -29475,9 +30372,13 @@ type VpnTunnelsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -29488,7 +30389,9 @@ type VpnTunnelsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -29623,9 +30526,13 @@ type XpnHostListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -29636,7 +30543,9 @@ type XpnHostListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -29879,9 +30788,13 @@ type ZoneListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -29892,7 +30805,9 @@ type ZoneListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -66285,11 +67200,10 @@ type InstancesStopCall struct { // Stop: Stops a running instance, shutting it down cleanly, and allows // you to restart the instance at a later time. Stopped instances do not -// incur per-minute, virtual machine usage charges while they are -// stopped, but any resources that the virtual machine is using, such as -// persistent disks and static IP addresses, will continue to be charged -// until they are deleted. For more information, see Stopping an -// instance. +// incur VM usage charges while they are stopped. However, resources +// that the VM is using, such as persistent disks and static IP +// addresses, will continue to be charged until they are deleted. For +// more information, see Stopping an instance. // For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall { c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} @@ -66409,7 +67323,7 @@ func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) } return ret, nil // { - // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", // "httpMethod": "POST", // "id": "compute.instances.stop", // "parameterOrder": [ @@ -92957,6 +93871,152 @@ func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPe } +// method id "compute.securityPolicies.addRule": + +type SecurityPoliciesAddRuleCall struct { + s *Service + project string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddRule: Inserts a rule into a security policy. +func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall { + c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SecurityPoliciesAddRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.addRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Inserts a rule into a security policy.", + // "httpMethod": "POST", + // "id": "compute.securityPolicies.addRule", + // "parameterOrder": [ + // "project", + // "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" + // }, + // "securityPolicy": { + // "description": "Name of the security policy to update.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/global/securityPolicies/{securityPolicy}/addRule", + // "request": { + // "$ref": "SecurityPolicyRule" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.securityPolicies.delete": type SecurityPoliciesDeleteCall struct { @@ -93269,6 +94329,170 @@ func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPol } +// method id "compute.securityPolicies.getRule": + +type SecurityPoliciesGetRuleCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetRule: Gets a rule at the specified priority. +func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall { + c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to get from the security policy. +func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SecurityPoliciesGetRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.getRule" call. +// Exactly one of *SecurityPolicyRule or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *SecurityPolicyRule.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &SecurityPolicyRule{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a rule at the specified priority.", + // "httpMethod": "GET", + // "id": "compute.securityPolicies.getRule", + // "parameterOrder": [ + // "project", + // "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" + // }, + // "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])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/global/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" + // ] + // } + +} + // method id "compute.securityPolicies.insert": type SecurityPoliciesInsertCall struct { @@ -93852,6 +95076,314 @@ func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation } +// method id "compute.securityPolicies.patchRule": + +type SecurityPoliciesPatchRuleCall struct { + s *Service + project string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PatchRule: Patches a rule at the specified priority. +func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall { + c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to patch. +func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SecurityPoliciesPatchRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.patchRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Patches a rule at the specified priority.", + // "httpMethod": "POST", + // "id": "compute.securityPolicies.patchRule", + // "parameterOrder": [ + // "project", + // "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" + // }, + // "securityPolicy": { + // "description": "Name of the security policy to update.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule", + // "request": { + // "$ref": "SecurityPolicyRule" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.securityPolicies.removeRule": + +type SecurityPoliciesRemoveRuleCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveRule: Deletes a rule at the specified priority. +func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall { + c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to remove from the security policy. +func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.removeRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes a rule at the specified priority.", + // "httpMethod": "POST", + // "id": "compute.securityPolicies.removeRule", + // "parameterOrder": [ + // "project", + // "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" + // }, + // "securityPolicy": { + // "description": "Name of the security policy to update.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.securityPolicies.testIamPermissions": type SecurityPoliciesTestIamPermissionsCall struct { @@ -109449,6 +110981,188 @@ func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpn } } +// method id "compute.targetVpnGateways.setLabels": + +type TargetVpnGatewaysSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about +// labels, read the Labeling Resources documentation. +func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall { + c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.targetVpnGateways.setLabels" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + // "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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 of the resource for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{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" + // ] + // } + +} + // method id "compute.targetVpnGateways.testIamPermissions": type TargetVpnGatewaysTestIamPermissionsCall struct { diff --git a/vendor/google.golang.org/api/compute/v0.beta/compute-api.json b/vendor/google.golang.org/api/compute/v0.beta/compute-api.json index 10446d78f..d7f92ff76 100644 --- a/vendor/google.golang.org/api/compute/v0.beta/compute-api.json +++ b/vendor/google.golang.org/api/compute/v0.beta/compute-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/2Jt9iILNSBvotCe8YWfswUcsXKc\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/AAGE1J2XUSZRKOUJs-uo8s-8DZk\"", "discoveryVersion": "v1", "id": "compute:beta", "name": "compute", "version": "beta", - "revision": "20170908", + "revision": "20171010", "title": "Compute Engine API", "description": "Creates and runs virtual machines on Google Cloud Platform.", "ownerDomain": "google.com", @@ -193,9 +193,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -206,7 +210,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -226,6 +232,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -293,9 +305,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -306,7 +322,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -326,6 +344,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -375,9 +399,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -388,7 +416,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -408,6 +438,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -562,7 +598,7 @@ }, "status": { "type": "string", - "description": "[Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", + "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", "enum": [ "IN_USE", "RESERVED" @@ -624,9 +660,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -637,7 +677,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -657,6 +699,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -724,9 +772,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -737,7 +789,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -757,6 +811,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -806,9 +866,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -819,7 +883,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -839,6 +905,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -950,7 +1022,7 @@ }, "source": { "type": "string", - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." + "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." }, "type": { "type": "string", @@ -998,7 +1070,7 @@ }, "sourceImage": { "type": "string", - "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." + "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", @@ -1203,9 +1275,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1216,7 +1292,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1236,6 +1314,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1303,9 +1387,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1316,7 +1404,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1336,6 +1426,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1433,9 +1529,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1446,7 +1546,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1466,6 +1568,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1550,20 +1658,20 @@ "properties": { "filter": { "type": "string", - "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or global data.\n\nFor the filter to be valid for autoscaling purposes, the following rules apply: \n- You can only use the AND operator for joining selectors. \n- You can only use direct equality comparison operator (=) without any functions for each selector. \n- You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. \n- The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels.\nIf the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is / called a global metric for the purpose of autoscaling.\n\nIf not specified, the type defaults to gce_instance. \n\nYou should provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value." + "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data.\n\nFor the filter to be valid for autoscaling purposes, the following rules apply: \n- You can only use the AND operator for joining selectors. \n- You can only use direct equality comparison operator (=) without any functions for each selector. \n- You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. \n- The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels.\nIf the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a per-group metric for the purpose of autoscaling.\n\nIf not specified, the type defaults to gce_instance. \n\nYou should provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value." }, "metric": { "type": "string", - "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.\n\nThe metric must have a value type of INT64 or DOUBLE." + "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE." }, "singleInstanceAssignment": { "type": "number", - "description": "If scaling is based on a global metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler will keep the number of instances proportional to the value of this metric, the metric itself should not change value due to group resizing.\n\nA good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances.\n\nA bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", + "description": "If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler will keep the number of instances proportional to the value of this metric, the metric itself should not change value due to group resizing.\n\nA good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances.\n\nA bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", "format": "double" }, "utilizationTarget": { "type": "number", - "description": "The target value of the metric that autoscaler should maintain. This must be a positive value.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", + "description": "The target value of the metric that autoscaler should maintain. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", "format": "double" }, "utilizationTargetType": { @@ -1734,9 +1842,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1747,7 +1859,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1767,6 +1881,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1979,9 +2099,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1992,7 +2116,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2012,6 +2138,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2127,9 +2259,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2140,7 +2276,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2160,6 +2298,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2209,9 +2353,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2222,7 +2370,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2242,6 +2392,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2464,9 +2620,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2477,7 +2637,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2497,6 +2659,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2564,9 +2732,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2577,7 +2749,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2597,6 +2771,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2646,9 +2826,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2659,7 +2843,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2679,6 +2865,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3054,9 +3246,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3067,7 +3263,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3087,6 +3285,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3154,9 +3358,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3167,7 +3375,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3187,6 +3397,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3319,9 +3535,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3332,7 +3552,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3352,6 +3574,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3419,9 +3647,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3432,7 +3664,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3452,6 +3686,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3501,9 +3741,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3514,7 +3758,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3534,6 +3780,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3594,9 +3846,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3607,7 +3863,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3627,6 +3885,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3842,7 +4106,7 @@ }, "targetTags": { "type": "array", - "description": "A list of instance tags indicating sets of instances located in the network that may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", + "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", "items": { "type": "string" } @@ -3888,9 +4152,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -3901,7 +4169,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -3921,6 +4191,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3956,17 +4232,17 @@ "properties": { "calculated": { "type": "integer", - "description": "[Output Only] Absolute value calculated based on mode: mode = fixed -\u003e calculated = fixed = percent -\u003e calculated = ceiling(percent/100 * base_value)", + "description": "[Output Only] Absolute value of VM instances calculated based on the specific mode.\n\n \n- If the value is fixed, then the caculated value is equal to the fixed value. \n- If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded up.", "format": "int32" }, "fixed": { "type": "integer", - "description": "fixed must be non-negative.", + "description": "Specifies a fixed number of VM instances. This must be a positive integer.", "format": "int32" }, "percent": { "type": "integer", - "description": "percent must belong to [0, 100].", + "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", "format": "int32" } } @@ -3978,7 +4254,7 @@ "properties": { "IPAddress": { "type": "string", - "description": "The IP address that this forwarding rule is serving on behalf of.\n\nFor global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule." + "description": "The IP address that this forwarding rule is serving on behalf of.\n\nAddresses are restricted based on the forwarding rule's load balancing scheme (EXTERNAL or INTERNAL) and scope (global or regional).\n\nWhen the load balancing scheme is EXTERNAL, for global forwarding rules, the address must be a global IP, and for regional forwarding rules, the address must live in the same region as the forwarding rule. If this field is empty, an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnet configured for the forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule.\n\nAn address can be specified either by a literal IP address or a URL reference to an existing Address resource. The following examples are all valid: \n- 100.1.2.3 \n- https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address \n- projects/project/regions/region/addresses/address \n- regions/region/addresses/address \n- global/addresses/address \n- address" }, "IPProtocol": { "type": "string", @@ -4148,9 +4424,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4161,7 +4441,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4181,6 +4463,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4248,9 +4536,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4261,7 +4553,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4281,6 +4575,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4330,9 +4630,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4343,7 +4647,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4363,6 +4669,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4420,10 +4732,14 @@ "enum": [ "FEATURE_TYPE_UNSPECIFIED", "MULTI_IP_SUBNET", + "SECURE_BOOT", + "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -4464,6 +4780,10 @@ "requestPath": { "type": "string", "description": "The request path of the HTTP health check request. The default value is /." + }, + "response": { + "type": "string", + "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." } } }, @@ -4499,6 +4819,10 @@ "requestPath": { "type": "string", "description": "The request path of the HTTPS health check request. The default value is /." + }, + "response": { + "type": "string", + "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." } } }, @@ -4630,9 +4954,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4643,7 +4971,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4663,6 +4993,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4860,9 +5196,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4873,7 +5213,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4893,6 +5235,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5027,9 +5375,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5040,7 +5392,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5060,6 +5414,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5293,9 +5653,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5306,7 +5670,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5326,6 +5692,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5371,6 +5743,10 @@ "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." }, + "deletionProtection": { + "type": "boolean", + "description": "Whether the resource should be protected against deletion." + }, "description": { "type": "string", "description": "An optional description of this resource. Provide this property when you create the resource." @@ -5541,9 +5917,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5554,7 +5934,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5574,6 +5956,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5712,9 +6100,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5725,7 +6117,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5745,6 +6139,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5812,9 +6212,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5825,7 +6229,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5845,6 +6251,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6004,7 +6416,7 @@ }, "versions": { "type": "array", - "description": "Versions supported by this IGM. User should set this field if they need fine-grained control over how many instances in each version are run by this IGM. Versions are keyed by instanceTemplate. Every instanceTemplate can appear at most once. This field overrides instanceTemplate field. If both instanceTemplate and versions are set, the user receives a warning. \"instanceTemplate: X\" is semantically equivalent to \"versions [ { instanceTemplate: X } ]\". Exactly one version must have targetSize field left unset. Size of such a version will be calculated automatically.", + "description": "Specifies the instance templates used by this managed instance group to create instances.\n\nEach version is defined by an instanceTemplate. Every template can appear at most once per instance group. This field overrides the top-level instanceTemplate field. Read more about the relationships between these fields. Exactly one version must leave the targetSize field unset. That version will be applied to all remaining instances. For more information, read about canary updates.", "items": { "$ref": "InstanceGroupManagerVersion" } @@ -6105,9 +6517,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6118,7 +6534,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6138,6 +6556,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6220,9 +6644,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6233,7 +6661,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6253,6 +6683,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6313,11 +6749,11 @@ "properties": { "maxSurge": { "$ref": "FixedOrPercent", - "description": "Maximum number of instances that can be created above the InstanceGroupManager.targetSize during the update process. By default, a fixed value of 1 is used. Using maxSurge \u003e 0 will cause instance names to change during the update process. At least one of { maxSurge, maxUnavailable } must be greater than 0." + "description": "The maximum number of instances that can be created above the specified targetSize during the update process. By default, a fixed value of 1 is used. This value can be either a fixed number or a percentage if the instance group has 10 or more instances. If you set a percentage, the number of instances will be rounded up if necessary.\n\nAt least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge." }, "maxUnavailable": { "$ref": "FixedOrPercent", - "description": "Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0." + "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:\n\n \n- The instance's status is RUNNING. \n- If there is a health check on the instance grourp, the instance's liveness health check result 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. By default, a fixed value of 1 is used. This value can be either a fixed number or a percentage if the instance group has 10 or more instances. If you set a percentage, the number of instances will be rounded up if necessary.\n\nAt least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable." }, "minReadySec": { "type": "integer", @@ -6326,7 +6762,7 @@ }, "minimalAction": { "type": "string", - "description": "Minimal action to be taken on an instance. The order of action types is: RESTART \u003c REPLACE.", + "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 code\u003eRESTART, 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.", "enum": [ "REPLACE", "RESTART" @@ -6362,7 +6798,7 @@ }, "targetSize": { "$ref": "FixedOrPercent", - "description": "Intended number of instances that are created from instanceTemplate. The final number of instances created from instanceTemplate will be equal to: * if expressed as fixed number: min(targetSize.fixed, instanceGroupManager.targetSize), * if expressed as percent: ceiling(targetSize.percent * InstanceGroupManager.targetSize). If unset, this version will handle all the remaining instances." + "description": "Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: \n- If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. \n- if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded up. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information." } } }, @@ -6458,9 +6894,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6471,7 +6911,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6491,6 +6933,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6610,9 +7058,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6623,7 +7075,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6643,6 +7097,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6723,9 +7183,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6736,7 +7200,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6756,6 +7222,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6841,9 +7313,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6854,7 +7330,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6874,6 +7352,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6941,9 +7425,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6954,7 +7442,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6974,6 +7464,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7183,9 +7679,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7196,7 +7696,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7216,6 +7718,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7306,9 +7814,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7319,7 +7831,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7339,6 +7853,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7450,7 +7970,7 @@ "Interconnect": { "id": "Interconnect", "type": "object", - "description": "Protocol definitions for Mixer API to support Interconnect. Next available tag: 23", + "description": "Protocol definitions for Mixer API to support Interconnect. Next available tag: 25", "properties": { "adminEnabled": { "type": "boolean", @@ -7463,10 +7983,6 @@ "$ref": "InterconnectCircuitInfo" } }, - "connectionAuthorization": { - "type": "string", - "description": "[Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports." - }, "creationTimestamp": { "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." @@ -7509,9 +8025,11 @@ "interconnectType": { "type": "string", "enum": [ + "DEDICATED", "IT_PRIVATE" ], "enumDescriptions": [ + "", "" ] }, @@ -7551,10 +8069,14 @@ "type": "string", "description": "[Output Only] The current status of whether or not this Interconnect is functional.", "enum": [ + "ACTIVE", "OS_ACTIVE", - "OS_UNPROVISIONED" + "OS_UNPROVISIONED", + "UNPROVISIONED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -7582,7 +8104,7 @@ "InterconnectAttachment": { "id": "InterconnectAttachment", "type": "object", - "description": "Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 18", + "description": "Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 23", "properties": { "cloudRouterIpAddress": { "type": "string", @@ -7627,10 +8149,14 @@ "type": "string", "description": "[Output Only] The current status of whether or not this interconnect attachment is functional.", "enum": [ + "ACTIVE", "OS_ACTIVE", - "OS_UNPROVISIONED" + "OS_UNPROVISIONED", + "UNPROVISIONED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -7692,9 +8218,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7705,7 +8235,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7725,6 +8257,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7792,9 +8330,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7805,7 +8347,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7825,6 +8369,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7886,9 +8436,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7899,7 +8453,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7919,6 +8475,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8005,9 +8567,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8018,7 +8584,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8038,6 +8606,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8087,13 +8661,23 @@ "type": "string", "description": "Continent for this location. Used by the location picker in the Interconnect UI.", "enum": [ + "AFRICA", + "ASIA_PAC", "C_AFRICA", "C_ASIA_PAC", "C_EUROPE", "C_NORTH_AMERICA", - "C_SOUTH_AMERICA" + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" ], "enumDescriptions": [ + "", + "", + "", + "", + "", "", "", "", @@ -8187,9 +8771,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8200,7 +8788,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8220,6 +8810,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8262,10 +8858,14 @@ "type": "string", "description": "Identifies the network presence of this location.", "enum": [ + "GLOBAL", + "LOCAL_REGION", "LP_GLOBAL", "LP_LOCAL_REGION" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -8273,10 +8873,6 @@ "region": { "type": "string", "description": "URL for the region of this location." - }, - "regionKey": { - "type": "string", - "description": "Scope key for the region of this location." } } }, @@ -8304,9 +8900,13 @@ "type": "string", "enum": [ "IT_OUTAGE", - "IT_PARTIAL_OUTAGE" + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -8318,9 +8918,11 @@ "source": { "type": "string", "enum": [ + "GOOGLE", "NSRC_GOOGLE" ], "enumDescriptions": [ + "", "" ] }, @@ -8332,10 +8934,14 @@ "state": { "type": "string", "enum": [ + "ACTIVE", + "CANCELLED", "NS_ACTIVE", "NS_CANCELED" ], "enumDescriptions": [ + "", + "", "", "" ] @@ -8555,9 +9161,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8568,7 +9178,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8588,6 +9200,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8655,9 +9273,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8668,7 +9290,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8688,6 +9312,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8737,9 +9367,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8750,7 +9384,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8770,6 +9406,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9138,9 +9780,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9151,7 +9797,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9171,6 +9819,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9420,9 +10074,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9433,7 +10091,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9453,6 +10113,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9525,9 +10191,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9538,7 +10208,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9558,6 +10230,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9625,9 +10303,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9638,7 +10320,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9658,6 +10342,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9707,9 +10397,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9720,7 +10414,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9740,6 +10436,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10214,9 +10916,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10227,7 +10933,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10247,6 +10955,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10314,9 +11028,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10327,7 +11045,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10347,6 +11067,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10414,9 +11140,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10427,7 +11157,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10447,6 +11179,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10609,9 +11347,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10622,7 +11364,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10642,6 +11386,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10750,9 +11500,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10763,7 +11517,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -10783,6 +11539,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -10978,9 +11740,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -10991,7 +11757,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11011,6 +11779,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11079,9 +11853,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11092,7 +11870,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11112,6 +11892,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11250,9 +12036,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11263,7 +12053,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11283,6 +12075,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11417,9 +12215,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11430,7 +12232,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11450,6 +12254,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11613,9 +12423,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11626,7 +12440,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11646,6 +12462,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -11701,7 +12523,7 @@ }, "conditions": { "type": "array", - "description": "Additional restrictions that must be met", + "description": "Additional restrictions that must be met. All conditions must pass for the rule to match.", "items": { "$ref": "Condition" } @@ -11882,9 +12704,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -11895,7 +12721,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -11915,6 +12743,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12195,9 +13029,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12208,7 +13046,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12228,6 +13068,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12337,9 +13183,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12350,7 +13200,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12370,6 +13222,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12507,9 +13365,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12520,7 +13382,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12540,6 +13404,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12607,9 +13477,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12620,7 +13494,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12640,6 +13516,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12714,9 +13596,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12727,7 +13613,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12747,6 +13635,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -12915,9 +13809,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -12928,7 +13826,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -12948,6 +13848,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13073,9 +13979,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13086,7 +13996,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13106,6 +14018,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13225,9 +14143,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13238,7 +14160,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13258,6 +14182,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13325,9 +14255,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13338,7 +14272,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13358,6 +14294,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13407,9 +14349,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13420,7 +14366,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13440,6 +14388,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13586,9 +14540,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13599,7 +14557,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13619,6 +14579,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13703,9 +14669,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13716,7 +14686,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13736,6 +14708,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -13837,9 +14815,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -13850,7 +14832,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -13870,6 +14854,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14044,9 +15034,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14057,7 +15051,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14077,6 +15073,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14222,9 +15224,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14235,7 +15241,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14255,6 +15263,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14404,9 +15418,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14417,7 +15435,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14437,6 +15457,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14504,9 +15530,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14517,7 +15547,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14537,6 +15569,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14586,9 +15624,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14599,7 +15641,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14619,6 +15663,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -14817,9 +15867,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -14830,7 +15884,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -14850,6 +15906,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15132,9 +16194,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15145,7 +16211,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15165,6 +16233,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15232,9 +16306,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15245,7 +16323,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15265,6 +16345,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15314,9 +16400,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15327,7 +16417,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15347,6 +16439,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15413,9 +16511,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15426,7 +16528,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15446,6 +16550,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -15596,9 +16706,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -15609,7 +16723,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -15629,6 +16745,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -22170,6 +23292,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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query" }, + "sourceInstanceTemplate": { + "type": "string", + "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: \n- https://www.googleapis.com/compute/v1/projects/project/global/global/instanceTemplates/instanceTemplate \n- projects/project/global/global/instanceTemplates/instanceTemplate \n- global/instancesTemplates/instanceTemplate", + "location": "query" + }, "zone": { "type": "string", "description": "The name of the zone for this request.", @@ -22361,6 +23488,58 @@ "https://www.googleapis.com/auth/compute" ] }, + "setDeletionProtection": { + "id": "compute.instances.setDeletionProtection", + "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "httpMethod": "POST", + "description": "Sets deletion protection on the instance.", + "parameters": { + "deletionProtection": { + "type": "boolean", + "description": "Whether the resource should be protected against deletion.", + "default": "true", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "resource": { + "type": "string", + "description": "Name of the resource for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setDiskAutoDelete": { "id": "compute.instances.setDiskAutoDelete", "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", @@ -22913,7 +24092,7 @@ "id": "compute.instances.stop", "path": "{project}/zones/{zone}/instances/{instance}/stop", "httpMethod": "POST", - "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", "parameters": { "instance": { "type": "string", diff --git a/vendor/google.golang.org/api/compute/v0.beta/compute-gen.go b/vendor/google.golang.org/api/compute/v0.beta/compute-gen.go index 71f1cfb7b..dac0dabe6 100644 --- a/vendor/google.golang.org/api/compute/v0.beta/compute-gen.go +++ b/vendor/google.golang.org/api/compute/v0.beta/compute-gen.go @@ -863,9 +863,13 @@ type AcceleratorTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -876,7 +880,9 @@ type AcceleratorTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1013,9 +1019,13 @@ type AcceleratorTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1026,7 +1036,9 @@ type AcceleratorTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1142,9 +1154,13 @@ type AcceleratorTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1155,7 +1171,9 @@ type AcceleratorTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1358,10 +1376,11 @@ type Address struct { // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of the address, which can be either - // IN_USE or RESERVED. An address that is RESERVED is currently reserved - // and available to use. An IN_USE address is currently being used by - // another resource and is not available. + // Status: [Output Only] The status of the address, which can be one of + // RESERVING, RESERVED, or IN_USE. An address that is RESERVING is + // currently in the process of being reserved. A RESERVED address is + // currently reserved and available to use. An IN_USE address is + // currently being used by another resource and is not available. // // Possible values: // "IN_USE" @@ -1469,9 +1488,13 @@ type AddressAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1482,7 +1505,9 @@ type AddressAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1618,9 +1643,13 @@ type AddressListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1631,7 +1660,9 @@ type AddressListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1745,9 +1776,13 @@ type AddressesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1758,7 +1793,9 @@ type AddressesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1960,7 +1997,8 @@ type AttachedDisk struct { // Source: Specifies a valid partial or full URL to an existing // Persistent Disk resource. When creating a new instance, one of - // initializeParams.sourceImage or disks.source is required. + // initializeParams.sourceImage or disks.source is required except for + // local SSD. // // If desired, you can also attach existing non-root persistent disks // using this property. This field is only applicable for persistent @@ -2043,7 +2081,7 @@ type AttachedDiskInitializeParams struct { // SourceImage: The source image to create this disk. When creating a // new instance, one of initializeParams.sourceImage or disks.source is - // required. + // required except for local SSD. // // To create a disk with one of the public operating system images, // specify the image by its family name. For example, specify @@ -2407,9 +2445,13 @@ type AutoscalerAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2420,7 +2462,9 @@ type AutoscalerAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2556,9 +2600,13 @@ type AutoscalerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2569,7 +2617,9 @@ type AutoscalerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2731,9 +2781,13 @@ type AutoscalersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2744,7 +2798,9 @@ type AutoscalersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2942,7 +2998,7 @@ type AutoscalingPolicyCustomMetricUtilization struct { // Filter: A filter string, compatible with a Stackdriver Monitoring // filter string for TimeSeries.list API call. This filter is used to // select a specific TimeSeries for the purpose of autoscaling and to - // determine whether the metric is exporting per-instance or global + // determine whether the metric is exporting per-instance or per-group // data. // // For the filter to be valid for autoscaling purposes, the following @@ -2960,8 +3016,8 @@ type AutoscalingPolicyCustomMetricUtilization struct { // If the resource type is any other value, the autoscaler expects this // metric to contain values that apply to the entire autoscaled instance // group and resource label filtering can be performed to point - // autoscaler at the correct TimeSeries to scale upon. This is / called - // a global metric for the purpose of autoscaling. + // autoscaler at the correct TimeSeries to scale upon. This is called a + // per-group metric for the purpose of autoscaling. // // If not specified, the type defaults to gce_instance. // @@ -2973,15 +3029,12 @@ type AutoscalingPolicyCustomMetricUtilization struct { Filter string `json:"filter,omitempty"` // Metric: The identifier (type) of the Stackdriver Monitoring metric. - // The metric cannot have negative values and should be a utilization - // metric, which means that the number of virtual machines handling - // requests should increase or decrease proportionally to the - // metric. + // The metric cannot have negative values. // // The metric must have a value type of INT64 or DOUBLE. Metric string `json:"metric,omitempty"` - // SingleInstanceAssignment: If scaling is based on a global metric + // SingleInstanceAssignment: If scaling is based on a per-group metric // value that represents the total amount of work to be done or resource // usage, set this value to an amount assigned for a single instance of // the scaled group. Autoscaler will keep the number of instances @@ -3000,7 +3053,9 @@ type AutoscalingPolicyCustomMetricUtilization struct { SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"` // UtilizationTarget: The target value of the metric that autoscaler - // should maintain. This must be a positive value. + // should maintain. This must be a positive value. A utilization metric + // scales number of virtual machines handling requests to increase or + // decrease proportionally to the metric. // // For example, a good metric to use as a utilization_target is // compute.googleapis.com/instance/network/received_bytes_count. The @@ -3356,9 +3411,13 @@ type BackendBucketListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -3369,7 +3428,9 @@ type BackendBucketListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -3679,9 +3740,13 @@ type BackendServiceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -3692,7 +3757,9 @@ type BackendServiceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -3928,9 +3995,13 @@ type BackendServiceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -3941,7 +4012,9 @@ type BackendServiceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4056,9 +4129,13 @@ type BackendServicesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4069,7 +4146,9 @@ type BackendServicesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4460,9 +4539,13 @@ type CommitmentAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4473,7 +4556,9 @@ type CommitmentAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4609,9 +4694,13 @@ type CommitmentListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4622,7 +4711,9 @@ type CommitmentListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4737,9 +4828,13 @@ type CommitmentsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4750,7 +4845,9 @@ type CommitmentsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5333,9 +5430,13 @@ type DiskAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5346,7 +5447,9 @@ type DiskAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5482,9 +5585,13 @@ type DiskListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5495,7 +5602,9 @@ type DiskListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5740,9 +5849,13 @@ type DiskTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5753,7 +5866,9 @@ type DiskTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5889,9 +6004,13 @@ type DiskTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -5902,7 +6021,9 @@ type DiskTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6016,9 +6137,13 @@ type DiskTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6029,7 +6154,9 @@ type DiskTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6171,9 +6298,13 @@ type DisksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6184,7 +6315,9 @@ type DisksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6485,10 +6618,11 @@ type Firewall struct { // applies to all instances on the specified network. TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` - // TargetTags: A list of instance tags indicating sets of instances - // located in the network that may make network connections as specified - // in allowed[]. If no targetTags are specified, the firewall rule - // applies to all instances on the specified network. + // TargetTags: A list of tags that controls which instances the firewall + // rule applies to. If targetTags are specified, then the firewall rule + // applies only to instances in the VPC network that have one of those + // tags. If no targetTags are specified, the firewall rule applies to + // all instances on the specified network. TargetTags []string `json:"targetTags,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -6657,9 +6791,13 @@ type FirewallListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6670,7 +6808,9 @@ type FirewallListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -6746,15 +6886,24 @@ func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) { // FixedOrPercent: Encapsulates numeric value that can be either // absolute or relative. type FixedOrPercent struct { - // Calculated: [Output Only] Absolute value calculated based on mode: - // mode = fixed -> calculated = fixed = percent -> calculated = - // ceiling(percent/100 * base_value) + // Calculated: [Output Only] Absolute value of VM instances calculated + // based on the specific mode. + // + // + // - If the value is fixed, then the caculated value is equal to the + // fixed value. + // - If the value is a percent, then the calculated value is percent/100 + // * targetSize. For example, the calculated value of a 80% of a managed + // instance group with 150 instances would be (80/100 * 150) = 120 VM + // instances. If there is a remainder, the number is rounded up. Calculated int64 `json:"calculated,omitempty"` - // Fixed: fixed must be non-negative. + // Fixed: Specifies a fixed number of VM instances. This must be a + // positive integer. Fixed int64 `json:"fixed,omitempty"` - // Percent: percent must belong to [0, 100]. + // Percent: Specifies a percentage of instances between 0 to 100%, + // inclusive. For example, specify 80 for 80%. Percent int64 `json:"percent,omitempty"` // ForceSendFields is a list of field names (e.g. "Calculated") to @@ -6787,19 +6936,34 @@ type ForwardingRule struct { // IPAddress: The IP address that this forwarding rule is serving on // behalf of. // - // For global forwarding rules, the address must be a global IP. For - // regional forwarding rules, the address must live in the same region - // as the forwarding rule. By default, this field is empty and an - // ephemeral IPv4 address from the same scope (global or regional) will - // be assigned. A regional forwarding rule supports IPv4 only. A global - // forwarding rule supports either IPv4 or IPv6. + // Addresses are restricted based on the forwarding rule's load + // balancing scheme (EXTERNAL or INTERNAL) and scope (global or + // regional). + // + // When the load balancing scheme is EXTERNAL, for global forwarding + // rules, the address must be a global IP, and for regional forwarding + // rules, the address must live in the same region as the forwarding + // rule. If this field is empty, an ephemeral IPv4 address from the same + // scope (global or regional) will be assigned. A regional forwarding + // rule supports IPv4 only. A global forwarding rule supports either + // IPv4 or IPv6. // // When the load balancing scheme is INTERNAL, this can only be an RFC - // 1918 IP address belonging to the network/subnetwork configured for - // the forwarding rule. A reserved address cannot be used. If the field - // is empty, the IP address will be automatically allocated from the - // internal IP range of the subnetwork or network configured for this - // forwarding rule. + // 1918 IP address belonging to the network/subnet configured for the + // forwarding rule. By default, if this field is empty, an ephemeral + // internal IP address will be automatically allocated from the IP range + // of the subnet or network configured for this forwarding rule. + // + // An address can be specified either by a literal IP address or a URL + // reference to an existing Address resource. The following examples are + // all valid: + // - 100.1.2.3 + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address + // - projects/project/regions/region/addresses/address + // - regions/region/addresses/address + // - global/addresses/address + // - address IPAddress string `json:"IPAddress,omitempty"` // IPProtocol: The IP protocol to which this rule applies. Valid options @@ -7065,9 +7229,13 @@ type ForwardingRuleAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7078,7 +7246,9 @@ type ForwardingRuleAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7214,9 +7384,13 @@ type ForwardingRuleListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7227,7 +7401,9 @@ type ForwardingRuleListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7342,9 +7518,13 @@ type ForwardingRulesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7355,7 +7535,9 @@ type ForwardingRulesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7481,6 +7663,8 @@ type GuestOsFeature struct { // Possible values: // "FEATURE_TYPE_UNSPECIFIED" // "MULTI_IP_SUBNET" + // "SECURE_BOOT" + // "UEFI_COMPATIBLE" // "VIRTIO_SCSI_MULTIQUEUE" // "WINDOWS" Type string `json:"type,omitempty"` @@ -7535,6 +7719,11 @@ type HTTPHealthCheck struct { // default value is /. RequestPath string `json:"requestPath,omitempty"` + // Response: 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. + Response string `json:"response,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -7585,6 +7774,11 @@ type HTTPSHealthCheck struct { // default value is /. RequestPath string `json:"requestPath,omitempty"` + // Response: 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. + Response string `json:"response,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -7771,9 +7965,13 @@ type HealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7784,7 +7982,9 @@ type HealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8123,9 +8323,13 @@ type HttpHealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8136,7 +8340,9 @@ type HttpHealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8362,9 +8568,13 @@ type HttpsHealthCheckListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8375,7 +8585,9 @@ type HttpsHealthCheckListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8734,9 +8946,13 @@ type ImageListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8747,7 +8963,9 @@ type ImageListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8835,6 +9053,10 @@ type Instance struct { // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DeletionProtection: Whether the resource should be protected against + // deletion. + DeletionProtection bool `json:"deletionProtection,omitempty"` + // Description: An optional description of this resource. Provide this // property when you create the resource. Description string `json:"description,omitempty"` @@ -9058,9 +9280,13 @@ type InstanceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9071,7 +9297,9 @@ type InstanceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9297,9 +9525,13 @@ type InstanceGroupAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9310,7 +9542,9 @@ type InstanceGroupAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9447,9 +9681,13 @@ type InstanceGroupListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9460,7 +9698,9 @@ type InstanceGroupListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9632,15 +9872,15 @@ type InstanceGroupManager struct { // UpdatePolicy: The update policy for this managed instance group. UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"` - // Versions: Versions supported by this IGM. User should set this field - // if they need fine-grained control over how many instances in each - // version are run by this IGM. Versions are keyed by instanceTemplate. - // Every instanceTemplate can appear at most once. This field overrides - // instanceTemplate field. If both instanceTemplate and versions are - // set, the user receives a warning. "instanceTemplate: X" is - // semantically equivalent to "versions [ { instanceTemplate: X } ]". - // Exactly one version must have targetSize field left unset. Size of - // such a version will be calculated automatically. + // Versions: Specifies the instance templates used by this managed + // instance group to create instances. + // + // Each version is defined by an instanceTemplate. Every template can + // appear at most once per instance group. This field overrides the + // top-level instanceTemplate field. Read more about the relationships + // between these fields. Exactly one version must leave the targetSize + // field unset. That version will be applied to all remaining instances. + // For more information, read about canary updates. Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"` // Zone: [Output Only] The URL of the zone where the managed instance @@ -9819,9 +10059,13 @@ type InstanceGroupManagerAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9832,7 +10076,9 @@ type InstanceGroupManagerAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10007,9 +10253,13 @@ type InstanceGroupManagerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10020,7 +10270,9 @@ type InstanceGroupManagerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10134,19 +10386,34 @@ func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error } type InstanceGroupManagerUpdatePolicy struct { - // MaxSurge: Maximum number of instances that can be created above the - // InstanceGroupManager.targetSize during the update process. By - // default, a fixed value of 1 is used. Using maxSurge > 0 will cause - // instance names to change during the update process. At least one of { - // maxSurge, maxUnavailable } must be greater than 0. + // MaxSurge: The maximum number of instances that can be created above + // the specified targetSize during the update process. By default, a + // fixed value of 1 is used. This value can be either a fixed number or + // a percentage if the instance group has 10 or more instances. If you + // set a percentage, the number of instances will be rounded up if + // necessary. + // + // At least one of either maxSurge or maxUnavailable must be greater + // than 0. Learn more about maxSurge. MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"` - // MaxUnavailable: Maximum number of instances that can be unavailable - // during the update process. The instance is considered available if - // all of the following conditions are satisfied: 1. Instance's status - // is RUNNING. 2. Instance's liveness health check result was observed - // to be HEALTHY at least once. By default, a fixed value of 1 is used. - // At least one of { maxSurge, maxUnavailable } must be greater than 0. + // MaxUnavailable: 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 grourp, the instance's + // liveness health check result 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. By default, a fixed + // value of 1 is used. This value can be either a fixed number or a + // percentage if the instance group has 10 or more instances. If you set + // a percentage, the number of instances will be rounded up if + // necessary. + // + // At least one of either maxSurge or maxUnavailable must be greater + // than 0. Learn more about maxUnavailable. MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"` // MinReadySec: Minimum number of seconds to wait for after a newly @@ -10154,8 +10421,13 @@ type InstanceGroupManagerUpdatePolicy struct { // 3600]. MinReadySec int64 `json:"minReadySec,omitempty"` - // MinimalAction: Minimal action to be taken on an instance. The order - // of action types is: RESTART < REPLACE. + // MinimalAction: 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 code>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. // // Possible values: // "REPLACE" @@ -10197,13 +10469,16 @@ type InstanceGroupManagerVersion struct { // this managed instance group. Name string `json:"name,omitempty"` - // TargetSize: Intended number of instances that are created from - // instanceTemplate. The final number of instances created from - // instanceTemplate will be equal to: * if expressed as fixed number: - // min(targetSize.fixed, instanceGroupManager.targetSize), * if - // expressed as percent: ceiling(targetSize.percent * - // InstanceGroupManager.targetSize). If unset, this version will handle - // all the remaining instances. + // TargetSize: Specifies the intended number of instances to be created + // from the instanceTemplate. The final number of instances created from + // the template will be equal to: + // - If expressed as a fixed number, the minimum of either + // targetSize.fixed or instanceGroupManager.targetSize is used. + // - if expressed as a percent, the targetSize would be + // (targetSize.percent/100 * InstanceGroupManager.targetSize) If there + // is a remainder, the number is rounded up. If unset, this version + // will update any remaining instances not updated by another version. + // Read Starting a canary update for more information. TargetSize *FixedOrPercent `json:"targetSize,omitempty"` // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to @@ -10457,9 +10732,13 @@ type InstanceGroupManagersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10470,7 +10749,9 @@ type InstanceGroupManagersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10730,9 +11011,13 @@ type InstanceGroupsListInstancesWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10743,7 +11028,9 @@ type InstanceGroupsListInstancesWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10921,9 +11208,13 @@ type InstanceGroupsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10934,7 +11225,9 @@ type InstanceGroupsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11105,9 +11398,13 @@ type InstanceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11118,7 +11415,9 @@ type InstanceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11255,9 +11554,13 @@ type InstanceListReferrersWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11268,7 +11571,9 @@ type InstanceListReferrersWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11624,9 +11929,13 @@ type InstanceTemplateListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11637,7 +11946,9 @@ type InstanceTemplateListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11795,9 +12106,13 @@ type InstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11808,7 +12123,9 @@ type InstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12066,7 +12383,7 @@ func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) { } // Interconnect: Protocol definitions for Mixer API to support -// Interconnect. Next available tag: 23 +// Interconnect. Next available tag: 25 type Interconnect struct { // AdminEnabled: Administrative status of the interconnect. When this is // set to ?true?, the Interconnect is functional and may carry traffic @@ -12080,12 +12397,6 @@ type Interconnect struct { // describe the individual circuits in this LAG. CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"` - // ConnectionAuthorization: [Output Only] URL to retrieve the Letter Of - // Authority and Customer Facility Assignment (LOA-CFA) documentation - // relating to this Interconnect. This documentation authorizes the - // facility provider to connect to the specified crossconnect ports. - ConnectionAuthorization string `json:"connectionAuthorization,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` @@ -12120,6 +12431,7 @@ type Interconnect struct { InterconnectAttachments []string `json:"interconnectAttachments,omitempty"` // Possible values: + // "DEDICATED" // "IT_PRIVATE" InterconnectType string `json:"interconnectType,omitempty"` @@ -12155,8 +12467,10 @@ type Interconnect struct { // this Interconnect is functional. // // Possible values: + // "ACTIVE" // "OS_ACTIVE" // "OS_UNPROVISIONED" + // "UNPROVISIONED" OperationalStatus string `json:"operationalStatus,omitempty"` // PeerIpAddress: [Output Only] IP address configured on the customer @@ -12204,7 +12518,7 @@ func (s *Interconnect) MarshalJSON() ([]byte, error) { } // InterconnectAttachment: Protocol definitions for Mixer API to support -// InterconnectAttachment. Next available tag: 18 +// InterconnectAttachment. Next available tag: 23 type InterconnectAttachment struct { // CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to // be configured on Cloud Router Interface for this interconnect @@ -12254,8 +12568,10 @@ type InterconnectAttachment struct { // this interconnect attachment is functional. // // Possible values: + // "ACTIVE" // "OS_ACTIVE" // "OS_UNPROVISIONED" + // "UNPROVISIONED" OperationalStatus string `json:"operationalStatus,omitempty"` // PrivateInterconnectInfo: [Output Only] Information specific to a @@ -12369,9 +12685,13 @@ type InterconnectAttachmentAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12382,7 +12702,9 @@ type InterconnectAttachmentAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12521,9 +12843,13 @@ type InterconnectAttachmentListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12534,7 +12860,9 @@ type InterconnectAttachmentListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12683,9 +13011,13 @@ type InterconnectAttachmentsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12696,7 +13028,9 @@ type InterconnectAttachmentsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12874,9 +13208,13 @@ type InterconnectListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12887,7 +13225,9 @@ type InterconnectListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12981,11 +13321,16 @@ type InterconnectLocation struct { // in the Interconnect UI. // // Possible values: + // "AFRICA" + // "ASIA_PAC" // "C_AFRICA" // "C_ASIA_PAC" // "C_EUROPE" // "C_NORTH_AMERICA" // "C_SOUTH_AMERICA" + // "EUROPE" + // "NORTH_AMERICA" + // "SOUTH_AMERICA" Continent string `json:"continent,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -13118,9 +13463,13 @@ type InterconnectLocationListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13131,7 +13480,9 @@ type InterconnectLocationListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13215,6 +13566,8 @@ type InterconnectLocationRegionInfo struct { // LocationPresence: Identifies the network presence of this location. // // Possible values: + // "GLOBAL" + // "LOCAL_REGION" // "LP_GLOBAL" // "LP_LOCAL_REGION" LocationPresence string `json:"locationPresence,omitempty"` @@ -13222,9 +13575,6 @@ type InterconnectLocationRegionInfo struct { // Region: URL for the region of this location. Region string `json:"region,omitempty"` - // RegionKey: Scope key for the region of this location. - RegionKey string `json:"regionKey,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -13264,12 +13614,15 @@ type InterconnectOutageNotification struct { // Possible values: // "IT_OUTAGE" // "IT_PARTIAL_OUTAGE" + // "OUTAGE" + // "PARTIAL_OUTAGE" IssueType string `json:"issueType,omitempty"` // Name: Unique identifier for this outage notification. Name string `json:"name,omitempty"` // Possible values: + // "GOOGLE" // "NSRC_GOOGLE" Source string `json:"source,omitempty"` @@ -13278,6 +13631,8 @@ type InterconnectOutageNotification struct { StartTime int64 `json:"startTime,omitempty,string"` // Possible values: + // "ACTIVE" + // "CANCELLED" // "NS_ACTIVE" // "NS_CANCELED" State string `json:"state,omitempty"` @@ -13654,9 +14009,13 @@ type MachineTypeAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13667,7 +14026,9 @@ type MachineTypeAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13803,9 +14164,13 @@ type MachineTypeListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13816,7 +14181,9 @@ type MachineTypeListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13931,9 +14298,13 @@ type MachineTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13944,7 +14315,9 @@ type MachineTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14580,9 +14953,13 @@ type NetworkListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14593,7 +14970,9 @@ type NetworkListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15033,9 +15412,13 @@ type OperationWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15046,7 +15429,9 @@ type OperationWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15182,9 +15567,13 @@ type OperationAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15195,7 +15584,9 @@ type OperationAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15331,9 +15722,13 @@ type OperationListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15344,7 +15739,9 @@ type OperationListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -15458,9 +15855,13 @@ type OperationsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -15471,7 +15872,9 @@ type OperationsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16193,9 +16596,13 @@ type RegionAutoscalerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16206,7 +16613,9 @@ type RegionAutoscalerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16342,9 +16751,13 @@ type RegionInstanceGroupListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16355,7 +16768,9 @@ type RegionInstanceGroupListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16494,9 +16909,13 @@ type RegionInstanceGroupManagerListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16507,7 +16926,9 @@ type RegionInstanceGroupManagerListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -16859,9 +17280,13 @@ type RegionInstanceGroupsListInstancesWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -16872,7 +17297,9 @@ type RegionInstanceGroupsListInstancesWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17081,9 +17508,13 @@ type RegionListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17094,7 +17525,9 @@ type RegionListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17407,9 +17840,13 @@ type RouteWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17420,7 +17857,9 @@ type RouteWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17555,9 +17994,13 @@ type RouteListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17568,7 +18011,9 @@ type RouteListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -17780,9 +18225,13 @@ type RouterAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -17793,7 +18242,9 @@ type RouterAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18056,9 +18507,13 @@ type RouterListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18069,7 +18524,9 @@ type RouterListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18343,9 +18800,13 @@ type RoutersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18356,7 +18817,9 @@ type RoutersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -18442,7 +18905,8 @@ type Rule struct { // "NO_ACTION" Action string `json:"action,omitempty"` - // Conditions: Additional restrictions that must be met + // Conditions: Additional restrictions that must be met. All conditions + // must pass for the rule to match. Conditions []*Condition `json:"conditions,omitempty"` // Description: Human-readable description of the rule. @@ -18729,9 +19193,13 @@ type SecurityPolicyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -18742,7 +19210,9 @@ type SecurityPolicyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19207,9 +19677,13 @@ type SnapshotListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19220,7 +19694,9 @@ type SnapshotListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19424,9 +19900,13 @@ type SslCertificateListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19437,7 +19917,9 @@ type SslCertificateListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19690,9 +20172,13 @@ type SubnetworkAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19703,7 +20189,9 @@ type SubnetworkAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -19839,9 +20327,13 @@ type SubnetworkListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -19852,7 +20344,9 @@ type SubnetworkListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20036,9 +20530,13 @@ type SubnetworksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20049,7 +20547,9 @@ type SubnetworksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20368,9 +20868,13 @@ type TargetHttpProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20381,7 +20885,9 @@ type TargetHttpProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20621,9 +21127,13 @@ type TargetHttpsProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20634,7 +21144,9 @@ type TargetHttpsProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20849,9 +21361,13 @@ type TargetInstanceAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -20862,7 +21378,9 @@ type TargetInstanceAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -20998,9 +21516,13 @@ type TargetInstanceListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21011,7 +21533,9 @@ type TargetInstanceListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21126,9 +21650,13 @@ type TargetInstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21139,7 +21667,9 @@ type TargetInstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21419,9 +21949,13 @@ type TargetPoolAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21432,7 +21966,9 @@ type TargetPoolAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21603,9 +22139,13 @@ type TargetPoolListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21616,7 +22156,9 @@ type TargetPoolListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -21849,9 +22391,13 @@ type TargetPoolsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -21862,7 +22408,9 @@ type TargetPoolsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22190,9 +22738,13 @@ type TargetSslProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22203,7 +22755,9 @@ type TargetSslProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22470,9 +23024,13 @@ type TargetTcpProxyListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22483,7 +23041,9 @@ type TargetTcpProxyListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22704,9 +23264,13 @@ type TargetVpnGatewayAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22717,7 +23281,9 @@ type TargetVpnGatewayAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22854,9 +23420,13 @@ type TargetVpnGatewayListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22867,7 +23437,9 @@ type TargetVpnGatewayListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -22983,9 +23555,13 @@ type TargetVpnGatewaysScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -22996,7 +23572,9 @@ type TargetVpnGatewaysScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23345,9 +23923,13 @@ type UrlMapListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -23358,7 +23940,9 @@ type UrlMapListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23812,9 +24396,13 @@ type VpnTunnelAggregatedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -23825,7 +24413,9 @@ type VpnTunnelAggregatedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -23961,9 +24551,13 @@ type VpnTunnelListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -23974,7 +24568,9 @@ type VpnTunnelListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24088,9 +24684,13 @@ type VpnTunnelsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24101,7 +24701,9 @@ type VpnTunnelsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24236,9 +24838,13 @@ type XpnHostListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24249,7 +24855,9 @@ type XpnHostListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -24492,9 +25100,13 @@ type ZoneListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -24505,7 +25117,9 @@ type ZoneListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -51997,6 +52611,22 @@ func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall { return c } +// SourceInstanceTemplate sets the optional parameter +// "sourceInstanceTemplate": Specifies instance template to create the +// instance. +// +// This field is optional. 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/global/instanceTemplates/instanceTemplate +// - projects/project/global/global/instanceTemplates/instanceTemplate +// +// - global/instancesTemplates/instanceTemplate +func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall { + c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -52104,6 +52734,11 @@ func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro // "location": "query", // "type": "string" // }, + // "sourceInstanceTemplate": { + // "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: \n- https://www.googleapis.com/compute/v1/projects/project/global/global/instanceTemplates/instanceTemplate \n- projects/project/global/global/instanceTemplates/instanceTemplate \n- global/instancesTemplates/instanceTemplate", + // "location": "query", + // "type": "string" + // }, // "zone": { // "description": "The name of the zone for this request.", // "location": "path", @@ -52838,6 +53473,190 @@ func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error } +// method id "compute.instances.setDeletionProtection": + +type InstancesSetDeletionProtectionCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetDeletionProtection: Sets deletion protection on the instance. +func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall { + c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// DeletionProtection sets the optional parameter "deletionProtection": +// Whether the resource should be protected against deletion. +func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection)) + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InstancesSetDeletionProtectionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setDeletionProtection" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Sets deletion protection on the instance.", + // "httpMethod": "POST", + // "id": "compute.instances.setDeletionProtection", + // "parameterOrder": [ + // "project", + // "zone", + // "resource" + // ], + // "parameters": { + // "deletionProtection": { + // "default": "true", + // "description": "Whether the resource should be protected against deletion.", + // "location": "query", + // "type": "boolean" + // }, + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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 of the resource for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "zone": { + // "description": "The name of the zone for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.instances.setDiskAutoDelete": type InstancesSetDiskAutoDeleteCall struct { @@ -54860,11 +55679,10 @@ type InstancesStopCall struct { // Stop: Stops a running instance, shutting it down cleanly, and allows // you to restart the instance at a later time. Stopped instances do not -// incur per-minute, virtual machine usage charges while they are -// stopped, but any resources that the virtual machine is using, such as -// persistent disks and static IP addresses, will continue to be charged -// until they are deleted. For more information, see Stopping an -// instance. +// incur VM usage charges while they are stopped. However, resources +// that the VM is using, such as persistent disks and static IP +// addresses, will continue to be charged until they are deleted. For +// more information, see Stopping an instance. // For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall { c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} @@ -54976,7 +55794,7 @@ func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) } return ret, nil // { - // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", // "httpMethod": "POST", // "id": "compute.instances.stop", // "parameterOrder": [ diff --git a/vendor/google.golang.org/api/compute/v1/compute-api.json b/vendor/google.golang.org/api/compute/v1/compute-api.json index faef7b2f5..40b9508d7 100644 --- a/vendor/google.golang.org/api/compute/v1/compute-api.json +++ b/vendor/google.golang.org/api/compute/v1/compute-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/cngOjaowRI92cKIanqfdVBHzE7E\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/ccMQJOTqWSBs7vqsZTir487_SNI\"", "discoveryVersion": "v1", "id": "compute:v1", "name": "compute", "version": "v1", - "revision": "20170908", + "revision": "20171010", "title": "Compute Engine API", "description": "Creates and runs virtual machines on Google Cloud Platform.", "ownerDomain": "google.com", @@ -182,6 +182,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -213,6 +294,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -237,9 +399,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -250,7 +416,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -270,6 +438,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -338,6 +512,20 @@ "type": "string", "description": "The static IP address represented by this resource." }, + "addressType": { + "type": "string", + "description": "The type of address to reserve. If unspecified, defaults to EXTERNAL.", + "enum": [ + "EXTERNAL", + "INTERNAL", + "UNSPECIFIED_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, "creationTimestamp": { "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." @@ -390,7 +578,7 @@ }, "status": { "type": "string", - "description": "[Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", + "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", "enum": [ "IN_USE", "RESERVED" @@ -400,6 +588,10 @@ "" ] }, + "subnetwork": { + "type": "string", + "description": "For external addresses, this field should not be used.\n\nThe URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range." + }, "users": { "type": "array", "description": "[Output Only] The URLs of the resources that are using this address.", @@ -437,6 +629,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -468,6 +741,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -492,9 +846,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -505,7 +863,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -525,6 +885,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -636,7 +1002,7 @@ }, "source": { "type": "string", - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." + "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nIf desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name, not the URL for the disk." }, "type": { "type": "string", @@ -672,7 +1038,7 @@ }, "sourceImage": { "type": "string", - "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." + "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or disks.source is required except for local SSD.\n\nTo create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-8 to use the latest Debian 8 image:\n\nprojects/debian-cloud/global/images/family/debian-8 \n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD \n\nTo create a disk with a private image that you created, specify the image name in the following format:\n\nglobal/images/my-private-image \n\nYou can also specify a private image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name:\n\nglobal/images/family/my-private-family \n\nIf the source image is deleted later, this field will not be set." }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", @@ -786,6 +1152,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -817,6 +1264,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -889,9 +1417,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -902,7 +1434,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -922,6 +1456,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1006,11 +1546,11 @@ "properties": { "metric": { "type": "string", - "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.\n\nThe metric must have a value type of INT64 or DOUBLE." + "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values.\n\nThe metric must have a value type of INT64 or DOUBLE." }, "utilizationTarget": { "type": "number", - "description": "The target value of the metric that autoscaler should maintain. This must be a positive value.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", + "description": "The target value of the metric that autoscaler should maintain. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric.\n\nFor example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.", "format": "double" }, "utilizationTargetType": { @@ -1170,6 +1710,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -1342,6 +1963,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -1421,6 +2123,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -1445,9 +2228,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1458,7 +2245,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1478,6 +2267,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -1667,6 +2462,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -1698,6 +2574,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -1722,9 +2679,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -1735,7 +2696,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -1755,6 +2718,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2023,6 +2992,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2054,6 +3104,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2150,6 +3281,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2181,6 +3393,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2205,9 +3498,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2218,7 +3515,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2238,6 +3537,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2298,9 +3603,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2311,7 +3620,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2331,6 +3642,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -2472,6 +3789,13 @@ "type": "string" } }, + "sourceServiceAccounts": { + "type": "array", + "description": "If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.", + "items": { + "type": "string" + } + }, "sourceTags": { "type": "array", "description": "If source tags are specified, the firewall rule applies only to traffic with source IPs that match the primary network interfaces of VM instances that have the tag and are in the same VPC network. Source tags cannot be used to control traffic to an instance's external IP address, it only applies to traffic between instances in the same virtual network. Because tags are associated with instances, not IP addresses. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.", @@ -2479,9 +3803,16 @@ "type": "string" } }, + "targetServiceAccounts": { + "type": "array", + "description": "A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.", + "items": { + "type": "string" + } + }, "targetTags": { "type": "array", - "description": "A list of instance tags indicating sets of instances located in the network that may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", + "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", "items": { "type": "string" } @@ -2516,6 +3847,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2526,7 +3938,7 @@ "properties": { "IPAddress": { "type": "string", - "description": "The IP address that this forwarding rule is serving on behalf of.\n\nFor global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule." + "description": "The IP address that this forwarding rule is serving on behalf of.\n\nAddresses are restricted based on the forwarding rule's load balancing scheme (EXTERNAL or INTERNAL) and scope (global or regional).\n\nWhen the load balancing scheme is EXTERNAL, for global forwarding rules, the address must be a global IP, and for regional forwarding rules, the address must live in the same region as the forwarding rule. If this field is empty, an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.\n\nWhen the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnet configured for the forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule.\n\nAn address can be specified either by a literal IP address or a URL reference to an existing Address resource. The following examples are all valid: \n- 100.1.2.3 \n- https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address \n- projects/project/regions/region/addresses/address \n- regions/region/addresses/address \n- global/addresses/address \n- address" }, "IPProtocol": { "type": "string", @@ -2664,6 +4076,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2695,6 +4188,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -2719,9 +4293,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -2732,7 +4310,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -2752,6 +4332,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -3001,6 +4587,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3162,6 +4829,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3260,6 +5008,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3457,6 +5286,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3477,6 +5387,10 @@ "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." }, + "deletionProtection": { + "type": "boolean", + "description": "Whether the resource should be protected against deletion." + }, "description": { "type": "string", "description": "An optional description of this resource. Provide this property when you create the resource." @@ -3530,6 +5444,10 @@ "$ref": "Metadata", "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys." }, + "minCpuPlatform": { + "type": "string", + "description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\"." + }, "name": { "type": "string", "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", @@ -3632,6 +5550,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3734,6 +5733,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3765,6 +5845,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3942,6 +6103,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -3973,6 +6215,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4049,9 +6372,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4062,7 +6389,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4082,6 +6411,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4178,6 +6513,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4233,9 +6649,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4246,7 +6666,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4266,6 +6688,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4340,6 +6768,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4404,6 +6913,10 @@ "$ref": "Metadata", "description": "The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information." }, + "minCpuPlatform": { + "type": "string", + "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 Specifying a Minimum CPU Platform." + }, "networkInterfaces": { "type": "array", "description": "An array of network access configurations for this interface.", @@ -4509,6 +7022,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4574,9 +7168,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4587,7 +7185,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4607,6 +7207,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -4675,6 +7281,16 @@ } } }, + "InstancesSetMinCpuPlatformRequest": { + "id": "InstancesSetMinCpuPlatformRequest", + "type": "object", + "properties": { + "minCpuPlatform": { + "type": "string", + "description": "Minimum cpu/platform this instance should be started at." + } + } + }, "InstancesSetServiceAccountRequest": { "id": "InstancesSetServiceAccountRequest", "type": "object", @@ -4705,6 +7321,987 @@ } } }, + "Interconnect": { + "id": "Interconnect", + "type": "object", + "description": "Protocol definitions for Mixer API to support Interconnect. Next available tag: 25", + "properties": { + "adminEnabled": { + "type": "boolean", + "description": "Administrative status of the interconnect. When this is set to ?true?, the Interconnect is functional and may carry traffic (assuming there are functional InterconnectAttachments and other requirements are satisfied). When set to ?false?, no packets will be carried over this Interconnect and no BGP routes will be exchanged over it. By default, it is set to ?true?." + }, + "circuitInfos": { + "type": "array", + "description": "[Output Only] List of CircuitInfo objects, that describe the individual circuits in this LAG.", + "items": { + "$ref": "InterconnectCircuitInfo" + } + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "customerName": { + "type": "string", + "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "expectedOutages": { + "type": "array", + "description": "[Output Only] List of outages expected for this Interconnect.", + "items": { + "$ref": "InterconnectOutageNotification" + } + }, + "googleIpAddress": { + "type": "string", + "description": "[Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests." + }, + "googleReferenceId": { + "type": "string", + "description": "[Output Only] Google reference ID; to be used when raising support tickets with Google or otherwise to debug backend connectivity issues." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "interconnectAttachments": { + "type": "array", + "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.", + "items": { + "type": "string" + } + }, + "interconnectType": { + "type": "string", + "enum": [ + "DEDICATED", + "IT_PRIVATE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", + "default": "compute#interconnect" + }, + "linkType": { + "type": "string", + "enum": [ + "LINK_TYPE_ETHERNET_10G_LR" + ], + "enumDescriptions": [ + "" + ] + }, + "location": { + "type": "string", + "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned." + }, + "name": { + "type": "string", + "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])?", + "annotations": { + "required": [ + "compute.interconnects.insert" + ] + } + }, + "nocContactEmail": { + "type": "string", + "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." + }, + "operationalStatus": { + "type": "string", + "description": "[Output Only] The current status of whether or not this Interconnect is functional.", + "enum": [ + "ACTIVE", + "OS_ACTIVE", + "OS_UNPROVISIONED", + "UNPROVISIONED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "peerIpAddress": { + "type": "string", + "description": "[Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests." + }, + "provisionedLinkCount": { + "type": "integer", + "description": "[Output Only] Number of links actually provisioned in this interconnect.", + "format": "int32" + }, + "requestedLinkCount": { + "type": "integer", + "description": "Target number of physical links in the link bundle, as requested by the customer.", + "format": "int32" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + } + } + }, + "InterconnectAttachment": { + "id": "InterconnectAttachment", + "type": "object", + "description": "Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 23", + "properties": { + "cloudRouterIpAddress": { + "type": "string", + "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "customerRouterIpAddress": { + "type": "string", + "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment." + }, + "description": { + "type": "string", + "description": "An optional description of this resource. Provide this property when you create the resource." + }, + "googleReferenceId": { + "type": "string", + "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "interconnect": { + "type": "string", + "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", + "default": "compute#interconnectAttachment" + }, + "name": { + "type": "string", + "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])?" + }, + "operationalStatus": { + "type": "string", + "description": "[Output Only] The current status of whether or not this interconnect attachment is functional.", + "enum": [ + "ACTIVE", + "OS_ACTIVE", + "OS_UNPROVISIONED", + "UNPROVISIONED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "privateInterconnectInfo": { + "$ref": "InterconnectAttachmentPrivateInfo", + "description": "[Output Only] Information specific to a Private InterconnectAttachment. Only populated if the interconnect that this is attached is of type IT_PRIVATE." + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the regional interconnect attachment resides." + }, + "router": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + } + } + }, + "InterconnectAttachmentAggregatedList": { + "id": "InterconnectAttachmentAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "object", + "description": "A list of InterconnectAttachmentsScopedList resources.", + "additionalProperties": { + "$ref": "InterconnectAttachmentsScopedList", + "description": "Name of the scope containing this set of interconnect attachments." + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", + "default": "compute#interconnectAttachmentAggregatedList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } + } + } + }, + "InterconnectAttachmentList": { + "id": "InterconnectAttachmentList", + "type": "object", + "description": "Response to the list request, and contains a list of interconnect attachments.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "A list of InterconnectAttachment resources.", + "items": { + "$ref": "InterconnectAttachment" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", + "default": "compute#interconnectAttachmentList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } + } + } + }, + "InterconnectAttachmentPrivateInfo": { + "id": "InterconnectAttachmentPrivateInfo", + "type": "object", + "description": "Private information for an interconnect attachment when this belongs to an interconnect of type IT_PRIVATE.", + "properties": { + "tag8021q": { + "type": "integer", + "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.", + "format": "uint32" + } + } + }, + "InterconnectAttachmentsScopedList": { + "id": "InterconnectAttachmentsScopedList", + "type": "object", + "properties": { + "interconnectAttachments": { + "type": "array", + "description": "List of interconnect attachments contained in this scope.", + "items": { + "$ref": "InterconnectAttachment" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } + } + } + }, + "InterconnectCircuitInfo": { + "id": "InterconnectCircuitInfo", + "type": "object", + "description": "Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. Next id: 4", + "properties": { + "customerDemarcId": { + "type": "string", + "description": "Customer-side demarc ID for this circuit. This will only be set if it was provided by the Customer to Google during circuit turn-up." + }, + "googleCircuitId": { + "type": "string", + "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up." + }, + "googleDemarcId": { + "type": "string", + "description": "Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA." + } + } + }, + "InterconnectList": { + "id": "InterconnectList", + "type": "object", + "description": "Response to the list request, and contains a list of interconnects.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "A list of Interconnect resources.", + "items": { + "$ref": "Interconnect" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", + "default": "compute#interconnectList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } + } + } + }, + "InterconnectLocation": { + "id": "InterconnectLocation", + "type": "object", + "description": "Protocol definitions for Mixer API to support InterconnectLocation.", + "properties": { + "address": { + "type": "string", + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character." + }, + "availabilityZone": { + "type": "string", + "description": "Availability zone for this location. Within a city, maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\"." + }, + "city": { + "type": "string", + "description": "City designator used by the Interconnect UI to locate this InterconnectLocation within the Continent. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\"." + }, + "continent": { + "type": "string", + "description": "Continent for this location. Used by the location picker in the Interconnect UI.", + "enum": [ + "AFRICA", + "ASIA_PAC", + "C_AFRICA", + "C_ASIA_PAC", + "C_EUROPE", + "C_NORTH_AMERICA", + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "description": { + "type": "string", + "description": "[Output Only] An optional description of the resource." + }, + "facilityProvider": { + "type": "string", + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX)." + }, + "facilityProviderFacilityId": { + "type": "string", + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1)." + }, + "id": { + "type": "string", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.", + "default": "compute#interconnectLocation" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource." + }, + "peeringdbFacilityId": { + "type": "string", + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb)." + }, + "regionInfos": { + "type": "array", + "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.", + "items": { + "$ref": "InterconnectLocationRegionInfo" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for the resource." + } + } + }, + "InterconnectLocationList": { + "id": "InterconnectLocationList", + "type": "object", + "description": "Response to the list request, and contains a list of interconnect locations.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "A list of InterconnectLocation resources.", + "items": { + "$ref": "InterconnectLocation" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations.", + "default": "compute#interconnectLocationList" + }, + "nextPageToken": { + "type": "string", + "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." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } + } + } + }, + "InterconnectLocationRegionInfo": { + "id": "InterconnectLocationRegionInfo", + "type": "object", + "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", + "properties": { + "expectedRttMs": { + "type": "string", + "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.", + "format": "int64" + }, + "locationPresence": { + "type": "string", + "description": "Identifies the network presence of this location.", + "enum": [ + "GLOBAL", + "LOCAL_REGION", + "LP_GLOBAL", + "LP_LOCAL_REGION" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "region": { + "type": "string", + "description": "URL for the region of this location." + } + } + }, + "InterconnectOutageNotification": { + "id": "InterconnectOutageNotification", + "type": "object", + "description": "Description of a planned outage on this Interconnect. Next id: 9", + "properties": { + "affectedCircuits": { + "type": "array", + "description": "Iff issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.", + "items": { + "type": "string" + } + }, + "description": { + "type": "string", + "description": "Short user-visible description of the purpose of the outage." + }, + "endTime": { + "type": "string", + "format": "int64" + }, + "issueType": { + "type": "string", + "enum": [ + "IT_OUTAGE", + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "name": { + "type": "string", + "description": "Unique identifier for this outage notification." + }, + "source": { + "type": "string", + "enum": [ + "GOOGLE", + "NSRC_GOOGLE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "startTime": { + "type": "string", + "description": "Scheduled start and end times for the outage (milliseconds since Unix epoch).", + "format": "int64" + }, + "state": { + "type": "string", + "enum": [ + "ACTIVE", + "CANCELLED", + "NS_ACTIVE", + "NS_CANCELED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, "License": { "id": "License", "type": "object", @@ -4848,6 +8445,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4879,6 +8557,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -4903,9 +8662,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -4916,7 +8679,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -4936,6 +8701,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5181,6 +8952,10 @@ "$ref": "NetworkPeering" } }, + "routingConfig": { + "$ref": "NetworkRoutingConfig", + "description": "The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce." + }, "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for the resource." @@ -5264,6 +9039,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -5302,6 +9158,25 @@ } } }, + "NetworkRoutingConfig": { + "id": "NetworkRoutingConfig", + "type": "object", + "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", + "properties": { + "routingMode": { + "type": "string", + "description": "The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers will only advertise routes with subnetworks of this network in the same region as the router. If set to GLOBAL, this network's cloud routers will advertise routes with all subnetworks of this network, across regions.", + "enum": [ + "GLOBAL", + "REGIONAL" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, "NetworksAddPeeringRequest": { "id": "NetworksAddPeeringRequest", "type": "object", @@ -5469,9 +9344,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5482,7 +9361,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5502,6 +9383,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -5563,6 +9450,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -5594,6 +9562,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -5618,9 +9667,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -5631,7 +9684,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -5651,6 +9706,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6046,6 +10107,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6077,6 +10219,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6108,6 +10331,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6218,6 +10522,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6290,6 +10675,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6442,9 +10908,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6455,7 +10925,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6475,6 +10947,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -6532,6 +11010,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6634,6 +11193,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6689,6 +11329,10 @@ "type": "string", "description": "IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface." }, + "linkedInterconnectAttachment": { + "type": "string", + "description": "URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment." + }, "linkedVpnTunnel": { "type": "string", "description": "URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment." @@ -6728,6 +11372,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -6866,9 +11591,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -6879,7 +11608,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -6899,6 +11630,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7174,6 +11911,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7247,6 +12065,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7339,6 +12238,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7370,6 +12350,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7419,9 +12480,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7432,7 +12497,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7452,6 +12519,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -7609,6 +12682,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7698,6 +12852,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7781,6 +13016,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7812,6 +13128,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -7836,9 +13233,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -7849,7 +13250,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -7869,6 +13272,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8004,6 +13413,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8052,6 +13542,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8128,9 +13699,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8141,7 +13716,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8161,6 +13738,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8324,6 +13907,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8433,6 +14097,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8546,6 +14291,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8577,6 +14403,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -8601,9 +14508,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -8614,7 +14525,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -8634,6 +14547,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -8772,6 +14691,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -9018,6 +15018,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -9049,6 +15130,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -9073,9 +15235,13 @@ "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", + "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -9086,7 +15252,9 @@ "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", "UNREACHABLE" ], "enumDescriptions": [ @@ -9106,6 +15274,12 @@ "", "", "", + "", + "", + "", + "", + "", + "", "" ] }, @@ -9161,6 +15335,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -9192,6 +15447,13 @@ "type": "object", "description": "A Zone resource.", "properties": { + "availableCpuPlatforms": { + "type": "array", + "description": "[Output Only] Available cpu/platform selections for the zone.", + "items": { + "type": "string" + } + }, "creationTimestamp": { "type": "string", "description": "[Output Only] Creation timestamp in RFC3339 text format." @@ -9268,6 +15530,87 @@ "selfLink": { "type": "string", "description": "[Output Only] Server-defined URL for this resource." + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "type": "string", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output Only] Metadata about this warning in key: value format. For example:\n\"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" }", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "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)." + }, + "value": { + "type": "string", + "description": "[Output Only] A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output Only] A human-readable description of the warning code." + } + } } } }, @@ -14909,6 +21252,58 @@ "https://www.googleapis.com/auth/compute" ] }, + "setDeletionProtection": { + "id": "compute.instances.setDeletionProtection", + "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "httpMethod": "POST", + "description": "Sets deletion protection on the instance.", + "parameters": { + "deletionProtection": { + "type": "boolean", + "description": "Whether the resource should be protected against deletion.", + "default": "true", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "resource": { + "type": "string", + "description": "Name of the resource for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setDiskAutoDelete": { "id": "compute.instances.setDiskAutoDelete", "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", @@ -15166,6 +21561,55 @@ "https://www.googleapis.com/auth/compute" ] }, + "setMinCpuPlatform": { + "id": "compute.instances.setMinCpuPlatform", + "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "httpMethod": "POST", + "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + }, + "zone": { + "type": "string", + "description": "The name of the zone for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetMinCpuPlatformRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setScheduling": { "id": "compute.instances.setScheduling", "path": "{project}/zones/{zone}/instances/{instance}/setScheduling", @@ -15412,7 +21856,7 @@ "id": "compute.instances.stop", "path": "{project}/zones/{zone}/instances/{instance}/stop", "httpMethod": "POST", - "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", "parameters": { "instance": { "type": "string", @@ -15456,6 +21900,531 @@ } } }, + "interconnectAttachments": { + "methods": { + "aggregatedList": { + "id": "compute.interconnectAttachments.aggregatedList", + "path": "{project}/aggregated/interconnectAttachments", + "httpMethod": "GET", + "description": "Retrieves an aggregated list of interconnect attachments.", + "parameters": { + "filter": { + "type": "string", + "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "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)", + "default": "500", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou 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.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.", + "location": "query" + }, + "pageToken": { + "type": "string", + "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" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.interconnectAttachments.delete", + "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "DELETE", + "description": "Deletes the specified interconnect attachment.", + "parameters": { + "interconnectAttachment": { + "type": "string", + "description": "Name of the interconnect attachment to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.interconnectAttachments.get", + "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "GET", + "description": "Returns the specified interconnect attachment.", + "parameters": { + "interconnectAttachment": { + "type": "string", + "description": "Name of the interconnect attachment to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "response": { + "$ref": "InterconnectAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.interconnectAttachments.insert", + "path": "{project}/regions/{region}/interconnectAttachments", + "httpMethod": "POST", + "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "InterconnectAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.interconnectAttachments.list", + "path": "{project}/regions/{region}/interconnectAttachments", + "httpMethod": "GET", + "description": "Retrieves the list of interconnect attachments contained within the specified region.", + "parameters": { + "filter": { + "type": "string", + "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "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)", + "default": "500", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou 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.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.", + "location": "query" + }, + "pageToken": { + "type": "string", + "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" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "InterconnectAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "interconnectLocations": { + "methods": { + "get": { + "id": "compute.interconnectLocations.get", + "path": "{project}/global/interconnectLocations/{interconnectLocation}", + "httpMethod": "GET", + "description": "Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.", + "parameters": { + "interconnectLocation": { + "type": "string", + "description": "Name of the interconnect location to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "interconnectLocation" + ], + "response": { + "$ref": "InterconnectLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.interconnectLocations.list", + "path": "{project}/global/interconnectLocations", + "httpMethod": "GET", + "description": "Retrieves the list of interconnect locations available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "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)", + "default": "500", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou 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.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.", + "location": "query" + }, + "pageToken": { + "type": "string", + "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" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectLocationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "interconnects": { + "methods": { + "delete": { + "id": "compute.interconnects.delete", + "path": "{project}/global/interconnects/{interconnect}", + "httpMethod": "DELETE", + "description": "Deletes the specified interconnect.", + "parameters": { + "interconnect": { + "type": "string", + "description": "Name of the interconnect to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.interconnects.get", + "path": "{project}/global/interconnects/{interconnect}", + "httpMethod": "GET", + "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.", + "parameters": { + "interconnect": { + "type": "string", + "description": "Name of the interconnect to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "Interconnect" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.interconnects.insert", + "path": "{project}/global/interconnects", + "httpMethod": "POST", + "description": "Creates a Interconnect in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Interconnect" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.interconnects.list", + "path": "{project}/global/interconnects", + "httpMethod": "GET", + "description": "Retrieves the list of interconnect available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "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)", + "default": "500", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou 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.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.", + "location": "query" + }, + "pageToken": { + "type": "string", + "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" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.interconnects.patch", + "path": "{project}/global/interconnects/{interconnect}", + "httpMethod": "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.", + "parameters": { + "interconnect": { + "type": "string", + "description": "Name of the interconnect to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "request": { + "$ref": "Interconnect" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "licenses": { "methods": { "get": { @@ -15843,6 +22812,47 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "id": "compute.networks.patch", + "path": "{project}/global/networks/{network}", + "httpMethod": "PATCH", + "description": "Patches the specified network with the data included in the request.", + "parameters": { + "network": { + "type": "string", + "description": "Name of the network to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "requestId": { + "type": "string", + "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "request": { + "$ref": "Network" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "removePeering": { "id": "compute.networks.removePeering", "path": "{project}/global/networks/{network}/removePeering", diff --git a/vendor/google.golang.org/api/compute/v1/compute-gen.go b/vendor/google.golang.org/api/compute/v1/compute-gen.go index 7d4608efc..b77b8ba06 100644 --- a/vendor/google.golang.org/api/compute/v1/compute-gen.go +++ b/vendor/google.golang.org/api/compute/v1/compute-gen.go @@ -91,6 +91,9 @@ func New(client *http.Client) (*Service, error) { s.InstanceGroups = NewInstanceGroupsService(s) s.InstanceTemplates = NewInstanceTemplatesService(s) s.Instances = NewInstancesService(s) + s.InterconnectAttachments = NewInterconnectAttachmentsService(s) + s.InterconnectLocations = NewInterconnectLocationsService(s) + s.Interconnects = NewInterconnectsService(s) s.Licenses = NewLicensesService(s) s.MachineTypes = NewMachineTypesService(s) s.Networks = NewNetworksService(s) @@ -166,6 +169,12 @@ type Service struct { Instances *InstancesService + InterconnectAttachments *InterconnectAttachmentsService + + InterconnectLocations *InterconnectLocationsService + + Interconnects *InterconnectsService + Licenses *LicensesService MachineTypes *MachineTypesService @@ -408,6 +417,33 @@ type InstancesService struct { s *Service } +func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService { + rs := &InterconnectAttachmentsService{s: s} + return rs +} + +type InterconnectAttachmentsService struct { + s *Service +} + +func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService { + rs := &InterconnectLocationsService{s: s} + return rs +} + +type InterconnectLocationsService struct { + s *Service +} + +func NewInterconnectsService(s *Service) *InterconnectsService { + rs := &InterconnectsService{s: s} + return rs +} + +type InterconnectsService struct { + s *Service +} + func NewLicensesService(s *Service) *LicensesService { rs := &LicensesService{s: s} return rs @@ -775,6 +811,9 @@ type AcceleratorTypeAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -802,6 +841,108 @@ func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AcceleratorTypeAggregatedListWarning: [Output Only] Informational +// warning message. +type AcceleratorTypeAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod AcceleratorTypeAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AcceleratorTypeAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AcceleratorTypeAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AcceleratorTypeList: Contains a list of accelerator types. type AcceleratorTypeList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -826,6 +967,9 @@ type AcceleratorTypeList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AcceleratorTypeListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -853,6 +997,108 @@ func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AcceleratorTypeListWarning: [Output Only] Informational warning +// message. +type AcceleratorTypeListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AcceleratorTypeListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) { + type noMethod AcceleratorTypeListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AcceleratorTypeListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AcceleratorTypeListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type AcceleratorTypesScopedList struct { // AcceleratorTypes: [Output Only] List of accelerator types contained // in this scope. @@ -896,9 +1142,13 @@ type AcceleratorTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -909,7 +1159,9 @@ type AcceleratorTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1036,6 +1288,15 @@ type Address struct { // Address: The static IP address represented by this resource. Address string `json:"address,omitempty"` + // AddressType: The type of address to reserve. If unspecified, defaults + // to EXTERNAL. + // + // Possible values: + // "EXTERNAL" + // "INTERNAL" + // "UNSPECIFIED_TYPE" + AddressType string `json:"addressType,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` @@ -1078,16 +1339,24 @@ type Address struct { // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of the address, which can be either - // IN_USE or RESERVED. An address that is RESERVED is currently reserved - // and available to use. An IN_USE address is currently being used by - // another resource and is not available. + // Status: [Output Only] The status of the address, which can be one of + // RESERVING, RESERVED, or IN_USE. An address that is RESERVING is + // currently in the process of being reserved. A RESERVED address is + // currently reserved and available to use. An IN_USE address is + // currently being used by another resource and is not available. // // Possible values: // "IN_USE" // "RESERVED" Status string `json:"status,omitempty"` + // Subnetwork: For external addresses, this field should not be + // used. + // + // The URL of the subnetwork in which to reserve the address. If an IP + // address is specified, it must be within the subnetwork's IP range. + Subnetwork string `json:"subnetwork,omitempty"` + // Users: [Output Only] The URLs of the resources that are using this // address. Users []string `json:"users,omitempty"` @@ -1142,6 +1411,9 @@ type AddressAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AddressAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -1169,6 +1441,108 @@ func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AddressAggregatedListWarning: [Output Only] Informational warning +// message. +type AddressAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AddressAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod AddressAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AddressAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AddressAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AddressList: Contains a list of addresses. type AddressList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -1193,6 +1567,9 @@ type AddressList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AddressListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -1220,6 +1597,107 @@ func (s *AddressList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AddressListWarning: [Output Only] Informational warning message. +type AddressListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AddressListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AddressListWarning) MarshalJSON() ([]byte, error) { + type noMethod AddressListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AddressListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AddressListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AddressListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type AddressesScopedList struct { // Addresses: [Output Only] List of addresses contained in this scope. Addresses []*Address `json:"addresses,omitempty"` @@ -1261,9 +1739,13 @@ type AddressesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1274,7 +1756,9 @@ type AddressesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -1476,7 +1960,8 @@ type AttachedDisk struct { // Source: Specifies a valid partial or full URL to an existing // Persistent Disk resource. When creating a new instance, one of - // initializeParams.sourceImage or disks.source is required. + // initializeParams.sourceImage or disks.source is required except for + // local SSD. // // If desired, you can also attach existing non-root persistent disks // using this property. This field is only applicable for persistent @@ -1552,7 +2037,7 @@ type AttachedDiskInitializeParams struct { // SourceImage: The source image to create this disk. When creating a // new instance, one of initializeParams.sourceImage or disks.source is - // required. + // required except for local SSD. // // To create a disk with one of the public operating system images, // specify the image by its family name. For example, specify @@ -1732,6 +2217,9 @@ type AutoscalerAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -1759,6 +2247,108 @@ func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AutoscalerAggregatedListWarning: [Output Only] Informational warning +// message. +type AutoscalerAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod AutoscalerAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AutoscalerAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AutoscalerAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AutoscalerList: Contains a list of Autoscaler resources. type AutoscalerList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -1783,6 +2373,9 @@ type AutoscalerList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *AutoscalerListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -1810,6 +2403,107 @@ func (s *AutoscalerList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AutoscalerListWarning: [Output Only] Informational warning message. +type AutoscalerListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*AutoscalerListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) { + type noMethod AutoscalerListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type AutoscalerListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) { + type noMethod AutoscalerListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type AutoscalerStatusDetails struct { // Message: The status message. Message string `json:"message,omitempty"` @@ -1899,9 +2593,13 @@ type AutoscalersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -1912,7 +2610,9 @@ type AutoscalersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -2108,16 +2808,15 @@ func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error { // policy. type AutoscalingPolicyCustomMetricUtilization struct { // Metric: The identifier (type) of the Stackdriver Monitoring metric. - // The metric cannot have negative values and should be a utilization - // metric, which means that the number of virtual machines handling - // requests should increase or decrease proportionally to the - // metric. + // The metric cannot have negative values. // // The metric must have a value type of INT64 or DOUBLE. Metric string `json:"metric,omitempty"` // UtilizationTarget: The target value of the metric that autoscaler - // should maintain. This must be a positive value. + // should maintain. This must be a positive value. A utilization metric + // scales number of virtual machines handling requests to increase or + // decrease proportionally to the metric. // // For example, a good metric to use as a utilization_target is // compute.googleapis.com/instance/network/received_bytes_count. The @@ -2431,6 +3130,9 @@ type BackendBucketList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendBucketListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -2458,6 +3160,108 @@ func (s *BackendBucketList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// BackendBucketListWarning: [Output Only] Informational warning +// message. +type BackendBucketListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*BackendBucketListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) { + type noMethod BackendBucketListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type BackendBucketListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) { + type noMethod BackendBucketListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // BackendService: A BackendService resource. This resource defines a // group of backend virtual machines and their serving capacity. type BackendService struct { @@ -2651,6 +3455,9 @@ type BackendServiceAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -2678,6 +3485,108 @@ func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// BackendServiceAggregatedListWarning: [Output Only] Informational +// warning message. +type BackendServiceAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod BackendServiceAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type BackendServiceAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod BackendServiceAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // BackendServiceCdnPolicy: Message containing Cloud CDN configuration // for a backend service. type BackendServiceCdnPolicy struct { @@ -2801,6 +3710,9 @@ type BackendServiceList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendServiceListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -2828,6 +3740,108 @@ func (s *BackendServiceList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// BackendServiceListWarning: [Output Only] Informational warning +// message. +type BackendServiceListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*BackendServiceListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) { + type noMethod BackendServiceListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type BackendServiceListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) { + type noMethod BackendServiceListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type BackendServicesScopedList struct { // BackendServices: List of BackendServices contained in this scope. BackendServices []*BackendService `json:"backendServices,omitempty"` @@ -2870,9 +3884,13 @@ type BackendServicesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -2883,7 +3901,9 @@ type BackendServicesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -3170,6 +4190,9 @@ type CommitmentAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -3197,6 +4220,108 @@ func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// CommitmentAggregatedListWarning: [Output Only] Informational warning +// message. +type CommitmentAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod CommitmentAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type CommitmentAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod CommitmentAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // CommitmentList: Contains a list of Commitment resources. type CommitmentList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -3221,6 +4346,9 @@ type CommitmentList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *CommitmentListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -3248,6 +4376,107 @@ func (s *CommitmentList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// CommitmentListWarning: [Output Only] Informational warning message. +type CommitmentListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*CommitmentListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) { + type noMethod CommitmentListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type CommitmentListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) { + type noMethod CommitmentListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type CommitmentsScopedList struct { // Commitments: [Output Only] List of commitments contained in this // scope. @@ -3290,9 +4519,13 @@ type CommitmentsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -3303,7 +4536,9 @@ type CommitmentsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -3756,6 +4991,9 @@ type DiskAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *DiskAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -3783,6 +5021,108 @@ func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DiskAggregatedListWarning: [Output Only] Informational warning +// message. +type DiskAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*DiskAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod DiskAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod DiskAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskList: A list of Disk resources. type DiskList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -3807,6 +5147,9 @@ type DiskList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *DiskListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -3834,6 +5177,107 @@ func (s *DiskList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DiskListWarning: [Output Only] Informational warning message. +type DiskListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*DiskListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskListWarning) MarshalJSON() ([]byte, error) { + type noMethod DiskListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskListWarningData) MarshalJSON() ([]byte, error) { + type noMethod DiskListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type DiskMoveRequest struct { // DestinationZone: The URL of the destination zone to move the disk. // This can be a full or partial URL. For example, the following are all @@ -3966,6 +5410,9 @@ type DiskTypeAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -3993,6 +5440,108 @@ func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DiskTypeAggregatedListWarning: [Output Only] Informational warning +// message. +type DiskTypeAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod DiskTypeAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskTypeAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod DiskTypeAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskTypeList: Contains a list of disk types. type DiskTypeList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -4017,6 +5566,9 @@ type DiskTypeList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *DiskTypeListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -4044,6 +5596,107 @@ func (s *DiskTypeList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DiskTypeListWarning: [Output Only] Informational warning message. +type DiskTypeListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*DiskTypeListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) { + type noMethod DiskTypeListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskTypeListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) { + type noMethod DiskTypeListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type DiskTypesScopedList struct { // DiskTypes: [Output Only] List of disk types contained in this scope. DiskTypes []*DiskType `json:"diskTypes,omitempty"` @@ -4085,9 +5738,13 @@ type DiskTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4098,7 +5755,9 @@ type DiskTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4240,9 +5899,13 @@ type DisksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4253,7 +5916,9 @@ type DisksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -4413,6 +6078,20 @@ type Firewall struct { // the firewall to apply. Only IPv4 is supported. SourceRanges []string `json:"sourceRanges,omitempty"` + // SourceServiceAccounts: If source service accounts are specified, the + // firewall will apply only to traffic originating from an instance with + // a service account in this list. Source service accounts cannot be + // used to control traffic to an instance's external IP address because + // service accounts are associated with an instance, not an IP address. + // sourceRanges can be set at the same time as sourceServiceAccounts. If + // both are set, the firewall will apply to traffic that has source IP + // address within sourceRanges OR the source IP belongs to an instance + // with service account listed in sourceServiceAccount. The connection + // does not need to match both properties for the firewall to apply. + // sourceServiceAccounts cannot be used at the same time as sourceTags + // or targetTags. + SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"` + // SourceTags: If source tags are specified, the firewall rule applies // only to traffic with source IPs that match the primary network // interfaces of VM instances that have the tag and are in the same VPC @@ -4427,10 +6106,19 @@ type Firewall struct { // the firewall to apply. SourceTags []string `json:"sourceTags,omitempty"` - // TargetTags: A list of instance tags indicating sets of instances - // located in the network that may make network connections as specified - // in allowed[]. If no targetTags are specified, the firewall rule + // TargetServiceAccounts: A list of service accounts indicating sets of + // instances located in the network that may make network connections as + // specified in allowed[]. targetServiceAccounts cannot be used at the + // same time as targetTags or sourceTags. If neither + // targetServiceAccounts nor targetTags are specified, the firewall rule // applies to all instances on the specified network. + TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` + + // TargetTags: A list of tags that controls which instances the firewall + // rule applies to. If targetTags are specified, then the firewall rule + // applies only to instances in the VPC network that have one of those + // tags. If no targetTags are specified, the firewall rule applies to + // all instances on the specified network. TargetTags []string `json:"targetTags,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -4560,6 +6248,9 @@ type FirewallList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *FirewallListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -4587,6 +6278,107 @@ func (s *FirewallList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// FirewallListWarning: [Output Only] Informational warning message. +type FirewallListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*FirewallListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FirewallListWarning) MarshalJSON() ([]byte, error) { + type noMethod FirewallListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type FirewallListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) { + type noMethod FirewallListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ForwardingRule: A ForwardingRule resource. A ForwardingRule resource // specifies which pool of target virtual machines to forward a packet // to if it matches the given [IPAddress, IPProtocol, ports] tuple. @@ -4594,19 +6386,34 @@ type ForwardingRule struct { // IPAddress: The IP address that this forwarding rule is serving on // behalf of. // - // For global forwarding rules, the address must be a global IP. For - // regional forwarding rules, the address must live in the same region - // as the forwarding rule. By default, this field is empty and an - // ephemeral IPv4 address from the same scope (global or regional) will - // be assigned. A regional forwarding rule supports IPv4 only. A global - // forwarding rule supports either IPv4 or IPv6. + // Addresses are restricted based on the forwarding rule's load + // balancing scheme (EXTERNAL or INTERNAL) and scope (global or + // regional). + // + // When the load balancing scheme is EXTERNAL, for global forwarding + // rules, the address must be a global IP, and for regional forwarding + // rules, the address must live in the same region as the forwarding + // rule. If this field is empty, an ephemeral IPv4 address from the same + // scope (global or regional) will be assigned. A regional forwarding + // rule supports IPv4 only. A global forwarding rule supports either + // IPv4 or IPv6. // // When the load balancing scheme is INTERNAL, this can only be an RFC - // 1918 IP address belonging to the network/subnetwork configured for - // the forwarding rule. A reserved address cannot be used. If the field - // is empty, the IP address will be automatically allocated from the - // internal IP range of the subnetwork or network configured for this - // forwarding rule. + // 1918 IP address belonging to the network/subnet configured for the + // forwarding rule. By default, if this field is empty, an ephemeral + // internal IP address will be automatically allocated from the IP range + // of the subnet or network configured for this forwarding rule. + // + // An address can be specified either by a literal IP address or a URL + // reference to an existing Address resource. The following examples are + // all valid: + // - 100.1.2.3 + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address + // - projects/project/regions/region/addresses/address + // - regions/region/addresses/address + // - global/addresses/address + // - address IPAddress string `json:"IPAddress,omitempty"` // IPProtocol: The IP protocol to which this rule applies. Valid options @@ -4796,6 +6603,9 @@ type ForwardingRuleAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -4823,6 +6633,108 @@ func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ForwardingRuleAggregatedListWarning: [Output Only] Informational +// warning message. +type ForwardingRuleAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod ForwardingRuleAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type ForwardingRuleAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod ForwardingRuleAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ForwardingRuleList: Contains a list of ForwardingRule resources. type ForwardingRuleList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -4846,6 +6758,9 @@ type ForwardingRuleList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ForwardingRuleListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -4873,6 +6788,108 @@ func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ForwardingRuleListWarning: [Output Only] Informational warning +// message. +type ForwardingRuleListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*ForwardingRuleListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) { + type noMethod ForwardingRuleListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type ForwardingRuleListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) { + type noMethod ForwardingRuleListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type ForwardingRulesScopedList struct { // ForwardingRules: List of forwarding rules contained in this scope. ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"` @@ -4915,9 +6932,13 @@ type ForwardingRulesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -4928,7 +6949,9 @@ type ForwardingRulesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -5301,6 +7324,9 @@ type HealthCheckList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HealthCheckListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -5328,6 +7354,107 @@ func (s *HealthCheckList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// HealthCheckListWarning: [Output Only] Informational warning message. +type HealthCheckListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*HealthCheckListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) { + type noMethod HealthCheckListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type HealthCheckListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type noMethod HealthCheckListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // HealthCheckReference: A full or valid partial URL to a health check. // For example, the following are valid URLs: // - @@ -5554,6 +7681,9 @@ type HttpHealthCheckList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HttpHealthCheckListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -5581,6 +7711,108 @@ func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// HttpHealthCheckListWarning: [Output Only] Informational warning +// message. +type HttpHealthCheckListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*HttpHealthCheckListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) { + type noMethod HttpHealthCheckListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type HttpHealthCheckListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type noMethod HttpHealthCheckListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // HttpsHealthCheck: An HttpsHealthCheck resource. This resource defines // a template for how individual instances should be checked for health, // via HTTPS. @@ -5694,6 +7926,9 @@ type HttpsHealthCheckList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -5721,6 +7956,108 @@ func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// HttpsHealthCheckListWarning: [Output Only] Informational warning +// message. +type HttpsHealthCheckListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) { + type noMethod HttpsHealthCheckListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type HttpsHealthCheckListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type noMethod HttpsHealthCheckListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Image: An Image resource. type Image struct { // ArchiveSizeBytes: Size of the image tar.gz archive stored in Google @@ -5968,6 +8305,9 @@ type ImageList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ImageListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -5995,6 +8335,107 @@ func (s *ImageList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ImageListWarning: [Output Only] Informational warning message. +type ImageListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*ImageListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ImageListWarning) MarshalJSON() ([]byte, error) { + type noMethod ImageListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type ImageListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ImageListWarningData) MarshalJSON() ([]byte, error) { + type noMethod ImageListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Instance: An Instance resource. type Instance struct { // CanIpForward: Allows this instance to send and receive packets with @@ -6010,6 +8451,10 @@ type Instance struct { // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DeletionProtection: Whether the resource should be protected against + // deletion. + DeletionProtection bool `json:"deletionProtection,omitempty"` + // Description: An optional description of this resource. Provide this // property when you create the resource. Description string `json:"description,omitempty"` @@ -6072,6 +8517,12 @@ type Instance struct { // This includes custom metadata and predefined keys. Metadata *Metadata `json:"metadata,omitempty"` + // MinCpuPlatform: Specifies a minimum CPU platform for the VM instance. + // Applicable values are the friendly names of CPU platforms, such as + // minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy + // Bridge". + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + // Name: The name of the resource, provided by the client when initially // creating the resource. The resource name must be 1-63 characters // long, and comply with RFC1035. Specifically, the name must be 1-63 @@ -6187,6 +8638,9 @@ type InstanceAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -6214,6 +8668,108 @@ func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceAggregatedListWarning: [Output Only] Informational warning +// message. +type InstanceAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstanceGroup struct { // CreationTimestamp: [Output Only] The creation timestamp for this // instance group in RFC3339 text format. @@ -6327,6 +8883,9 @@ type InstanceGroupAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -6354,6 +8913,108 @@ func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceGroupAggregatedListWarning: [Output Only] Informational +// warning message. +type InstanceGroupAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceGroupAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // InstanceGroupList: A list of InstanceGroup resources. type InstanceGroupList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -6378,6 +9039,9 @@ type InstanceGroupList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceGroupListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -6405,6 +9069,108 @@ func (s *InstanceGroupList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceGroupListWarning: [Output Only] Informational warning +// message. +type InstanceGroupListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceGroupListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceGroupListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // InstanceGroupManager: An Instance Group Manager resource. type InstanceGroupManager struct { // BaseInstanceName: The base instance name to use for instances in this @@ -6603,6 +9369,9 @@ type InstanceGroupManagerAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -6630,6 +9399,108 @@ func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceGroupManagerAggregatedListWarning: [Output Only] +// Informational warning message. +type InstanceGroupManagerAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupManagerAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagerAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupManagerAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // InstanceGroupManagerList: [Output Only] A list of managed instance // groups. type InstanceGroupManagerList struct { @@ -6656,6 +9527,9 @@ type InstanceGroupManagerList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -6683,6 +9557,108 @@ func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceGroupManagerListWarning: [Output Only] Informational warning +// message. +type InstanceGroupManagerListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupManagerListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagerListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupManagerListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstanceGroupManagersAbandonInstancesRequest struct { // Instances: The URLs of one or more instances to abandon. This can be // a full URL or a partial URL, such as @@ -6848,9 +9824,13 @@ type InstanceGroupManagersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -6861,7 +9841,9 @@ type InstanceGroupManagersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7054,6 +10036,9 @@ type InstanceGroupsListInstances struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -7081,6 +10066,108 @@ func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceGroupsListInstancesWarning: [Output Only] Informational +// warning message. +type InstanceGroupsListInstancesWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupsListInstancesWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceGroupsListInstancesWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceGroupsListInstancesWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstanceGroupsListInstancesRequest struct { // InstanceState: A filter for the state of the instances in the // instance group. Valid options are ALL or RUNNING. If you do not @@ -7186,9 +10273,13 @@ type InstanceGroupsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7199,7 +10290,9 @@ type InstanceGroupsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7331,6 +10424,9 @@ type InstanceList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -7358,6 +10454,107 @@ func (s *InstanceList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceListWarning: [Output Only] Informational warning message. +type InstanceListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstanceMoveRequest struct { // DestinationZone: The URL of the destination zone to move the // instance. This can be a full or partial URL. For example, the @@ -7437,6 +10634,14 @@ type InstanceProperties struct { // more information. Metadata *Metadata `json:"metadata,omitempty"` + // MinCpuPlatform: 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 Specifying a Minimum CPU + // Platform. + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + // NetworkInterfaces: An array of network access configurations for this // interface. NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` @@ -7593,6 +10798,9 @@ type InstanceTemplateList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceTemplateListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -7620,6 +10828,108 @@ func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstanceTemplateListWarning: [Output Only] Informational warning +// message. +type InstanceTemplateListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InstanceTemplateListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) { + type noMethod InstanceTemplateListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InstanceTemplateListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InstanceTemplateListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstanceWithNamedPorts struct { // Instance: [Output Only] The URL of the instance. Instance string `json:"instance,omitempty"` @@ -7705,9 +11015,13 @@ type InstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -7718,7 +11032,9 @@ type InstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -7881,6 +11197,35 @@ func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type InstancesSetMinCpuPlatformRequest struct { + // MinCpuPlatform: Minimum cpu/platform this instance should be started + // at. + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MinCpuPlatform") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) { + type noMethod InstancesSetMinCpuPlatformRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type InstancesSetServiceAccountRequest struct { // Email: Email address of the service account. Email string `json:"email,omitempty"` @@ -7946,6 +11291,1285 @@ func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Interconnect: Protocol definitions for Mixer API to support +// Interconnect. Next available tag: 25 +type Interconnect struct { + // AdminEnabled: Administrative status of the interconnect. When this is + // set to ?true?, the Interconnect is functional and may carry traffic + // (assuming there are functional InterconnectAttachments and other + // requirements are satisfied). When set to ?false?, no packets will be + // carried over this Interconnect and no BGP routes will be exchanged + // over it. By default, it is set to ?true?. + AdminEnabled bool `json:"adminEnabled,omitempty"` + + // CircuitInfos: [Output Only] List of CircuitInfo objects, that + // describe the individual circuits in this LAG. + CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"` + + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text + // format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + + // CustomerName: Customer name, to put in the Letter of Authorization as + // the party authorized to request a crossconnect. + CustomerName string `json:"customerName,omitempty"` + + // Description: An optional description of this resource. Provide this + // property when you create the resource. + Description string `json:"description,omitempty"` + + // ExpectedOutages: [Output Only] List of outages expected for this + // Interconnect. + ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"` + + // GoogleIpAddress: [Output Only] IP address configured on the Google + // side of the Interconnect link. This can be used only for ping tests. + GoogleIpAddress string `json:"googleIpAddress,omitempty"` + + // GoogleReferenceId: [Output Only] Google reference ID; to be used when + // raising support tickets with Google or otherwise to debug backend + // connectivity issues. + GoogleReferenceId string `json:"googleReferenceId,omitempty"` + + // Id: [Output Only] The unique identifier for the resource. This + // identifier is defined by the server. + Id uint64 `json:"id,omitempty,string"` + + // InterconnectAttachments: [Output Only] A list of the URLs of all + // InterconnectAttachments configured to use this Interconnect. + InterconnectAttachments []string `json:"interconnectAttachments,omitempty"` + + // Possible values: + // "DEDICATED" + // "IT_PRIVATE" + InterconnectType string `json:"interconnectType,omitempty"` + + // Kind: [Output Only] Type of the resource. Always compute#interconnect + // for interconnects. + Kind string `json:"kind,omitempty"` + + // Possible values: + // "LINK_TYPE_ETHERNET_10G_LR" + LinkType string `json:"linkType,omitempty"` + + // Location: URL of the InterconnectLocation object that represents + // where this connection is to be provisioned. + Location string `json:"location,omitempty"` + + // Name: 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. + Name string `json:"name,omitempty"` + + // NocContactEmail: 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. + NocContactEmail string `json:"nocContactEmail,omitempty"` + + // OperationalStatus: [Output Only] The current status of whether or not + // this Interconnect is functional. + // + // Possible values: + // "ACTIVE" + // "OS_ACTIVE" + // "OS_UNPROVISIONED" + // "UNPROVISIONED" + OperationalStatus string `json:"operationalStatus,omitempty"` + + // PeerIpAddress: [Output Only] IP address configured on the customer + // side of the Interconnect link. The customer should configure this IP + // address during turnup when prompted by Google NOC. This can be used + // only for ping tests. + PeerIpAddress string `json:"peerIpAddress,omitempty"` + + // ProvisionedLinkCount: [Output Only] Number of links actually + // provisioned in this interconnect. + ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"` + + // RequestedLinkCount: Target number of physical links in the link + // bundle, as requested by the customer. + RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdminEnabled") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Interconnect) MarshalJSON() ([]byte, error) { + type noMethod Interconnect + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachment: Protocol definitions for Mixer API to support +// InterconnectAttachment. Next available tag: 23 +type InterconnectAttachment struct { + // CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to + // be configured on Cloud Router Interface for this interconnect + // attachment. + CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"` + + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text + // format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + + // CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length + // to be configured on the customer router subinterface for this + // interconnect attachment. + CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"` + + // Description: An optional description of this resource. Provide this + // property when you create the resource. + Description string `json:"description,omitempty"` + + // GoogleReferenceId: [Output Only] Google reference ID, to be used when + // raising support tickets with Google or otherwise to debug backend + // connectivity issues. + GoogleReferenceId string `json:"googleReferenceId,omitempty"` + + // Id: [Output Only] The unique identifier for the resource. This + // identifier is defined by the server. + Id uint64 `json:"id,omitempty,string"` + + // Interconnect: URL of the underlying Interconnect object that this + // attachment's traffic will traverse through. + Interconnect string `json:"interconnect,omitempty"` + + // Kind: [Output Only] Type of the resource. Always + // compute#interconnectAttachment for interconnect attachments. + Kind string `json:"kind,omitempty"` + + // Name: 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. + Name string `json:"name,omitempty"` + + // OperationalStatus: [Output Only] The current status of whether or not + // this interconnect attachment is functional. + // + // Possible values: + // "ACTIVE" + // "OS_ACTIVE" + // "OS_UNPROVISIONED" + // "UNPROVISIONED" + OperationalStatus string `json:"operationalStatus,omitempty"` + + // PrivateInterconnectInfo: [Output Only] Information specific to a + // Private InterconnectAttachment. Only populated if the interconnect + // that this is attached is of type IT_PRIVATE. + PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"` + + // Region: [Output Only] URL of the region where the regional + // interconnect attachment resides. + Region string `json:"region,omitempty"` + + // Router: 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. + Router string `json:"router,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "CloudRouterIpAddress") to unconditionally include in API requests. + // By default, fields with empty values are omitted from API requests. + // However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CloudRouterIpAddress") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachment + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the + // server. + Id string `json:"id,omitempty"` + + // Items: A list of InterconnectAttachmentsScopedList resources. + Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"` + + // Kind: [Output Only] Type of resource. Always + // compute#interconnectAttachmentAggregatedList for aggregated lists of + // interconnect attachments. + Kind string `json:"kind,omitempty"` + + // NextPageToken: [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. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + + // Warning: [Output Only] Informational warning message. + Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentAggregatedList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentAggregatedListWarning: [Output Only] +// Informational warning message. +type InterconnectAttachmentAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentList: Response to the list request, and +// contains a list of interconnect attachments. +type InterconnectAttachmentList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the + // server. + Id string `json:"id,omitempty"` + + // Items: A list of InterconnectAttachment resources. + Items []*InterconnectAttachment `json:"items,omitempty"` + + // Kind: [Output Only] Type of resource. Always + // compute#interconnectAttachmentList for lists of interconnect + // attachments. + Kind string `json:"kind,omitempty"` + + // NextPageToken: [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. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + + // Warning: [Output Only] Informational warning message. + Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentListWarning: [Output Only] Informational +// warning message. +type InterconnectAttachmentListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentPrivateInfo: Private information for an +// interconnect attachment when this belongs to an interconnect of type +// IT_PRIVATE. +type InterconnectAttachmentPrivateInfo struct { + // Tag8021q: [Output Only] 802.1q encapsulation tag to be used for + // traffic between Google and the customer, going to and from this + // network and region. + Tag8021q int64 `json:"tag8021q,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Tag8021q") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Tag8021q") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentPrivateInfo + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentsScopedList struct { + // InterconnectAttachments: List of interconnect attachments contained + // in this scope. + InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"` + + // Warning: Informational warning which replaces the list of addresses + // when the list is empty. + Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "InterconnectAttachments") to unconditionally include in API + // requests. By default, fields with empty values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "InterconnectAttachments") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentsScopedList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentsScopedListWarning: Informational warning which +// replaces the list of addresses when the list is empty. +type InterconnectAttachmentsScopedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentsScopedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentsScopedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InterconnectAttachmentsScopedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectCircuitInfo: Describes a single physical circuit between +// the Customer and Google. CircuitInfo objects are created by Google, +// so all fields are output only. Next id: 4 +type InterconnectCircuitInfo struct { + // CustomerDemarcId: Customer-side demarc ID for this circuit. This will + // only be set if it was provided by the Customer to Google during + // circuit turn-up. + CustomerDemarcId string `json:"customerDemarcId,omitempty"` + + // GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned + // at circuit turn-up. + GoogleCircuitId string `json:"googleCircuitId,omitempty"` + + // GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at + // circuit turn-up and provided by Google to the customer in the LOA. + GoogleDemarcId string `json:"googleDemarcId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CustomerDemarcId") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) { + type noMethod InterconnectCircuitInfo + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectList: Response to the list request, and contains a list +// of interconnects. +type InterconnectList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the + // server. + Id string `json:"id,omitempty"` + + // Items: A list of Interconnect resources. + Items []*Interconnect `json:"items,omitempty"` + + // Kind: [Output Only] Type of resource. Always compute#interconnectList + // for lists of interconnects. + Kind string `json:"kind,omitempty"` + + // NextPageToken: [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. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + + // Warning: [Output Only] Informational warning message. + Warning *InterconnectListWarning `json:"warning,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectList) MarshalJSON() ([]byte, error) { + type noMethod InterconnectList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectListWarning: [Output Only] Informational warning message. +type InterconnectListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InterconnectListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) { + type noMethod InterconnectListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InterconnectListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectLocation: Protocol definitions for Mixer API to support +// InterconnectLocation. +type InterconnectLocation struct { + // Address: [Output Only] The postal address of the Point of Presence, + // each line in the address is separated by a newline character. + Address string `json:"address,omitempty"` + + // AvailabilityZone: Availability zone for this location. Within a city, + // maintenance will not be simultaneously scheduled in more than one + // availability zone. Example: "zone1" or "zone2". + AvailabilityZone string `json:"availabilityZone,omitempty"` + + // City: City designator used by the Interconnect UI to locate this + // InterconnectLocation within the Continent. For example: "Chicago, + // IL", "Amsterdam, Netherlands". + City string `json:"city,omitempty"` + + // Continent: Continent for this location. Used by the location picker + // in the Interconnect UI. + // + // Possible values: + // "AFRICA" + // "ASIA_PAC" + // "C_AFRICA" + // "C_ASIA_PAC" + // "C_EUROPE" + // "C_NORTH_AMERICA" + // "C_SOUTH_AMERICA" + // "EUROPE" + // "NORTH_AMERICA" + // "SOUTH_AMERICA" + Continent string `json:"continent,omitempty"` + + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text + // format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + + // Description: [Output Only] An optional description of the resource. + Description string `json:"description,omitempty"` + + // FacilityProvider: [Output Only] The name of the provider for this + // facility (e.g., EQUINIX). + FacilityProvider string `json:"facilityProvider,omitempty"` + + // FacilityProviderFacilityId: [Output Only] A provider-assigned + // Identifier for this facility (e.g., Ashburn-DC1). + FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"` + + // Id: [Output Only] The unique identifier for the resource. This + // identifier is defined by the server. + Id uint64 `json:"id,omitempty,string"` + + // Kind: [Output Only] Type of the resource. Always + // compute#interconnectLocation for interconnect locations. + Kind string `json:"kind,omitempty"` + + // Name: [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + + // PeeringdbFacilityId: [Output Only] The peeringdb identifier for this + // facility (corresponding with a netfac type in peeringdb). + PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"` + + // RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo + // objects, that describe parameters pertaining to the relation between + // this InterconnectLocation and various Google Cloud regions. + RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Address") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Address") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectLocation) MarshalJSON() ([]byte, error) { + type noMethod InterconnectLocation + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectLocationList: Response to the list request, and contains +// a list of interconnect locations. +type InterconnectLocationList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the + // server. + Id string `json:"id,omitempty"` + + // Items: A list of InterconnectLocation resources. + Items []*InterconnectLocation `json:"items,omitempty"` + + // Kind: [Output Only] Type of resource. Always + // compute#interconnectLocationList for lists of interconnect locations. + Kind string `json:"kind,omitempty"` + + // NextPageToken: [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. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + + // Warning: [Output Only] Informational warning message. + Warning *InterconnectLocationListWarning `json:"warning,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) { + type noMethod InterconnectLocationList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectLocationListWarning: [Output Only] Informational warning +// message. +type InterconnectLocationListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*InterconnectLocationListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) { + type noMethod InterconnectLocationListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InterconnectLocationListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) { + type noMethod InterconnectLocationListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectLocationRegionInfo: Information about any potential +// InterconnectAttachments between an Interconnect at a specific +// InterconnectLocation, and a specific Cloud Region. +type InterconnectLocationRegionInfo struct { + // ExpectedRttMs: Expected round-trip time in milliseconds, from this + // InterconnectLocation to a VM in this region. + ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"` + + // LocationPresence: Identifies the network presence of this location. + // + // Possible values: + // "GLOBAL" + // "LOCAL_REGION" + // "LP_GLOBAL" + // "LP_LOCAL_REGION" + LocationPresence string `json:"locationPresence,omitempty"` + + // Region: URL for the region of this location. + Region string `json:"region,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ExpectedRttMs") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) { + type noMethod InterconnectLocationRegionInfo + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterconnectOutageNotification: Description of a planned outage on +// this Interconnect. Next id: 9 +type InterconnectOutageNotification struct { + // AffectedCircuits: Iff issue_type is IT_PARTIAL_OUTAGE, a list of the + // Google-side circuit IDs that will be affected. + AffectedCircuits []string `json:"affectedCircuits,omitempty"` + + // Description: Short user-visible description of the purpose of the + // outage. + Description string `json:"description,omitempty"` + + EndTime int64 `json:"endTime,omitempty,string"` + + // Possible values: + // "IT_OUTAGE" + // "IT_PARTIAL_OUTAGE" + // "OUTAGE" + // "PARTIAL_OUTAGE" + IssueType string `json:"issueType,omitempty"` + + // Name: Unique identifier for this outage notification. + Name string `json:"name,omitempty"` + + // Possible values: + // "GOOGLE" + // "NSRC_GOOGLE" + Source string `json:"source,omitempty"` + + // StartTime: Scheduled start and end times for the outage (milliseconds + // since Unix epoch). + StartTime int64 `json:"startTime,omitempty,string"` + + // Possible values: + // "ACTIVE" + // "CANCELLED" + // "NS_ACTIVE" + // "NS_CANCELED" + State string `json:"state,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AffectedCircuits") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AffectedCircuits") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) { + type noMethod InterconnectOutageNotification + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // License: A license resource. type License struct { // ChargesUseFee: [Output Only] Deprecated. This field no longer @@ -8129,6 +12753,9 @@ type MachineTypeAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -8156,6 +12783,108 @@ func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// MachineTypeAggregatedListWarning: [Output Only] Informational warning +// message. +type MachineTypeAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod MachineTypeAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type MachineTypeAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod MachineTypeAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // MachineTypeList: Contains a list of machine types. type MachineTypeList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -8180,6 +12909,9 @@ type MachineTypeList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *MachineTypeListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -8207,6 +12939,107 @@ func (s *MachineTypeList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// MachineTypeListWarning: [Output Only] Informational warning message. +type MachineTypeListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*MachineTypeListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) { + type noMethod MachineTypeListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type MachineTypeListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) { + type noMethod MachineTypeListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type MachineTypesScopedList struct { // MachineTypes: [Output Only] List of machine types contained in this // scope. @@ -8249,9 +13082,13 @@ type MachineTypesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -8262,7 +13099,9 @@ type MachineTypesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -8673,6 +13512,11 @@ type Network struct { // Peerings: [Output Only] List of network peerings for the resource. Peerings []*NetworkPeering `json:"peerings,omitempty"` + // RoutingConfig: The network-level routing configuration for this + // network. Used by Cloud Router to determine what type of network-wide + // routing behavior to enforce. + RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` @@ -8811,6 +13655,9 @@ type NetworkList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -8838,6 +13685,107 @@ func (s *NetworkList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// NetworkListWarning: [Output Only] Informational warning message. +type NetworkListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*NetworkListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *NetworkListWarning) MarshalJSON() ([]byte, error) { + type noMethod NetworkListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type NetworkListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) { + type noMethod NetworkListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NetworkPeering: A network peering attached to a network resource. The // message includes the peering name, peer network, peering state, and a // flag indicating whether Google Compute Engine should automatically @@ -8900,6 +13848,45 @@ func (s *NetworkPeering) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// NetworkRoutingConfig: A routing configuration attached to a network +// resource. The message includes the list of routers associated with +// the network, and a flag indicating the type of routing behavior to +// enforce network-wide. +type NetworkRoutingConfig struct { + // RoutingMode: The network-wide routing mode to use. If set to + // REGIONAL, this network's cloud routers will only advertise routes + // with subnetworks of this network in the same region as the router. If + // set to GLOBAL, this network's cloud routers will advertise routes + // with all subnetworks of this network, across regions. + // + // Possible values: + // "GLOBAL" + // "REGIONAL" + RoutingMode string `json:"routingMode,omitempty"` + + // ForceSendFields is a list of field names (e.g. "RoutingMode") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "RoutingMode") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) { + type noMethod NetworkRoutingConfig + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type NetworksAddPeeringRequest struct { // AutoCreateRoutes: Whether Google Compute Engine manages the routes // automatically. @@ -9166,9 +14153,13 @@ type OperationWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9179,7 +14170,9 @@ type OperationWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9275,6 +14268,9 @@ type OperationAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *OperationAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -9302,6 +14298,108 @@ func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OperationAggregatedListWarning: [Output Only] Informational warning +// message. +type OperationAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*OperationAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod OperationAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type OperationAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod OperationAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // OperationList: Contains a list of Operation resources. type OperationList struct { // Id: [Output Only] The unique identifier for the resource. This @@ -9326,6 +14424,9 @@ type OperationList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *OperationListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -9353,6 +14454,107 @@ func (s *OperationList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OperationListWarning: [Output Only] Informational warning message. +type OperationListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*OperationListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationListWarning) MarshalJSON() ([]byte, error) { + type noMethod OperationListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type OperationListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OperationListWarningData) MarshalJSON() ([]byte, error) { + type noMethod OperationListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type OperationsScopedList struct { // Operations: [Output Only] List of operations contained in this scope. Operations []*Operation `json:"operations,omitempty"` @@ -9394,9 +14596,13 @@ type OperationsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -9407,7 +14613,9 @@ type OperationsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -9962,6 +15170,9 @@ type RegionAutoscalerList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionAutoscalerListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -9989,6 +15200,108 @@ func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RegionAutoscalerListWarning: [Output Only] Informational warning +// message. +type RegionAutoscalerListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RegionAutoscalerListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) { + type noMethod RegionAutoscalerListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RegionAutoscalerListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RegionAutoscalerListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RegionInstanceGroupList: Contains a list of InstanceGroup resources. type RegionInstanceGroupList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -10012,6 +15325,9 @@ type RegionInstanceGroupList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10039,6 +15355,108 @@ func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RegionInstanceGroupListWarning: [Output Only] Informational warning +// message. +type RegionInstanceGroupListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RegionInstanceGroupManagerList: Contains a list of managed instance // groups. type RegionInstanceGroupManagerList struct { @@ -10065,6 +15483,9 @@ type RegionInstanceGroupManagerList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10092,6 +15513,108 @@ func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RegionInstanceGroupManagerListWarning: [Output Only] Informational +// warning message. +type RegionInstanceGroupManagerListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupManagerListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagerListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupManagerListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type RegionInstanceGroupManagersAbandonInstancesRequest struct { // Instances: The URLs of one or more instances to abandon. This can be // a full URL or a partial URL, such as @@ -10296,6 +15819,9 @@ type RegionInstanceGroupsListInstances struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10323,6 +15849,108 @@ func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational +// warning message. +type RegionInstanceGroupsListInstancesWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupsListInstancesWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupsListInstancesWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { + type noMethod RegionInstanceGroupsListInstancesWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type RegionInstanceGroupsListInstancesRequest struct { // InstanceState: Instances in which state should be returned. Valid // options are: 'ALL', 'RUNNING'. By default, it lists all instances. @@ -10420,6 +16048,9 @@ type RegionList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10447,6 +16078,107 @@ func (s *RegionList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RegionListWarning: [Output Only] Informational warning message. +type RegionListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RegionListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionListWarning) MarshalJSON() ([]byte, error) { + type noMethod RegionListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RegionListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RegionListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ResourceCommitment: Commitment for a particular resource (a // Commitment is composed of one or more of these). type ResourceCommitment struct { @@ -10651,9 +16383,13 @@ type RouteWarnings struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -10664,7 +16400,9 @@ type RouteWarnings struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -10760,6 +16498,9 @@ type RouteList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RouteListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10787,6 +16528,107 @@ func (s *RouteList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RouteListWarning: [Output Only] Informational warning message. +type RouteListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RouteListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouteListWarning) MarshalJSON() ([]byte, error) { + type noMethod RouteListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RouteListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouteListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RouteListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Router: Router resource. type Router struct { // Bgp: BGP information specific to this router. @@ -10886,6 +16728,9 @@ type RouterAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RouterAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -10913,6 +16758,108 @@ func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RouterAggregatedListWarning: [Output Only] Informational warning +// message. +type RouterAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RouterAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod RouterAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RouterAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RouterAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type RouterBgp struct { // Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996 // private ASN, either 16-bit or 32-bit. The value will be fixed for @@ -11001,6 +16948,12 @@ type RouterInterface struct { // interface. IpRange string `json:"ipRange,omitempty"` + // LinkedInterconnectAttachment: URI of the linked interconnect + // attachment. It must be in the same region as the router. Each + // interface can have at most one linked resource and it could either be + // a VPN Tunnel or an interconnect attachment. + LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"` + // LinkedVpnTunnel: URI of the linked VPN tunnel. It must be in the same // region as the router. Each interface can have at most one linked // resource and it could either be a VPN Tunnel or an interconnect @@ -11058,6 +17011,9 @@ type RouterList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RouterListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -11085,6 +17041,107 @@ func (s *RouterList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// RouterListWarning: [Output Only] Informational warning message. +type RouterListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*RouterListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterListWarning) MarshalJSON() ([]byte, error) { + type noMethod RouterListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type RouterListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterListWarningData) MarshalJSON() ([]byte, error) { + type noMethod RouterListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type RouterStatus struct { // BestRoutes: Best routes for this router's network. BestRoutes []*Route `json:"bestRoutes,omitempty"` @@ -11286,9 +17343,13 @@ type RoutersScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -11299,7 +17360,9 @@ type RoutersScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -11721,6 +17784,9 @@ type SnapshotList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *SnapshotListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -11748,6 +17814,107 @@ func (s *SnapshotList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SnapshotListWarning: [Output Only] Informational warning message. +type SnapshotListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*SnapshotListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) { + type noMethod SnapshotListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type SnapshotListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) { + type noMethod SnapshotListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SslCertificate: An SslCertificate resource. This resource provides a // mechanism to upload an SSL key and certificate to the load balancer // to serve secure connections from the user. @@ -11839,6 +18006,9 @@ type SslCertificateList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *SslCertificateListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -11866,6 +18036,108 @@ func (s *SslCertificateList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SslCertificateListWarning: [Output Only] Informational warning +// message. +type SslCertificateListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*SslCertificateListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) { + type noMethod SslCertificateListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type SslCertificateListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) { + type noMethod SslCertificateListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Subnetwork: A Subnetwork resource. type Subnetwork struct { // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -11982,6 +18254,9 @@ type SubnetworkAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12009,6 +18284,108 @@ func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SubnetworkAggregatedListWarning: [Output Only] Informational warning +// message. +type SubnetworkAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod SubnetworkAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type SubnetworkAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod SubnetworkAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SubnetworkList: Contains a list of Subnetwork resources. type SubnetworkList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -12033,6 +18410,9 @@ type SubnetworkList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *SubnetworkListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12060,6 +18440,107 @@ func (s *SubnetworkList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SubnetworkListWarning: [Output Only] Informational warning message. +type SubnetworkListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*SubnetworkListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) { + type noMethod SubnetworkListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type SubnetworkListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) { + type noMethod SubnetworkListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SubnetworkSecondaryRange: Represents a secondary IP range of a // subnetwork. type SubnetworkSecondaryRange struct { @@ -12171,9 +18652,13 @@ type SubnetworksScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12184,7 +18669,9 @@ type SubnetworksScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -12463,6 +18950,9 @@ type TargetHttpProxyList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetHttpProxyListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12490,6 +18980,108 @@ func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetHttpProxyListWarning: [Output Only] Informational warning +// message. +type TargetHttpProxyListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetHttpProxyListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetHttpProxyListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetHttpProxyListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetHttpProxyListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetHttpsProxiesSetSslCertificatesRequest struct { // SslCertificates: New set of SslCertificate resources to associate // with this TargetHttpsProxy resource. Currently exactly one @@ -12617,6 +19209,9 @@ type TargetHttpsProxyList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12644,6 +19239,108 @@ func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetHttpsProxyListWarning: [Output Only] Informational warning +// message. +type TargetHttpsProxyListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetHttpsProxyListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetHttpsProxyListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetHttpsProxyListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TargetInstance: A TargetInstance resource. This resource defines an // endpoint instance that terminates traffic of certain protocols. type TargetInstance struct { @@ -12746,6 +19443,9 @@ type TargetInstanceAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12773,6 +19473,108 @@ func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetInstanceAggregatedListWarning: [Output Only] Informational +// warning message. +type TargetInstanceAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetInstanceAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetInstanceAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetInstanceAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TargetInstanceList: Contains a list of TargetInstance resources. type TargetInstanceList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -12796,6 +19598,9 @@ type TargetInstanceList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetInstanceListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -12823,6 +19628,108 @@ func (s *TargetInstanceList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetInstanceListWarning: [Output Only] Informational warning +// message. +type TargetInstanceListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetInstanceListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetInstanceListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetInstanceListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetInstanceListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetInstancesScopedList struct { // TargetInstances: List of target instances contained in this scope. TargetInstances []*TargetInstance `json:"targetInstances,omitempty"` @@ -12865,9 +19772,13 @@ type TargetInstancesScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -12878,7 +19789,9 @@ type TargetInstancesScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13118,6 +20031,9 @@ type TargetPoolAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -13145,6 +20061,108 @@ func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetPoolAggregatedListWarning: [Output Only] Informational warning +// message. +type TargetPoolAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetPoolAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetPoolAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetPoolAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetPoolInstanceHealth struct { HealthStatus []*HealthStatus `json:"healthStatus,omitempty"` @@ -13204,6 +20222,9 @@ type TargetPoolList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetPoolListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -13231,6 +20252,107 @@ func (s *TargetPoolList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetPoolListWarning: [Output Only] Informational warning message. +type TargetPoolListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetPoolListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetPoolListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetPoolListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetPoolListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetPoolsAddHealthCheckRequest struct { // HealthChecks: The HttpHealthCheck to add to the target pool. HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"` @@ -13391,9 +20513,13 @@ type TargetPoolsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -13404,7 +20530,9 @@ type TargetPoolsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -13692,6 +20820,9 @@ type TargetSslProxyList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetSslProxyListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -13719,6 +20850,108 @@ func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetSslProxyListWarning: [Output Only] Informational warning +// message. +type TargetSslProxyListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetSslProxyListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetSslProxyListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetSslProxyListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetSslProxyListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetTcpProxiesSetBackendServiceRequest struct { // Service: The URL of the new BackendService resource for the // targetTcpProxy. @@ -13873,6 +21106,9 @@ type TargetTcpProxyList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetTcpProxyListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -13900,6 +21136,108 @@ func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetTcpProxyListWarning: [Output Only] Informational warning +// message. +type TargetTcpProxyListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetTcpProxyListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetTcpProxyListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetTcpProxyListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetTcpProxyListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TargetVpnGateway: Represents a Target VPN gateway resource. type TargetVpnGateway struct { // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -14008,6 +21346,9 @@ type TargetVpnGatewayAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14035,6 +21376,108 @@ func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational +// warning message. +type TargetVpnGatewayAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetVpnGatewayAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetVpnGatewayAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetVpnGatewayAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TargetVpnGatewayList: Contains a list of TargetVpnGateway resources. type TargetVpnGatewayList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -14059,6 +21502,9 @@ type TargetVpnGatewayList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14086,6 +21532,108 @@ func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TargetVpnGatewayListWarning: [Output Only] Informational warning +// message. +type TargetVpnGatewayListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) { + type noMethod TargetVpnGatewayListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type TargetVpnGatewayListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) { + type noMethod TargetVpnGatewayListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type TargetVpnGatewaysScopedList struct { // TargetVpnGateways: [Output Only] List of target vpn gateways // contained in this scope. @@ -14129,9 +21677,13 @@ type TargetVpnGatewaysScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14142,7 +21694,9 @@ type TargetVpnGatewaysScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14350,6 +21904,9 @@ type UrlMapList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *UrlMapListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14377,6 +21934,107 @@ func (s *UrlMapList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UrlMapListWarning: [Output Only] Informational warning message. +type UrlMapListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*UrlMapListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) { + type noMethod UrlMapListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type UrlMapListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) { + type noMethod UrlMapListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type UrlMapReference struct { UrlMap string `json:"urlMap,omitempty"` @@ -14718,6 +22376,9 @@ type VpnTunnelAggregatedList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14745,6 +22406,108 @@ func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// VpnTunnelAggregatedListWarning: [Output Only] Informational warning +// message. +type VpnTunnelAggregatedListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) { + type noMethod VpnTunnelAggregatedListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type VpnTunnelAggregatedListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type noMethod VpnTunnelAggregatedListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // VpnTunnelList: Contains a list of VpnTunnel resources. type VpnTunnelList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -14769,6 +22532,9 @@ type VpnTunnelList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *VpnTunnelListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14796,6 +22562,107 @@ func (s *VpnTunnelList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// VpnTunnelListWarning: [Output Only] Informational warning message. +type VpnTunnelListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*VpnTunnelListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) { + type noMethod VpnTunnelListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type VpnTunnelListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) { + type noMethod VpnTunnelListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type VpnTunnelsScopedList struct { // VpnTunnels: List of vpn tunnels contained in this scope. VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"` @@ -14837,9 +22704,13 @@ type VpnTunnelsScopedListWarning struct { // Possible values: // "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" + // "MISSING_TYPE_DEPENDENCY" // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" // "NEXT_HOP_CANNOT_IP_FORWARD" // "NEXT_HOP_INSTANCE_NOT_FOUND" @@ -14850,7 +22721,9 @@ type VpnTunnelsScopedListWarning struct { // "REQUIRED_TOS_AGREEMENT" // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" // "UNREACHABLE" Code string `json:"code,omitempty"` @@ -14946,6 +22819,9 @@ type XpnHostList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *XpnHostListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -14973,6 +22849,107 @@ func (s *XpnHostList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// XpnHostListWarning: [Output Only] Informational warning message. +type XpnHostListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*XpnHostListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) { + type noMethod XpnHostListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type XpnHostListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) { + type noMethod XpnHostListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // XpnResourceId: Service resource (a.k.a service project) ID. type XpnResourceId struct { // Id: The ID of the service resource. In the case of projects, this @@ -15012,6 +22989,10 @@ func (s *XpnResourceId) MarshalJSON() ([]byte, error) { // Zone: A Zone resource. type Zone struct { + // AvailableCpuPlatforms: [Output Only] Available cpu/platform + // selections for the zone. + AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` @@ -15052,15 +23033,16 @@ type Zone struct { // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") - // to unconditionally include in API requests. By default, fields with - // empty values are omitted from API requests. However, any non-pointer, - // non-interface field appearing in ForceSendFields will be sent to the - // server regardless of whether the field is empty or not. This may be - // used to include empty fields in Patch requests. + // ForceSendFields is a list of field names (e.g. + // "AvailableCpuPlatforms") to unconditionally include in API requests. + // By default, fields with empty values are omitted from API requests. + // However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to + // NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the @@ -15099,6 +23081,9 @@ type ZoneList struct { // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ZoneListWarning `json:"warning,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -15126,6 +23111,107 @@ func (s *ZoneList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ZoneListWarning: [Output Only] Informational warning message. +type ZoneListWarning struct { + // Code: [Output Only] A warning code, if applicable. For example, + // Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in + // the response. + // + // Possible values: + // "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" + // "MISSING_TYPE_DEPENDENCY" + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" + // "NEXT_HOP_CANNOT_IP_FORWARD" + // "NEXT_HOP_INSTANCE_NOT_FOUND" + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" + // "NEXT_HOP_NOT_RUNNING" + // "NOT_CRITICAL_ERROR" + // "NO_RESULTS_ON_PAGE" + // "REQUIRED_TOS_AGREEMENT" + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" + // "RESOURCE_NOT_DELETED" + // "SCHEMA_VALIDATION_IGNORED" + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" + // "UNDECLARED_PROPERTIES" + // "UNREACHABLE" + Code string `json:"code,omitempty"` + + // Data: [Output Only] Metadata about this warning in key: value format. + // For example: + // "data": [ { "key": "scope", "value": "zones/us-east1-d" } + Data []*ZoneListWarningData `json:"data,omitempty"` + + // Message: [Output Only] A human-readable description of the warning + // code. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ZoneListWarning) MarshalJSON() ([]byte, error) { + type noMethod ZoneListWarning + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type ZoneListWarningData struct { + // Key: [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). + Key string `json:"key,omitempty"` + + // Value: [Output Only] A warning data value corresponding to the key. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) { + type noMethod ZoneListWarningData + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type ZoneSetLabelsRequest struct { // LabelFingerprint: The fingerprint of the previous set of labels for // this resource, used to detect conflicts. The fingerprint is initially @@ -39237,6 +47323,190 @@ func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error } +// method id "compute.instances.setDeletionProtection": + +type InstancesSetDeletionProtectionCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetDeletionProtection: Sets deletion protection on the instance. +func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall { + c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// DeletionProtection sets the optional parameter "deletionProtection": +// Whether the resource should be protected against deletion. +func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection)) + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InstancesSetDeletionProtectionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setDeletionProtection" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Sets deletion protection on the instance.", + // "httpMethod": "POST", + // "id": "compute.instances.setDeletionProtection", + // "parameterOrder": [ + // "project", + // "zone", + // "resource" + // ], + // "parameters": { + // "deletionProtection": { + // "default": "true", + // "description": "Whether the resource should be protected against deletion.", + // "location": "query", + // "type": "boolean" + // }, + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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 of the resource for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "zone": { + // "description": "The name of the zone for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.instances.setDiskAutoDelete": type InstancesSetDiskAutoDeleteCall struct { @@ -40156,6 +48426,190 @@ func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, } +// method id "compute.instances.setMinCpuPlatform": + +type InstancesSetMinCpuPlatformCall struct { + s *Service + project string + zone string + instance string + instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetMinCpuPlatform: Changes the minimum CPU platform that this +// instance should use. This method can only be called on a stopped +// instance. For more information, read Specifying a Minimum CPU +// Platform. +func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall { + c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InstancesSetMinCpuPlatformCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setMinCpuPlatform" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.", + // "httpMethod": "POST", + // "id": "compute.instances.setMinCpuPlatform", + // "parameterOrder": [ + // "project", + // "zone", + // "instance" + // ], + // "parameters": { + // "instance": { + // "description": "Name of the instance scoping this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + // "request": { + // "$ref": "InstancesSetMinCpuPlatformRequest" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.instances.setScheduling": type InstancesSetSchedulingCall struct { @@ -41075,11 +49529,10 @@ type InstancesStopCall struct { // Stop: Stops a running instance, shutting it down cleanly, and allows // you to restart the instance at a later time. Stopped instances do not -// incur per-minute, virtual machine usage charges while they are -// stopped, but any resources that the virtual machine is using, such as -// persistent disks and static IP addresses, will continue to be charged -// until they are deleted. For more information, see Stopping an -// instance. +// incur VM usage charges while they are stopped. However, resources +// that the VM is using, such as persistent disks and static IP +// addresses, will continue to be charged until they are deleted. For +// more information, see Stopping an instance. // For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall { c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} @@ -41191,7 +49644,7 @@ func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) } return ret, nil // { - // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + // "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", // "httpMethod": "POST", // "id": "compute.instances.stop", // "parameterOrder": [ @@ -41239,6 +49692,2327 @@ func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) } +// method id "compute.interconnectAttachments.aggregatedList": + +type InterconnectAttachmentsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of interconnect +// attachments. +func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall { + c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": Sets a filter +// {expression} for filtering listed resources. Your {expression} must +// be in the format: field_name comparison_string literal_string. +// +// The field_name is the name of the field you want to compare. Only +// atomic field types are supported (string, number, boolean). The +// comparison_string must be either eq (equals) or ne (not equals). The +// literal_string is the string value to filter to. The literal value +// must be valid for the type of field you are filtering by (string, +// number, boolean). For string fields, the literal value is interpreted +// as a regular expression using RE2 syntax. The literal value must +// match the entire field. +// +// For example, to filter for instances that do not have a name of +// example-instance, you would use name ne example-instance. +// +// You can filter on nested fields. For example, you could filter on +// instances that have set the scheduling.automaticRestart field to +// true. Use filtering on nested fields to take advantage of labels to +// organize and search for results based on label values. +// +// To filter on multiple expressions, provide each separate expression +// within parentheses. For example, (scheduling.automaticRestart eq +// true) (zone eq us-central1-f). Multiple expressions are treated as +// AND expressions, meaning that resources must match all expressions to +// pass the filters. +func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// MaxResults sets the optional parameter "maxResults": The maximum +// number of results per page that should be returned. If the number of +// available results is larger than maxResults, Compute Engine returns a +// nextPageToken that can be used to get the next page of results in +// subsequent list requests. Acceptable values are 0 to 500, inclusive. +// (Default: 500) +func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sorts list results by +// a certain order. By default, results are returned in alphanumerical +// order based on the resource name. +// +// You can also sort results in descending order based on the creation +// timestamp using orderBy="creationTimestamp desc". This sorts results +// based on the creationTimestamp field in reverse chronological order +// (newest result first). Use this to sort resources like operations so +// that the newest operation is returned first. +// +// Currently, only sorting by name or creationTimestamp desc is +// supported. +func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageToken sets the optional parameter "pageToken": Specifies a page +// token to use. Set pageToken to the nextPageToken returned by a +// previous list request to get the next page of results. +func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.aggregatedList" call. +// Exactly one of *InterconnectAttachmentAggregatedList or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectAttachmentAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves an aggregated list of interconnect attachments.", + // "httpMethod": "GET", + // "id": "compute.interconnectAttachments.aggregatedList", + // "parameterOrder": [ + // "project" + // ], + // "parameters": { + // "filter": { + // "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + // "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.\n\nYou 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.\n\nCurrently, 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" + // } + // }, + // "path": "{project}/aggregated/interconnectAttachments", + // "response": { + // "$ref": "InterconnectAttachmentAggregatedList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "compute.interconnectAttachments.delete": + +type InterconnectAttachmentsDeleteCall struct { + s *Service + project string + region string + interconnectAttachment string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified interconnect attachment. +func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall { + c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectAttachment = interconnectAttachment + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectAttachmentsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "interconnectAttachment": c.interconnectAttachment, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes the specified interconnect attachment.", + // "httpMethod": "DELETE", + // "id": "compute.interconnectAttachments.delete", + // "parameterOrder": [ + // "project", + // "region", + // "interconnectAttachment" + // ], + // "parameters": { + // "interconnectAttachment": { + // "description": "Name of the interconnect attachment to delete.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "region": { + // "description": "Name of the region for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.interconnectAttachments.get": + +type InterconnectAttachmentsGetCall struct { + s *Service + project string + region string + interconnectAttachment string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified interconnect attachment. +func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall { + c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectAttachment = interconnectAttachment + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectAttachmentsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "interconnectAttachment": c.interconnectAttachment, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.get" call. +// Exactly one of *InterconnectAttachment or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InterconnectAttachment.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectAttachment{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the specified interconnect attachment.", + // "httpMethod": "GET", + // "id": "compute.interconnectAttachments.get", + // "parameterOrder": [ + // "project", + // "region", + // "interconnectAttachment" + // ], + // "parameters": { + // "interconnectAttachment": { + // "description": "Name of the interconnect attachment to return.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "region": { + // "description": "Name of the region for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + // "response": { + // "$ref": "InterconnectAttachment" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// method id "compute.interconnectAttachments.insert": + +type InterconnectAttachmentsInsertCall struct { + s *Service + project string + region string + interconnectattachment *InterconnectAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an InterconnectAttachment in the specified project +// using the data included in the request. +func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall { + c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectattachment = interconnectattachment + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectAttachmentsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.insert" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", + // "httpMethod": "POST", + // "id": "compute.interconnectAttachments.insert", + // "parameterOrder": [ + // "project", + // "region" + // ], + // "parameters": { + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "region": { + // "description": "Name of the region for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/regions/{region}/interconnectAttachments", + // "request": { + // "$ref": "InterconnectAttachment" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.interconnectAttachments.list": + +type InterconnectAttachmentsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of interconnect attachments contained within +// the specified region. +func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall { + c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": Sets a filter +// {expression} for filtering listed resources. Your {expression} must +// be in the format: field_name comparison_string literal_string. +// +// The field_name is the name of the field you want to compare. Only +// atomic field types are supported (string, number, boolean). The +// comparison_string must be either eq (equals) or ne (not equals). The +// literal_string is the string value to filter to. The literal value +// must be valid for the type of field you are filtering by (string, +// number, boolean). For string fields, the literal value is interpreted +// as a regular expression using RE2 syntax. The literal value must +// match the entire field. +// +// For example, to filter for instances that do not have a name of +// example-instance, you would use name ne example-instance. +// +// You can filter on nested fields. For example, you could filter on +// instances that have set the scheduling.automaticRestart field to +// true. Use filtering on nested fields to take advantage of labels to +// organize and search for results based on label values. +// +// To filter on multiple expressions, provide each separate expression +// within parentheses. For example, (scheduling.automaticRestart eq +// true) (zone eq us-central1-f). Multiple expressions are treated as +// AND expressions, meaning that resources must match all expressions to +// pass the filters. +func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// MaxResults sets the optional parameter "maxResults": The maximum +// number of results per page that should be returned. If the number of +// available results is larger than maxResults, Compute Engine returns a +// nextPageToken that can be used to get the next page of results in +// subsequent list requests. Acceptable values are 0 to 500, inclusive. +// (Default: 500) +func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sorts list results by +// a certain order. By default, results are returned in alphanumerical +// order based on the resource name. +// +// You can also sort results in descending order based on the creation +// timestamp using orderBy="creationTimestamp desc". This sorts results +// based on the creationTimestamp field in reverse chronological order +// (newest result first). Use this to sort resources like operations so +// that the newest operation is returned first. +// +// Currently, only sorting by name or creationTimestamp desc is +// supported. +func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageToken sets the optional parameter "pageToken": Specifies a page +// token to use. Set pageToken to the nextPageToken returned by a +// previous list request to get the next page of results. +func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectAttachmentsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.list" call. +// Exactly one of *InterconnectAttachmentList or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentList.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectAttachmentList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves the list of interconnect attachments contained within the specified region.", + // "httpMethod": "GET", + // "id": "compute.interconnectAttachments.list", + // "parameterOrder": [ + // "project", + // "region" + // ], + // "parameters": { + // "filter": { + // "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + // "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.\n\nYou 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.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.", + // "location": "query", + // "type": "string" + // }, + // "pageToken": { + // "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.", + // "location": "query", + // "type": "string" + // }, + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "region": { + // "description": "Name of the region for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "{project}/regions/{region}/interconnectAttachments", + // "response": { + // "$ref": "InterconnectAttachmentList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "compute.interconnectLocations.get": + +type InterconnectLocationsGetCall struct { + s *Service + project string + interconnectLocation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the details for the specified interconnect location. Get +// a list of available interconnect locations by making a list() +// request. +func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall { + c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectLocation = interconnectLocation + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectLocationsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectLocation": c.interconnectLocation, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectLocations.get" call. +// Exactly one of *InterconnectLocation or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InterconnectLocation.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectLocation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.", + // "httpMethod": "GET", + // "id": "compute.interconnectLocations.get", + // "parameterOrder": [ + // "project", + // "interconnectLocation" + // ], + // "parameters": { + // "interconnectLocation": { + // "description": "Name of the interconnect location to return.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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": "{project}/global/interconnectLocations/{interconnectLocation}", + // "response": { + // "$ref": "InterconnectLocation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// method id "compute.interconnectLocations.list": + +type InterconnectLocationsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of interconnect locations available to the +// specified project. +func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall { + c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": Sets a filter +// {expression} for filtering listed resources. Your {expression} must +// be in the format: field_name comparison_string literal_string. +// +// The field_name is the name of the field you want to compare. Only +// atomic field types are supported (string, number, boolean). The +// comparison_string must be either eq (equals) or ne (not equals). The +// literal_string is the string value to filter to. The literal value +// must be valid for the type of field you are filtering by (string, +// number, boolean). For string fields, the literal value is interpreted +// as a regular expression using RE2 syntax. The literal value must +// match the entire field. +// +// For example, to filter for instances that do not have a name of +// example-instance, you would use name ne example-instance. +// +// You can filter on nested fields. For example, you could filter on +// instances that have set the scheduling.automaticRestart field to +// true. Use filtering on nested fields to take advantage of labels to +// organize and search for results based on label values. +// +// To filter on multiple expressions, provide each separate expression +// within parentheses. For example, (scheduling.automaticRestart eq +// true) (zone eq us-central1-f). Multiple expressions are treated as +// AND expressions, meaning that resources must match all expressions to +// pass the filters. +func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// MaxResults sets the optional parameter "maxResults": The maximum +// number of results per page that should be returned. If the number of +// available results is larger than maxResults, Compute Engine returns a +// nextPageToken that can be used to get the next page of results in +// subsequent list requests. Acceptable values are 0 to 500, inclusive. +// (Default: 500) +func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sorts list results by +// a certain order. By default, results are returned in alphanumerical +// order based on the resource name. +// +// You can also sort results in descending order based on the creation +// timestamp using orderBy="creationTimestamp desc". This sorts results +// based on the creationTimestamp field in reverse chronological order +// (newest result first). Use this to sort resources like operations so +// that the newest operation is returned first. +// +// Currently, only sorting by name or creationTimestamp desc is +// supported. +func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageToken sets the optional parameter "pageToken": Specifies a page +// token to use. Set pageToken to the nextPageToken returned by a +// previous list request to get the next page of results. +func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectLocationsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectLocations.list" call. +// Exactly one of *InterconnectLocationList or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectLocationList.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectLocationList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves the list of interconnect locations available to the specified project.", + // "httpMethod": "GET", + // "id": "compute.interconnectLocations.list", + // "parameterOrder": [ + // "project" + // ], + // "parameters": { + // "filter": { + // "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + // "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.\n\nYou 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.\n\nCurrently, 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" + // } + // }, + // "path": "{project}/global/interconnectLocations", + // "response": { + // "$ref": "InterconnectLocationList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "compute.interconnects.delete": + +type InterconnectsDeleteCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified interconnect. +func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall { + c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnect = interconnect + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnect": c.interconnect, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnects.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes the specified interconnect.", + // "httpMethod": "DELETE", + // "id": "compute.interconnects.delete", + // "parameterOrder": [ + // "project", + // "interconnect" + // ], + // "parameters": { + // "interconnect": { + // "description": "Name of the interconnect to delete.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/global/interconnects/{interconnect}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.interconnects.get": + +type InterconnectsGetCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified interconnect. Get a list of available +// interconnects by making a list() request. +func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall { + c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnect = interconnect + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnect": c.interconnect, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnects.get" call. +// Exactly one of *Interconnect or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Interconnect.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Interconnect{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.", + // "httpMethod": "GET", + // "id": "compute.interconnects.get", + // "parameterOrder": [ + // "project", + // "interconnect" + // ], + // "parameters": { + // "interconnect": { + // "description": "Name of the interconnect to return.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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": "{project}/global/interconnects/{interconnect}", + // "response": { + // "$ref": "Interconnect" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// method id "compute.interconnects.insert": + +type InterconnectsInsertCall struct { + s *Service + project string + interconnect *Interconnect + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a Interconnect in the specified project using the +// data included in the request. +func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall { + c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnect = interconnect + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnects.insert" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a Interconnect in the specified project using the data included in the request.", + // "httpMethod": "POST", + // "id": "compute.interconnects.insert", + // "parameterOrder": [ + // "project" + // ], + // "parameters": { + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/global/interconnects", + // "request": { + // "$ref": "Interconnect" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.interconnects.list": + +type InterconnectsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of interconnect available to the specified +// project. +func (r *InterconnectsService) List(project string) *InterconnectsListCall { + c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": Sets a filter +// {expression} for filtering listed resources. Your {expression} must +// be in the format: field_name comparison_string literal_string. +// +// The field_name is the name of the field you want to compare. Only +// atomic field types are supported (string, number, boolean). The +// comparison_string must be either eq (equals) or ne (not equals). The +// literal_string is the string value to filter to. The literal value +// must be valid for the type of field you are filtering by (string, +// number, boolean). For string fields, the literal value is interpreted +// as a regular expression using RE2 syntax. The literal value must +// match the entire field. +// +// For example, to filter for instances that do not have a name of +// example-instance, you would use name ne example-instance. +// +// You can filter on nested fields. For example, you could filter on +// instances that have set the scheduling.automaticRestart field to +// true. Use filtering on nested fields to take advantage of labels to +// organize and search for results based on label values. +// +// To filter on multiple expressions, provide each separate expression +// within parentheses. For example, (scheduling.automaticRestart eq +// true) (zone eq us-central1-f). Multiple expressions are treated as +// AND expressions, meaning that resources must match all expressions to +// pass the filters. +func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// MaxResults sets the optional parameter "maxResults": The maximum +// number of results per page that should be returned. If the number of +// available results is larger than maxResults, Compute Engine returns a +// nextPageToken that can be used to get the next page of results in +// subsequent list requests. Acceptable values are 0 to 500, inclusive. +// (Default: 500) +func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sorts list results by +// a certain order. By default, results are returned in alphanumerical +// order based on the resource name. +// +// You can also sort results in descending order based on the creation +// timestamp using orderBy="creationTimestamp desc". This sorts results +// based on the creationTimestamp field in reverse chronological order +// (newest result first). Use this to sort resources like operations so +// that the newest operation is returned first. +// +// Currently, only sorting by name or creationTimestamp desc is +// supported. +func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageToken sets the optional parameter "pageToken": Specifies a page +// token to use. Set pageToken to the nextPageToken returned by a +// previous list request to get the next page of results. +func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnects.list" call. +// Exactly one of *InterconnectList or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InterconnectList.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &InterconnectList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves the list of interconnect available to the specified project.", + // "httpMethod": "GET", + // "id": "compute.interconnects.list", + // "parameterOrder": [ + // "project" + // ], + // "parameters": { + // "filter": { + // "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.", + // "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.\n\nYou 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.\n\nCurrently, 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" + // } + // }, + // "path": "{project}/global/interconnects", + // "response": { + // "$ref": "InterconnectList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "compute.interconnects.patch": + +type InterconnectsPatchCall struct { + s *Service + project string + interconnect string + interconnect2 *Interconnect + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: 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. +func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall { + c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnect = interconnect + c.interconnect2 = interconnect2 + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InterconnectsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnect": c.interconnect, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnects.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "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.", + // "httpMethod": "PATCH", + // "id": "compute.interconnects.patch", + // "parameterOrder": [ + // "project", + // "interconnect" + // ], + // "parameters": { + // "interconnect": { + // "description": "Name of the interconnect to update.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/global/interconnects/{interconnect}", + // "request": { + // "$ref": "Interconnect" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.licenses.get": type LicensesGetCall struct { @@ -42969,6 +53743,177 @@ func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error } } +// method id "compute.networks.patch": + +type NetworksPatchCall struct { + s *Service + project string + network string + network2 *Network + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified network with the data included in the +// request. +func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall { + c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.network = network + c.network2 = network2 + return c +} + +// RequestId sets the optional parameter "requestId": An optional +// request ID to identify requests. Specify a unique request ID so that +// if you must retry your request, the server will know to ignore the +// request if it has already been completed. +// +// For example, consider a situation where you make an initial request +// and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the +// same request ID was received, and if so, will ignore the second +// request. This prevents clients from accidentally creating duplicate +// commitments. +// +// The request ID must be a valid UUID with the exception that zero UUID +// is not supported (00000000-0000-0000-0000-000000000000). +func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *NetworksPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "network": c.network, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.networks.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Patches the specified network with the data included in the request.", + // "httpMethod": "PATCH", + // "id": "compute.networks.patch", + // "parameterOrder": [ + // "project", + // "network" + // ], + // "parameters": { + // "network": { + // "description": "Name of the network to update.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "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.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request 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": "{project}/global/networks/{network}", + // "request": { + // "$ref": "Network" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.networks.removePeering": type NetworksRemovePeeringCall struct { diff --git a/vendor/google.golang.org/api/container/v1/container-api.json b/vendor/google.golang.org/api/container/v1/container-api.json index e709291c9..b4c953718 100644 --- a/vendor/google.golang.org/api/container/v1/container-api.json +++ b/vendor/google.golang.org/api/container/v1/container-api.json @@ -1,12 +1,8 @@ { - "rootUrl": "https://container.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "container", "batchPath": "batch", "documentationLink": "https://cloud.google.com/container-engine/", + "revision": "20170929", "id": "container:v1", - "revision": "20170915", "title": "Google Container Engine API", "discoveryVersion": "v1", "ownerName": "Google", @@ -24,9 +20,6 @@ "zone" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "projectId": { "location": "path", @@ -35,12 +28,15 @@ "required": true }, "zone": { - "location": "path", "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for.", "type": "string", - "required": true + "required": true, + "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectId}/zones/{zone}/serverconfig", "id": "container.projects.zones.getServerconfig", "path": "v1/projects/{projectId}/zones/{zone}/serverconfig", @@ -48,1099 +44,6 @@ } }, "resources": { - "clusters": { - "methods": { - "update": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to upgrade.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.update", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "request": { - "$ref": "UpdateClusterRequest" - }, - "description": "Updates the settings of a specific cluster." - }, - "monitoring": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", - "id": "container.projects.zones.clusters.monitoring", - "request": { - "$ref": "SetMonitoringServiceRequest" - }, - "description": "Sets the monitoring service of a specific cluster.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade." - } - } - }, - "master": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", - "id": "container.projects.zones.clusters.master", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", - "request": { - "$ref": "UpdateMasterRequest" - }, - "description": "Updates the master of a specific cluster.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade." - } - } - }, - "setMasterAuth": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", - "id": "container.projects.zones.clusters.setMasterAuth", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", - "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set the password.", - "request": { - "$ref": "SetMasterAuthRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to upgrade.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "logging": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", - "id": "container.projects.zones.clusters.logging", - "description": "Sets the logging service of a specific cluster.", - "request": { - "$ref": "SetLoggingServiceRequest" - } - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [ - "projectId", - "zone" - ], - "response": { - "$ref": "ListClustersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", - "path": "v1/projects/{projectId}/zones/{zone}/clusters", - "id": "container.projects.zones.clusters.list", - "description": "Lists all clusters owned by a project in either the specified zone or all\nzones." - }, - "create": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", - "id": "container.projects.zones.clusters.create", - "path": "v1/projects/{projectId}/zones/{zone}/clusters", - "request": { - "$ref": "CreateClusterRequest" - }, - "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - } - } - }, - "resourceLabels": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", - "id": "container.projects.zones.clusters.resourceLabels", - "description": "Sets labels on a cluster.", - "request": { - "$ref": "SetLabelsRequest" - } - }, - "completeIpRotation": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", - "id": "container.projects.zones.clusters.completeIpRotation", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", - "description": "Completes master IP rotation.", - "request": { - "$ref": "CompleteIPRotationRequest" - } - }, - "setNetworkPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", - "id": "container.projects.zones.clusters.setNetworkPolicy", - "description": "Enables/Disables Network Policy for a cluster.", - "request": { - "$ref": "SetNetworkPolicyRequest" - } - }, - "legacyAbac": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to update.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", - "id": "container.projects.zones.clusters.legacyAbac", - "description": "Enables or disables the ABAC authorization mechanism on a cluster.", - "request": { - "$ref": "SetLegacyAbacRequest" - } - }, - "get": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.get", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "description": "Gets the details of a specific cluster.", - "response": { - "$ref": "Cluster" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to retrieve." - } - } - }, - "startIpRotation": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", - "id": "container.projects.zones.clusters.startIpRotation", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", - "request": { - "$ref": "StartIPRotationRequest" - }, - "description": "Start master IP rotation.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.", - "type": "string", - "required": true - } - } - }, - "addons": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to upgrade.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", - "id": "container.projects.zones.clusters.addons", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", - "description": "Sets the addons of a specific cluster.", - "request": { - "$ref": "SetAddonsConfigRequest" - } - }, - "setMaintenancePolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to update.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", - "id": "container.projects.zones.clusters.setMaintenancePolicy", - "description": "Sets the maintenance policy for a cluster.", - "request": { - "$ref": "SetMaintenancePolicyRequest" - } - }, - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to delete.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.delete", - "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time." - }, - "locations": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to upgrade.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", - "id": "container.projects.zones.clusters.locations", - "request": { - "$ref": "SetLocationsRequest" - }, - "description": "Sets the locations of a specific cluster." - } - }, - "resources": { - "nodePools": { - "methods": { - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "response": { - "$ref": "NodePool" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber)." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.", - "type": "string", - "required": true - }, - "nodePoolId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the node pool." - } - }, - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "id": "container.projects.zones.clusters.nodePools.get", - "description": "Retrieves the node pool requested." - }, - "update": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", - "id": "container.projects.zones.clusters.nodePools.update", - "request": { - "$ref": "UpdateNodePoolRequest" - }, - "description": "Updates the version and/or image type of a specific node pool.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade." - }, - "nodePoolId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the node pool to upgrade." - } - } - }, - "delete": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "DELETE", - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.", - "type": "string", - "required": true - }, - "nodePoolId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the node pool to delete." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "id": "container.projects.zones.clusters.nodePools.delete", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "description": "Deletes a node pool from a cluster." - }, - "setManagement": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", - "id": "container.projects.zones.clusters.nodePools.setManagement", - "description": "Sets the NodeManagement options for a node pool.", - "request": { - "$ref": "SetNodePoolManagementRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to update.", - "type": "string", - "required": true - }, - "nodePoolId": { - "location": "path", - "description": "The name of the node pool to update.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "setSize": { - "description": "Sets the size of a specific node pool.", - "request": { - "$ref": "SetNodePoolSizeRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to update." - }, - "nodePoolId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the node pool to update." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize", - "id": "container.projects.zones.clusters.nodePools.setSize" - }, - "list": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "id": "container.projects.zones.clusters.nodePools.list", - "description": "Lists the node pools for a cluster.", - "httpMethod": "GET", - "response": { - "$ref": "ListNodePoolsResponse" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "rollback": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to rollback.", - "type": "string", - "required": true - }, - "nodePoolId": { - "location": "path", - "description": "The name of the node pool to rollback.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", - "id": "container.projects.zones.clusters.nodePools.rollback", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", - "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed.", - "request": { - "$ref": "RollbackNodePoolUpgradeRequest" - } - }, - "create": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "id": "container.projects.zones.clusters.nodePools.create", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "description": "Creates a node pool for a cluster.", - "request": { - "$ref": "CreateNodePoolRequest" - } - }, - "autoscaling": { - "description": "Sets the autoscaling settings of a specific node pool.", - "request": { - "$ref": "SetNodePoolAutoscalingRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade." - }, - "nodePoolId": { - "location": "path", - "description": "The name of the node pool to upgrade.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling", - "id": "container.projects.zones.clusters.nodePools.autoscaling", - "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling" - } - } - } - } - }, "operations": { "methods": { "cancel": { @@ -1195,23 +98,23 @@ ], "httpMethod": "GET", "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." - }, - "zone": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." - }, "operationId": { "location": "path", "description": "The server-assigned `name` of the operation.", "type": "string", "required": true + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true, + "location": "path" } }, "scopes": [ @@ -1223,18 +126,59 @@ "description": "Gets the specified operation." }, "list": { - "flatPath": "v1/projects/{projectId}/zones/{zone}/operations", - "path": "v1/projects/{projectId}/zones/{zone}/operations", - "id": "container.projects.zones.operations.list", "description": "Lists all operations in a project in a specific zone or all zones.", "httpMethod": "GET", - "response": { - "$ref": "ListOperationsResponse" - }, "parameterOrder": [ "projectId", "zone" ], + "response": { + "$ref": "ListOperationsResponse" + }, + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/operations", + "path": "v1/projects/{projectId}/zones/{zone}/operations", + "id": "container.projects.zones.operations.list" + } + } + }, + "clusters": { + "methods": { + "locations": { + "id": "container.projects.zones.clusters.locations", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations", + "request": { + "$ref": "SetLocationsRequest" + }, + "description": "Sets the locations of a specific cluster.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "projectId": { "location": "path", @@ -1243,15 +187,1067 @@ "required": true }, "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations" + }, + "update": { + "request": { + "$ref": "UpdateClusterRequest" + }, + "description": "Updates the settings of a specific cluster.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "clusterId": { + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.update", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}" + }, + "monitoring": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", + "id": "container.projects.zones.clusters.monitoring", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring", + "request": { + "$ref": "SetMonitoringServiceRequest" + }, + "description": "Sets the monitoring service of a specific cluster." + }, + "master": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "clusterId": { "type": "string", "required": true, "location": "path", - "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones." + "description": "The name of the cluster to upgrade." + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master", + "id": "container.projects.zones.clusters.master", + "description": "Updates the master of a specific cluster.", + "request": { + "$ref": "UpdateMasterRequest" + } + }, + "setMasterAuth": { + "id": "container.projects.zones.clusters.setMasterAuth", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", + "request": { + "$ref": "SetMasterAuthRequest" + }, + "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set the password.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth" + }, + "logging": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the cluster to upgrade." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", + "id": "container.projects.zones.clusters.logging", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging", + "description": "Sets the logging service of a specific cluster.", + "request": { + "$ref": "SetLoggingServiceRequest" + } + }, + "list": { + "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId", + "zone" + ], + "response": { + "$ref": "ListClustersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", + "path": "v1/projects/{projectId}/zones/{zone}/clusters", + "id": "container.projects.zones.clusters.list" + }, + "create": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters", + "id": "container.projects.zones.clusters.create", + "path": "v1/projects/{projectId}/zones/{zone}/clusters", + "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.", + "request": { + "$ref": "CreateClusterRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "resourceLabels": { + "request": { + "$ref": "SetLabelsRequest" + }, + "description": "Sets labels on a cluster.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", + "id": "container.projects.zones.clusters.resourceLabels" + }, + "completeIpRotation": { + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", + "id": "container.projects.zones.clusters.completeIpRotation", + "request": { + "$ref": "CompleteIPRotationRequest" + }, + "description": "Completes master IP rotation.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "clusterId": { + "location": "path", + "description": "The name of the cluster.", + "type": "string", + "required": true + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation" + }, + "setNetworkPolicy": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", + "id": "container.projects.zones.clusters.setNetworkPolicy", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", + "description": "Enables/Disables Network Policy for a cluster.", + "request": { + "$ref": "SetNetworkPolicyRequest" + } + }, + "legacyAbac": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", + "id": "container.projects.zones.clusters.legacyAbac", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", + "description": "Enables or disables the ABAC authorization mechanism on a cluster.", + "request": { + "$ref": "SetLegacyAbacRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.get", + "description": "Gets the details of a specific cluster.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Cluster" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster to retrieve.", + "type": "string", + "required": true, + "location": "path" + } + } + }, + "startIpRotation": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", + "id": "container.projects.zones.clusters.startIpRotation", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", + "request": { + "$ref": "StartIPRotationRequest" + }, + "description": "Start master IP rotation." + }, + "setMaintenancePolicy": { + "id": "container.projects.zones.clusters.setMaintenancePolicy", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", + "description": "Sets the maintenance policy for a cluster.", + "request": { + "$ref": "SetMaintenancePolicyRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy" + }, + "addons": { + "description": "Sets the addons of a specific cluster.", + "request": { + "$ref": "SetAddonsConfigRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons", + "id": "container.projects.zones.clusters.addons" + }, + "delete": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.delete", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "DELETE", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true, + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to delete.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "nodePools": { + "methods": { + "get": { + "id": "container.projects.zones.clusters.nodePools.get", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "description": "Retrieves the node pool requested.", + "response": { + "$ref": "NodePool" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "GET", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." + }, + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + }, + "nodePoolId": { + "description": "The name of the node pool.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}" + }, + "update": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true, + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to upgrade.", + "type": "string", + "required": true + }, + "nodePoolId": { + "description": "The name of the node pool to upgrade.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", + "id": "container.projects.zones.clusters.nodePools.update", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update", + "description": "Updates the version and/or image type of a specific node pool.", + "request": { + "$ref": "UpdateNodePoolRequest" + } + }, + "setSize": { + "request": { + "$ref": "SetNodePoolSizeRequest" + }, + "description": "Sets the size of a specific node pool.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.", + "type": "string", + "required": true + }, + "nodePoolId": { + "description": "The name of the node pool to update.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize", + "id": "container.projects.zones.clusters.nodePools.setSize", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize" + }, + "setManagement": { + "id": "container.projects.zones.clusters.nodePools.setManagement", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", + "request": { + "$ref": "SetNodePoolManagementRequest" + }, + "description": "Sets the NodeManagement options for a node pool.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "clusterId": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the cluster to update." + }, + "nodePoolId": { + "location": "path", + "description": "The name of the node pool to update.", + "type": "string", + "required": true + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement" + }, + "delete": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "id": "container.projects.zones.clusters.nodePools.delete", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "description": "Deletes a node pool from a cluster.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "DELETE", + "parameters": { + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + }, + "nodePoolId": { + "location": "path", + "description": "The name of the node pool to delete.", + "type": "string", + "required": true + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).", + "type": "string", + "required": true, + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the node pools for a cluster.", + "response": { + "$ref": "ListNodePoolsResponse" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber)." + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "id": "container.projects.zones.clusters.nodePools.list", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools" + }, + "rollback": { + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", + "id": "container.projects.zones.clusters.nodePools.rollback", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", + "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed.", + "request": { + "$ref": "RollbackNodePoolUpgradeRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "POST", + "parameters": { + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true, + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to rollback.", + "type": "string", + "required": true + }, + "nodePoolId": { + "description": "The name of the node pool to rollback.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string", + "required": true + }, + "clusterId": { + "description": "The name of the cluster.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber)." + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "id": "container.projects.zones.clusters.nodePools.create", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "request": { + "$ref": "CreateNodePoolRequest" + }, + "description": "Creates a node pool for a cluster." + }, + "autoscaling": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "clusterId": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the cluster to upgrade." + }, + "nodePoolId": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the node pool to upgrade." + }, + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." + }, + "zone": { + "type": "string", + "required": true, + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." + } + }, + "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling", + "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling", + "id": "container.projects.zones.clusters.nodePools.autoscaling", + "request": { + "$ref": "SetNodePoolAutoscalingRequest" + }, + "description": "Sets the autoscaling settings of a specific node pool." + } + } } } } @@ -1272,25 +1268,25 @@ "type": "string" }, "quotaUser": { - "type": "string", "location": "query", - "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." + "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.", + "type": "string" }, "pp": { + "description": "Pretty-print response.", "default": "true", "type": "boolean", - "location": "query", - "description": "Pretty-print response." + "location": "query" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string" + "type": "string", + "location": "query" }, "bearer_token": { - "location": "query", "description": "OAuth bearer token.", - "type": "string" + "type": "string", + "location": "query" }, "upload_protocol": { "location": "query", @@ -1298,57 +1294,63 @@ "type": "string" }, "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean", - "location": "query", - "description": "Returns response with indentations and line breaks." - }, - "fields": { - "type": "string", - "location": "query", - "description": "Selector specifying which fields to include in a partial response." + "type": "boolean" }, "uploadType": { - "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "$.xgafv": { - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], "location": "query", "enum": [ "1", "2" ], - "description": "V1 error format." - }, - "alt": { + "description": "V1 error format.", "type": "string", "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", + "v1 error format", + "v2 error format" + ] + }, + "alt": { "description": "Data format for response.", "default": "json", "enum": [ "json", "media", "proto" - ] + ], + "type": "string", + "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" } }, "schemas": { + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, "ListNodePoolsResponse": { "description": "ListNodePoolsResponse is the result of ListNodePoolsRequest.", "type": "object", @@ -1364,41 +1366,38 @@ "id": "ListNodePoolsResponse" }, "CompleteIPRotationRequest": { + "id": "CompleteIPRotationRequest", "description": "CompleteIPRotationRequest moves the cluster master back into single-IP mode.", "type": "object", - "properties": {}, - "id": "CompleteIPRotationRequest" + "properties": {} }, "StartIPRotationRequest": { - "description": "StartIPRotationRequest creates a new IP for the cluster and then performs\na node upgrade on each node pool to point to the new IP.", "type": "object", "properties": {}, - "id": "StartIPRotationRequest" + "id": "StartIPRotationRequest", + "description": "StartIPRotationRequest creates a new IP for the cluster and then performs\na node upgrade on each node pool to point to the new IP." }, "SetLabelsRequest": { + "description": "SetLabelsRequest sets the Google Cloud Platform labels on a Google Container\nEngine cluster, which will in turn set them for Google Compute Engine\nresources used by that cluster", "type": "object", "properties": { "resourceLabels": { - "type": "object", "additionalProperties": { "type": "string" }, - "description": "The labels to set for that cluster." + "description": "The labels to set for that cluster.", + "type": "object" }, "labelFingerprint": { - "type": "string", - "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by\nContainer Engine and changes after every request to modify or update\nlabels. You must always provide an up-to-date fingerprint hash when\nupdating or changing labels. Make a \u003ccode\u003eget()\u003c/code\u003e request to the\nresource to get the latest fingerprint." + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by\nContainer Engine and changes after every request to modify or update\nlabels. You must always provide an up-to-date fingerprint hash when\nupdating or changing labels. Make a \u003ccode\u003eget()\u003c/code\u003e request to the\nresource to get the latest fingerprint.", + "type": "string" } }, - "id": "SetLabelsRequest", - "description": "SetLabelsRequest sets the Google Cloud Platform labels on a Google Container\nEngine cluster, which will in turn set them for Google Compute Engine\nresources used by that cluster" + "id": "SetLabelsRequest" }, "NodePool": { - "description": "NodePool contains the name and configuration for a cluster's node pool.\nNode pools are a set of nodes (i.e. VM's), with a common configuration and\nspecification, under the control of the cluster master. They may have a set\nof Kubernetes labels applied to them, which may be used to reference them\nduring pod scheduling. They may also be resized up or down, to accommodate\nthe workload.", - "type": "object", "properties": { "status": { - "type": "string", "enumDescriptions": [ "Not set.", "The PROVISIONING state indicates the node pool is being created.", @@ -1417,62 +1416,65 @@ "STOPPING", "ERROR" ], - "description": "[Output only] The status of the nodes in this pool instance." + "description": "[Output only] The status of the nodes in this pool instance.", + "type": "string" }, "config": { - "$ref": "NodeConfig", - "description": "The node configuration of the pool." - }, - "name": { - "type": "string", - "description": "The name of the node pool." + "description": "The node configuration of the pool.", + "$ref": "NodeConfig" }, "statusMessage": { - "type": "string", - "description": "[Output only] Additional information about the current status of this\nnode pool instance, if available." + "description": "[Output only] Additional information about the current status of this\nnode pool instance, if available.", + "type": "string" + }, + "name": { + "description": "The name of the node pool.", + "type": "string" }, "autoscaling": { - "$ref": "NodePoolAutoscaling", - "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled\nonly if a valid configuration is present." + "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled\nonly if a valid configuration is present.", + "$ref": "NodePoolAutoscaling" }, "management": { - "$ref": "NodeManagement", - "description": "NodeManagement configuration for this NodePool." + "description": "NodeManagement configuration for this NodePool.", + "$ref": "NodeManagement" }, "initialNodeCount": { + "type": "integer", "format": "int32", - "description": "The initial node count for the pool. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.", - "type": "integer" + "description": "The initial node count for the pool. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota." }, "selfLink": { - "type": "string", - "description": "[Output only] Server-defined URL for the resource." - }, - "version": { - "type": "string", - "description": "[Output only] The version of the Kubernetes of this node." + "description": "[Output only] Server-defined URL for the resource.", + "type": "string" }, "instanceGroupUrls": { + "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\nnode pool.", "items": { "type": "string" }, - "type": "array", - "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\nnode pool." + "type": "array" + }, + "version": { + "description": "[Output only] The version of the Kubernetes of this node.", + "type": "string" } }, - "id": "NodePool" + "id": "NodePool", + "description": "NodePool contains the name and configuration for a cluster's node pool.\nNode pools are a set of nodes (i.e. VM's), with a common configuration and\nspecification, under the control of the cluster master. They may have a set\nof Kubernetes labels applied to them, which may be used to reference them\nduring pod scheduling. They may also be resized up or down, to accommodate\nthe workload.", + "type": "object" }, "NodeManagement": { "description": "NodeManagement defines the set of node management services turned on for the\nnode pool.", "type": "object", "properties": { "autoRepair": { - "type": "boolean", - "description": "A flag that specifies whether the node auto-repair is enabled for the node\npool. If enabled, the nodes in this node pool will be monitored and, if\nthey fail health checks too many times, an automatic repair action will be\ntriggered." + "description": "A flag that specifies whether the node auto-repair is enabled for the node\npool. If enabled, the nodes in this node pool will be monitored and, if\nthey fail health checks too many times, an automatic repair action will be\ntriggered.", + "type": "boolean" }, "autoUpgrade": { - "type": "boolean", - "description": "A flag that specifies whether node auto-upgrade is enabled for the node\npool. If enabled, node auto-upgrade helps keep the nodes in your node pool\nup to date with the latest release version of Kubernetes." + "description": "A flag that specifies whether node auto-upgrade is enabled for the node\npool. If enabled, node auto-upgrade helps keep the nodes in your node pool\nup to date with the latest release version of Kubernetes.", + "type": "boolean" }, "upgradeOptions": { "$ref": "AutoUpgradeOptions", @@ -1482,72 +1484,44 @@ "id": "NodeManagement" }, "CancelOperationRequest": { + "id": "CancelOperationRequest", "description": "CancelOperationRequest cancels a single operation.", "type": "object", - "properties": {}, - "id": "CancelOperationRequest" + "properties": {} }, "KubernetesDashboard": { "description": "Configuration for the Kubernetes Dashboard.", "type": "object", "properties": { "disabled": { - "type": "boolean", - "description": "Whether the Kubernetes Dashboard is enabled for this cluster." + "description": "Whether the Kubernetes Dashboard is enabled for this cluster.", + "type": "boolean" } }, "id": "KubernetesDashboard" }, "Operation": { + "description": "This operation resource represents operations that may have happened or are\nhappening on the cluster. All fields are output only.", "type": "object", "properties": { - "zone": { - "type": "string", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation\nis taking place." - }, - "status": { - "type": "string", - "enumDescriptions": [ - "Not set.", - "The operation has been created.", - "The operation is currently running.", - "The operation is done, either cancelled or completed.", - "The operation is aborting." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "PENDING", - "RUNNING", - "DONE", - "ABORTING" - ], - "description": "The current status of the operation." - }, - "statusMessage": { - "description": "If an error has occurred, a textual description of the error.", - "type": "string" - }, - "name": { - "description": "The server-assigned ID for the operation.", - "type": "string" - }, "selfLink": { "description": "Server-defined URL for the resource.", "type": "string" }, + "detail": { + "description": "Detailed operation progress, if available.", + "type": "string" + }, "targetLink": { "description": "Server-defined URL for the target of the operation.", "type": "string" }, "endTime": { - "type": "string", - "description": "[Output only] The time the operation completed, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." - }, - "detail": { - "type": "string", - "description": "Detailed operation progress, if available." + "description": "[Output only] The time the operation completed, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", + "type": "string" }, "operationType": { + "description": "The operation type.", "type": "string", "enumDescriptions": [ "Not set.", @@ -1586,27 +1560,55 @@ "SET_NODE_POOL_SIZE", "SET_NETWORK_POLICY", "SET_MAINTENANCE_POLICY" - ], - "description": "The operation type." + ] }, "startTime": { + "description": "[Output only] The time the operation started, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation\nis taking place.", + "type": "string" + }, + "status": { "type": "string", - "description": "[Output only] The time the operation started, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." + "enumDescriptions": [ + "Not set.", + "The operation has been created.", + "The operation is currently running.", + "The operation is done, either cancelled or completed.", + "The operation is aborting." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "PENDING", + "RUNNING", + "DONE", + "ABORTING" + ], + "description": "The current status of the operation." + }, + "name": { + "description": "The server-assigned ID for the operation.", + "type": "string" + }, + "statusMessage": { + "description": "If an error has occurred, a textual description of the error.", + "type": "string" } }, - "id": "Operation", - "description": "This operation resource represents operations that may have happened or are\nhappening on the cluster. All fields are output only." + "id": "Operation" }, "MaintenanceWindow": { + "id": "MaintenanceWindow", + "description": "MaintenanceWindow defines the maintenance window to be used for the cluster.", "type": "object", "properties": { "dailyMaintenanceWindow": { - "$ref": "DailyMaintenanceWindow", - "description": "DailyMaintenanceWindow specifies a daily maintenance operation window." + "description": "DailyMaintenanceWindow specifies a daily maintenance operation window.", + "$ref": "DailyMaintenanceWindow" } - }, - "id": "MaintenanceWindow", - "description": "MaintenanceWindow defines the maintenance window to be used for the cluster." + } }, "RollbackNodePoolUpgradeRequest": { "description": "RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed\nNodePool upgrade. This will be an no-op if the last upgrade successfully\ncompleted.", @@ -1615,35 +1617,35 @@ "id": "RollbackNodePoolUpgradeRequest" }, "NetworkPolicy": { - "description": "Configuration options for the NetworkPolicy feature.\nhttps://kubernetes.io/docs/concepts/services-networking/networkpolicies/", - "type": "object", "properties": { + "enabled": { + "description": "Whether network policy is enabled on the cluster.", + "type": "boolean" + }, "provider": { - "enum": [ - "PROVIDER_UNSPECIFIED", - "CALICO" - ], - "description": "The selected network policy provider.", "type": "string", "enumDescriptions": [ "Not set", "Tigera (Calico Felix)." - ] - }, - "enabled": { - "type": "boolean", - "description": "Whether network policy is enabled on the cluster." + ], + "enum": [ + "PROVIDER_UNSPECIFIED", + "CALICO" + ], + "description": "The selected network policy provider." } }, - "id": "NetworkPolicy" + "id": "NetworkPolicy", + "description": "Configuration options for the NetworkPolicy feature.\nhttps://kubernetes.io/docs/concepts/services-networking/networkpolicies/", + "type": "object" }, "UpdateMasterRequest": { "description": "UpdateMasterRequest updates the master of the cluster.", "type": "object", "properties": { "masterVersion": { - "type": "string", - "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version." + "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version.", + "type": "string" } }, "id": "UpdateMasterRequest" @@ -1660,30 +1662,15 @@ "type": "array" }, "missingZones": { + "description": "If any zones are listed here, the list of operations returned\nmay be missing the operations from those zones.", "items": { "type": "string" }, - "type": "array", - "description": "If any zones are listed here, the list of operations returned\nmay be missing the operations from those zones." + "type": "array" } }, "id": "ListOperationsResponse" }, - "CidrBlock": { - "type": "object", - "properties": { - "displayName": { - "description": "display_name is an optional field for users to identify CIDR blocks.", - "type": "string" - }, - "cidrBlock": { - "description": "cidr_block must be specified in CIDR notation.", - "type": "string" - } - }, - "id": "CidrBlock", - "description": "CidrBlock contains an optional name and one CIDR block." - }, "SetMonitoringServiceRequest": { "description": "SetMonitoringServiceRequest sets the monitoring service of a cluster.", "type": "object", @@ -1695,7 +1682,23 @@ }, "id": "SetMonitoringServiceRequest" }, + "CidrBlock": { + "description": "CidrBlock contains an optional name and one CIDR block.", + "type": "object", + "properties": { + "cidrBlock": { + "description": "cidr_block must be specified in CIDR notation.", + "type": "string" + }, + "displayName": { + "description": "display_name is an optional field for users to identify CIDR blocks.", + "type": "string" + } + }, + "id": "CidrBlock" + }, "ServerConfig": { + "id": "ServerConfig", "description": "Container Engine service configuration.", "type": "object", "properties": { @@ -1711,8 +1714,8 @@ "type": "string" }, "defaultClusterVersion": { - "type": "string", - "description": "Version of Kubernetes the service deploys by default." + "description": "Version of Kubernetes the service deploys by default.", + "type": "string" }, "validImageTypes": { "description": "List of valid image types.", @@ -1728,13 +1731,17 @@ }, "type": "array" } - }, - "id": "ServerConfig" + } }, "NodeConfig": { "description": "Parameters that describe the nodes in a cluster.", "type": "object", "properties": { + "diskSizeGb": { + "format": "int32", + "description": "Size of the disk attached to each node, specified in GB.\nThe smallest allowed disk size is 10GB.\n\nIf unspecified, the default disk size is 100GB.", + "type": "integer" + }, "accelerators": { "description": "A list of hardware accelerators to be attached to each node.\nSee https://cloud.google.com/compute/docs/gpus for more information about\nsupport for GPUs.", "items": { @@ -1747,17 +1754,17 @@ "type": "string" }, "minCpuPlatform": { - "type": "string", - "description": "Minimum CPU platform to be used by this instance. The instance may be\nscheduled on the specified or newer CPU platform. Applicable values are the\nfriendly names of CPU platforms, such as\n\u003ccode\u003eminCpuPlatform: "Intel Haswell"\u003c/code\u003e or\n\u003ccode\u003eminCpuPlatform: "Intel Sandy Bridge"\u003c/code\u003e. For more\ninformation, 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\nscheduled on the specified or newer CPU platform. Applicable values are the\nfriendly names of CPU platforms, such as\n\u003ccode\u003eminCpuPlatform: "Intel Haswell"\u003c/code\u003e or\n\u003ccode\u003eminCpuPlatform: "Intel Sandy Bridge"\u003c/code\u003e. For more\ninformation, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)", + "type": "string" }, "preemptible": { "description": "Whether the nodes are created as preemptible VM instances. See:\nhttps://cloud.google.com/compute/docs/instances/preemptible for more\ninformation about preemptible VM instances.", "type": "boolean" }, "localSsdCount": { - "type": "integer", "format": "int32", - "description": "The number of local SSD disks to be attached to the node.\n\nThe limit for this value is dependant upon the maximum number of\ndisks available on a machine per zone. See:\nhttps://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits\nfor more information." + "description": "The number of local SSD disks to be attached to the node.\n\nThe limit for this value is dependant upon the maximum number of\ndisks available on a machine per zone. See:\nhttps://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits\nfor more information.", + "type": "integer" }, "metadata": { "additionalProperties": { @@ -1782,11 +1789,11 @@ "type": "string" }, "oauthScopes": { + "description": "The set of Google API scopes to be made available on all of the\nnode VMs under the \"default\" service account.\n\nThe following scopes are recommended, but not required, and by default are\nnot included:\n\n* `https://www.googleapis.com/auth/compute` is required for mounting\npersistent storage on your nodes.\n* `https://www.googleapis.com/auth/devstorage.read_only` is required for\ncommunicating with **gcr.io**\n(the [Google Container Registry](/container-registry/)).\n\nIf unspecified, no scopes are added, unless Cloud Logging or Cloud\nMonitoring are enabled, in which case their required scopes will be added.", "items": { "type": "string" }, - "type": "array", - "description": "The set of Google API scopes to be made available on all of the\nnode VMs under the \"default\" service account.\n\nThe following scopes are recommended, but not required, and by default are\nnot included:\n\n* `https://www.googleapis.com/auth/compute` is required for mounting\npersistent storage on your nodes.\n* `https://www.googleapis.com/auth/devstorage.read_only` is required for\ncommunicating with **gcr.io**\n(the [Google Container Registry](/container-registry/)).\n\nIf unspecified, no scopes are added, unless Cloud Logging or Cloud\nMonitoring are enabled, in which case their required scopes will be added." + "type": "array" }, "labels": { "type": "object", @@ -1794,39 +1801,35 @@ "type": "string" }, "description": "The map of Kubernetes labels (key/value pairs) to be applied to each node.\nThese will added in addition to any default label(s) that\nKubernetes may apply to the node.\nIn case of conflict in label keys, the applied set may differ depending on\nthe Kubernetes version -- it's best to assume the behavior is undefined\nand conflicts should be avoided.\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/" - }, - "diskSizeGb": { - "format": "int32", - "description": "Size of the disk attached to each node, specified in GB.\nThe smallest allowed disk size is 10GB.\n\nIf unspecified, the default disk size is 100GB.", - "type": "integer" } }, "id": "NodeConfig" }, "AutoUpgradeOptions": { + "description": "AutoUpgradeOptions defines the set of options for the user to control how\nthe Auto Upgrades will proceed.", "type": "object", "properties": { - "description": { - "description": "[Output only] This field is set when upgrades are about to commence\nwith the description of the upgrade.", - "type": "string" - }, "autoUpgradeStartTime": { "type": "string", "description": "[Output only] This field is set when upgrades are about to commence\nwith the approximate start time for the upgrades, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." + }, + "description": { + "description": "[Output only] This field is set when upgrades are about to commence\nwith the description of the upgrade.", + "type": "string" } }, - "id": "AutoUpgradeOptions", - "description": "AutoUpgradeOptions defines the set of options for the user to control how\nthe Auto Upgrades will proceed." + "id": "AutoUpgradeOptions" }, "ListClustersResponse": { + "description": "ListClustersResponse is the result of ListClustersRequest.", "type": "object", "properties": { "missingZones": { + "description": "If any zones are listed here, the list of clusters returned\nmay be missing those zones.", "items": { "type": "string" }, - "type": "array", - "description": "If any zones are listed here, the list of clusters returned\nmay be missing those zones." + "type": "array" }, "clusters": { "description": "A list of clusters in the project in the specified zone, or\nacross all ones.", @@ -1836,10 +1839,10 @@ "type": "array" } }, - "id": "ListClustersResponse", - "description": "ListClustersResponse is the result of ListClustersRequest." + "id": "ListClustersResponse" }, "HttpLoadBalancing": { + "description": "Configuration options for the HTTP (L7) load balancing controller addon,\nwhich makes it easy to set up HTTP load balancers for services in a cluster.", "type": "object", "properties": { "disabled": { @@ -1847,8 +1850,7 @@ "type": "boolean" } }, - "id": "HttpLoadBalancing", - "description": "Configuration options for the HTTP (L7) load balancing controller addon,\nwhich makes it easy to set up HTTP load balancers for services in a cluster." + "id": "HttpLoadBalancing" }, "SetNetworkPolicyRequest": { "description": "SetNetworkPolicyRequest enables/disables network policy for a cluster.", @@ -1862,57 +1864,92 @@ "id": "SetNetworkPolicyRequest" }, "NodePoolAutoscaling": { + "description": "NodePoolAutoscaling contains information required by cluster autoscaler to\nadjust the size of the node pool to the current cluster usage.", "type": "object", "properties": { "maxNodeCount": { - "format": "int32", - "description": "Maximum number of nodes in the NodePool. Must be \u003e= min_node_count. There\nhas to enough quota to scale up the cluster.", - "type": "integer" - }, - "minNodeCount": { "type": "integer", "format": "int32", - "description": "Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c=\nmax_node_count." + "description": "Maximum number of nodes in the NodePool. Must be \u003e= min_node_count. There\nhas to enough quota to scale up the cluster." + }, + "minNodeCount": { + "format": "int32", + "description": "Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c=\nmax_node_count.", + "type": "integer" }, "enabled": { - "type": "boolean", - "description": "Is autoscaling enabled for this node pool." + "description": "Is autoscaling enabled for this node pool.", + "type": "boolean" } }, - "id": "NodePoolAutoscaling", - "description": "NodePoolAutoscaling contains information required by cluster autoscaler to\nadjust the size of the node pool to the current cluster usage." + "id": "NodePoolAutoscaling" }, "SetMasterAuthRequest": { + "description": "SetMasterAuthRequest updates the admin password of a cluster.", "type": "object", "properties": { - "update": { - "$ref": "MasterAuth", - "description": "A description of the update." - }, "action": { + "description": "The exact form of action to be taken on the master auth.", "type": "string", "enumDescriptions": [ - "Operation is unknown and will error out", + "Operation is unknown and will error out.", "Set the password to a user generated value.", - "Generate a new password and set it to that." + "Generate a new password and set it to that.", + "Set the username. If an empty username is provided, basic authentication\nis disabled for the cluster. If a non-empty username is provided, basic\nauthentication is enabled, with either a provided password or a generated\none." ], "enum": [ "UNKNOWN", "SET_PASSWORD", - "GENERATE_PASSWORD" - ], - "description": "The exact form of action to be taken on the master auth" + "GENERATE_PASSWORD", + "SET_USERNAME" + ] + }, + "update": { + "$ref": "MasterAuth", + "description": "A description of the update." } }, - "id": "SetMasterAuthRequest", - "description": "SetMasterAuthRequest updates the admin password of a cluster." + "id": "SetMasterAuthRequest" }, "IPAllocationPolicy": { + "description": "Configuration for controlling how IPs are allocated in the cluster.", "type": "object", "properties": { - "subnetworkName": { + "nodeIpv4Cidr": { "type": "string", - "description": "A custom subnetwork name to be used if `create_subnetwork` is true. If\nthis field is empty, then an automatic name will be chosen for the new\nsubnetwork." + "description": "This field is deprecated, use node_ipv4_cidr_block." + }, + "clusterIpv4CidrBlock": { + "description": "The IP address range for the cluster pod IPs. If this field is set, then\n`cluster.cluster_ipv4_cidr` must be left blank.\n\nThis field is only applicable when `use_ip_aliases` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", + "type": "string" + }, + "clusterSecondaryRangeName": { + "description": "The name of the secondary range to be used for the cluster CIDR\nblock. The secondary range will be used for pod IP\naddresses. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases is true and\ncreate_subnetwork is false.", + "type": "string" + }, + "nodeIpv4CidrBlock": { + "description": "The IP address range of the instance IPs in this cluster.\n\nThis is applicable only if `create_subnetwork` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", + "type": "string" + }, + "servicesIpv4Cidr": { + "description": "This field is deprecated, use services_ipv4_cidr_block.", + "type": "string" + }, + "createSubnetwork": { + "description": "Whether a new subnetwork will be created automatically for the cluster.\n\nThis field is only applicable when `use_ip_aliases` is true.", + "type": "boolean" + }, + "useIpAliases": { + "description": "Whether alias IPs will be used for pod IPs in the cluster.", + "type": "boolean" + }, + "servicesSecondaryRangeName": { + "description": "The name of the secondary range to be used as for the services\nCIDR block. The secondary range will be used for service\nClusterIPs. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases is true and\ncreate_subnetwork is false.", + "type": "string" + }, + "subnetworkName": { + "description": "A custom subnetwork name to be used if `create_subnetwork` is true. If\nthis field is empty, then an automatic name will be chosen for the new\nsubnetwork.", + "type": "string" }, "servicesIpv4CidrBlock": { "description": "The IP address range of the services IPs in this cluster. If blank, a range\nwill be automatically chosen with the default size.\n\nThis field is only applicable when `use_ip_aliases` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", @@ -1921,57 +1958,32 @@ "clusterIpv4Cidr": { "description": "This field is deprecated, use cluster_ipv4_cidr_block.", "type": "string" - }, - "nodeIpv4Cidr": { - "type": "string", - "description": "This field is deprecated, use node_ipv4_cidr_block." - }, - "clusterSecondaryRangeName": { - "type": "string", - "description": "The name of the secondary range to be used for the cluster CIDR\nblock. The secondary range will be used for pod IP\naddresses. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases is true and\ncreate_subnetwork is false." - }, - "clusterIpv4CidrBlock": { - "description": "The IP address range for the cluster pod IPs. If this field is set, then\n`cluster.cluster_ipv4_cidr` must be left blank.\n\nThis field is only applicable when `use_ip_aliases` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", - "type": "string" - }, - "nodeIpv4CidrBlock": { - "type": "string", - "description": "The IP address range of the instance IPs in this cluster.\n\nThis is applicable only if `create_subnetwork` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use." - }, - "servicesIpv4Cidr": { - "type": "string", - "description": "This field is deprecated, use services_ipv4_cidr_block." - }, - "servicesSecondaryRangeName": { - "description": "The name of the secondary range to be used as for the services\nCIDR block. The secondary range will be used for service\nClusterIPs. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases is true and\ncreate_subnetwork is false.", - "type": "string" - }, - "useIpAliases": { - "description": "Whether alias IPs will be used for pod IPs in the cluster.", - "type": "boolean" - }, - "createSubnetwork": { - "description": "Whether a new subnetwork will be created automatically for the cluster.\n\nThis field is only applicable when `use_ip_aliases` is true.", - "type": "boolean" } }, - "id": "IPAllocationPolicy", - "description": "Configuration for controlling how IPs are allocated in the cluster." + "id": "IPAllocationPolicy" }, "ClusterUpdate": { "type": "object", "properties": { + "desiredImageType": { + "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well.", + "type": "string" + }, + "desiredAddonsConfig": { + "$ref": "AddonsConfig", + "description": "Configurations for the various addons available to run in the cluster." + }, "desiredNodePoolId": { - "type": "string", - "description": "The node pool to be upgraded. This field is mandatory if\n\"desired_node_version\", \"desired_image_family\" or\n\"desired_node_pool_autoscaling\" is specified and there is more than one\nnode pool on the cluster." + "description": "The node pool to be upgraded. This field is mandatory if\n\"desired_node_version\", \"desired_image_family\" or\n\"desired_node_pool_autoscaling\" is specified and there is more than one\nnode pool on the cluster.", + "type": "string" }, "desiredNodeVersion": { - "type": "string", - "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server." + "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.", + "type": "string" }, "desiredMasterVersion": { - "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version.", - "type": "string" + "type": "string", + "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version." }, "desiredMasterAuthorizedNetworksConfig": { "$ref": "MasterAuthorizedNetworksConfig", @@ -1991,14 +2003,6 @@ "desiredMonitoringService": { "type": "string", "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* \"monitoring.googleapis.com\" - the Google Cloud Monitoring service\n* \"none\" - no metrics will be exported from the cluster" - }, - "desiredImageType": { - "type": "string", - "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well." - }, - "desiredAddonsConfig": { - "$ref": "AddonsConfig", - "description": "Configurations for the various addons available to run in the cluster." } }, "id": "ClusterUpdate", @@ -2009,12 +2013,30 @@ "type": "object", "properties": { "disabled": { - "type": "boolean", - "description": "Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.\nWhen enabled, it ensures that a Heapster pod is running in the cluster,\nwhich is also used by the Cloud Monitoring service." + "description": "Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.\nWhen enabled, it ensures that a Heapster pod is running in the cluster,\nwhich is also used by the Cloud Monitoring service.", + "type": "boolean" } }, "id": "HorizontalPodAutoscaling" }, + "MasterAuthorizedNetworksConfig": { + "type": "object", + "properties": { + "enabled": { + "description": "Whether or not master authorized networks is enabled.", + "type": "boolean" + }, + "cidrBlocks": { + "description": "cidr_blocks define up to 10 external networks that could access\nKubernetes master through HTTPS.", + "items": { + "$ref": "CidrBlock" + }, + "type": "array" + } + }, + "id": "MasterAuthorizedNetworksConfig", + "description": "Master authorized networks is a Beta feature.\nConfiguration options for the master authorized networks feature. Enabled\nmaster authorized networks will disallow all external traffic to access\nKubernetes master through HTTPS except traffic from the given CIDR blocks,\nGoogle Compute Engine Public IPs and Google Prod IPs." + }, "SetNodePoolManagementRequest": { "description": "SetNodePoolManagementRequest sets the node management properties of a node\npool.", "type": "object", @@ -2026,25 +2048,8 @@ }, "id": "SetNodePoolManagementRequest" }, - "MasterAuthorizedNetworksConfig": { - "type": "object", - "properties": { - "cidrBlocks": { - "items": { - "$ref": "CidrBlock" - }, - "type": "array", - "description": "cidr_blocks define up to 10 external networks that could access\nKubernetes master through HTTPS." - }, - "enabled": { - "description": "Whether or not master authorized networks is enabled.", - "type": "boolean" - } - }, - "id": "MasterAuthorizedNetworksConfig", - "description": "Master authorized networks is a Beta feature.\nConfiguration options for the master authorized networks feature. Enabled\nmaster authorized networks will disallow all external traffic to access\nKubernetes master through HTTPS except traffic from the given CIDR blocks,\nGoogle Compute Engine Public IPs and Google Prod IPs." - }, "SetNodePoolAutoscalingRequest": { + "description": "SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.", "type": "object", "properties": { "autoscaling": { @@ -2052,36 +2057,36 @@ "description": "Autoscaling configuration for the node pool." } }, - "id": "SetNodePoolAutoscalingRequest", - "description": "SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool." + "id": "SetNodePoolAutoscalingRequest" }, "CreateClusterRequest": { + "description": "CreateClusterRequest creates a cluster.", "type": "object", "properties": { "cluster": { - "$ref": "Cluster", - "description": "A [cluster\nresource](/container-engine/reference/rest/v1/projects.zones.clusters)" + "description": "A [cluster\nresource](/container-engine/reference/rest/v1/projects.zones.clusters)", + "$ref": "Cluster" } }, - "id": "CreateClusterRequest", - "description": "CreateClusterRequest creates a cluster." + "id": "CreateClusterRequest" }, "UpdateNodePoolRequest": { "description": "UpdateNodePoolRequests update a node pool's image and/or version.", "type": "object", "properties": { - "nodeVersion": { - "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.", - "type": "string" - }, "imageType": { "description": "The desired image type for the node pool.", "type": "string" + }, + "nodeVersion": { + "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.", + "type": "string" } }, "id": "UpdateNodePoolRequest" }, "AcceleratorConfig": { + "description": "AcceleratorConfig represents a Hardware Accelerator request.", "type": "object", "properties": { "acceleratorType": { @@ -2094,30 +2099,29 @@ "type": "string" } }, - "id": "AcceleratorConfig", - "description": "AcceleratorConfig represents a Hardware Accelerator request." + "id": "AcceleratorConfig" }, "LegacyAbac": { "description": "Configuration for the legacy Attribute Based Access Control authorization\nmode.", "type": "object", "properties": { "enabled": { - "type": "boolean", - "description": "Whether the ABAC authorizer is enabled for this cluster. When enabled,\nidentities in the system, including service accounts, nodes, and\ncontrollers, will have statically granted permissions beyond those\nprovided by the RBAC configuration or IAM." + "description": "Whether the ABAC authorizer is enabled for this cluster. When enabled,\nidentities in the system, including service accounts, nodes, and\ncontrollers, will have statically granted permissions beyond those\nprovided by the RBAC configuration or IAM.", + "type": "boolean" } }, "id": "LegacyAbac" }, "SetAddonsConfigRequest": { - "description": "SetAddonsConfigRequest sets the addons associated with the cluster.", - "type": "object", "properties": { "addonsConfig": { "$ref": "AddonsConfig", "description": "The desired configurations for the various addons available to run in the\ncluster." } }, - "id": "SetAddonsConfigRequest" + "id": "SetAddonsConfigRequest", + "description": "SetAddonsConfigRequest sets the addons associated with the cluster.", + "type": "object" }, "SetLegacyAbacRequest": { "description": "SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for\na cluster.", @@ -2134,6 +2138,10 @@ "description": "Configuration for the addons that can be automatically spun up in the\ncluster, enabling additional functionality.", "type": "object", "properties": { + "networkPolicyConfig": { + "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes.", + "$ref": "NetworkPolicyConfig" + }, "horizontalPodAutoscaling": { "$ref": "HorizontalPodAutoscaling", "description": "Configuration for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods." @@ -2145,16 +2153,11 @@ "kubernetesDashboard": { "$ref": "KubernetesDashboard", "description": "Configuration for the Kubernetes Dashboard." - }, - "networkPolicyConfig": { - "$ref": "NetworkPolicyConfig", - "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes." } }, "id": "AddonsConfig" }, "SetLocationsRequest": { - "type": "object", "properties": { "locations": { "description": "The desired list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located. Changing the locations a cluster is in will result\nin nodes being either created or removed from the cluster, depending on\nwhether locations are being added or removed.\n\nThis list must always include the cluster's primary zone.", @@ -2165,10 +2168,10 @@ } }, "id": "SetLocationsRequest", - "description": "SetLocationsRequest sets the locations of the cluster." + "description": "SetLocationsRequest sets the locations of the cluster.", + "type": "object" }, "SetNodePoolSizeRequest": { - "description": "SetNodePoolSizeRequest sets the size a node\npool.", "type": "object", "properties": { "nodeCount": { @@ -2177,10 +2180,10 @@ "type": "integer" } }, - "id": "SetNodePoolSizeRequest" + "id": "SetNodePoolSizeRequest", + "description": "SetNodePoolSizeRequest sets the size a node\npool." }, "NetworkPolicyConfig": { - "type": "object", "properties": { "disabled": { "description": "Whether NetworkPolicy is enabled for this cluster.", @@ -2188,40 +2191,29 @@ } }, "id": "NetworkPolicyConfig", - "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes." + "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes.", + "type": "object" }, "UpdateClusterRequest": { "description": "UpdateClusterRequest updates the settings of a cluster.", "type": "object", "properties": { "update": { - "$ref": "ClusterUpdate", - "description": "A description of the update." + "description": "A description of the update.", + "$ref": "ClusterUpdate" } }, "id": "UpdateClusterRequest" }, "Cluster": { + "description": "A Google Container Engine cluster.", "type": "object", "properties": { - "nodeConfig": { - "$ref": "NodeConfig", - "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used." - }, "addonsConfig": { "$ref": "AddonsConfig", "description": "Configurations for the various addons available to run in the cluster." }, "status": { - "type": "string", - "enumDescriptions": [ - "Not set.", - "The PROVISIONING state indicates the cluster is being created.", - "The RUNNING state indicates the cluster has been created and is fully\nusable.", - "The RECONCILING state indicates that some work is actively being done on\nthe cluster, such as upgrading the master or node software. Details can\nbe found in the `statusMessage` field.", - "The STOPPING state indicates the cluster is being deleted.", - "The ERROR state indicates the cluster may be unusable. Details\ncan be found in the `statusMessage` field." - ], "enum": [ "STATUS_UNSPECIFIED", "PROVISIONING", @@ -2230,31 +2222,40 @@ "STOPPING", "ERROR" ], - "description": "[Output only] The current status of this cluster." + "description": "[Output only] The current status of this cluster.", + "type": "string", + "enumDescriptions": [ + "Not set.", + "The PROVISIONING state indicates the cluster is being created.", + "The RUNNING state indicates the cluster has been created and is fully\nusable.", + "The RECONCILING state indicates that some work is actively being done on\nthe cluster, such as upgrading the master or node software. Details can\nbe found in the `statusMessage` field.", + "The STOPPING state indicates the cluster is being deleted.", + "The ERROR state indicates the cluster may be unusable. Details\ncan be found in the `statusMessage` field." + ] + }, + "subnetwork": { + "description": "The name of the Google Compute Engine\n[subnetwork](/compute/docs/subnetworks) to which the\ncluster is connected.", + "type": "string" }, "currentNodeVersion": { "description": "[Output only] The current version of the node software components.\nIf they are currently at multiple versions because they're in the process\nof being upgraded, this reflects the minimum version of all nodes.", "type": "string" }, - "subnetwork": { - "type": "string", - "description": "The name of the Google Compute Engine\n[subnetwork](/compute/docs/subnetworks) to which the\ncluster is connected." + "maintenancePolicy": { + "description": "Configure the maintenance policy for this cluster.", + "$ref": "MaintenancePolicy" + }, + "resourceLabels": { + "description": "The resource labels for the cluster to use to annotate any related\nGoogle Compute Engine resources.", + "type": "object", + "additionalProperties": { + "type": "string" + } }, "name": { "description": "The name of this cluster. The name must be unique within this project\nand zone, and can be up to 40 characters with the following restrictions:\n\n* Lowercase letters, numbers, and hyphens only.\n* Must start with a letter.\n* Must end with a number or a letter.", "type": "string" }, - "resourceLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "The resource labels for the cluster to use to annotate any related\nGoogle Compute Engine resources.", - "type": "object" - }, - "maintenancePolicy": { - "$ref": "MaintenancePolicy", - "description": "Configure the maintenance policy for this cluster." - }, "initialClusterVersion": { "description": "The initial Kubernetes version for this cluster. Valid versions are those\nfound in validMasterVersions returned by getServerConfig. The version can\nbe upgraded over time; such upgrades are reflected in\ncurrentMasterVersion and currentNodeVersion.", "type": "string" @@ -2263,72 +2264,72 @@ "$ref": "IPAllocationPolicy", "description": "Configuration for cluster IP allocation." }, + "endpoint": { + "description": "[Output only] The IP address of this cluster's master endpoint.\nThe endpoint can be accessed from the internet at\n`https://username:password@endpoint/`.\n\nSee the `masterAuth` property of this resource for username and\npassword information.", + "type": "string" + }, "legacyAbac": { "$ref": "LegacyAbac", "description": "Configuration for the legacy ABAC authorization mode." }, - "endpoint": { - "type": "string", - "description": "[Output only] The IP address of this cluster's master endpoint.\nThe endpoint can be accessed from the internet at\n`https://username:password@endpoint/`.\n\nSee the `masterAuth` property of this resource for username and\npassword information." - }, "createTime": { - "description": "[Output only] The time the cluster was created, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", - "type": "string" + "type": "string", + "description": "[Output only] The time the cluster was created, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." }, "clusterIpv4Cidr": { "type": "string", "description": "The IP address range of the container pods in this cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`). Leave blank to have\none automatically chosen or specify a `/14` block in `10.0.0.0/8`." }, "initialNodeCount": { - "type": "integer", "format": "int32", - "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time." + "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.", + "type": "integer" }, "nodePools": { + "description": "The node pools associated with this cluster.\nThis field should not be set if \"node_config\" or \"initial_node_count\" are\nspecified.", "items": { "$ref": "NodePool" }, - "type": "array", - "description": "The node pools associated with this cluster.\nThis field should not be set if \"node_config\" or \"initial_node_count\" are\nspecified." + "type": "array" }, "locations": { + "description": "The list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located.", "items": { "type": "string" }, - "type": "array", - "description": "The list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located." + "type": "array" }, "selfLink": { "description": "[Output only] Server-defined URL for the resource.", "type": "string" }, "instanceGroupUrls": { + "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\ncluster.", "items": { "type": "string" }, - "type": "array", - "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\ncluster." + "type": "array" }, "servicesIpv4Cidr": { - "type": "string", - "description": "[Output only] The IP address range of the Kubernetes services in\nthis cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `1.2.3.4/29`). Service addresses are\ntypically put in the last `/16` from the container CIDR." + "description": "[Output only] The IP address range of the Kubernetes services in\nthis cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `1.2.3.4/29`). Service addresses are\ntypically put in the last `/16` from the container CIDR.", + "type": "string" }, "networkPolicy": { "$ref": "NetworkPolicy", "description": "Configuration options for the NetworkPolicy feature." }, "enableKubernetesAlpha": { - "type": "boolean", - "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha\nAPI groups (e.g. v1alpha1) and features that may not be production ready in\nthe kubernetes version of the master and nodes.\nThe cluster has no SLA for uptime and master/node upgrades are disabled.\nAlpha enabled clusters are automatically deleted thirty days after\ncreation." + "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha\nAPI groups (e.g. v1alpha1) and features that may not be production ready in\nthe kubernetes version of the master and nodes.\nThe cluster has no SLA for uptime and master/node upgrades are disabled.\nAlpha enabled clusters are automatically deleted thirty days after\ncreation.", + "type": "boolean" }, "description": { - "type": "string", - "description": "An optional description of this cluster." + "description": "An optional description of this cluster.", + "type": "string" }, "currentNodeCount": { - "type": "integer", "format": "int32", - "description": "[Output only] The number of nodes currently in the cluster." + "description": "[Output only] The number of nodes currently in the cluster.", + "type": "integer" }, "monitoringService": { "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* `monitoring.googleapis.com` - the Google Cloud Monitoring service.\n* `none` - no metrics will be exported from the cluster.\n* if left as an empty string, `monitoring.googleapis.com` will be used.", @@ -2339,21 +2340,21 @@ "type": "string" }, "labelFingerprint": { - "type": "string", - "description": "The fingerprint of the set of labels for this cluster." + "description": "The fingerprint of the set of labels for this cluster.", + "type": "string" }, "zone": { "description": "[Output only] The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", "type": "string" }, - "expireTime": { - "description": "[Output only] The time the cluster will be automatically\ndeleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", - "type": "string" - }, "loggingService": { "description": "The logging service the cluster should use to write logs.\nCurrently available options:\n\n* `logging.googleapis.com` - the Google Cloud Logging service.\n* `none` - no logs will be exported from the cluster.\n* if left as an empty string,`logging.googleapis.com` will be used.", "type": "string" }, + "expireTime": { + "description": "[Output only] The time the cluster will be automatically\ndeleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", + "type": "string" + }, "nodeIpv4CidrSize": { "format": "int32", "description": "[Output only] The size of the address space on each node for hosting\ncontainers. This is provisioned from within the `container_ipv4_cidr`\nrange.", @@ -2368,31 +2369,37 @@ "type": "string" }, "masterAuth": { - "$ref": "MasterAuth", - "description": "The authentication information for accessing the master endpoint." + "description": "The authentication information for accessing the master endpoint.", + "$ref": "MasterAuth" }, "currentMasterVersion": { - "type": "string", - "description": "[Output only] The current software version of the master endpoint." + "description": "[Output only] The current software version of the master endpoint.", + "type": "string" + }, + "nodeConfig": { + "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used.", + "$ref": "NodeConfig" } }, - "id": "Cluster", - "description": "A Google Container Engine cluster." + "id": "Cluster" }, "CreateNodePoolRequest": { + "id": "CreateNodePoolRequest", "description": "CreateNodePoolRequest creates a node pool for a cluster.", "type": "object", "properties": { "nodePool": { - "$ref": "NodePool", - "description": "The node pool to create." + "description": "The node pool to create.", + "$ref": "NodePool" } - }, - "id": "CreateNodePoolRequest" + } }, "MasterAuth": { - "type": "object", "properties": { + "username": { + "description": "The username to use for HTTP basic authentication to the master endpoint.\nFor clusters v1.6.0 and later, you can disable basic authentication by\nproviding an empty username.", + "type": "string" + }, "password": { "description": "The password to use for HTTP basic authentication to the master endpoint.\nBecause the master endpoint is open to the Internet, you should create a\nstrong password. If a password is provided for cluster creation, username\nmust be non-empty.", "type": "string" @@ -2412,31 +2419,29 @@ "clientCertificate": { "type": "string", "description": "[Output only] Base64-encoded public certificate used by clients to\nauthenticate to the cluster endpoint." - }, - "username": { - "description": "The username to use for HTTP basic authentication to the master endpoint.\nFor clusters v1.6.0 and later, you can disable basic authentication by\nproviding an empty username.", - "type": "string" } }, "id": "MasterAuth", - "description": "The authentication information for accessing the master endpoint.\nAuthentication can be done using HTTP basic auth or using client\ncertificates." + "description": "The authentication information for accessing the master endpoint.\nAuthentication can be done using HTTP basic auth or using client\ncertificates.", + "type": "object" }, "DailyMaintenanceWindow": { + "id": "DailyMaintenanceWindow", "description": "Time window specified for daily maintenance operations.", "type": "object", "properties": { - "startTime": { - "description": "Time within the maintenance window to start the maintenance operations.\nTime format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)\nformat \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.", + "duration": { + "description": "[Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.\nDuration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)\nformat \"PTnHnMnS\".", "type": "string" }, - "duration": { + "startTime": { "type": "string", - "description": "[Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.\nDuration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)\nformat \"PTnHnMnS\"." + "description": "Time within the maintenance window to start the maintenance operations.\nTime format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)\nformat \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT." } - }, - "id": "DailyMaintenanceWindow" + } }, "MaintenancePolicy": { + "id": "MaintenancePolicy", "description": "MaintenancePolicy defines the maintenance policy to be used for the cluster.", "type": "object", "properties": { @@ -2444,10 +2449,10 @@ "$ref": "MaintenanceWindow", "description": "Specifies the maintenance window in which maintenance may be performed." } - }, - "id": "MaintenancePolicy" + } }, "ClientCertificateConfig": { + "description": "Configuration for client certificates on the cluster.", "type": "object", "properties": { "issueClientCertificate": { @@ -2455,19 +2460,18 @@ "type": "boolean" } }, - "id": "ClientCertificateConfig", - "description": "Configuration for client certificates on the cluster." + "id": "ClientCertificateConfig" }, "SetLoggingServiceRequest": { + "description": "SetLoggingServiceRequest sets the logging service of a cluster.", "type": "object", "properties": { "loggingService": { - "type": "string", - "description": "The logging service the cluster should use to write metrics.\nCurrently available options:\n\n* \"logging.googleapis.com\" - the Google Cloud Logging service\n* \"none\" - no metrics will be exported from the cluster" + "description": "The logging service the cluster should use to write metrics.\nCurrently available options:\n\n* \"logging.googleapis.com\" - the Google Cloud Logging service\n* \"none\" - no metrics will be exported from the cluster", + "type": "string" } }, - "id": "SetLoggingServiceRequest", - "description": "SetLoggingServiceRequest sets the logging service of a cluster." + "id": "SetLoggingServiceRequest" }, "SetMaintenancePolicyRequest": { "type": "object", @@ -2479,12 +2483,6 @@ }, "id": "SetMaintenancePolicyRequest", "description": "SetMaintenancePolicyRequest sets the maintenance policy for a cluster." - }, - "Empty": { - "type": "object", - "properties": {}, - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`." } }, "protocol": "rest", @@ -2504,7 +2502,11 @@ } } }, - "servicePath": "", "description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.", - "kind": "discovery#restDescription" + "servicePath": "", + "kind": "discovery#restDescription", + "rootUrl": "https://container.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "container" } diff --git a/vendor/google.golang.org/api/container/v1/container-gen.go b/vendor/google.golang.org/api/container/v1/container-gen.go index bd9360939..4d709671e 100644 --- a/vendor/google.golang.org/api/container/v1/container-gen.go +++ b/vendor/google.golang.org/api/container/v1/container-gen.go @@ -2179,12 +2179,19 @@ func (s *SetMaintenancePolicyRequest) MarshalJSON() ([]byte, error) { // SetMasterAuthRequest: SetMasterAuthRequest updates the admin password // of a cluster. type SetMasterAuthRequest struct { - // Action: The exact form of action to be taken on the master auth + // Action: The exact form of action to be taken on the master auth. // // Possible values: - // "UNKNOWN" - Operation is unknown and will error out + // "UNKNOWN" - Operation is unknown and will error out. // "SET_PASSWORD" - Set the password to a user generated value. // "GENERATE_PASSWORD" - Generate a new password and set it to that. + // "SET_USERNAME" - Set the username. If an empty username is + // provided, basic authentication + // is disabled for the cluster. If a non-empty username is provided, + // basic + // authentication is enabled, with either a provided password or a + // generated + // one. Action string `json:"action,omitempty"` // Update: A description of the update. diff --git a/vendor/google.golang.org/api/container/v1beta1/container-api.json b/vendor/google.golang.org/api/container/v1beta1/container-api.json index b1be90a0b..f3aee81de 100644 --- a/vendor/google.golang.org/api/container/v1beta1/container-api.json +++ b/vendor/google.golang.org/api/container/v1beta1/container-api.json @@ -1,1802 +1,301 @@ { - "ownerName": "Google", - "resources": { - "projects": { - "resources": { - "zones": { - "resources": { - "clusters": { - "methods": { - "setMasterAuth": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", - "id": "container.projects.zones.clusters.setMasterAuth", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", - "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set.\nModify basic_auth.csv and reset the K8S API server.", - "request": { - "$ref": "SetMasterAuthRequest" - } - }, - "list": { - "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.", - "response": { - "$ref": "ListClustersResponse" - }, - "parameterOrder": [ - "projectId", - "zone" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - }, - "parent": { - "location": "query", - "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", - "type": "string" - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters", - "id": "container.projects.zones.clusters.list", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters" - }, - "resourceLabels": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", - "id": "container.projects.zones.clusters.resourceLabels", - "request": { - "$ref": "SetLabelsRequest" - }, - "description": "Sets labels on a cluster.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - } - }, - "create": { - "request": { - "$ref": "CreateClusterRequest" - }, - "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters", - "id": "container.projects.zones.clusters.create" - }, - "completeIpRotation": { - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", - "id": "container.projects.zones.clusters.completeIpRotation", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", - "description": "Completes master IP rotation.", - "request": { - "$ref": "CompleteIPRotationRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST" - }, - "get": { - "response": { - "$ref": "Cluster" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "GET", - "parameters": { - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "description": "The name of the cluster to retrieve.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "name": { - "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "location": "query" - }, - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.get", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "description": "Gets the details of a specific cluster." - }, - "legacyAbac": { - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "clusterId": { - "location": "path", - "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", - "id": "container.projects.zones.clusters.legacyAbac", - "description": "Enables or disables the ABAC authorization mechanism on a cluster.", - "request": { - "$ref": "SetLegacyAbacRequest" - } - }, - "setNetworkPolicy": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", - "id": "container.projects.zones.clusters.setNetworkPolicy", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", - "description": "Enables/Disables Network Policy for a cluster.", - "request": { - "$ref": "SetNetworkPolicyRequest" - } - }, - "startIpRotation": { - "request": { - "$ref": "StartIPRotationRequest" - }, - "description": "Start master IP rotation.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", - "id": "container.projects.zones.clusters.startIpRotation" - }, - "setMaintenancePolicy": { - "description": "Sets the maintenance policy for a cluster.", - "request": { - "$ref": "SetMaintenancePolicyRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string", - "required": true, - "location": "path" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster to update.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", - "id": "container.projects.zones.clusters.setMaintenancePolicy", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy" - }, - "delete": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "DELETE", - "parameters": { - "name": { - "location": "query", - "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to delete.\nThis field is deprecated, use name instead." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.delete", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time." - }, - "update": { - "request": { - "$ref": "UpdateClusterRequest" - }, - "description": "Updates the settings of a specific cluster.", - "httpMethod": "PUT", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "clusterId": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead." - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", - "id": "container.projects.zones.clusters.update" - } - }, - "resources": { - "nodePools": { - "methods": { - "get": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "id": "container.projects.zones.clusters.nodePools.get", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "description": "Retrieves the node pool requested.", - "response": { - "$ref": "NodePool" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "location": "path", - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "nodePoolId": { - "description": "The name of the node pool.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "name": { - "type": "string", - "location": "query", - "description": "The name (project, location, cluster, node pool id) of the node pool to get.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'." - } - } - }, - "delete": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "id": "container.projects.zones.clusters.nodePools.delete", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", - "description": "Deletes a node pool from a cluster.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "nodePoolId": { - "description": "The name of the node pool to delete.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "name": { - "description": "The name (project, location, cluster, node pool id) of the node pool to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "location": "query" - } - } - }, - "setManagement": { - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", - "id": "container.projects.zones.clusters.nodePools.setManagement", - "request": { - "$ref": "SetNodePoolManagementRequest" - }, - "description": "Sets the NodeManagement options for a node pool.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "clusterId": { - "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "nodePoolId": { - "location": "path", - "description": "The name of the node pool to update.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement" - }, - "list": { - "response": { - "$ref": "ListNodePoolsResponse" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead." - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true, - "location": "path" - }, - "parent": { - "location": "query", - "description": "The parent (project, location, cluster id) where the node pools will be listed.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - }, - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "id": "container.projects.zones.clusters.nodePools.list", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "description": "Lists the node pools for a cluster." - }, - "rollback": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", - "id": "container.projects.zones.clusters.nodePools.rollback", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", - "request": { - "$ref": "RollbackNodePoolUpgradeRequest" - }, - "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "clusterId", - "nodePoolId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "description": "The name of the cluster to rollback.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - }, - "nodePoolId": { - "location": "path", - "description": "The name of the node pool to rollback.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - } - }, - "create": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", - "id": "container.projects.zones.clusters.nodePools.create", - "description": "Creates a node pool for a cluster.", - "request": { - "$ref": "CreateNodePoolRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "clusterId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - }, - "operations": { - "methods": { - "get": { - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}", - "path": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}", - "id": "container.projects.zones.operations.get", - "description": "Gets the specified operation.", - "httpMethod": "GET", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "zone", - "operationId" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "query", - "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.", - "type": "string" - }, - "operationId": { - "type": "string", - "required": true, - "location": "path", - "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead." - }, - "projectId": { - "type": "string", - "required": true, - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true, - "location": "path" - } - } - }, - "list": { - "id": "container.projects.zones.operations.list", - "path": "v1beta1/projects/{projectId}/zones/{zone}/operations", - "description": "Lists all operations in a project in a specific zone or all zones.", - "parameterOrder": [ - "projectId", - "zone" - ], - "httpMethod": "GET", - "response": { - "$ref": "ListOperationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones.\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - }, - "parent": { - "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", - "type": "string", - "location": "query" - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations" - }, - "cancel": { - "request": { - "$ref": "CancelOperationRequest" - }, - "description": "Cancels the specified operation.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "zone", - "operationId" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "operationId": { - "location": "path", - "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation resides.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", - "path": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", - "id": "container.projects.zones.operations.cancel" - } - } - } - }, - "methods": { - "getServerconfig": { - "description": "Returns configuration info about the Container Engine service.", - "response": { - "$ref": "ServerConfig" - }, - "parameterOrder": [ - "projectId", - "zone" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "zone": { - "location": "path", - "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for.\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - }, - "name": { - "description": "The name (project and location) of the server config to get\nSpecified in the format 'projects/*/locations/*'.", - "type": "string", - "location": "query" - }, - "projectId": { - "location": "path", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/serverconfig", - "id": "container.projects.zones.getServerconfig", - "path": "v1beta1/projects/{projectId}/zones/{zone}/serverconfig" - } - } + "schemas": { + "SetMaintenancePolicyRequest": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840)." }, - "locations": { - "methods": { - "getServerConfig": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." - }, - "zone": { - "type": "string", - "location": "query", - "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for.\nThis field is deprecated, use name instead." - }, - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path", - "description": "The name (project and location) of the server config to get\nSpecified in the format 'projects/*/locations/*'.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverConfig", - "path": "v1beta1/{+name}/serverConfig", - "id": "container.projects.locations.getServerConfig", - "description": "Returns configuration info about the Container Engine service.", - "httpMethod": "GET", - "response": { - "$ref": "ServerConfig" - }, - "parameterOrder": [ - "name" - ] - } - }, - "resources": { - "clusters": { - "methods": { - "update": { - "description": "Updates the settings of a specific cluster.", - "request": { - "$ref": "UpdateClusterRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PUT", - "parameters": { - "name": { - "location": "path", - "description": "The name (project, location, cluster) of the cluster to update.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", - "id": "container.projects.locations.clusters.update", - "path": "v1beta1/{+name}" - }, - "setMasterAuth": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path", - "description": "The name (project, location, cluster) of the cluster to set auth.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMasterAuth", - "path": "v1beta1/{+name}:setMasterAuth", - "id": "container.projects.locations.clusters.setMasterAuth", - "request": { - "$ref": "SetMasterAuthRequest" - }, - "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set.\nModify basic_auth.csv and reset the K8S API server." - }, - "list": { - "response": { - "$ref": "ListClustersResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "zone": { - "location": "query", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "parent": { - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path", - "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", - "id": "container.projects.locations.clusters.list", - "path": "v1beta1/{+parent}/clusters", - "description": "Lists all clusters owned by a project in either the specified zone or all\nzones." - }, - "create": { - "request": { - "$ref": "CreateClusterRequest" - }, - "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.", - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "parent": { - "description": "The parent (project and location) where the cluster will be created.\nSpecified in the format 'projects/*/locations/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", - "path": "v1beta1/{+parent}/clusters", - "id": "container.projects.locations.clusters.create" - }, - "completeIpRotation": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The name (project, location, cluster id) of the cluster to complete IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation", - "id": "container.projects.locations.clusters.completeIpRotation", - "path": "v1beta1/{+name}:completeIpRotation", - "description": "Completes master IP rotation.", - "request": { - "$ref": "CompleteIPRotationRequest" - } - }, - "setNetworkPolicy": { - "id": "container.projects.locations.clusters.setNetworkPolicy", - "path": "v1beta1/{+name}:setNetworkPolicy", - "description": "Enables/Disables Network Policy for a cluster.", - "request": { - "$ref": "SetNetworkPolicyRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "The name (project, location, cluster id) of the cluster to set networking policy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setNetworkPolicy" - }, - "get": { - "response": { - "$ref": "Cluster" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "clusterId": { - "location": "query", - "description": "The name of the cluster to retrieve.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "name": { - "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", - "id": "container.projects.locations.clusters.get", - "path": "v1beta1/{+name}", - "description": "Gets the details of a specific cluster." - }, - "startIpRotation": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path", - "description": "The name (project, location, cluster id) of the cluster to start IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:startIpRotation", - "id": "container.projects.locations.clusters.startIpRotation", - "path": "v1beta1/{+name}:startIpRotation", - "request": { - "$ref": "StartIPRotationRequest" - }, - "description": "Start master IP rotation." - }, - "setMaintenancePolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "name": { - "location": "path", - "description": "The name (project, location, cluster id) of the cluster to set maintenance\npolicy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMaintenancePolicy", - "path": "v1beta1/{+name}:setMaintenancePolicy", - "id": "container.projects.locations.clusters.setMaintenancePolicy", - "description": "Sets the maintenance policy for a cluster.", - "request": { - "$ref": "SetMaintenancePolicyRequest" - } - }, - "delete": { - "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path" - }, - "projectId": { - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "clusterId": { - "location": "query", - "description": "The name of the cluster to delete.\nThis field is deprecated, use name instead.", - "type": "string" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", - "id": "container.projects.locations.clusters.delete", - "path": "v1beta1/{+name}" - }, - "setResourceLabels": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name (project, location, cluster id) of the cluster to set labels.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setResourceLabels", - "id": "container.projects.locations.clusters.setResourceLabels", - "path": "v1beta1/{+name}:setResourceLabels", - "request": { - "$ref": "SetLabelsRequest" - }, - "description": "Sets labels on a cluster." - }, - "setLegacyAbac": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "The name (project, location, cluster id) of the cluster to set legacy abac.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLegacyAbac", - "id": "container.projects.locations.clusters.setLegacyAbac", - "path": "v1beta1/{+name}:setLegacyAbac", - "description": "Enables or disables the ABAC authorization mechanism on a cluster.", - "request": { - "$ref": "SetLegacyAbacRequest" - } - } - }, - "resources": { - "nodePools": { - "methods": { - "get": { - "description": "Retrieves the node pool requested.", - "response": { - "$ref": "NodePool" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "nodePoolId": { - "description": "The name of the node pool.\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "name": { - "location": "path", - "description": "The name (project, location, cluster, node pool id) of the node pool to get.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$" - }, - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "clusterId": { - "type": "string", - "location": "query", - "description": "The name of the cluster.\nThis field is deprecated, use name instead." - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", - "id": "container.projects.locations.clusters.nodePools.get", - "path": "v1beta1/{+name}" - }, - "setManagement": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "name": { - "description": "The name (project, location, cluster, node pool id) of the node pool to set\nmanagement properties. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setManagement", - "path": "v1beta1/{+name}:setManagement", - "id": "container.projects.locations.clusters.nodePools.setManagement", - "description": "Sets the NodeManagement options for a node pool.", - "request": { - "$ref": "SetNodePoolManagementRequest" - } - }, - "delete": { - "description": "Deletes a node pool from a cluster.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "zone": { - "location": "query", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "clusterId": { - "location": "query", - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "nodePoolId": { - "location": "query", - "description": "The name of the node pool to delete.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "name": { - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", - "location": "path", - "description": "The name (project, location, cluster, node pool id) of the node pool to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "required": true - }, - "projectId": { - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", - "path": "v1beta1/{+name}", - "id": "container.projects.locations.clusters.nodePools.delete" - }, - "list": { - "description": "Lists the node pools for a cluster.", - "httpMethod": "GET", - "response": { - "$ref": "ListNodePoolsResponse" - }, - "parameterOrder": [ - "parent" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "type": "string", - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead." - }, - "zone": { - "location": "query", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "clusterId": { - "location": "query", - "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "parent": { - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path", - "description": "The parent (project, location, cluster id) where the node pools will be listed.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", - "path": "v1beta1/{+parent}/nodePools", - "id": "container.projects.locations.clusters.nodePools.list" - }, - "rollback": { - "request": { - "$ref": "RollbackNodePoolUpgradeRequest" - }, - "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name (project, location, cluster, node pool id) of the node poll to\nrollback upgrade.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:rollback", - "id": "container.projects.locations.clusters.nodePools.rollback", - "path": "v1beta1/{+name}:rollback" - }, - "create": { - "request": { - "$ref": "CreateNodePoolRequest" - }, - "description": "Creates a node pool for a cluster.", - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "parent": { - "description": "The parent (project, location, cluster id) where the node pool will be created.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", - "path": "v1beta1/{+parent}/nodePools", - "id": "container.projects.locations.clusters.nodePools.create" - } - } - } - } - }, - "operations": { - "methods": { - "cancel": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", - "location": "path", - "description": "The name (project, location, operation id) of the operation to cancel.\nSpecified in the format 'projects/*/locations/*/operations/*'." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", - "path": "v1beta1/{+name}:cancel", - "id": "container.projects.locations.operations.cancel", - "description": "Cancels the specified operation.", - "request": { - "$ref": "CancelOperationRequest" - } - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", - "location": "path" - }, - "operationId": { - "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead.", - "type": "string", - "location": "query" - }, - "projectId": { - "location": "query", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string" - }, - "zone": { - "location": "query", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", - "path": "v1beta1/{+name}", - "id": "container.projects.locations.operations.get", - "description": "Gets the specified operation." - }, - "list": { - "description": "Lists all operations in a project in a specific zone or all zones.", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "ListOperationsResponse" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string", - "location": "query" - }, - "zone": { - "location": "query", - "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones.\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "parent": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", - "location": "path", - "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions." - } - }, - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", - "id": "container.projects.locations.operations.list", - "path": "v1beta1/{+parent}/operations" - } - } - } + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster to update.", + "type": "string" + }, + "maintenancePolicy": { + "description": "The maintenance policy to be set for the cluster. An empty field\nclears the existing maintenance policy.", + "$ref": "MaintenancePolicy" + }, + "name": { + "description": "The name (project, location, cluster id) of the cluster to set maintenance\npolicy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string" + } + }, + "id": "SetMaintenancePolicyRequest", + "description": "SetMaintenancePolicyRequest sets the maintenance policy for a cluster." + }, + "SetNodePoolManagementRequest": { + "description": "SetNodePoolManagementRequest sets the node management properties of a node\npool.", + "type": "object", + "properties": { + "name": { + "description": "The name (project, location, cluster, node pool id) of the node pool to set\nmanagement properties. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.", + "type": "string" + }, + "management": { + "$ref": "NodeManagement", + "description": "NodeManagement configuration for the node pool." + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "nodePoolId": { + "description": "The name of the node pool to update.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + } + }, + "id": "SetNodePoolManagementRequest" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "MasterAuthorizedNetworksConfig": { + "description": "Configuration options for the master authorized networks feature. Enabled\nmaster authorized networks will disallow all external traffic to access\nKubernetes master through HTTPS except traffic from the given CIDR blocks,\nGoogle Compute Engine Public IPs and Google Prod IPs.", + "type": "object", + "properties": { + "enabled": { + "description": "Whether or not master authorized networks is enabled.", + "type": "boolean" + }, + "cidrBlocks": { + "description": "cidr_blocks define up to 10 external networks that could access\nKubernetes master through HTTPS.", + "type": "array", + "items": { + "$ref": "CidrBlock" } } + }, + "id": "MasterAuthorizedNetworksConfig" + }, + "CreateClusterRequest": { + "properties": { + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", + "type": "string" + }, + "parent": { + "description": "The parent (project and location) where the cluster will be created.\nSpecified in the format 'projects/*/locations/*'.", + "type": "string" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", + "type": "string" + }, + "cluster": { + "$ref": "Cluster", + "description": "A [cluster\nresource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)" + } + }, + "id": "CreateClusterRequest", + "description": "CreateClusterRequest creates a cluster.", + "type": "object" + }, + "ListNodePoolsResponse": { + "description": "ListNodePoolsResponse is the result of ListNodePoolsRequest.", + "type": "object", + "properties": { + "nodePools": { + "description": "A list of node pools for a cluster.", + "type": "array", + "items": { + "$ref": "NodePool" + } + } + }, + "id": "ListNodePoolsResponse" + }, + "CompleteIPRotationRequest": { + "id": "CompleteIPRotationRequest", + "description": "CompleteIPRotationRequest moves the cluster master back into single-IP mode.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name (project, location, cluster id) of the cluster to complete IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'." + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "type": "string" + } } - } - }, - "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" + "StartIPRotationRequest": { + "id": "StartIPRotationRequest", + "description": "StartIPRotationRequest creates a new IP for the cluster and then performs\na node upgrade on each node pool to point to the new IP.", + "type": "object", + "properties": { + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "name": { + "description": "The name (project, location, cluster id) of the cluster to start IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "type": "string" + } + } }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" + "AcceleratorConfig": { + "description": "AcceleratorConfig represents a Hardware Accelerator request.", + "type": "object", + "properties": { + "acceleratorCount": { + "description": "The number of the accelerator cards exposed to an instance.", + "format": "int64", + "type": "string" + }, + "acceleratorType": { + "description": "The accelerator type resource name. List of supported accelerators\n[here](/compute/docs/gpus/#Introduction)", + "type": "string" + } + }, + "id": "AcceleratorConfig" }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "SetLabelsRequest": { + "description": "SetLabelsRequest sets the Google Cloud Platform labels on a Google Container\nEngine cluster, which will in turn set them for Google Compute Engine\nresources used by that cluster", + "type": "object", + "properties": { + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by\nContainer Engine and changes after every request to modify or update\nlabels. You must always provide an up-to-date fingerprint hash when\nupdating or changing labels. Make a \u003ccode\u003eget()\u003c/code\u003e request to the\nresource to get the latest fingerprint.", + "type": "string" + }, + "zone": { + "type": "string", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." + }, + "name": { + "description": "The name (project, location, cluster id) of the cluster to set labels.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string" + }, + "resourceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels to set for that cluster.", + "type": "object" + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "type": "string" + } + }, + "id": "SetLabelsRequest" }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] + "NodePool": { + "description": "NodePool contains the name and configuration for a cluster's node pool.\nNode pools are a set of nodes (i.e. VM's), with a common configuration and\nspecification, under the control of the cluster master. They may have a set\nof Kubernetes labels applied to them, which may be used to reference them\nduring pod scheduling. They may also be resized up or down, to accommodate\nthe workload.", + "type": "object", + "properties": { + "status": { + "description": "[Output only] The status of the nodes in this pool instance.", + "type": "string", + "enumDescriptions": [ + "Not set.", + "The PROVISIONING state indicates the node pool is being created.", + "The RUNNING state indicates the node pool has been created\nand is fully usable.", + "The RUNNING_WITH_ERROR state indicates the node pool has been created\nand is partially usable. Some error state has occurred and some\nfunctionality may be impaired. Customer may need to reissue a request\nor trigger a new update.", + "The RECONCILING state indicates that some work is actively being done on\nthe node pool, such as upgrading node software. Details can\nbe found in the `statusMessage` field.", + "The STOPPING state indicates the node pool is being deleted.", + "The ERROR state indicates the node pool may be unusable. Details\ncan be found in the `statusMessage` field." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "PROVISIONING", + "RUNNING", + "RUNNING_WITH_ERROR", + "RECONCILING", + "STOPPING", + "ERROR" + ] + }, + "config": { + "description": "The node configuration of the pool.", + "$ref": "NodeConfig" + }, + "statusMessage": { + "description": "[Output only] Additional information about the current status of this\nnode pool instance, if available.", + "type": "string" + }, + "name": { + "description": "The name of the node pool.", + "type": "string" + }, + "autoscaling": { + "$ref": "NodePoolAutoscaling", + "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled\nonly if a valid configuration is present." + }, + "initialNodeCount": { + "description": "The initial node count for the pool. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.", + "format": "int32", + "type": "integer" + }, + "management": { + "$ref": "NodeManagement", + "description": "NodeManagement configuration for this NodePool." + }, + "selfLink": { + "description": "[Output only] Server-defined URL for the resource.", + "type": "string" + }, + "version": { + "type": "string", + "description": "[Output only] The version of the Kubernetes of this node." + }, + "instanceGroupUrls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\nnode pool." + } + }, + "id": "NodePool" }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "key": { - "type": "string", - "location": "query", - "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." - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - } - }, - "version": "v1beta1", - "baseUrl": "https://container.googleapis.com/", - "servicePath": "", - "description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.", - "kind": "discovery#restDescription", - "basePath": "", - "id": "container:v1beta1", - "documentationLink": "https://cloud.google.com/container-engine/", - "revision": "20170915", - "discoveryVersion": "v1", - "version_module": true, - "schemas": { "NodeManagement": { "description": "NodeManagement defines the set of node management services turned on for the\nnode pool.", "type": "object", "properties": { - "autoRepair": { - "description": "Whether the nodes will be automatically repaired.", - "type": "boolean" - }, "autoUpgrade": { "description": "Whether the nodes will be automatically upgraded.", "type": "boolean" }, + "autoRepair": { + "description": "Whether the nodes will be automatically repaired.", + "type": "boolean" + }, "upgradeOptions": { "$ref": "AutoUpgradeOptions", "description": "Specifies the Auto Upgrade knobs for the node pool." @@ -1805,35 +304,38 @@ "id": "NodeManagement" }, "NodeTaint": { + "id": "NodeTaint", "description": "Kubernetes taint is comprised of three fields: key, value, and effect. Effect\ncan only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.\n\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/configuration/taint-and-toleration/", "type": "object", "properties": { "key": { - "description": "Key for taint.", + "type": "string", + "description": "Key for taint." + }, + "value": { + "description": "Value for taint.", "type": "string" }, "effect": { - "enumDescriptions": [ - "NoSchedule", - "PreferNoSchedule", - "NoExecute" - ], "enum": [ + "EFFECT_UNSPECIFIED", "NO_SCHEDULE", "PREFER_NO_SCHEDULE", "NO_EXECUTE" ], "description": "Effect for taint.", - "type": "string" - }, - "value": { - "description": "Value for taint.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Not set", + "NoSchedule", + "PreferNoSchedule", + "NoExecute" + ] } - }, - "id": "NodeTaint" + } }, "CancelOperationRequest": { + "description": "CancelOperationRequest cancels a single operation.", "type": "object", "properties": { "name": { @@ -1849,17 +351,35 @@ "type": "string" }, "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation resides.\nThis field is deprecated, use name instead.", - "type": "string" + "type": "string", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation resides.\nThis field is deprecated, use name instead." } }, - "id": "CancelOperationRequest", - "description": "CancelOperationRequest cancels a single operation." + "id": "CancelOperationRequest" + }, + "KubernetesDashboard": { + "type": "object", + "properties": { + "disabled": { + "description": "Whether the Kubernetes Dashboard is enabled for this cluster.", + "type": "boolean" + } + }, + "id": "KubernetesDashboard", + "description": "Configuration for the Kubernetes Dashboard." }, "SetLegacyAbacRequest": { "description": "SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for\na cluster.", "type": "object", "properties": { + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", + "type": "string" + }, "name": { "description": "The name (project, location, cluster id) of the cluster to set legacy abac.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", "type": "string" @@ -1871,40 +391,18 @@ "projectId": { "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", "type": "string" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "clusterId": { - "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", - "type": "string" } }, "id": "SetLegacyAbacRequest" }, - "KubernetesDashboard": { - "description": "Configuration for the Kubernetes Dashboard.", - "type": "object", - "properties": { - "disabled": { - "type": "boolean", - "description": "Whether the Kubernetes Dashboard is enabled for this cluster." - } - }, - "id": "KubernetesDashboard" - }, "Operation": { + "id": "Operation", "description": "This operation resource represents operations that may have happened or are\nhappening on the cluster. All fields are output only.", "type": "object", "properties": { - "selfLink": { - "description": "Server-defined URL for the resource.", - "type": "string" - }, "detail": { - "type": "string", - "description": "Detailed operation progress, if available." + "description": "Detailed operation progress, if available.", + "type": "string" }, "targetLink": { "description": "Server-defined URL for the target of the operation.", @@ -1919,7 +417,6 @@ "type": "string" }, "operationType": { - "type": "string", "enumDescriptions": [ "Not set.", "Cluster create.", @@ -1958,19 +455,18 @@ "SET_NETWORK_POLICY", "SET_MAINTENANCE_POLICY" ], - "description": "The operation type." + "description": "The operation type.", + "type": "string" }, "startTime": { - "description": "[Output only] The time the operation started, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", - "type": "string" + "type": "string", + "description": "[Output only] The time the operation started, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." }, "zone": { "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation\nis taking place.\nThis field is deprecated, use location instead.", "type": "string" }, "status": { - "description": "The current status of the operation.", - "type": "string", "enumDescriptions": [ "Not set.", "The operation has been created.", @@ -1984,7 +480,9 @@ "RUNNING", "DONE", "ABORTING" - ] + ], + "description": "The current status of the operation.", + "type": "string" }, "name": { "description": "The server-assigned ID for the operation.", @@ -1993,32 +491,35 @@ "statusMessage": { "description": "If an error has occurred, a textual description of the error.", "type": "string" + }, + "selfLink": { + "description": "Server-defined URL for the resource.", + "type": "string" } - }, - "id": "Operation" + } }, "AddonsConfig": { - "description": "Configuration for the addons that can be automatically spun up in the\ncluster, enabling additional functionality.", - "type": "object", "properties": { + "kubernetesDashboard": { + "$ref": "KubernetesDashboard", + "description": "Configuration for the Kubernetes Dashboard." + }, "networkPolicyConfig": { - "$ref": "NetworkPolicyConfig", - "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes." + "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes.", + "$ref": "NetworkPolicyConfig" }, "horizontalPodAutoscaling": { - "description": "Configuration for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods.", - "$ref": "HorizontalPodAutoscaling" + "$ref": "HorizontalPodAutoscaling", + "description": "Configuration for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods." }, "httpLoadBalancing": { "$ref": "HttpLoadBalancing", "description": "Configuration for the HTTP (L7) load balancing controller addon, which\nmakes it easy to set up HTTP load balancers for services in a cluster." - }, - "kubernetesDashboard": { - "description": "Configuration for the Kubernetes Dashboard.", - "$ref": "KubernetesDashboard" } }, - "id": "AddonsConfig" + "id": "AddonsConfig", + "description": "Configuration for the addons that can be automatically spun up in the\ncluster, enabling additional functionality.", + "type": "object" }, "MaintenanceWindow": { "type": "object", @@ -2032,12 +533,15 @@ "description": "MaintenanceWindow defines the maintenance window to be used for the cluster." }, "RollbackNodePoolUpgradeRequest": { - "description": "RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed\nNodePool upgrade. This will be an no-op if the last upgrade successfully\ncompleted.", "type": "object", "properties": { + "clusterId": { + "description": "The name of the cluster to rollback.\nThis field is deprecated, use name instead.", + "type": "string" + }, "nodePoolId": { - "type": "string", - "description": "The name of the node pool to rollback.\nThis field is deprecated, use name instead." + "description": "The name of the node pool to rollback.\nThis field is deprecated, use name instead.", + "type": "string" }, "name": { "description": "The name (project, location, cluster, node pool id) of the node poll to\nrollback upgrade.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", @@ -2048,19 +552,25 @@ "type": "string" }, "zone": { - "type": "string", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." - }, - "clusterId": { - "description": "The name of the cluster to rollback.\nThis field is deprecated, use name instead.", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", "type": "string" } }, - "id": "RollbackNodePoolUpgradeRequest" + "id": "RollbackNodePoolUpgradeRequest", + "description": "RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed\nNodePool upgrade. This will be an no-op if the last upgrade successfully\ncompleted." + }, + "NetworkPolicyConfig": { + "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes.", + "type": "object", + "properties": { + "disabled": { + "description": "Whether NetworkPolicy is enabled for this cluster.", + "type": "boolean" + } + }, + "id": "NetworkPolicyConfig" }, "UpdateClusterRequest": { - "description": "UpdateClusterRequest updates the settings of a cluster.", - "type": "object", "properties": { "projectId": { "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", @@ -2083,18 +593,9 @@ "type": "string" } }, - "id": "UpdateClusterRequest" - }, - "NetworkPolicyConfig": { - "description": "Configuration for NetworkPolicy. This only tracks whether the addon\nis enabled or not on the Master, it does not track whether network policy\nis enabled for the nodes.", - "type": "object", - "properties": { - "disabled": { - "description": "Whether NetworkPolicy is enabled for this cluster.", - "type": "boolean" - } - }, - "id": "NetworkPolicyConfig" + "id": "UpdateClusterRequest", + "description": "UpdateClusterRequest updates the settings of a cluster.", + "type": "object" }, "NetworkPolicy": { "description": "Configuration options for the NetworkPolicy feature.\nhttps://kubernetes.io/docs/concepts/services-networking/networkpolicies/", @@ -2120,70 +621,10 @@ "id": "NetworkPolicy" }, "Cluster": { - "type": "object", "properties": { - "clusterIpv4Cidr": { - "type": "string", - "description": "The IP address range of the container pods in this cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`). Leave blank to have\none automatically chosen or specify a `/14` block in `10.0.0.0/8`." - }, - "initialNodeCount": { - "type": "integer", - "format": "int32", - "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time." - }, - "nodePools": { - "description": "The node pools associated with this cluster.\nThis field should not be set if \"node_config\" or \"initial_node_count\" are\nspecified.", - "items": { - "$ref": "NodePool" - }, - "type": "array" - }, - "locations": { - "description": "The list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located.", - "items": { - "type": "string" - }, - "type": "array" - }, - "selfLink": { - "description": "[Output only] Server-defined URL for the resource.", - "type": "string" - }, - "instanceGroupUrls": { - "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\ncluster.", - "items": { - "type": "string" - }, - "type": "array" - }, - "servicesIpv4Cidr": { - "description": "[Output only] The IP address range of the Kubernetes services in\nthis cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `1.2.3.4/29`). Service addresses are\ntypically put in the last `/16` from the container CIDR.", - "type": "string" - }, - "networkPolicy": { - "description": "Configuration options for the NetworkPolicy feature.", - "$ref": "NetworkPolicy" - }, - "enableKubernetesAlpha": { - "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha\nAPI groups (e.g. v1beta1) and features that may not be production ready in\nthe kubernetes version of the master and nodes.\nThe cluster has no SLA for uptime and master/node upgrades are disabled.\nAlpha enabled clusters are automatically deleted thirty days after\ncreation.", - "type": "boolean" - }, - "description": { - "description": "An optional description of this cluster.", - "type": "string" - }, - "currentNodeCount": { - "format": "int32", - "description": "[Output only] The number of nodes currently in the cluster.", - "type": "integer" - }, - "monitoringService": { - "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* `monitoring.googleapis.com` - the Google Cloud Monitoring service.\n* `none` - no metrics will be exported from the cluster.\n* if left as an empty string, `monitoring.googleapis.com` will be used.", - "type": "string" - }, "network": { - "type": "string", - "description": "The name of the Google Compute Engine\n[network](/compute/docs/networks-and-firewalls#networks) to which the\ncluster is connected. If left unspecified, the `default` network\nwill be used." + "description": "The name of the Google Compute Engine\n[network](/compute/docs/networks-and-firewalls#networks) to which the\ncluster is connected. If left unspecified, the `default` network\nwill be used.", + "type": "string" }, "zone": { "description": "[Output only] The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use location instead.", @@ -2194,17 +635,17 @@ "type": "string" }, "nodeIpv4CidrSize": { - "format": "int32", + "type": "integer", "description": "[Output only] The size of the address space on each node for hosting\ncontainers. This is provisioned from within the `container_ipv4_cidr`\nrange.", - "type": "integer" + "format": "int32" }, "loggingService": { "description": "The logging service the cluster should use to write logs.\nCurrently available options:\n\n* `logging.googleapis.com` - the Google Cloud Logging service.\n* `none` - no logs will be exported from the cluster.\n* if left as an empty string,`logging.googleapis.com` will be used.", "type": "string" }, "masterAuthorizedNetworksConfig": { - "description": "The configuration options for master authorized networks feature.", - "$ref": "MasterAuthorizedNetworksConfig" + "$ref": "MasterAuthorizedNetworksConfig", + "description": "The configuration options for master authorized networks feature." }, "statusMessage": { "description": "[Output only] Additional information about the current status of this\ncluster, if available.", @@ -2215,26 +656,22 @@ "description": "The authentication information for accessing the master endpoint." }, "currentMasterVersion": { - "type": "string", - "description": "[Output only] The current software version of the master endpoint." + "description": "[Output only] The current software version of the master endpoint.", + "type": "string" }, "nodeConfig": { - "$ref": "NodeConfig", - "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used." + "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used.", + "$ref": "NodeConfig" + }, + "podSecurityPolicyConfig": { + "$ref": "PodSecurityPolicyConfig", + "description": "Configuration for the PodSecurityPolicy feature." }, "addonsConfig": { "$ref": "AddonsConfig", "description": "Configurations for the various addons available to run in the cluster." }, "status": { - "enumDescriptions": [ - "Not set.", - "The PROVISIONING state indicates the cluster is being created.", - "The RUNNING state indicates the cluster has been created and is fully\nusable.", - "The RECONCILING state indicates that some work is actively being done on\nthe cluster, such as upgrading the master or node software. Details can\nbe found in the `statusMessage` field.", - "The STOPPING state indicates the cluster is being deleted.", - "The ERROR state indicates the cluster may be unusable. Details\ncan be found in the `statusMessage` field." - ], "enum": [ "STATUS_UNSPECIFIED", "PROVISIONING", @@ -2244,51 +681,138 @@ "ERROR" ], "description": "[Output only] The current status of this cluster.", + "type": "string", + "enumDescriptions": [ + "Not set.", + "The PROVISIONING state indicates the cluster is being created.", + "The RUNNING state indicates the cluster has been created and is fully\nusable.", + "The RECONCILING state indicates that some work is actively being done on\nthe cluster, such as upgrading the master or node software. Details can\nbe found in the `statusMessage` field.", + "The STOPPING state indicates the cluster is being deleted.", + "The ERROR state indicates the cluster may be unusable. Details\ncan be found in the `statusMessage` field." + ] + }, + "subnetwork": { + "description": "The name of the Google Compute Engine\n[subnetwork](/compute/docs/subnetworks) to which the\ncluster is connected.", "type": "string" }, "currentNodeVersion": { "description": "[Output only] The current version of the node software components.\nIf they are currently at multiple versions because they're in the process\nof being upgraded, this reflects the minimum version of all nodes.", "type": "string" }, - "subnetwork": { - "description": "The name of the Google Compute Engine\n[subnetwork](/compute/docs/subnetworks) to which the\ncluster is connected.", - "type": "string" - }, - "name": { - "description": "The name of this cluster. The name must be unique within this project\nand zone, and can be up to 40 characters with the following restrictions:\n\n* Lowercase letters, numbers, and hyphens only.\n* Must start with a letter.\n* Must end with a number or a letter.", - "type": "string" - }, "maintenancePolicy": { "$ref": "MaintenancePolicy", "description": "Configure the maintenance policy for this cluster." }, + "name": { + "type": "string", + "description": "The name of this cluster. The name must be unique within this project\nand zone, and can be up to 40 characters with the following restrictions:\n\n* Lowercase letters, numbers, and hyphens only.\n* Must start with a letter.\n* Must end with a number or a letter." + }, "initialClusterVersion": { "description": "The initial Kubernetes version for this cluster. Valid versions are those\nfound in validMasterVersions returned by getServerConfig. The version can\nbe upgraded over time; such upgrades are reflected in\ncurrentMasterVersion and currentNodeVersion.", "type": "string" }, "ipAllocationPolicy": { - "description": "Configuration for cluster IP allocation.", - "$ref": "IPAllocationPolicy" + "$ref": "IPAllocationPolicy", + "description": "Configuration for cluster IP allocation." + }, + "endpoint": { + "description": "[Output only] The IP address of this cluster's master endpoint.\nThe endpoint can be accessed from the internet at\n`https://username:password@endpoint/`.\n\nSee the `masterAuth` property of this resource for username and\npassword information.", + "type": "string" }, "location": { "description": "[Output only] The name of the Google Compute Engine\n[zone](/compute/docs/regions-zones/regions-zones#available) or\n[region](/compute/docs/regions-zones/regions-zones#available) in which\nthe cluster resides.", "type": "string" }, - "endpoint": { - "type": "string", - "description": "[Output only] The IP address of this cluster's master endpoint.\nThe endpoint can be accessed from the internet at\n`https://username:password@endpoint/`.\n\nSee the `masterAuth` property of this resource for username and\npassword information." - }, "createTime": { "description": "[Output only] The time the cluster was created, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" + }, + "clusterIpv4Cidr": { + "description": "The IP address range of the container pods in this cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`). Leave blank to have\none automatically chosen or specify a `/14` block in `10.0.0.0/8`.", + "type": "string" + }, + "initialNodeCount": { + "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "[Output only] Server-defined URL for the resource.", + "type": "string" + }, + "nodePools": { + "description": "The node pools associated with this cluster.\nThis field should not be set if \"node_config\" or \"initial_node_count\" are\nspecified.", + "type": "array", + "items": { + "$ref": "NodePool" + } + }, + "locations": { + "description": "The list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located.", + "type": "array", + "items": { + "type": "string" + } + }, + "instanceGroupUrls": { + "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\ncluster.", + "type": "array", + "items": { + "type": "string" + } + }, + "networkPolicy": { + "$ref": "NetworkPolicy", + "description": "Configuration options for the NetworkPolicy feature." + }, + "servicesIpv4Cidr": { + "type": "string", + "description": "[Output only] The IP address range of the Kubernetes services in\nthis cluster, in\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `1.2.3.4/29`). Service addresses are\ntypically put in the last `/16` from the container CIDR." + }, + "enableKubernetesAlpha": { + "description": "Kubernetes alpha features are enabled on this cluster. This includes alpha\nAPI groups (e.g. v1beta1) and features that may not be production ready in\nthe kubernetes version of the master and nodes.\nThe cluster has no SLA for uptime and master/node upgrades are disabled.\nAlpha enabled clusters are automatically deleted thirty days after\ncreation.", + "type": "boolean" + }, + "description": { + "description": "An optional description of this cluster.", + "type": "string" + }, + "currentNodeCount": { + "description": "[Output only] The number of nodes currently in the cluster.", + "format": "int32", + "type": "integer" + }, + "monitoringService": { + "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* `monitoring.googleapis.com` - the Google Cloud Monitoring service.\n* `none` - no metrics will be exported from the cluster.\n* if left as an empty string, `monitoring.googleapis.com` will be used.", + "type": "string" } }, "id": "Cluster", - "description": "A Google Container Engine cluster." + "description": "A Google Container Engine cluster.", + "type": "object" + }, + "ListOperationsResponse": { + "description": "ListOperationsResponse is the result of ListOperationsRequest.", + "type": "object", + "properties": { + "operations": { + "description": "A list of operations in the project in the specified zone.", + "type": "array", + "items": { + "$ref": "Operation" + } + }, + "missingZones": { + "type": "array", + "items": { + "type": "string" + }, + "description": "If any zones are listed here, the list of operations returned\nmay be missing the operations from those zones." + } + }, + "id": "ListOperationsResponse" }, "CreateNodePoolRequest": { - "description": "CreateNodePoolRequest creates a node pool for a cluster.", - "type": "object", "properties": { "projectId": { "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead.", @@ -2298,51 +822,32 @@ "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", "type": "string" }, - "parent": { - "description": "The parent (project, location, cluster id) where the node pool will be created.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", "type": "string" }, "nodePool": { "$ref": "NodePool", "description": "The node pool to create." }, - "clusterId": { - "type": "string", - "description": "The name of the cluster.\nThis field is deprecated, use parent instead." + "parent": { + "description": "The parent (project, location, cluster id) where the node pool will be created.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "type": "string" } }, - "id": "CreateNodePoolRequest" - }, - "ListOperationsResponse": { - "description": "ListOperationsResponse is the result of ListOperationsRequest.", - "type": "object", - "properties": { - "operations": { - "description": "A list of operations in the project in the specified zone.", - "items": { - "$ref": "Operation" - }, - "type": "array" - }, - "missingZones": { - "description": "If any zones are listed here, the list of operations returned\nmay be missing the operations from those zones.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "ListOperationsResponse" + "id": "CreateNodePoolRequest", + "description": "CreateNodePoolRequest creates a node pool for a cluster.", + "type": "object" }, "CidrBlock": { "properties": { - "displayName": { - "description": "display_name is an optional field for users to identify CIDR blocks.", - "type": "string" - }, "cidrBlock": { "description": "cidr_block must be specified in CIDR notation.", "type": "string" + }, + "displayName": { + "description": "display_name is an optional field for users to identify CIDR blocks.", + "type": "string" } }, "id": "CidrBlock", @@ -2355,39 +860,59 @@ "properties": { "validMasterVersions": { "description": "List of valid master versions.", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - "defaultImageType": { - "description": "Default image type.", - "type": "string" + } }, "defaultClusterVersion": { "description": "Version of Kubernetes the service deploys by default.", "type": "string" }, - "validImageTypes": { - "description": "List of valid image types.", - "items": { - "type": "string" - }, - "type": "array" + "defaultImageType": { + "description": "Default image type.", + "type": "string" }, "validNodeVersions": { + "description": "List of valid node upgrade target versions.", + "type": "array", "items": { "type": "string" - }, + } + }, + "validImageTypes": { + "description": "List of valid image types.", "type": "array", - "description": "List of valid node upgrade target versions." + "items": { + "type": "string" + } } }, "id": "ServerConfig" }, "NodeConfig": { + "description": "Parameters that describe the nodes in a cluster.", "type": "object", "properties": { + "labels": { + "description": "The map of Kubernetes labels (key/value pairs) to be applied to each node.\nThese will added in addition to any default label(s) that\nKubernetes may apply to the node.\nIn case of conflict in label keys, the applied set may differ depending on\nthe Kubernetes version -- it's best to assume the behavior is undefined\nand conflicts should be avoided.\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "diskSizeGb": { + "description": "Size of the disk attached to each node, specified in GB.\nThe smallest allowed disk size is 10GB.\n\nIf unspecified, the default disk size is 100GB.", + "format": "int32", + "type": "integer" + }, + "accelerators": { + "description": "A list of hardware accelerators to be attached to each node.\nSee https://cloud.google.com/compute/docs/gpus for more information about\nsupport for GPUs.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, "machineType": { "description": "The name of a Google Compute Engine [machine\ntype](/compute/docs/machine-types) (e.g.\n`n1-standard-1`).\n\nIf unspecified, the default machine type is\n`n1-standard-1`.", "type": "string" @@ -2401,8 +926,8 @@ "description": "Whether the nodes are created as preemptible VM instances. See:\nhttps://cloud.google.com/compute/docs/instances/preemptible for more\ninforamtion about preemptible VM instances." }, "localSsdCount": { - "format": "int32", "description": "The number of local SSD disks to be attached to the node.\n\nThe limit for this value is dependant upon the maximum number of\ndisks available on a machine per zone. See:\nhttps://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits\nfor more information.", + "format": "int32", "type": "integer" }, "metadata": { @@ -2414,10 +939,10 @@ }, "tags": { "description": "The list of instance tags applied to all nodes. Tags are used to identify\nvalid sources or targets for network firewalls and are specified by\nthe client during cluster or node pool creation. Each tag within the list\nmust comply with RFC1035.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "serviceAccount": { "description": "The Google Cloud Platform Service Account to be used by the node VMs. If\nno Service Account is specified, the \"default\" service account is used.", @@ -2429,52 +954,34 @@ }, "oauthScopes": { "description": "The set of Google API scopes to be made available on all of the\nnode VMs under the \"default\" service account.\n\nThe following scopes are recommended, but not required, and by default are\nnot included:\n\n* `https://www.googleapis.com/auth/compute` is required for mounting\npersistent storage on your nodes.\n* `https://www.googleapis.com/auth/devstorage.read_only` is required for\ncommunicating with **gcr.io**\n(the [Google Container Registry](/container-registry/)).\n\nIf unspecified, no scopes are added, unless Cloud Logging or Cloud\nMonitoring are enabled, in which case their required scopes will be added.", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - "taints": { - "description": "List of kubernetes taints to be applied to each node.\n\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/configuration/taint-and-toleration/", - "items": { - "$ref": "NodeTaint" - }, - "type": "array" - }, - "labels": { - "description": "The map of Kubernetes labels (key/value pairs) to be applied to each node.\nThese will added in addition to any default label(s) that\nKubernetes may apply to the node.\nIn case of conflict in label keys, the applied set may differ depending on\nthe Kubernetes version -- it's best to assume the behavior is undefined\nand conflicts should be avoided.\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", - "type": "object", - "additionalProperties": { - "type": "string" } }, - "diskSizeGb": { - "format": "int32", - "description": "Size of the disk attached to each node, specified in GB.\nThe smallest allowed disk size is 10GB.\n\nIf unspecified, the default disk size is 100GB.", - "type": "integer" - }, - "accelerators": { - "description": "A list of hardware accelerators to be attached to each node.\nSee https://cloud.google.com/compute/docs/gpus for more information about\nsupport for GPUs.", + "taints": { + "description": "List of kubernetes taints to be applied to each node.\n\nFor more information, including usage and the valid values, see:\nhttps://kubernetes.io/docs/concepts/configuration/taint-and-toleration/", + "type": "array", "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" + "$ref": "NodeTaint" + } } }, - "id": "NodeConfig", - "description": "Parameters that describe the nodes in a cluster." + "id": "NodeConfig" }, "MasterAuth": { + "id": "MasterAuth", + "description": "The authentication information for accessing the master endpoint.\nAuthentication can be done using HTTP basic auth or using client\ncertificates.", "type": "object", "properties": { - "clientCertificateConfig": { - "description": "Configuration for client certificate authentication on the cluster. If no\nconfiguration is specified, a client certificate is issued.", - "$ref": "ClientCertificateConfig" - }, "password": { "description": "The password to use for HTTP basic authentication to the master endpoint.\nBecause the master endpoint is open to the Internet, you should create a\nstrong password. If a password is provided for cluster creation, username\nmust be non-empty.", "type": "string" }, + "clientCertificateConfig": { + "$ref": "ClientCertificateConfig", + "description": "Configuration for client certificate authentication on the cluster. If no\nconfiguration is specified, a client certificate is issued." + }, "clientKey": { "description": "[Output only] Base64-encoded private key used by clients to authenticate\nto the cluster endpoint.", "type": "string" @@ -2484,43 +991,41 @@ "type": "string" }, "clientCertificate": { - "description": "[Output only] Base64-encoded public certificate used by clients to\nauthenticate to the cluster endpoint.", - "type": "string" + "type": "string", + "description": "[Output only] Base64-encoded public certificate used by clients to\nauthenticate to the cluster endpoint." }, "username": { - "type": "string", - "description": "The username to use for HTTP basic authentication to the master endpoint.\nFor clusters v1.6.0 and later, you can disable basic authentication by\nproviding an empty username." + "description": "The username to use for HTTP basic authentication to the master endpoint.\nFor clusters v1.6.0 and later, you can disable basic authentication by\nproviding an empty username.", + "type": "string" } - }, - "id": "MasterAuth", - "description": "The authentication information for accessing the master endpoint.\nAuthentication can be done using HTTP basic auth or using client\ncertificates." + } }, "DailyMaintenanceWindow": { + "description": "Time window specified for daily maintenance operations.", "type": "object", "properties": { - "startTime": { - "description": "Time within the maintenance window to start the maintenance operations.\nIt must be in format \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.", - "type": "string" - }, "duration": { "description": "[Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.", "type": "string" + }, + "startTime": { + "description": "Time within the maintenance window to start the maintenance operations.\nIt must be in format \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.", + "type": "string" } }, - "id": "DailyMaintenanceWindow", - "description": "Time window specified for daily maintenance operations." + "id": "DailyMaintenanceWindow" }, "AutoUpgradeOptions": { "description": "AutoUpgradeOptions defines the set of options for the user to control how\nthe Auto Upgrades will proceed.", "type": "object", "properties": { - "autoUpgradeStartTime": { - "description": "[Output only] This field is set when upgrades are about to commence\nwith the approximate start time for the upgrades, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", - "type": "string" - }, "description": { "description": "[Output only] This field is set when upgrades are about to commence\nwith the description of the upgrade.", "type": "string" + }, + "autoUpgradeStartTime": { + "type": "string", + "description": "[Output only] This field is set when upgrades are about to commence\nwith the approximate start time for the upgrades, in\n[RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format." } }, "id": "AutoUpgradeOptions" @@ -2529,42 +1034,93 @@ "description": "ListClustersResponse is the result of ListClustersRequest.", "type": "object", "properties": { - "clusters": { - "description": "A list of clusters in the project in the specified zone, or\nacross all ones.", - "items": { - "$ref": "Cluster" - }, - "type": "array" - }, "missingZones": { "description": "If any zones are listed here, the list of clusters returned\nmay be missing those zones.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } + }, + "clusters": { + "description": "A list of clusters in the project in the specified zone, or\nacross all ones.", + "type": "array", + "items": { + "$ref": "Cluster" + } } }, "id": "ListClustersResponse" }, + "PodSecurityPolicyConfig": { + "description": "Configuration for the PodSecurityPolicy feature.", + "type": "object", + "properties": { + "enabled": { + "description": "Enable the PodSecurityPolicy controller for this cluster. If enabled, pods\nmust be valid under a PodSecurityPolicy to be created.", + "type": "boolean" + } + }, + "id": "PodSecurityPolicyConfig" + }, "HttpLoadBalancing": { "type": "object", "properties": { "disabled": { - "type": "boolean", - "description": "Whether the HTTP Load Balancing controller is enabled in the cluster.\nWhen enabled, it runs a small pod in the cluster that manages the load\nbalancers." + "description": "Whether the HTTP Load Balancing controller is enabled in the cluster.\nWhen enabled, it runs a small pod in the cluster that manages the load\nbalancers.", + "type": "boolean" } }, "id": "HttpLoadBalancing", "description": "Configuration options for the HTTP (L7) load balancing controller addon,\nwhich makes it easy to set up HTTP load balancers for services in a cluster." }, + "MaintenancePolicy": { + "description": "MaintenancePolicy defines the maintenance policy to be used for the cluster.", + "type": "object", + "properties": { + "window": { + "$ref": "MaintenanceWindow", + "description": "Specifies the maintenance window in which maintenance may be performed." + } + }, + "id": "MaintenancePolicy" + }, + "NodePoolAutoscaling": { + "description": "NodePoolAutoscaling contains information required by cluster autoscaler to\nadjust the size of the node pool to the current cluster usage.", + "type": "object", + "properties": { + "minNodeCount": { + "description": "Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c=\nmax_node_count.", + "format": "int32", + "type": "integer" + }, + "enabled": { + "description": "Is autoscaling enabled for this node pool.", + "type": "boolean" + }, + "maxNodeCount": { + "description": "Maximum number of nodes in the NodePool. Must be \u003e= min_node_count. There\nhas to enough quota to scale up the cluster.", + "format": "int32", + "type": "integer" + } + }, + "id": "NodePoolAutoscaling" + }, + "ClientCertificateConfig": { + "id": "ClientCertificateConfig", + "description": "Configuration for client certificates on the cluster.", + "type": "object", + "properties": { + "issueClientCertificate": { + "description": "Issue a client certificate.", + "type": "boolean" + } + } + }, "SetNetworkPolicyRequest": { + "id": "SetNetworkPolicyRequest", "description": "SetNetworkPolicyRequest enables/disables network policy for a cluster.", "type": "object", "properties": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string" - }, "zone": { "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", "type": "string" @@ -2580,162 +1136,75 @@ "name": { "description": "The name (project, location, cluster id) of the cluster to set networking policy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", "type": "string" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "type": "string" } - }, - "id": "SetNetworkPolicyRequest" + } }, "SetMasterAuthRequest": { "id": "SetMasterAuthRequest", "description": "SetMasterAuthRequest updates the admin password of a cluster.", "type": "object", "properties": { - "name": { - "description": "The name (project, location, cluster) of the cluster to set auth.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", "type": "string" }, + "name": { + "type": "string", + "description": "The name (project, location, cluster) of the cluster to set auth.\nSpecified in the format 'projects/*/locations/*/clusters/*'." + }, "action": { "enumDescriptions": [ - "Operation is unknown and will error out", + "Operation is unknown and will error out.", "Set the password to a user generated value.", - "Generate a new password and set it to that." + "Generate a new password and set it to that.", + "Set the username. If an empty username is provided, basic authentication\nis disabled for the cluster. If a non-empty username is provided, basic\nauthentication is enabled, with either a provided password or a generated\none." ], "enum": [ "UNKNOWN", "SET_PASSWORD", - "GENERATE_PASSWORD" + "GENERATE_PASSWORD", + "SET_USERNAME" ], - "description": "The exact form of action to be taken on the master auth", + "description": "The exact form of action to be taken on the master auth.", "type": "string" }, "projectId": { - "type": "string", - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" }, "clusterId": { - "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead.", - "type": "string" + "type": "string", + "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead." }, "update": { "$ref": "MasterAuth", "description": "A description of the update." - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" } } }, - "ClientCertificateConfig": { - "description": "Configuration for client certificates on the cluster.", - "type": "object", - "properties": { - "issueClientCertificate": { - "description": "Issue a client certificate.", - "type": "boolean" - } - }, - "id": "ClientCertificateConfig" - }, - "NodePoolAutoscaling": { - "description": "NodePoolAutoscaling contains information required by cluster autoscaler to\nadjust the size of the node pool to the current cluster usage.", - "type": "object", - "properties": { - "maxNodeCount": { - "format": "int32", - "description": "Maximum number of nodes in the NodePool. Must be \u003e= min_node_count. There\nhas to enough quota to scale up the cluster.", - "type": "integer" - }, - "minNodeCount": { - "format": "int32", - "description": "Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c=\nmax_node_count.", - "type": "integer" - }, - "enabled": { - "description": "Is autoscaling enabled for this node pool.", - "type": "boolean" - } - }, - "id": "NodePoolAutoscaling" - }, - "MaintenancePolicy": { - "description": "MaintenancePolicy defines the maintenance policy to be used for the cluster.", - "type": "object", - "properties": { - "window": { - "$ref": "MaintenanceWindow", - "description": "Specifies the maintenance window in which maintenance may be performed." - } - }, - "id": "MaintenancePolicy" - }, - "ClusterUpdate": { - "description": "ClusterUpdate describes an update to the cluster. Exactly one update can\nbe applied to a cluster with each request, so at most one field can be\nprovided.", - "type": "object", - "properties": { - "desiredMasterAuthorizedNetworksConfig": { - "$ref": "MasterAuthorizedNetworksConfig", - "description": "The desired configuration options for master authorized networks feature." - }, - "desiredNodePoolAutoscaling": { - "$ref": "NodePoolAutoscaling", - "description": "Autoscaler configuration for the node pool specified in\ndesired_node_pool_id. If there is only one pool in the\ncluster and desired_node_pool_id is not provided then\nthe change applies to that single node pool." - }, - "desiredLocations": { - "description": "The desired list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located. Changing the locations a cluster is in will result\nin nodes being either created or removed from the cluster, depending on\nwhether locations are being added or removed.\n\nThis list must always include the cluster's primary zone.", - "items": { - "type": "string" - }, - "type": "array" - }, - "desiredMonitoringService": { - "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* \"monitoring.googleapis.com\" - the Google Cloud Monitoring service\n* \"none\" - no metrics will be exported from the cluster", - "type": "string" - }, - "desiredImageType": { - "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well.", - "type": "string" - }, - "desiredAddonsConfig": { - "$ref": "AddonsConfig", - "description": "Configurations for the various addons available to run in the cluster." - }, - "desiredNodePoolId": { - "description": "The node pool to be upgraded. This field is mandatory if\n\"desired_node_version\", \"desired_image_family\" or\n\"desired_node_pool_autoscaling\" is specified and there is more than one\nnode pool on the cluster.", - "type": "string" - }, - "desiredNodeVersion": { - "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.", - "type": "string" - }, - "desiredMasterVersion": { - "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version.", - "type": "string" - } - }, - "id": "ClusterUpdate" - }, "IPAllocationPolicy": { + "description": "Configuration for controlling how IPs are allocated in the cluster.", "type": "object", "properties": { - "nodeIpv4CidrBlock": { - "description": "The IP address range of the instance IPs in this cluster.\n\nThis is applicable only if `create_subnetwork` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", - "type": "string" - }, "servicesIpv4Cidr": { "description": "This field is deprecated, use services_ipv4_cidr_block.", "type": "string" }, - "servicesSecondaryRangeName": { - "description": "The name of the secondary range to be used as for the services\nCIDR block. The secondary range will be used for service\nClusterIPs. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases and\ncreate_subnetwork is false.", - "type": "string" + "createSubnetwork": { + "description": "Whether a new subnetwork will be created automatically for the cluster.\n\nThis field is only applicable when `use_ip_aliases` is true.", + "type": "boolean" }, "useIpAliases": { "description": "Whether alias IPs will be used for pod IPs in the cluster.", "type": "boolean" }, - "createSubnetwork": { - "description": "Whether a new subnetwork will be created automatically for the cluster.\n\nThis field is only applicable when `use_ip_aliases` is true.", - "type": "boolean" + "servicesSecondaryRangeName": { + "description": "The name of the secondary range to be used as for the services\nCIDR block. The secondary range will be used for service\nClusterIPs. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases and\ncreate_subnetwork is false.", + "type": "string" }, "subnetworkName": { "description": "A custom subnetwork name to be used if `create_subnetwork` is true. If\nthis field is empty, then an automatic name will be chosen for the new\nsubnetwork.", @@ -2760,13 +1229,65 @@ "clusterSecondaryRangeName": { "description": "The name of the secondary range to be used for the cluster CIDR\nblock. The secondary range will be used for pod IP\naddresses. This must be an existing secondary range associated\nwith the cluster subnetwork.\n\nThis field is only applicable with use_ip_aliases and\ncreate_subnetwork is false.", "type": "string" + }, + "nodeIpv4CidrBlock": { + "description": "The IP address range of the instance IPs in this cluster.\n\nThis is applicable only if `create_subnetwork` is true.\n\nSet to blank to have a range chosen with the default size.\n\nSet to /netmask (e.g. `/14`) to have a range chosen with a specific\nnetmask.\n\nSet to a\n[CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.\n`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range\nto use.", + "type": "string" } }, - "id": "IPAllocationPolicy", - "description": "Configuration for controlling how IPs are allocated in the cluster." + "id": "IPAllocationPolicy" + }, + "ClusterUpdate": { + "id": "ClusterUpdate", + "description": "ClusterUpdate describes an update to the cluster. Exactly one update can\nbe applied to a cluster with each request, so at most one field can be\nprovided.", + "type": "object", + "properties": { + "desiredMasterVersion": { + "description": "The Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version.", + "type": "string" + }, + "desiredPodSecurityPolicyConfig": { + "$ref": "PodSecurityPolicyConfig", + "description": "The desired configuration options for the PodSecurityPolicy feature." + }, + "desiredMasterAuthorizedNetworksConfig": { + "description": "The desired configuration options for master authorized networks feature.", + "$ref": "MasterAuthorizedNetworksConfig" + }, + "desiredNodePoolAutoscaling": { + "description": "Autoscaler configuration for the node pool specified in\ndesired_node_pool_id. If there is only one pool in the\ncluster and desired_node_pool_id is not provided then\nthe change applies to that single node pool.", + "$ref": "NodePoolAutoscaling" + }, + "desiredLocations": { + "description": "The desired list of Google Compute Engine\n[locations](/compute/docs/zones#available) in which the cluster's nodes\nshould be located. Changing the locations a cluster is in will result\nin nodes being either created or removed from the cluster, depending on\nwhether locations are being added or removed.\n\nThis list must always include the cluster's primary zone.", + "type": "array", + "items": { + "type": "string" + } + }, + "desiredMonitoringService": { + "type": "string", + "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* \"monitoring.googleapis.com\" - the Google Cloud Monitoring service\n* \"none\" - no metrics will be exported from the cluster" + }, + "desiredImageType": { + "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well.", + "type": "string" + }, + "desiredAddonsConfig": { + "description": "Configurations for the various addons available to run in the cluster.", + "$ref": "AddonsConfig" + }, + "desiredNodePoolId": { + "description": "The node pool to be upgraded. This field is mandatory if\n\"desired_node_version\", \"desired_image_family\" or\n\"desired_node_pool_autoscaling\" is specified and there is more than one\nnode pool on the cluster.", + "type": "string" + }, + "desiredNodeVersion": { + "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.", + "type": "string" + } + } }, "HorizontalPodAutoscaling": { - "id": "HorizontalPodAutoscaling", "description": "Configuration options for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods.", "type": "object", "properties": { @@ -2774,291 +1295,8 @@ "description": "Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.\nWhen enabled, it ensures that a Heapster pod is running in the cluster,\nwhich is also used by the Cloud Monitoring service.", "type": "boolean" } - } - }, - "SetMaintenancePolicyRequest": { - "properties": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", - "type": "string" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.", - "type": "string" - }, - "clusterId": { - "description": "The name of the cluster to update.", - "type": "string" - }, - "name": { - "description": "The name (project, location, cluster id) of the cluster to set maintenance\npolicy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - }, - "maintenancePolicy": { - "description": "The maintenance policy to be set for the cluster. An empty field\nclears the existing maintenance policy.", - "$ref": "MaintenancePolicy" - } }, - "id": "SetMaintenancePolicyRequest", - "description": "SetMaintenancePolicyRequest sets the maintenance policy for a cluster.", - "type": "object" - }, - "SetNodePoolManagementRequest": { - "description": "SetNodePoolManagementRequest sets the node management properties of a node\npool.", - "type": "object", - "properties": { - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "name": { - "description": "The name (project, location, cluster, node pool id) of the node pool to set\nmanagement properties. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.", - "type": "string" - }, - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", - "type": "string" - }, - "management": { - "$ref": "NodeManagement", - "description": "NodeManagement configuration for the node pool." - }, - "clusterId": { - "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "nodePoolId": { - "description": "The name of the node pool to update.\nThis field is deprecated, use name instead.", - "type": "string" - } - }, - "id": "SetNodePoolManagementRequest" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "MasterAuthorizedNetworksConfig": { - "description": "Configuration options for the master authorized networks feature. Enabled\nmaster authorized networks will disallow all external traffic to access\nKubernetes master through HTTPS except traffic from the given CIDR blocks,\nGoogle Compute Engine Public IPs and Google Prod IPs.", - "type": "object", - "properties": { - "enabled": { - "description": "Whether or not master authorized networks is enabled.", - "type": "boolean" - }, - "cidrBlocks": { - "items": { - "$ref": "CidrBlock" - }, - "type": "array", - "description": "cidr_blocks define up to 10 external networks that could access\nKubernetes master through HTTPS." - } - }, - "id": "MasterAuthorizedNetworksConfig" - }, - "CreateClusterRequest": { - "description": "CreateClusterRequest creates a cluster.", - "type": "object", - "properties": { - "cluster": { - "$ref": "Cluster", - "description": "A [cluster\nresource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)" - }, - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", - "type": "string" - }, - "parent": { - "description": "The parent (project and location) where the cluster will be created.\nSpecified in the format 'projects/*/locations/*'.", - "type": "string" - } - }, - "id": "CreateClusterRequest" - }, - "ListNodePoolsResponse": { - "properties": { - "nodePools": { - "description": "A list of node pools for a cluster.", - "items": { - "$ref": "NodePool" - }, - "type": "array" - } - }, - "id": "ListNodePoolsResponse", - "description": "ListNodePoolsResponse is the result of ListNodePoolsRequest.", - "type": "object" - }, - "CompleteIPRotationRequest": { - "description": "CompleteIPRotationRequest moves the cluster master back into single-IP mode.", - "type": "object", - "properties": { - "name": { - "description": "The name (project, location, cluster id) of the cluster to complete IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - }, - "projectId": { - "type": "string", - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." - }, - "zone": { - "type": "string", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." - }, - "clusterId": { - "type": "string", - "description": "The name of the cluster.\nThis field is deprecated, use name instead." - } - }, - "id": "CompleteIPRotationRequest" - }, - "StartIPRotationRequest": { - "description": "StartIPRotationRequest creates a new IP for the cluster and then performs\na node upgrade on each node pool to point to the new IP.", - "type": "object", - "properties": { - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string" - }, - "zone": { - "type": "string", - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." - }, - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "name": { - "description": "The name (project, location, cluster id) of the cluster to start IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - } - }, - "id": "StartIPRotationRequest" - }, - "AcceleratorConfig": { - "id": "AcceleratorConfig", - "description": "AcceleratorConfig represents a Hardware Accelerator request.", - "type": "object", - "properties": { - "acceleratorType": { - "description": "The accelerator type resource name. List of supported accelerators\n[here](/compute/docs/gpus/#Introduction)", - "type": "string" - }, - "acceleratorCount": { - "format": "int64", - "description": "The number of the accelerator cards exposed to an instance.", - "type": "string" - } - } - }, - "SetLabelsRequest": { - "description": "SetLabelsRequest sets the Google Cloud Platform labels on a Google Container\nEngine cluster, which will in turn set them for Google Compute Engine\nresources used by that cluster", - "type": "object", - "properties": { - "clusterId": { - "description": "The name of the cluster.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "labelFingerprint": { - "type": "string", - "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by\nContainer Engine and changes after every request to modify or update\nlabels. You must always provide an up-to-date fingerprint hash when\nupdating or changing labels. Make a \u003ccode\u003eget()\u003c/code\u003e request to the\nresource to get the latest fingerprint." - }, - "zone": { - "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", - "type": "string" - }, - "name": { - "description": "The name (project, location, cluster id) of the cluster to set labels.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", - "type": "string" - }, - "resourceLabels": { - "description": "The labels to set for that cluster.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "projectId": { - "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", - "type": "string" - } - }, - "id": "SetLabelsRequest" - }, - "NodePool": { - "type": "object", - "properties": { - "selfLink": { - "description": "[Output only] Server-defined URL for the resource.", - "type": "string" - }, - "instanceGroupUrls": { - "description": "[Output only] The resource URLs of [instance\ngroups](/compute/docs/instance-groups/) associated with this\nnode pool.", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "[Output only] The version of the Kubernetes of this node.", - "type": "string" - }, - "status": { - "enum": [ - "STATUS_UNSPECIFIED", - "PROVISIONING", - "RUNNING", - "RUNNING_WITH_ERROR", - "RECONCILING", - "STOPPING", - "ERROR" - ], - "description": "[Output only] The status of the nodes in this pool instance.", - "type": "string", - "enumDescriptions": [ - "Not set.", - "The PROVISIONING state indicates the node pool is being created.", - "The RUNNING state indicates the node pool has been created\nand is fully usable.", - "The RUNNING_WITH_ERROR state indicates the node pool has been created\nand is partially usable. Some error state has occurred and some\nfunctionality may be impaired. Customer may need to reissue a request\nor trigger a new update.", - "The RECONCILING state indicates that some work is actively being done on\nthe node pool, such as upgrading node software. Details can\nbe found in the `statusMessage` field.", - "The STOPPING state indicates the node pool is being deleted.", - "The ERROR state indicates the node pool may be unusable. Details\ncan be found in the `statusMessage` field." - ] - }, - "config": { - "$ref": "NodeConfig", - "description": "The node configuration of the pool." - }, - "statusMessage": { - "description": "[Output only] Additional information about the current status of this\nnode pool instance, if available.", - "type": "string" - }, - "name": { - "description": "The name of the node pool.", - "type": "string" - }, - "autoscaling": { - "$ref": "NodePoolAutoscaling", - "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled\nonly if a valid configuration is present." - }, - "management": { - "description": "NodeManagement configuration for this NodePool.", - "$ref": "NodeManagement" - }, - "initialNodeCount": { - "format": "int32", - "description": "The initial node count for the pool. You must ensure that your\nCompute Engine \u003ca href=\"/compute/docs/resource-quotas\"\u003eresource quota\u003c/a\u003e\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.", - "type": "integer" - } - }, - "id": "NodePool", - "description": "NodePool contains the name and configuration for a cluster's node pool.\nNode pools are a set of nodes (i.e. VM's), with a common configuration and\nspecification, under the control of the cluster master. They may have a set\nof Kubernetes labels applied to them, which may be used to reference them\nduring pod scheduling. They may also be resized up or down, to accommodate\nthe workload." + "id": "HorizontalPodAutoscaling" } }, "icons": { @@ -3080,5 +1318,1790 @@ "ownerDomain": "google.com", "name": "container", "batchPath": "batch", - "title": "Google Container Engine API" + "title": "Google Container Engine API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "locations": { + "resources": { + "clusters": { + "methods": { + "completeIpRotation": { + "id": "container.projects.locations.clusters.completeIpRotation", + "path": "v1beta1/{+name}:completeIpRotation", + "request": { + "$ref": "CompleteIPRotationRequest" + }, + "description": "Completes master IP rotation.", + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path", + "description": "The name (project, location, cluster id) of the cluster to complete IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation" + }, + "setNetworkPolicy": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name (project, location, cluster id) of the cluster to set networking policy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setNetworkPolicy", + "path": "v1beta1/{+name}:setNetworkPolicy", + "id": "container.projects.locations.clusters.setNetworkPolicy", + "description": "Enables/Disables Network Policy for a cluster.", + "request": { + "$ref": "SetNetworkPolicyRequest" + } + }, + "get": { + "description": "Gets the details of a specific cluster.", + "response": { + "$ref": "Cluster" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + }, + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "location": "query", + "description": "The name of the cluster to retrieve.\nThis field is deprecated, use name instead.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "path": "v1beta1/{+name}", + "id": "container.projects.locations.clusters.get" + }, + "startIpRotation": { + "request": { + "$ref": "StartIPRotationRequest" + }, + "description": "Start master IP rotation.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The name (project, location, cluster id) of the cluster to start IP rotation.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:startIpRotation", + "path": "v1beta1/{+name}:startIpRotation", + "id": "container.projects.locations.clusters.startIpRotation" + }, + "setMaintenancePolicy": { + "path": "v1beta1/{+name}:setMaintenancePolicy", + "id": "container.projects.locations.clusters.setMaintenancePolicy", + "description": "Sets the maintenance policy for a cluster.", + "request": { + "$ref": "SetMaintenancePolicyRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name (project, location, cluster id) of the cluster to set maintenance\npolicy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMaintenancePolicy" + }, + "delete": { + "path": "v1beta1/{+name}", + "id": "container.projects.locations.clusters.delete", + "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "location": "path", + "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$" + }, + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "clusterId": { + "location": "query", + "description": "The name of the cluster to delete.\nThis field is deprecated, use name instead.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}" + }, + "setResourceLabels": { + "description": "Sets labels on a cluster.", + "request": { + "$ref": "SetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster id) of the cluster to set labels.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setResourceLabels", + "path": "v1beta1/{+name}:setResourceLabels", + "id": "container.projects.locations.clusters.setResourceLabels" + }, + "setLegacyAbac": { + "description": "Enables or disables the ABAC authorization mechanism on a cluster.", + "request": { + "$ref": "SetLegacyAbacRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path", + "description": "The name (project, location, cluster id) of the cluster to set legacy abac.\nSpecified in the format 'projects/*/locations/*/clusters/*'." + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLegacyAbac", + "path": "v1beta1/{+name}:setLegacyAbac", + "id": "container.projects.locations.clusters.setLegacyAbac" + }, + "update": { + "request": { + "$ref": "UpdateClusterRequest" + }, + "description": "Updates the settings of a specific cluster.", + "httpMethod": "PUT", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path", + "description": "The name (project, location, cluster) of the cluster to update.\nSpecified in the format 'projects/*/locations/*/clusters/*'." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", + "id": "container.projects.locations.clusters.update", + "path": "v1beta1/{+name}" + }, + "setMasterAuth": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMasterAuth", + "path": "v1beta1/{+name}:setMasterAuth", + "id": "container.projects.locations.clusters.setMasterAuth", + "request": { + "$ref": "SetMasterAuthRequest" + }, + "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set.\nModify basic_auth.csv and reset the K8S API server.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The name (project, location, cluster) of the cluster to set auth.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", + "path": "v1beta1/{+parent}/clusters", + "id": "container.projects.locations.clusters.list", + "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.", + "response": { + "$ref": "ListClustersResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "type": "string", + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead." + }, + "zone": { + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field is deprecated, use parent instead.", + "type": "string" + }, + "parent": { + "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + } + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "parent": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path", + "description": "The parent (project and location) where the cluster will be created.\nSpecified in the format 'projects/*/locations/*'." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", + "id": "container.projects.locations.clusters.create", + "path": "v1beta1/{+parent}/clusters", + "request": { + "$ref": "CreateClusterRequest" + }, + "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster." + } + }, + "resources": { + "nodePools": { + "methods": { + "setManagement": { + "description": "Sets the NodeManagement options for a node pool.", + "request": { + "$ref": "SetNodePoolManagementRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster, node pool id) of the node pool to set\nmanagement properties. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setManagement", + "path": "v1beta1/{+name}:setManagement", + "id": "container.projects.locations.clusters.nodePools.setManagement" + }, + "delete": { + "parameters": { + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "type": "string", + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "type": "string", + "location": "query" + }, + "nodePoolId": { + "location": "query", + "description": "The name of the node pool to delete.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "name": { + "description": "The name (project, location, cluster, node pool id) of the node pool to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", + "id": "container.projects.locations.clusters.nodePools.delete", + "path": "v1beta1/{+name}", + "description": "Deletes a node pool from a cluster.", + "httpMethod": "DELETE", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ] + }, + "list": { + "response": { + "$ref": "ListNodePoolsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead.", + "type": "string" + }, + "zone": { + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", + "type": "string" + }, + "parent": { + "description": "The parent (project, location, cluster id) where the node pools will be listed.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", + "path": "v1beta1/{+parent}/nodePools", + "id": "container.projects.locations.clusters.nodePools.list", + "description": "Lists the node pools for a cluster." + }, + "rollback": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:rollback", + "path": "v1beta1/{+name}:rollback", + "id": "container.projects.locations.clusters.nodePools.rollback", + "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed.", + "request": { + "$ref": "RollbackNodePoolUpgradeRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster, node pool id) of the node poll to\nrollback upgrade.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "location": "path" + } + } + }, + "create": { + "description": "Creates a node pool for a cluster.", + "request": { + "$ref": "CreateNodePoolRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "parent": { + "description": "The parent (project, location, cluster id) where the node pool will be created.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", + "path": "v1beta1/{+parent}/nodePools", + "id": "container.projects.locations.clusters.nodePools.create" + }, + "get": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "nodePoolId": { + "location": "query", + "description": "The name of the node pool.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "location": "path", + "description": "The name (project, location, cluster, node pool id) of the node pool to get.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "required": true, + "type": "string" + }, + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string", + "location": "query" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}", + "path": "v1beta1/{+name}", + "id": "container.projects.locations.clusters.nodePools.get", + "description": "Retrieves the node pool requested.", + "response": { + "$ref": "NodePool" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET" + } + } + } + } + }, + "operations": { + "methods": { + "cancel": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "path": "v1beta1/{+name}:cancel", + "id": "container.projects.locations.operations.cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "description": "Cancels the specified operation.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name (project, location, operation id) of the operation to cancel.\nSpecified in the format 'projects/*/locations/*/operations/*'." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", + "path": "v1beta1/{+parent}/operations", + "id": "container.projects.locations.operations.list", + "description": "Lists all operations in a project in a specific zone or all zones.", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", + "type": "string", + "location": "query" + }, + "zone": { + "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones.\nThis field is deprecated, use parent instead.", + "type": "string", + "location": "query" + }, + "parent": { + "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "location": "path" + } + } + }, + "get": { + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "id": "container.projects.locations.operations.get", + "path": "v1beta1/{+name}", + "description": "Gets the specified operation.", + "httpMethod": "GET", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "location": "query", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "type": "string" + }, + "name": { + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.", + "required": true, + "type": "string" + }, + "operationId": { + "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + }, + "methods": { + "getServerConfig": { + "httpMethod": "GET", + "response": { + "$ref": "ServerConfig" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "projectId": { + "location": "query", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for.\nThis field is deprecated, use name instead.", + "type": "string", + "location": "query" + }, + "name": { + "location": "path", + "description": "The name (project and location) of the server config to get\nSpecified in the format 'projects/*/locations/*'.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serverConfig", + "id": "container.projects.locations.getServerConfig", + "path": "v1beta1/{+name}/serverConfig", + "description": "Returns configuration info about the Container Engine service." + } + } + }, + "zones": { + "methods": { + "getServerconfig": { + "description": "Returns configuration info about the Container Engine service.", + "response": { + "$ref": "ServerConfig" + }, + "parameterOrder": [ + "projectId", + "zone" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "name": { + "location": "query", + "description": "The name (project and location) of the server config to get\nSpecified in the format 'projects/*/locations/*'.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/serverconfig", + "path": "v1beta1/projects/{projectId}/zones/{zone}/serverconfig", + "id": "container.projects.zones.getServerconfig" + } + }, + "resources": { + "clusters": { + "resources": { + "nodePools": { + "methods": { + "get": { + "description": "Retrieves the node pool requested.", + "httpMethod": "GET", + "response": { + "$ref": "NodePool" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "nodePoolId": { + "description": "The name of the node pool.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "name": { + "location": "query", + "description": "The name (project, location, cluster, node pool id) of the node pool to get.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "id": "container.projects.zones.clusters.nodePools.get", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}" + }, + "setManagement": { + "request": { + "$ref": "SetNodePoolManagementRequest" + }, + "description": "Sets the NodeManagement options for a node pool.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "nodePoolId": { + "location": "path", + "description": "The name of the node pool to update.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement", + "id": "container.projects.zones.clusters.nodePools.setManagement", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement" + }, + "delete": { + "description": "Deletes a node pool from a cluster.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "query", + "description": "The name (project, location, cluster, node pool id) of the node pool to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.", + "type": "string" + }, + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "nodePoolId": { + "description": "The name of the node pool to delete.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}", + "id": "container.projects.zones.clusters.nodePools.delete" + }, + "list": { + "description": "Lists the node pools for a cluster.", + "response": { + "$ref": "ListNodePoolsResponse" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "parent": { + "location": "query", + "description": "The parent (project, location, cluster id) where the node pools will be listed.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "id": "container.projects.zones.clusters.nodePools.list" + }, + "rollback": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId", + "nodePoolId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "nodePoolId": { + "location": "path", + "description": "The name of the node pool to rollback.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the cluster to rollback.\nThis field is deprecated, use name instead." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", + "id": "container.projects.zones.clusters.nodePools.rollback", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback", + "request": { + "$ref": "RollbackNodePoolUpgradeRequest" + }, + "description": "Roll back the previously Aborted or Failed NodePool upgrade.\nThis will be an no-op if the last upgrade successfully completed." + }, + "create": { + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools", + "id": "container.projects.zones.clusters.nodePools.create", + "request": { + "$ref": "CreateNodePoolRequest" + }, + "description": "Creates a node pool for a cluster.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools" + } + } + } + }, + "methods": { + "list": { + "response": { + "$ref": "ListClustersResponse" + }, + "parameterOrder": [ + "projectId", + "zone" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string", + "location": "path" + }, + "parent": { + "location": "query", + "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters", + "id": "container.projects.zones.clusters.list", + "description": "Lists all clusters owned by a project in either the specified zone or all\nzones." + }, + "resourceLabels": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels", + "id": "container.projects.zones.clusters.resourceLabels", + "request": { + "$ref": "SetLabelsRequest" + }, + "description": "Sets labels on a cluster." + }, + "create": { + "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.", + "request": { + "$ref": "CreateClusterRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters", + "id": "container.projects.zones.clusters.create" + }, + "completeIpRotation": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", + "id": "container.projects.zones.clusters.completeIpRotation", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation", + "request": { + "$ref": "CompleteIPRotationRequest" + }, + "description": "Completes master IP rotation." + }, + "get": { + "description": "Gets the details of a specific cluster.", + "response": { + "$ref": "Cluster" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string", + "location": "query" + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to retrieve.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.get" + }, + "legacyAbac": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac", + "id": "container.projects.zones.clusters.legacyAbac", + "description": "Enables or disables the ABAC authorization mechanism on a cluster.", + "request": { + "$ref": "SetLegacyAbacRequest" + } + }, + "setNetworkPolicy": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead." + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy", + "id": "container.projects.zones.clusters.setNetworkPolicy", + "request": { + "$ref": "SetNetworkPolicyRequest" + }, + "description": "Enables/Disables Network Policy for a cluster." + }, + "startIpRotation": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "clusterId": { + "description": "The name of the cluster.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field is deprecated, use name instead." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation", + "id": "container.projects.zones.clusters.startIpRotation", + "request": { + "$ref": "StartIPRotationRequest" + }, + "description": "Start master IP rotation." + }, + "setMaintenancePolicy": { + "description": "Sets the maintenance policy for a cluster.", + "request": { + "$ref": "SetMaintenancePolicyRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).", + "required": true, + "type": "string" + }, + "zone": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides." + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to update.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy", + "id": "container.projects.zones.clusters.setMaintenancePolicy" + }, + "delete": { + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.delete", + "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the cluster to delete.\nThis field is deprecated, use name instead." + }, + "name": { + "location": "query", + "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}" + }, + "update": { + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "id": "container.projects.zones.clusters.update", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}", + "request": { + "$ref": "UpdateClusterRequest" + }, + "description": "Updates the settings of a specific cluster.", + "httpMethod": "PUT", + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead." + }, + "zone": { + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterId": { + "location": "path", + "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setMasterAuth": { + "request": { + "$ref": "SetMasterAuthRequest" + }, + "description": "Used to set master auth materials. Currently supports :-\nChanging the admin password of a specific cluster.\nThis can be either via password generation or explicitly set.\nModify basic_auth.csv and reset the K8S API server.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "clusterId" + ], + "httpMethod": "POST", + "parameters": { + "clusterId": { + "description": "The name of the cluster to upgrade.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", + "path": "v1beta1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth", + "id": "container.projects.zones.clusters.setMasterAuth" + } + } + }, + "operations": { + "methods": { + "cancel": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "projectId", + "zone", + "operationId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "operationId": { + "location": "path", + "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation resides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", + "path": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel", + "id": "container.projects.zones.operations.cancel", + "description": "Cancels the specified operation.", + "request": { + "$ref": "CancelOperationRequest" + } + }, + "list": { + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations", + "path": "v1beta1/projects/{projectId}/zones/{zone}/operations", + "id": "container.projects.zones.operations.list", + "description": "Lists all operations in a project in a specific zone or all zones.", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "projectId", + "zone" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string", + "location": "path" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine [zone](/compute/docs/zones#available)\nto return operations for, or `-` for all zones.\nThis field is deprecated, use parent instead.", + "required": true, + "type": "string" + }, + "parent": { + "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.", + "type": "string", + "location": "query" + } + } + }, + "get": { + "description": "Gets the specified operation.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "zone", + "operationId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "operationId": { + "description": "The server-assigned `name` of the operation.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "location": "path", + "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "zone": { + "location": "path", + "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field is deprecated, use name instead.", + "required": true, + "type": "string" + }, + "name": { + "location": "query", + "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.", + "type": "string" + } + }, + "flatPath": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}", + "path": "v1beta1/projects/{projectId}/zones/{zone}/operations/{operationId}", + "id": "container.projects.zones.operations.get" + } + } + } + } + } + } + } + }, + "parameters": { + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "fields": { + "type": "string", + "location": "query", + "description": "Selector specifying which fields to include in a partial response." + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + } + }, + "version": "v1beta1", + "baseUrl": "https://container.googleapis.com/", + "description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.", + "kind": "discovery#restDescription", + "servicePath": "", + "basePath": "", + "revision": "20170929", + "documentationLink": "https://cloud.google.com/container-engine/", + "id": "container:v1beta1", + "discoveryVersion": "v1", + "version_module": true } diff --git a/vendor/google.golang.org/api/container/v1beta1/container-gen.go b/vendor/google.golang.org/api/container/v1beta1/container-gen.go index 6d1bb8ede..70e08e8a3 100644 --- a/vendor/google.golang.org/api/container/v1beta1/container-gen.go +++ b/vendor/google.golang.org/api/container/v1beta1/container-gen.go @@ -619,6 +619,10 @@ type Cluster struct { // specified. NodePools []*NodePool `json:"nodePools,omitempty"` + // PodSecurityPolicyConfig: Configuration for the PodSecurityPolicy + // feature. + PodSecurityPolicyConfig *PodSecurityPolicyConfig `json:"podSecurityPolicyConfig,omitempty"` + // SelfLink: [Output only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` @@ -767,6 +771,10 @@ type ClusterUpdate struct { // the server. DesiredNodeVersion string `json:"desiredNodeVersion,omitempty"` + // DesiredPodSecurityPolicyConfig: The desired configuration options for + // the PodSecurityPolicy feature. + DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `json:"desiredPodSecurityPolicyConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "DesiredAddonsConfig") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -1960,6 +1968,7 @@ type NodeTaint struct { // Effect: Effect for taint. // // Possible values: + // "EFFECT_UNSPECIFIED" - Not set // "NO_SCHEDULE" - NoSchedule // "PREFER_NO_SCHEDULE" - PreferNoSchedule // "NO_EXECUTE" - NoExecute @@ -2099,6 +2108,37 @@ func (s *Operation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PodSecurityPolicyConfig: Configuration for the PodSecurityPolicy +// feature. +type PodSecurityPolicyConfig struct { + // Enabled: Enable the PodSecurityPolicy controller for this cluster. If + // enabled, pods + // must be valid under a PodSecurityPolicy to be created. + Enabled bool `json:"enabled,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Enabled") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Enabled") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PodSecurityPolicyConfig) MarshalJSON() ([]byte, error) { + type noMethod PodSecurityPolicyConfig + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RollbackNodePoolUpgradeRequest: RollbackNodePoolUpgradeRequest // rollbacks the previously Aborted or Failed // NodePool upgrade. This will be an no-op if the last upgrade @@ -2382,12 +2422,19 @@ func (s *SetMaintenancePolicyRequest) MarshalJSON() ([]byte, error) { // SetMasterAuthRequest: SetMasterAuthRequest updates the admin password // of a cluster. type SetMasterAuthRequest struct { - // Action: The exact form of action to be taken on the master auth + // Action: The exact form of action to be taken on the master auth. // // Possible values: - // "UNKNOWN" - Operation is unknown and will error out + // "UNKNOWN" - Operation is unknown and will error out. // "SET_PASSWORD" - Set the password to a user generated value. // "GENERATE_PASSWORD" - Generate a new password and set it to that. + // "SET_USERNAME" - Set the username. If an empty username is + // provided, basic authentication + // is disabled for the cluster. If a non-empty username is provided, + // basic + // authentication is enabled, with either a provided password or a + // generated + // one. Action string `json:"action,omitempty"` // ClusterId: The name of the cluster to upgrade. diff --git a/vendor/google.golang.org/api/content/v2/content-api.json b/vendor/google.golang.org/api/content/v2/content-api.json index da6c8d913..4a191f65e 100644 --- a/vendor/google.golang.org/api/content/v2/content-api.json +++ b/vendor/google.golang.org/api/content/v2/content-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/dPMCZ2Ey4YVlnyiRa2uPlyOUPp4\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/60Bew0gKwQtbGWAHt8nvE8JEE5I\"", "discoveryVersion": "v1", "id": "content:v2", "name": "content", "canonicalName": "Shopping Content", "version": "v2", - "revision": "20170928", + "revision": "20171010", "title": "Content API for Shopping", "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.", "ownerDomain": "google.com", @@ -825,7 +825,7 @@ }, "contentLanguage": { "type": "string", - "description": "[DEPRECATED] Please use target.language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry." + "description": "[DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry." }, "contentType": { "type": "string", @@ -867,7 +867,7 @@ }, "intendedDestinations": { "type": "array", - "description": "[DEPRECATED] Please use target.includedDestination instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).", + "description": "[DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).", "items": { "type": "string" } @@ -888,7 +888,7 @@ }, "targetCountry": { "type": "string", - "description": "[DEPRECATED] Please use target.country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code." + "description": "[DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code." }, "targets": { "type": "array", @@ -1387,14 +1387,14 @@ }, "prices": { "type": "array", - "description": "be \"infinity\". For example [{\"value\": \"10\", \"currency\": \"USD\"}, {\"value\": \"500\", \"currency\": \"USD\"}, {\"value\": \"infinity\", \"currency\": \"USD\"}] represents the headers \"\u003c= $10\", \" $500\". All prices within a service must have the same currency. Must be non-empty. Can only be set if all other fields are not set.", + "description": "A list of inclusive order price upper bounds. The last price's value can be \"infinity\". For example [{\"value\": \"10\", \"currency\": \"USD\"}, {\"value\": \"500\", \"currency\": \"USD\"}, {\"value\": \"infinity\", \"currency\": \"USD\"}] represents the headers \"\u003c= $10\", \" $500\". All prices within a service must have the same currency. Must be non-empty. Can only be set if all other fields are not set.", "items": { "$ref": "Price" } }, "weights": { "type": "array", - "description": "be \"infinity\". For example [{\"value\": \"10\", \"unit\": \"kg\"}, {\"value\": \"50\", \"unit\": \"kg\"}, {\"value\": \"infinity\", \"unit\": \"kg\"}] represents the headers \"\u003c= 10kg\", \" 50kg\". All weights within a service must have the same unit. Must be non-empty. Can only be set if all other fields are not set.", + "description": "A list of inclusive order weight upper bounds. The last weight's value can be \"infinity\". For example [{\"value\": \"10\", \"unit\": \"kg\"}, {\"value\": \"50\", \"unit\": \"kg\"}, {\"value\": \"infinity\", \"unit\": \"kg\"}] represents the headers \"\u003c= 10kg\", \" 50kg\". All weights within a service must have the same unit. Must be non-empty. Can only be set if all other fields are not set.", "items": { "$ref": "Weight" } diff --git a/vendor/google.golang.org/api/content/v2/content-gen.go b/vendor/google.golang.org/api/content/v2/content-gen.go index 0fc142fc4..07844e4ad 100644 --- a/vendor/google.golang.org/api/content/v2/content-gen.go +++ b/vendor/google.golang.org/api/content/v2/content-gen.go @@ -1386,8 +1386,8 @@ type Datafeed struct { // attributes are defined in the data feed. AttributeLanguage string `json:"attributeLanguage,omitempty"` - // ContentLanguage: [DEPRECATED] Please use target.language instead. The - // two-letter ISO 639-1 language of the items in the feed. Must be a + // ContentLanguage: [DEPRECATED] Please use targets[].language instead. + // The two-letter ISO 639-1 language of the items in the feed. Must be a // valid language for targetCountry. ContentLanguage string `json:"contentLanguage,omitempty"` @@ -1409,8 +1409,8 @@ type Datafeed struct { Id int64 `json:"id,omitempty,string"` // IntendedDestinations: [DEPRECATED] Please use - // target.includedDestination instead. The list of intended destinations - // (corresponds to checked check boxes in Merchant Center). + // targets[].includedDestinations instead. The list of intended + // destinations (corresponds to checked check boxes in Merchant Center). IntendedDestinations []string `json:"intendedDestinations,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed @@ -1420,7 +1420,7 @@ type Datafeed struct { // Name: A descriptive name of the data feed. Name string `json:"name,omitempty"` - // TargetCountry: [DEPRECATED] Please use target.country instead. The + // TargetCountry: [DEPRECATED] Please use targets[].country instead. The // country where the items in the feed will be included in the search // index, represented as a CLDR territory code. TargetCountry string `json:"targetCountry,omitempty"` @@ -2220,18 +2220,20 @@ type Headers struct { // if all other fields are not set. PostalCodeGroupNames []string `json:"postalCodeGroupNames,omitempty"` - // Prices: be "infinity". For example [{"value": "10", "currency": - // "USD"}, {"value": "500", "currency": "USD"}, {"value": "infinity", - // "currency": "USD"}] represents the headers "<= $10", " $500". All - // prices within a service must have the same currency. Must be - // non-empty. Can only be set if all other fields are not set. + // Prices: A list of inclusive order price upper bounds. The last + // price's value can be "infinity". For example [{"value": "10", + // "currency": "USD"}, {"value": "500", "currency": "USD"}, {"value": + // "infinity", "currency": "USD"}] represents the headers "<= $10", " + // $500". All prices within a service must have the same currency. Must + // be non-empty. Can only be set if all other fields are not set. Prices []*Price `json:"prices,omitempty"` - // Weights: be "infinity". For example [{"value": "10", "unit": "kg"}, - // {"value": "50", "unit": "kg"}, {"value": "infinity", "unit": "kg"}] - // represents the headers "<= 10kg", " 50kg". All weights within a - // service must have the same unit. Must be non-empty. Can only be set - // if all other fields are not set. + // Weights: A list of inclusive order weight upper bounds. The last + // weight's value can be "infinity". For example [{"value": "10", + // "unit": "kg"}, {"value": "50", "unit": "kg"}, {"value": "infinity", + // "unit": "kg"}] represents the headers "<= 10kg", " 50kg". All weights + // within a service must have the same unit. Must be non-empty. Can only + // be set if all other fields are not set. Weights []*Weight `json:"weights,omitempty"` // ForceSendFields is a list of field names (e.g. "Locations") to diff --git a/vendor/google.golang.org/api/dataflow/v1b3/dataflow-api.json b/vendor/google.golang.org/api/dataflow/v1b3/dataflow-api.json index 192a32e3f..f3072b5f8 100644 --- a/vendor/google.golang.org/api/dataflow/v1b3/dataflow-api.json +++ b/vendor/google.golang.org/api/dataflow/v1b3/dataflow-api.json @@ -3,9 +3,9 @@ "ownerDomain": "google.com", "name": "dataflow", "batchPath": "batch", - "revision": "20170918", "documentationLink": "https://cloud.google.com/dataflow", "id": "dataflow:v1b3", + "revision": "20171003", "title": "Google Dataflow API", "ownerName": "Google", "discoveryVersion": "v1", @@ -13,6 +13,12 @@ "projects": { "methods": { "workerMessages": { + "id": "dataflow.projects.workerMessages", + "path": "v1b3/projects/{projectId}/WorkerMessages", + "request": { + "$ref": "SendWorkerMessagesRequest" + }, + "description": "Send a worker_message to the service.", "response": { "$ref": "SendWorkerMessagesResponse" }, @@ -28,43 +34,33 @@ ], "parameters": { "projectId": { - "location": "path", "description": "The project to send the WorkerMessages to.", "type": "string", - "required": true + "required": true, + "location": "path" } }, - "flatPath": "v1b3/projects/{projectId}/WorkerMessages", - "id": "dataflow.projects.workerMessages", - "path": "v1b3/projects/{projectId}/WorkerMessages", - "request": { - "$ref": "SendWorkerMessagesRequest" - }, - "description": "Send a worker_message to the service." + "flatPath": "v1b3/projects/{projectId}/WorkerMessages" } }, "resources": { "locations": { "methods": { "workerMessages": { + "id": "dataflow.projects.locations.workerMessages", + "path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages", + "description": "Send a worker_message to the service.", "request": { "$ref": "SendWorkerMessagesRequest" }, - "description": "Send a worker_message to the service.", - "httpMethod": "POST", + "response": { + "$ref": "SendWorkerMessagesResponse" + }, "parameterOrder": [ "projectId", "location" ], - "response": { - "$ref": "SendWorkerMessagesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], + "httpMethod": "POST", "parameters": { "location": { "location": "path", @@ -79,147 +75,16 @@ "required": true } }, - "flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages", - "path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages", - "id": "dataflow.projects.locations.workerMessages" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages" } }, "resources": { - "templates": { - "methods": { - "launch": { - "response": { - "$ref": "LaunchTemplateResponse" - }, - "parameterOrder": [ - "projectId", - "location" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "Required. The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "gcsPath": { - "location": "query", - "description": "Required. A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.", - "type": "string" - }, - "location": { - "description": "The location to which to direct the request.", - "type": "string", - "required": true, - "location": "path" - }, - "validateOnly": { - "description": "If true, the request is validated but not actually executed.\nDefaults to false.", - "type": "boolean", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch", - "id": "dataflow.projects.locations.templates.launch", - "path": "v1b3/projects/{projectId}/locations/{location}/templates:launch", - "description": "Launch a template.", - "request": { - "$ref": "LaunchTemplateParameters" - } - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "projectId", - "location" - ], - "response": { - "$ref": "GetTemplateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "parameters": { - "location": { - "location": "path", - "description": "The location to which to direct the request.", - "type": "string", - "required": true - }, - "view": { - "description": "The view to retrieve. Defaults to METADATA_ONLY.", - "type": "string", - "location": "query", - "enum": [ - "METADATA_ONLY" - ] - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - }, - "gcsPath": { - "location": "query", - "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be a valid Cloud Storage URL, beginning with `gs://`.", - "type": "string" - } - }, - "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get", - "path": "v1b3/projects/{projectId}/locations/{location}/templates:get", - "id": "dataflow.projects.locations.templates.get", - "description": "Get the template associated with a template." - }, - "create": { - "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates", - "id": "dataflow.projects.locations.templates.create", - "path": "v1b3/projects/{projectId}/locations/{location}/templates", - "request": { - "$ref": "CreateJobFromTemplateRequest" - }, - "description": "Creates a Cloud Dataflow job from a template.", - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "location" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "parameters": { - "projectId": { - "description": "Required. The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "location": { - "description": "The location to which to direct the request.", - "type": "string", - "required": true, - "location": "path" - } - } - } - } - }, "jobs": { "methods": { "getMetrics": { @@ -243,12 +108,6 @@ "https://www.googleapis.com/auth/userinfo.email" ], "parameters": { - "location": { - "description": "The location which contains the job specified by job_id.", - "type": "string", - "required": true, - "location": "path" - }, "startTime": { "location": "query", "format": "google-datetime", @@ -256,20 +115,30 @@ "type": "string" }, "jobId": { - "description": "The job to get messages for.", "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "The job to get messages for." }, "projectId": { + "type": "string", + "required": true, "location": "path", - "description": "A project id.", + "description": "A project id." + }, + "location": { + "location": "path", + "description": "The location which contains the job specified by job_id.", "type": "string", "required": true } } }, "list": { + "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", + "path": "v1b3/projects/{projectId}/locations/{location}/jobs", + "id": "dataflow.projects.locations.jobs.list", + "description": "List the jobs of a project in a given region.", "httpMethod": "GET", "parameterOrder": [ "projectId", @@ -286,6 +155,7 @@ ], "parameters": { "filter": { + "type": "string", "location": "query", "enum": [ "UNKNOWN", @@ -293,14 +163,13 @@ "TERMINATED", "ACTIVE" ], - "description": "The kind of filter to use.", - "type": "string" + "description": "The kind of filter to use." }, "location": { - "location": "path", "description": "The location that contains this job.", "type": "string", - "required": true + "required": true, + "location": "path" }, "pageToken": { "location": "query", @@ -314,143 +183,7 @@ "location": "query" }, "view": { - "location": "query", - "enum": [ - "JOB_VIEW_UNKNOWN", - "JOB_VIEW_SUMMARY", - "JOB_VIEW_ALL", - "JOB_VIEW_DESCRIPTION" - ], "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.", - "type": "string" - }, - "projectId": { - "location": "path", - "description": "The project which owns the jobs.", - "type": "string", - "required": true - } - }, - "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs", - "id": "dataflow.projects.locations.jobs.list", - "description": "List the jobs of a project in a given region." - }, - "get": { - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "location", - "jobId" - ], - "httpMethod": "GET", - "parameters": { - "view": { - "location": "query", - "enum": [ - "JOB_VIEW_UNKNOWN", - "JOB_VIEW_SUMMARY", - "JOB_VIEW_ALL", - "JOB_VIEW_DESCRIPTION" - ], - "description": "The level of information requested in response.", - "type": "string" - }, - "jobId": { - "description": "The job ID.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "location": { - "description": "The location that contains this job.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", - "id": "dataflow.projects.locations.jobs.get", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", - "description": "Gets the state of the specified Cloud Dataflow job." - }, - "update": { - "description": "Updates the state of an existing Cloud Dataflow job.", - "request": { - "$ref": "Job" - }, - "httpMethod": "PUT", - "parameterOrder": [ - "projectId", - "location", - "jobId" - ], - "response": { - "$ref": "Job" - }, - "parameters": { - "location": { - "location": "path", - "description": "The location that contains this job.", - "type": "string", - "required": true - }, - "jobId": { - "location": "path", - "description": "The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", - "id": "dataflow.projects.locations.jobs.update" - }, - "create": { - "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs", - "id": "dataflow.projects.locations.jobs.create", - "description": "Creates a Cloud Dataflow job.", - "request": { - "$ref": "Job" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "location" - ], - "response": { - "$ref": "Job" - }, - "parameters": { - "view": { - "description": "The level of information requested in response.", "type": "string", "location": "query", "enum": [ @@ -460,6 +193,42 @@ "JOB_VIEW_DESCRIPTION" ] }, + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The project which owns the jobs." + } + } + }, + "get": { + "httpMethod": "GET", + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "location", + "jobId" + ], + "parameters": { + "view": { + "location": "query", + "enum": [ + "JOB_VIEW_UNKNOWN", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_ALL", + "JOB_VIEW_DESCRIPTION" + ], + "description": "The level of information requested in response.", + "type": "string" + }, + "jobId": { + "location": "path", + "description": "The job ID.", + "type": "string", + "required": true + }, "projectId": { "location": "path", "description": "The ID of the Cloud Platform project that the job belongs to.", @@ -467,15 +236,10 @@ "required": true }, "location": { + "location": "path", "description": "The location that contains this job.", "type": "string", - "required": true, - "location": "path" - }, - "replaceJobId": { - "location": "query", - "description": "Deprecated. This field is now in the Job message.", - "type": "string" + "required": true } }, "scopes": [ @@ -483,61 +247,114 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly", "https://www.googleapis.com/auth/userinfo.email" - ] + ], + "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", + "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", + "id": "dataflow.projects.locations.jobs.get", + "description": "Gets the state of the specified Cloud Dataflow job." + }, + "update": { + "id": "dataflow.projects.locations.jobs.update", + "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}", + "description": "Updates the state of an existing Cloud Dataflow job.", + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "location", + "jobId" + ], + "httpMethod": "PUT", + "parameters": { + "jobId": { + "location": "path", + "description": "The job ID.", + "type": "string", + "required": true + }, + "projectId": { + "location": "path", + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + }, + "location": { + "location": "path", + "description": "The location that contains this job.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}" + }, + "create": { + "request": { + "$ref": "Job" + }, + "description": "Creates a Cloud Dataflow job.", + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "location" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "location": { + "location": "path", + "description": "The location that contains this job.", + "type": "string", + "required": true + }, + "replaceJobId": { + "location": "query", + "description": "Deprecated. This field is now in the Job message.", + "type": "string" + }, + "view": { + "location": "query", + "enum": [ + "JOB_VIEW_UNKNOWN", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_ALL", + "JOB_VIEW_DESCRIPTION" + ], + "description": "The level of information requested in response.", + "type": "string" + }, + "projectId": { + "location": "path", + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + } + }, + "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", + "id": "dataflow.projects.locations.jobs.create", + "path": "v1b3/projects/{projectId}/locations/{location}/jobs" } }, "resources": { "workItems": { "methods": { - "reportStatus": { - "description": "Reports the status of dataflow WorkItems leased by a worker.", - "request": { - "$ref": "ReportWorkItemStatusRequest" - }, - "response": { - "$ref": "ReportWorkItemStatusResponse" - }, - "parameterOrder": [ - "projectId", - "location", - "jobId" - ], - "httpMethod": "POST", - "parameters": { - "location": { - "description": "The location which contains the WorkItem's job.", - "type": "string", - "required": true, - "location": "path" - }, - "jobId": { - "location": "path", - "description": "The job which the WorkItem is part of.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The project which owns the WorkItem's job.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus", - "id": "dataflow.projects.locations.jobs.workItems.reportStatus", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus" - }, "lease": { - "request": { - "$ref": "LeaseWorkItemRequest" - }, - "description": "Leases a dataflow WorkItem to run.", "response": { "$ref": "LeaseWorkItemResponse" }, @@ -555,10 +372,10 @@ ], "parameters": { "location": { - "location": "path", - "description": "The location which contains the WorkItem's job.", "type": "string", - "required": true + "required": true, + "location": "path", + "description": "The location which contains the WorkItem's job." }, "jobId": { "location": "path", @@ -575,70 +392,118 @@ }, "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease", "id": "dataflow.projects.locations.jobs.workItems.lease", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease" + "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease", + "request": { + "$ref": "LeaseWorkItemRequest" + }, + "description": "Leases a dataflow WorkItem to run." + }, + "reportStatus": { + "request": { + "$ref": "ReportWorkItemStatusRequest" + }, + "description": "Reports the status of dataflow WorkItems leased by a worker.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "location", + "jobId" + ], + "response": { + "$ref": "ReportWorkItemStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "jobId": { + "description": "The job which the WorkItem is part of.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "location": "path", + "description": "The project which owns the WorkItem's job.", + "type": "string", + "required": true + }, + "location": { + "location": "path", + "description": "The location which contains the WorkItem's job.", + "type": "string", + "required": true + } + }, + "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus", + "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus", + "id": "dataflow.projects.locations.jobs.workItems.reportStatus" } } }, "debug": { "methods": { "sendCapture": { - "response": { - "$ref": "SendDebugCaptureResponse" - }, + "httpMethod": "POST", "parameterOrder": [ "projectId", "location", "jobId" ], - "httpMethod": "POST", + "response": { + "$ref": "SendDebugCaptureResponse" + }, + "parameters": { + "jobId": { + "description": "The job id.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "description": "The project id.", + "type": "string", + "required": true, + "location": "path" + }, + "location": { + "description": "The location which contains the job specified by job_id.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly", "https://www.googleapis.com/auth/userinfo.email" ], - "parameters": { - "location": { - "location": "path", - "description": "The location which contains the job specified by job_id.", - "type": "string", - "required": true - }, - "jobId": { - "location": "path", - "description": "The job id.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "The project id.", - "type": "string", - "required": true - } - }, "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture", - "id": "dataflow.projects.locations.jobs.debug.sendCapture", "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture", + "id": "dataflow.projects.locations.jobs.debug.sendCapture", + "description": "Send encoded debug capture data for component.", "request": { "$ref": "SendDebugCaptureRequest" - }, - "description": "Send encoded debug capture data for component." + } }, "getConfig": { "request": { "$ref": "GetDebugConfigRequest" }, "description": "Get encoded debug configuration for component. Not cacheable.", - "response": { - "$ref": "GetDebugConfigResponse" - }, + "httpMethod": "POST", "parameterOrder": [ "projectId", "location", "jobId" ], - "httpMethod": "POST", + "response": { + "$ref": "GetDebugConfigResponse" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", @@ -646,12 +511,6 @@ "https://www.googleapis.com/auth/userinfo.email" ], "parameters": { - "location": { - "location": "path", - "description": "The location which contains the job specified by job_id.", - "type": "string", - "required": true - }, "jobId": { "location": "path", "description": "The job id.", @@ -659,75 +518,74 @@ "required": true }, "projectId": { + "location": "path", "description": "The project id.", + "type": "string", + "required": true + }, + "location": { "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "The location which contains the job specified by job_id." } }, "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig", - "id": "dataflow.projects.locations.jobs.debug.getConfig", - "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig" + "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig", + "id": "dataflow.projects.locations.jobs.debug.getConfig" } } }, "messages": { "methods": { "list": { - "response": { - "$ref": "ListJobMessagesResponse" - }, + "description": "Request the job status.", + "httpMethod": "GET", "parameterOrder": [ "projectId", "location", "jobId" ], - "httpMethod": "GET", + "response": { + "$ref": "ListJobMessagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], "parameters": { - "jobId": { - "location": "path", - "description": "The job to get messages about.", - "type": "string", - "required": true - }, - "projectId": { - "description": "A project id.", - "type": "string", - "required": true, - "location": "path" - }, - "location": { - "description": "The location which contains the job specified by job_id.", - "type": "string", - "required": true, - "location": "path" - }, "endTime": { "format": "google-datetime", "description": "Return only messages with timestamps \u003c end_time. The default is now\n(i.e. return up to the latest messages available).", "type": "string", "location": "query" }, - "pageToken": { - "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.", + "location": { + "location": "path", + "description": "The location which contains the job specified by job_id.", "type": "string", - "location": "query" + "required": true + }, + "pageToken": { + "location": "query", + "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.", + "type": "string" }, "startTime": { + "location": "query", "format": "google-datetime", "description": "If specified, return only messages with timestamps \u003e= start_time.\nThe default is the job creation time (i.e. beginning of messages).", - "type": "string", - "location": "query" + "type": "string" }, "pageSize": { + "location": "query", "format": "int32", "description": "If specified, determines the maximum number of messages to\nreturn. If unspecified, the service may choose an appropriate\ndefault, or may return an arbitrarily large number of results.", - "type": "integer", - "location": "query" + "type": "integer" }, "minimumImportance": { - "description": "Filter to only get messages with importance \u003e= level", - "type": "string", "location": "query", "enum": [ "JOB_MESSAGE_IMPORTANCE_UNKNOWN", @@ -736,77 +594,171 @@ "JOB_MESSAGE_BASIC", "JOB_MESSAGE_WARNING", "JOB_MESSAGE_ERROR" - ] + ], + "description": "Filter to only get messages with importance \u003e= level", + "type": "string" + }, + "jobId": { + "location": "path", + "description": "The job to get messages about.", + "type": "string", + "required": true + }, + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "A project id." } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages", - "id": "dataflow.projects.locations.jobs.messages.list", "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages", - "description": "Request the job status." + "id": "dataflow.projects.locations.jobs.messages.list" } } } } + }, + "templates": { + "methods": { + "get": { + "description": "Get the template associated with a template.", + "response": { + "$ref": "GetTemplateResponse" + }, + "parameterOrder": [ + "projectId", + "location" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "view": { + "description": "The view to retrieve. Defaults to METADATA_ONLY.", + "type": "string", + "location": "query", + "enum": [ + "METADATA_ONLY" + ] + }, + "projectId": { + "description": "Required. The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true, + "location": "path" + }, + "gcsPath": { + "location": "query", + "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be a valid Cloud Storage URL, beginning with `gs://`.", + "type": "string" + }, + "location": { + "description": "The location to which to direct the request.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get", + "id": "dataflow.projects.locations.templates.get", + "path": "v1b3/projects/{projectId}/locations/{location}/templates:get" + }, + "create": { + "request": { + "$ref": "CreateJobFromTemplateRequest" + }, + "description": "Creates a Cloud Dataflow job from a template.", + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "location" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "location": { + "type": "string", + "required": true, + "location": "path", + "description": "The location to which to direct the request." + }, + "projectId": { + "description": "Required. The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates", + "path": "v1b3/projects/{projectId}/locations/{location}/templates", + "id": "dataflow.projects.locations.templates.create" + }, + "launch": { + "description": "Launch a template.", + "request": { + "$ref": "LaunchTemplateParameters" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId", + "location" + ], + "response": { + "$ref": "LaunchTemplateResponse" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + }, + "gcsPath": { + "location": "query", + "description": "Required. A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.", + "type": "string" + }, + "location": { + "location": "path", + "description": "The location to which to direct the request.", + "type": "string", + "required": true + }, + "validateOnly": { + "description": "If true, the request is validated but not actually executed.\nDefaults to false.", + "type": "boolean", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch", + "path": "v1b3/projects/{projectId}/locations/{location}/templates:launch", + "id": "dataflow.projects.locations.templates.launch" + } + } } } }, "templates": { "methods": { - "get": { - "description": "Get the template associated with a template.", - "response": { - "$ref": "GetTemplateResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "GET", - "parameters": { - "view": { - "location": "query", - "enum": [ - "METADATA_ONLY" - ], - "description": "The view to retrieve. Defaults to METADATA_ONLY.", - "type": "string" - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - }, - "gcsPath": { - "location": "query", - "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be a valid Cloud Storage URL, beginning with `gs://`.", - "type": "string" - }, - "location": { - "description": "The location to which to direct the request.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/templates:get", - "id": "dataflow.projects.templates.get", - "path": "v1b3/projects/{projectId}/templates:get" - }, "create": { - "flatPath": "v1b3/projects/{projectId}/templates", - "id": "dataflow.projects.templates.create", - "path": "v1b3/projects/{projectId}/templates", "request": { "$ref": "CreateJobFromTemplateRequest" }, @@ -831,25 +783,36 @@ "type": "string", "required": true } - } + }, + "flatPath": "v1b3/projects/{projectId}/templates", + "id": "dataflow.projects.templates.create", + "path": "v1b3/projects/{projectId}/templates" }, "launch": { - "description": "Launch a template.", + "id": "dataflow.projects.templates.launch", + "path": "v1b3/projects/{projectId}/templates:launch", "request": { "$ref": "LaunchTemplateParameters" }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId" - ], + "description": "Launch a template.", "response": { "$ref": "LaunchTemplateResponse" }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], "parameters": { "location": { - "location": "query", "description": "The location to which to direct the request.", - "type": "string" + "type": "string", + "location": "query" }, "validateOnly": { "description": "If true, the request is validated but not actually executed.\nDefaults to false.", @@ -857,15 +820,152 @@ "location": "query" }, "projectId": { + "location": "path", "description": "Required. The ID of the Cloud Platform project that the job belongs to.", "type": "string", + "required": true + }, + "gcsPath": { + "location": "query", + "description": "Required. A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.", + "type": "string" + } + }, + "flatPath": "v1b3/projects/{projectId}/templates:launch" + }, + "get": { + "parameterOrder": [ + "projectId" + ], + "httpMethod": "GET", + "response": { + "$ref": "GetTemplateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "location": { + "description": "The location to which to direct the request.", + "type": "string", + "location": "query" + }, + "view": { + "location": "query", + "enum": [ + "METADATA_ONLY" + ], + "description": "The view to retrieve. Defaults to METADATA_ONLY.", + "type": "string" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + }, + "gcsPath": { + "type": "string", + "location": "query", + "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be a valid Cloud Storage URL, beginning with `gs://`." + } + }, + "flatPath": "v1b3/projects/{projectId}/templates:get", + "id": "dataflow.projects.templates.get", + "path": "v1b3/projects/{projectId}/templates:get", + "description": "Get the template associated with a template." + } + } + }, + "jobs": { + "methods": { + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "parameters": { + "location": { + "description": "The location that contains this job.", + "type": "string", + "location": "query" + }, + "replaceJobId": { + "description": "Deprecated. This field is now in the Job message.", + "type": "string", + "location": "query" + }, + "view": { + "location": "query", + "enum": [ + "JOB_VIEW_UNKNOWN", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_ALL", + "JOB_VIEW_DESCRIPTION" + ], + "description": "The level of information requested in response.", + "type": "string" + }, + "projectId": { + "location": "path", + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + } + }, + "flatPath": "v1b3/projects/{projectId}/jobs", + "path": "v1b3/projects/{projectId}/jobs", + "id": "dataflow.projects.jobs.create", + "request": { + "$ref": "Job" + }, + "description": "Creates a Cloud Dataflow job." + }, + "getMetrics": { + "description": "Request the job status.", + "response": { + "$ref": "JobMetrics" + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "httpMethod": "GET", + "parameters": { + "location": { + "description": "The location which contains the job specified by job_id.", + "type": "string", + "location": "query" + }, + "startTime": { + "type": "string", + "location": "query", + "format": "google-datetime", + "description": "Return only metric data that has changed since this time.\nDefault is to return all information about all metrics for the job." + }, + "jobId": { + "location": "path", + "description": "The job to get messages for.", + "type": "string", + "required": true + }, + "projectId": { + "description": "A project id.", + "type": "string", "required": true, "location": "path" - }, - "gcsPath": { - "description": "Required. A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.", - "type": "string", - "location": "query" } }, "scopes": [ @@ -874,14 +974,167 @@ "https://www.googleapis.com/auth/compute.readonly", "https://www.googleapis.com/auth/userinfo.email" ], - "flatPath": "v1b3/projects/{projectId}/templates:launch", - "path": "v1b3/projects/{projectId}/templates:launch", - "id": "dataflow.projects.templates.launch" - } - } - }, - "jobs": { - "methods": { + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics", + "id": "dataflow.projects.jobs.getMetrics", + "path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics" + }, + "get": { + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "httpMethod": "GET", + "parameters": { + "location": { + "description": "The location that contains this job.", + "type": "string", + "location": "query" + }, + "view": { + "description": "The level of information requested in response.", + "type": "string", + "location": "query", + "enum": [ + "JOB_VIEW_UNKNOWN", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_ALL", + "JOB_VIEW_DESCRIPTION" + ] + }, + "jobId": { + "description": "The job ID.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "location": "path", + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", + "id": "dataflow.projects.jobs.get", + "path": "v1b3/projects/{projectId}/jobs/{jobId}", + "description": "Gets the state of the specified Cloud Dataflow job." + }, + "update": { + "description": "Updates the state of an existing Cloud Dataflow job.", + "request": { + "$ref": "Job" + }, + "httpMethod": "PUT", + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "Job" + }, + "parameters": { + "location": { + "location": "query", + "description": "The location that contains this job.", + "type": "string" + }, + "jobId": { + "description": "The job ID.", + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string", + "required": true, + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", + "path": "v1b3/projects/{projectId}/jobs/{jobId}", + "id": "dataflow.projects.jobs.update" + }, + "aggregated": { + "description": "List the jobs of a project across all regions.", + "response": { + "$ref": "ListJobsResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "GET", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path", + "description": "The project which owns the jobs." + }, + "filter": { + "location": "query", + "enum": [ + "UNKNOWN", + "ALL", + "TERMINATED", + "ACTIVE" + ], + "description": "The kind of filter to use.", + "type": "string" + }, + "location": { + "description": "The location that contains this job.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "Set this to the 'next_page_token' field of a previous response\nto request additional results in a long list.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.", + "type": "integer" + }, + "view": { + "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.", + "type": "string", + "location": "query", + "enum": [ + "JOB_VIEW_UNKNOWN", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_ALL", + "JOB_VIEW_DESCRIPTION" + ] + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], + "flatPath": "v1b3/projects/{projectId}/jobs:aggregated", + "id": "dataflow.projects.jobs.aggregated", + "path": "v1b3/projects/{projectId}/jobs:aggregated" + }, "list": { "description": "List the jobs of a project in a given region.", "response": { @@ -899,26 +1152,26 @@ ], "parameters": { "projectId": { - "description": "The project which owns the jobs.", "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "The project which owns the jobs." }, "filter": { + "description": "The kind of filter to use.", + "type": "string", "location": "query", "enum": [ "UNKNOWN", "ALL", "TERMINATED", "ACTIVE" - ], - "description": "The kind of filter to use.", - "type": "string" + ] }, "location": { + "location": "query", "description": "The location that contains this job.", - "type": "string", - "location": "query" + "type": "string" }, "pageToken": { "location": "query", @@ -926,10 +1179,10 @@ "type": "string" }, "pageSize": { + "location": "query", "format": "int32", "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.", - "type": "integer", - "location": "query" + "type": "integer" }, "view": { "location": "query", @@ -946,277 +1199,27 @@ "flatPath": "v1b3/projects/{projectId}/jobs", "id": "dataflow.projects.jobs.list", "path": "v1b3/projects/{projectId}/jobs" - }, - "create": { - "flatPath": "v1b3/projects/{projectId}/jobs", - "path": "v1b3/projects/{projectId}/jobs", - "id": "dataflow.projects.jobs.create", - "description": "Creates a Cloud Dataflow job.", - "request": { - "$ref": "Job" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId" - ], - "response": { - "$ref": "Job" - }, - "parameters": { - "view": { - "location": "query", - "enum": [ - "JOB_VIEW_UNKNOWN", - "JOB_VIEW_SUMMARY", - "JOB_VIEW_ALL", - "JOB_VIEW_DESCRIPTION" - ], - "description": "The level of information requested in response.", - "type": "string" - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "location": { - "description": "The location that contains this job.", - "type": "string", - "location": "query" - }, - "replaceJobId": { - "location": "query", - "description": "Deprecated. This field is now in the Job message.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ] - }, - "getMetrics": { - "description": "Request the job status.", - "response": { - "$ref": "JobMetrics" - }, - "parameterOrder": [ - "projectId", - "jobId" - ], - "httpMethod": "GET", - "parameters": { - "location": { - "location": "query", - "description": "The location which contains the job specified by job_id.", - "type": "string" - }, - "startTime": { - "location": "query", - "format": "google-datetime", - "description": "Return only metric data that has changed since this time.\nDefault is to return all information about all metrics for the job.", - "type": "string" - }, - "jobId": { - "description": "The job to get messages for.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "A project id.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics", - "id": "dataflow.projects.jobs.getMetrics", - "path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics" - }, - "get": { - "description": "Gets the state of the specified Cloud Dataflow job.", - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "jobId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "parameters": { - "view": { - "location": "query", - "enum": [ - "JOB_VIEW_UNKNOWN", - "JOB_VIEW_SUMMARY", - "JOB_VIEW_ALL", - "JOB_VIEW_DESCRIPTION" - ], - "description": "The level of information requested in response.", - "type": "string" - }, - "jobId": { - "location": "path", - "description": "The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "location": { - "location": "query", - "description": "The location that contains this job.", - "type": "string" - } - }, - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", - "id": "dataflow.projects.jobs.get", - "path": "v1b3/projects/{projectId}/jobs/{jobId}" - }, - "update": { - "httpMethod": "PUT", - "parameterOrder": [ - "projectId", - "jobId" - ], - "response": { - "$ref": "Job" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "parameters": { - "location": { - "description": "The location that contains this job.", - "type": "string", - "location": "query" - }, - "jobId": { - "location": "path", - "description": "The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}", - "path": "v1b3/projects/{projectId}/jobs/{jobId}", - "id": "dataflow.projects.jobs.update", - "request": { - "$ref": "Job" - }, - "description": "Updates the state of an existing Cloud Dataflow job." - }, - "aggregated": { - "flatPath": "v1b3/projects/{projectId}/jobs:aggregated", - "path": "v1b3/projects/{projectId}/jobs:aggregated", - "id": "dataflow.projects.jobs.aggregated", - "description": "List the jobs of a project across all regions.", - "httpMethod": "GET", - "response": { - "$ref": "ListJobsResponse" - }, - "parameterOrder": [ - "projectId" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ], - "parameters": { - "projectId": { - "description": "The project which owns the jobs.", - "type": "string", - "required": true, - "location": "path" - }, - "filter": { - "description": "The kind of filter to use.", - "type": "string", - "location": "query", - "enum": [ - "UNKNOWN", - "ALL", - "TERMINATED", - "ACTIVE" - ] - }, - "location": { - "location": "query", - "description": "The location that contains this job.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "Set this to the 'next_page_token' field of a previous response\nto request additional results in a long list.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.", - "type": "integer", - "location": "query" - }, - "view": { - "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.", - "type": "string", - "location": "query", - "enum": [ - "JOB_VIEW_UNKNOWN", - "JOB_VIEW_SUMMARY", - "JOB_VIEW_ALL", - "JOB_VIEW_DESCRIPTION" - ] - } - } } }, "resources": { "workItems": { "methods": { "reportStatus": { + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", + "id": "dataflow.projects.jobs.workItems.reportStatus", + "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", "request": { "$ref": "ReportWorkItemStatusRequest" }, "description": "Reports the status of dataflow WorkItems leased by a worker.", - "httpMethod": "POST", + "response": { + "$ref": "ReportWorkItemStatusResponse" + }, "parameterOrder": [ "projectId", "jobId" ], - "response": { - "$ref": "ReportWorkItemStatusResponse" - }, + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", @@ -1231,29 +1234,22 @@ "required": true }, "projectId": { - "location": "path", - "description": "The project which owns the WorkItem's job.", "type": "string", - "required": true + "required": true, + "location": "path", + "description": "The project which owns the WorkItem's job." } - }, - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", - "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus", - "id": "dataflow.projects.jobs.workItems.reportStatus" + } }, "lease": { - "request": { - "$ref": "LeaseWorkItemRequest" + "response": { + "$ref": "LeaseWorkItemResponse" }, - "description": "Leases a dataflow WorkItem to run.", - "httpMethod": "POST", "parameterOrder": [ "projectId", "jobId" ], - "response": { - "$ref": "LeaseWorkItemResponse" - }, + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", @@ -1268,25 +1264,25 @@ "location": "path" }, "projectId": { - "location": "path", - "description": "Identifies the project this worker belongs to.", "type": "string", - "required": true + "required": true, + "location": "path", + "description": "Identifies the project this worker belongs to." } }, "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease", + "id": "dataflow.projects.jobs.workItems.lease", "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease", - "id": "dataflow.projects.jobs.workItems.lease" + "request": { + "$ref": "LeaseWorkItemRequest" + }, + "description": "Leases a dataflow WorkItem to run." } } }, "debug": { "methods": { "sendCapture": { - "description": "Send encoded debug capture data for component.", - "request": { - "$ref": "SendDebugCaptureRequest" - }, "httpMethod": "POST", "parameterOrder": [ "projectId", @@ -1303,10 +1299,10 @@ "required": true }, "projectId": { - "location": "path", "description": "The project id.", "type": "string", - "required": true + "required": true, + "location": "path" } }, "scopes": [ @@ -1317,17 +1313,28 @@ ], "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture", "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture", - "id": "dataflow.projects.jobs.debug.sendCapture" + "id": "dataflow.projects.jobs.debug.sendCapture", + "description": "Send encoded debug capture data for component.", + "request": { + "$ref": "SendDebugCaptureRequest" + } }, "getConfig": { - "httpMethod": "POST", + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", + "id": "dataflow.projects.jobs.debug.getConfig", + "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", + "request": { + "$ref": "GetDebugConfigRequest" + }, + "description": "Get encoded debug configuration for component. Not cacheable.", + "response": { + "$ref": "GetDebugConfigResponse" + }, "parameterOrder": [ "projectId", "jobId" ], - "response": { - "$ref": "GetDebugConfigResponse" - }, + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", @@ -1347,24 +1354,13 @@ "type": "string", "required": true } - }, - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", - "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig", - "id": "dataflow.projects.jobs.debug.getConfig", - "request": { - "$ref": "GetDebugConfigRequest" - }, - "description": "Get encoded debug configuration for component. Not cacheable." + } } } }, "messages": { "methods": { "list": { - "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages", - "id": "dataflow.projects.jobs.messages.list", - "path": "v1b3/projects/{projectId}/jobs/{jobId}/messages", - "description": "Request the job status.", "response": { "$ref": "ListJobMessagesResponse" }, @@ -1373,41 +1369,24 @@ "jobId" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/userinfo.email" + ], "parameters": { - "jobId": { - "location": "path", - "description": "The job to get messages about.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "A project id.", - "type": "string", - "required": true - }, - "location": { - "location": "query", - "description": "The location which contains the job specified by job_id.", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Return only messages with timestamps \u003c end_time. The default is now\n(i.e. return up to the latest messages available).", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.", - "type": "string" - }, "startTime": { "location": "query", "format": "google-datetime", "description": "If specified, return only messages with timestamps \u003e= start_time.\nThe default is the job creation time (i.e. beginning of messages).", "type": "string" }, + "pageToken": { + "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.", + "type": "string", + "location": "query" + }, "pageSize": { "location": "query", "format": "int32", @@ -1415,6 +1394,7 @@ "type": "integer" }, "minimumImportance": { + "type": "string", "location": "query", "enum": [ "JOB_MESSAGE_IMPORTANCE_UNKNOWN", @@ -1424,16 +1404,36 @@ "JOB_MESSAGE_WARNING", "JOB_MESSAGE_ERROR" ], - "description": "Filter to only get messages with importance \u003e= level", + "description": "Filter to only get messages with importance \u003e= level" + }, + "projectId": { + "location": "path", + "description": "A project id.", + "type": "string", + "required": true + }, + "jobId": { + "location": "path", + "description": "The job to get messages about.", + "type": "string", + "required": true + }, + "endTime": { + "location": "query", + "format": "google-datetime", + "description": "Return only messages with timestamps \u003c end_time. The default is now\n(i.e. return up to the latest messages available).", "type": "string" + }, + "location": { + "description": "The location which contains the job specified by job_id.", + "type": "string", + "location": "query" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" - ] + "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages", + "id": "dataflow.projects.jobs.messages.list", + "path": "v1b3/projects/{projectId}/jobs/{jobId}/messages", + "description": "Request the job status." } } } @@ -1443,11 +1443,53 @@ } }, "parameters": { - "fields": { + "access_token": { "location": "query", - "description": "Selector specifying which fields to include in a partial response.", + "description": "OAuth access token.", "type": "string" }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "type": "string", + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, "uploadType": { "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", @@ -1472,6 +1514,11 @@ "type": "string" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -1480,81 +1527,272 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" + "default": "json" } }, "schemas": { - "Environment": { - "description": "Describes the environment in which a Dataflow Job runs.", + "SendDebugCaptureResponse": { + "description": "Response to a send capture request.\nnothing", + "type": "object", + "properties": {}, + "id": "SendDebugCaptureResponse" + }, + "SideInputInfo": { "type": "object", "properties": { - "serviceAccountEmail": { - "description": "Identity to run virtual machines as. Defaults to the default account.", + "tag": { + "description": "The id of the tag the user code will access this side input by;\nthis should correspond to the tag of some MultiOutputInfo.", "type": "string" }, - "sdkPipelineOptions": { + "kind": { "additionalProperties": { "description": "Properties of the object.", "type": "any" }, - "description": "The Cloud Dataflow SDK pipeline options specified by the user. These\noptions are passed through the service and are used to recreate the\nSDK pipeline options on the worker in a language agnostic and platform\nindependent way.", + "description": "How to interpret the source element(s) as a side input value.", "type": "object" }, - "userAgent": { - "description": "A description of the process that generated the request.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } + "sources": { + "description": "The source(s) to read element(s) from to get the value of this side input.\nIf more than one source, then the elements are taken from the\nsources, in the specified order if order matters.\nAt least one source is required.", + "items": { + "$ref": "Source" + }, + "type": "array" + } + }, + "id": "SideInputInfo", + "description": "Information about a side input of a DoFn or an input of a SeqDoFn." + }, + "CounterStructuredNameAndMetadata": { + "id": "CounterStructuredNameAndMetadata", + "description": "A single message which encapsulates structured name and metadata for a given\ncounter.", + "type": "object", + "properties": { + "name": { + "description": "Structured name of the counter.", + "$ref": "CounterStructuredName" }, + "metadata": { + "$ref": "CounterMetadata", + "description": "Metadata associated with a counter" + } + } + }, + "ConcatPosition": { + "description": "A position that encapsulates an inner position and an index for the inner\nposition. A ConcatPosition can be used by a reader of a source that\nencapsulates a set of other sources.", + "type": "object", + "properties": { + "position": { + "description": "Position within the inner source.", + "$ref": "Position" + }, + "index": { + "format": "int32", + "description": "Index of the inner source.", + "type": "integer" + } + }, + "id": "ConcatPosition" + }, + "WriteInstruction": { + "description": "An instruction that writes records.\nTakes one input, produces no outputs.", + "type": "object", + "properties": { + "sink": { + "$ref": "Sink", + "description": "The sink to write to." + }, + "input": { + "description": "The input.", + "$ref": "InstructionInput" + } + }, + "id": "WriteInstruction" + }, + "StreamingComputationRanges": { + "description": "Describes full or partial data disk assignment information of the computation\nranges.", + "type": "object", + "properties": { + "rangeAssignments": { + "description": "Data disk assignments for ranges from this computation.", + "items": { + "$ref": "KeyRangeDataDiskAssignment" + }, + "type": "array" + }, + "computationId": { + "description": "The ID of the computation.", + "type": "string" + } + }, + "id": "StreamingComputationRanges" + }, + "AutoscalingSettings": { + "description": "Settings for WorkerPool autoscaling.", + "type": "object", + "properties": { + "algorithm": { + "enumDescriptions": [ + "The algorithm is unknown, or unspecified.", + "Disable autoscaling.", + "Increase worker count over time to reduce job execution time." + ], + "enum": [ + "AUTOSCALING_ALGORITHM_UNKNOWN", + "AUTOSCALING_ALGORITHM_NONE", + "AUTOSCALING_ALGORITHM_BASIC" + ], + "description": "The algorithm to use for autoscaling.", + "type": "string" + }, + "maxNumWorkers": { + "type": "integer", + "format": "int32", + "description": "The maximum number of workers to cap scaling at." + } + }, + "id": "AutoscalingSettings" + }, + "ExecutionStageSummary": { + "description": "Description of the composing transforms, names/ids, and input/outputs of a\nstage of execution. Some composing transforms and sources may have been\ngenerated by the Dataflow service during execution planning.", + "type": "object", + "properties": { + "outputSource": { + "description": "Output sources for this stage.", + "items": { + "$ref": "StageSource" + }, + "type": "array" + }, + "name": { + "description": "Dataflow service generated name for this stage.", + "type": "string" + }, + "inputSource": { + "description": "Input sources for this stage.", + "items": { + "$ref": "StageSource" + }, + "type": "array" + }, + "id": { + "description": "Dataflow service generated id for this stage.", + "type": "string" + }, + "componentTransform": { + "description": "Transforms that comprise this execution stage.", + "items": { + "$ref": "ComponentTransform" + }, + "type": "array" + }, + "componentSource": { + "items": { + "$ref": "ComponentSource" + }, + "type": "array", + "description": "Collections produced and consumed by component transforms of this stage." + }, + "kind": { + "enum": [ + "UNKNOWN_KIND", + "PAR_DO_KIND", + "GROUP_BY_KEY_KIND", + "FLATTEN_KIND", + "READ_KIND", + "WRITE_KIND", + "CONSTANT_KIND", + "SINGLETON_KIND", + "SHUFFLE_KIND" + ], + "description": "Type of tranform this stage is executing.", + "type": "string", + "enumDescriptions": [ + "Unrecognized transform type.", + "ParDo transform.", + "Group By Key transform.", + "Flatten transform.", + "Read transform.", + "Write transform.", + "Constructs from a constant value, such as with Create.of.", + "Creates a Singleton view of a collection.", + "Opening or closing a shuffle session, often as part of a GroupByKey." + ] + } + }, + "id": "ExecutionStageSummary" + }, + "SendWorkerMessagesRequest": { + "description": "A request for sending worker messages to the service.", + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The location which contains the job" + }, + "workerMessages": { + "items": { + "$ref": "WorkerMessage" + }, + "type": "array", + "description": "The WorkerMessages to send." + } + }, + "id": "SendWorkerMessagesRequest" + }, + "SourceSplitShard": { + "description": "DEPRECATED in favor of DerivedSource.", + "type": "object", + "properties": { + "derivationMode": { + "enumDescriptions": [ + "The source derivation is unknown, or unspecified.", + "Produce a completely independent Source with no base.", + "Produce a Source based on the Source being split.", + "Produce a Source based on the base of the Source being split." + ], + "enum": [ + "SOURCE_DERIVATION_MODE_UNKNOWN", + "SOURCE_DERIVATION_MODE_INDEPENDENT", + "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT", + "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" + ], + "description": "DEPRECATED", + "type": "string" + }, + "source": { + "$ref": "Source", + "description": "DEPRECATED" + } + }, + "id": "SourceSplitShard" + }, + "CPUTime": { + "description": "Modeled after information exposed by /proc/stat.", + "type": "object", + "properties": { + "rate": { + "type": "number", + "format": "double", + "description": "Average CPU utilization rate (% non-idle cpu / second) since previous\nsample." + }, + "timestamp": { + "format": "google-datetime", + "description": "Timestamp of the measurement.", + "type": "string" + }, + "totalMs": { + "format": "uint64", + "description": "Total active CPU time across all cores (ie., non-idle) in milliseconds\nsince start-up.", + "type": "string" + } + }, + "id": "CPUTime" + }, + "Environment": { + "description": "Describes the environment in which a Dataflow Job runs.", + "type": "object", + "properties": { "clusterManagerApiService": { "description": "The type of cluster manager API to use. If unknown or\nunspecified, the service will attempt to choose a reasonable\ndefault. This should be in the form of the API service name,\ne.g. \"compute.googleapis.com\".", "type": "string" @@ -1571,8 +1809,8 @@ "type": "array" }, "dataset": { - "description": "The dataset for the current project where various workflow\nrelated tables are stored.\n\nThe supported resource type is:\n\nGoogle BigQuery:\n bigquery.googleapis.com/{dataset}", - "type": "string" + "type": "string", + "description": "The dataset for the current project where various workflow\nrelated tables are stored.\n\nThe supported resource type is:\n\nGoogle BigQuery:\n bigquery.googleapis.com/{dataset}" }, "experiments": { "description": "The list of experiments to enable.", @@ -1581,21 +1819,41 @@ }, "type": "array" }, + "internalExperiments": { + "description": "Experimental settings.", + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + } + }, "version": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, "description": "A structure describing which components and their versions of the service\nare required in order to run the job.", + "type": "object" + }, + "serviceAccountEmail": { + "description": "Identity to run virtual machines as. Defaults to the default account.", + "type": "string" + }, + "userAgent": { "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "description": "A description of the process that generated the request." }, - "internalExperiments": { + "sdkPipelineOptions": { + "type": "object", "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", + "description": "Properties of the object.", "type": "any" }, - "description": "Experimental settings.", - "type": "object" + "description": "The Cloud Dataflow SDK pipeline options specified by the user. These\noptions are passed through the service and are used to recreate the\nSDK pipeline options on the worker in a language agnostic and platform\nindependent way." } }, "id": "Environment" @@ -1604,6 +1862,13 @@ "description": "A task which describes what action should be performed for the specified\nstreaming computation ranges.", "type": "object", "properties": { + "computationRanges": { + "description": "Contains ranges of a streaming computation this task should apply to.", + "items": { + "$ref": "StreamingComputationRanges" + }, + "type": "array" + }, "dataDisks": { "description": "Describes the set of data disks this task should apply to.", "items": { @@ -1624,13 +1889,6 @@ "STREAMING_COMPUTATION_TASK_STOP", "STREAMING_COMPUTATION_TASK_START" ] - }, - "computationRanges": { - "description": "Contains ranges of a streaming computation this task should apply to.", - "items": { - "$ref": "StreamingComputationRanges" - }, - "type": "array" } }, "id": "StreamingComputationTask" @@ -1644,8 +1902,8 @@ "type": "string" }, "workerId": { - "description": "The worker id, i.e., VM hostname.", - "type": "string" + "type": "string", + "description": "The worker id, i.e., VM hostname." }, "location": { "description": "The location which contains the job specified by job_id.", @@ -1673,10 +1931,6 @@ "description": "Description of a transform executed as part of an execution stage.", "type": "object", "properties": { - "userName": { - "description": "Human-readable name for this transform; may be user or system generated.", - "type": "string" - }, "originalTransform": { "description": "User name for the original user transform with which this transform is\nmost closely associated.", "type": "string" @@ -1684,14 +1938,24 @@ "name": { "description": "Dataflow service generated name for this source.", "type": "string" + }, + "userName": { + "description": "Human-readable name for this transform; may be user or system generated.", + "type": "string" } }, "id": "ComponentTransform" }, "StreamingSetupTask": { + "id": "StreamingSetupTask", "description": "A task which initializes part of a streaming Dataflow job.", "type": "object", "properties": { + "receiveWorkPort": { + "format": "int32", + "description": "The TCP port on which the worker should listen for messages from\nother streaming computation workers.", + "type": "integer" + }, "streamingComputationTopology": { "$ref": "TopologyConfig", "description": "The global topology of the streaming Dataflow job." @@ -1704,27 +1968,13 @@ "format": "int32", "description": "The TCP port used by the worker to communicate with the Dataflow\nworker harness.", "type": "integer" - }, - "receiveWorkPort": { - "format": "int32", - "description": "The TCP port on which the worker should listen for messages from\nother streaming computation workers.", - "type": "integer" } - }, - "id": "StreamingSetupTask" + } }, "PubsubLocation": { "description": "Identifies a pubsub location to use for transferring data into or\nout of a streaming Dataflow job.", "type": "object", "properties": { - "timestampLabel": { - "description": "If set, contains a pubsub label from which to extract record timestamps.\nIf left empty, record timestamps will be generated upon arrival.", - "type": "string" - }, - "topic": { - "description": "A pubsub topic, in the form of\n\"pubsub.googleapis.com/topics/\u003cproject-id\u003e/\u003ctopic-name\u003e\"", - "type": "string" - }, "subscription": { "description": "A pubsub subscription, in the form of\n\"pubsub.googleapis.com/subscriptions/\u003cproject-id\u003e/\u003csubscription-name\u003e\"", "type": "string" @@ -1744,22 +1994,29 @@ "idLabel": { "description": "If set, contains a pubsub label from which to extract record ids.\nIf left empty, record deduplication will be strictly best effort.", "type": "string" + }, + "timestampLabel": { + "description": "If set, contains a pubsub label from which to extract record timestamps.\nIf left empty, record timestamps will be generated upon arrival.", + "type": "string" + }, + "topic": { + "description": "A pubsub topic, in the form of\n\"pubsub.googleapis.com/topics/\u003cproject-id\u003e/\u003ctopic-name\u003e\"", + "type": "string" } }, "id": "PubsubLocation" }, "WorkerHealthReport": { - "description": "WorkerHealthReport contains information about the health of a worker.\n\nThe VM should be identified by the labels attached to the WorkerMessage that\nthis health ping belongs to.", "type": "object", "properties": { "pods": { "description": "The pods running on the worker. See:\nhttp://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod\n\nThis field is used by the worker to send the status of the indvidual\ncontainers running on each worker.", "items": { - "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "type": "object" }, "type": "array" }, @@ -1774,17 +2031,36 @@ "type": "string" }, "vmIsHealthy": { - "description": "Whether the VM is healthy.", - "type": "boolean" + "type": "boolean", + "description": "Whether the VM is healthy." } }, - "id": "WorkerHealthReport" + "id": "WorkerHealthReport", + "description": "WorkerHealthReport contains information about the health of a worker.\n\nThe VM should be identified by the labels attached to the WorkerMessage that\nthis health ping belongs to." }, "JobMessage": { + "id": "JobMessage", "description": "A particular message pertaining to a Dataflow job.", "type": "object", "properties": { + "time": { + "format": "google-datetime", + "description": "The timestamp of the message.", + "type": "string" + }, + "id": { + "description": "Deprecated.", + "type": "string" + }, "messageImportance": { + "enum": [ + "JOB_MESSAGE_IMPORTANCE_UNKNOWN", + "JOB_MESSAGE_DEBUG", + "JOB_MESSAGE_DETAILED", + "JOB_MESSAGE_BASIC", + "JOB_MESSAGE_WARNING", + "JOB_MESSAGE_ERROR" + ], "description": "Importance level of the message.", "type": "string", "enumDescriptions": [ @@ -1794,36 +2070,21 @@ "The message is at the 'basic' level: useful for keeping\ntrack of the execution of a Dataflow pipeline. Typically,\nDataflow pipeline runners display log messages at this level by\ndefault, and these messages are displayed by default in the\nDataflow monitoring UI.", "The message is at the 'warning' level: indicating a condition\npertaining to a job which may require human intervention.\nTypically, Dataflow pipeline runners display log messages at this\nlevel by default, and these messages are displayed by default in\nthe Dataflow monitoring UI.", "The message is at the 'error' level: indicating a condition\npreventing a job from succeeding. Typically, Dataflow pipeline\nrunners display log messages at this level by default, and these\nmessages are displayed by default in the Dataflow monitoring UI." - ], - "enum": [ - "JOB_MESSAGE_IMPORTANCE_UNKNOWN", - "JOB_MESSAGE_DEBUG", - "JOB_MESSAGE_DETAILED", - "JOB_MESSAGE_BASIC", - "JOB_MESSAGE_WARNING", - "JOB_MESSAGE_ERROR" ] }, "messageText": { - "description": "The text of the message.", - "type": "string" - }, - "time": { - "format": "google-datetime", - "description": "The timestamp of the message.", - "type": "string" - }, - "id": { - "description": "Deprecated.", - "type": "string" + "type": "string", + "description": "The text of the message." } - }, - "id": "JobMessage" + } }, "ParameterMetadata": { - "description": "Metadata for a specific parameter.", "type": "object", "properties": { + "label": { + "description": "Required. The label to display for the parameter.", + "type": "string" + }, "helpText": { "description": "Required. The help text to display for the parameter.", "type": "string" @@ -1842,13 +2103,10 @@ "type": "string" }, "type": "array" - }, - "label": { - "description": "Required. The label to display for the parameter.", - "type": "string" } }, - "id": "ParameterMetadata" + "id": "ParameterMetadata", + "description": "Metadata for a specific parameter." }, "MultiOutputInfo": { "description": "Information about an output of a multi-output DoFn.", @@ -1862,7 +2120,6 @@ "id": "MultiOutputInfo" }, "SourceSplitRequest": { - "description": "Represents the operation to split a high-level Source specification\ninto bundles (parts for parallel processing).\n\nAt a high level, splitting of a source into bundles happens as follows:\nSourceSplitRequest is applied to the source. If it returns\nSOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source\nis used \"as is\". Otherwise, splitting is applied recursively to each\nproduced DerivedSource.\n\nAs an optimization, for any Source, if its does_not_need_splitting is\ntrue, the framework assumes that splitting this source would return\nSOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest.\nThis applies both to the initial source being split and to bundles\nproduced from it.", "type": "object", "properties": { "options": { @@ -1870,11 +2127,12 @@ "description": "Hints for tuning the splitting process." }, "source": { - "description": "Specification of the source to be split.", - "$ref": "Source" + "$ref": "Source", + "description": "Specification of the source to be split." } }, - "id": "SourceSplitRequest" + "id": "SourceSplitRequest", + "description": "Represents the operation to split a high-level Source specification\ninto bundles (parts for parallel processing).\n\nAt a high level, splitting of a source into bundles happens as follows:\nSourceSplitRequest is applied to the source. If it returns\nSOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source\nis used \"as is\". Otherwise, splitting is applied recursively to each\nproduced DerivedSource.\n\nAs an optimization, for any Source, if its does_not_need_splitting is\ntrue, the framework assumes that splitting this source would return\nSOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest.\nThis applies both to the initial source being split and to bundles\nproduced from it." }, "SourceGetMetadataResponse": { "description": "The result of a SourceGetMetadataOperation.", @@ -1887,21 +2145,49 @@ }, "id": "SourceGetMetadataResponse" }, - "ShellTask": { - "description": "A task which consists of a shell command for the worker to execute.", + "AutoscalingEvent": { + "description": "A structured message reporting an autoscaling decision made by the Dataflow\nservice.", "type": "object", "properties": { - "exitCode": { - "format": "int32", - "description": "Exit code for the task.", - "type": "integer" - }, - "command": { - "description": "The shell command to run.", + "time": { + "format": "google-datetime", + "description": "The time this event was emitted to indicate a new target or current\nnum_workers value.", "type": "string" + }, + "description": { + "$ref": "StructuredMessage", + "description": "A message describing why the system decided to adjust the current\nnumber of workers, why it failed, or why the system decided to\nnot make any changes to the number of workers." + }, + "eventType": { + "description": "The type of autoscaling event to report.", + "type": "string", + "enumDescriptions": [ + "Default type for the enum. Value should never be returned.", + "The TARGET_NUM_WORKERS_CHANGED type should be used when the target\nworker pool size has changed at the start of an actuation. An event\nshould always be specified as TARGET_NUM_WORKERS_CHANGED if it reflects\na change in the target_num_workers.", + "The CURRENT_NUM_WORKERS_CHANGED type should be used when actual worker\npool size has been changed, but the target_num_workers has not changed.", + "The ACTUATION_FAILURE type should be used when we want to report\nan error to the user indicating why the current number of workers\nin the pool could not be changed.\nDisplayed in the current status and history widgets.", + "Used when we want to report to the user a reason why we are\nnot currently adjusting the number of workers.\nShould specify both target_num_workers, current_num_workers and a\ndecision_message." + ], + "enum": [ + "TYPE_UNKNOWN", + "TARGET_NUM_WORKERS_CHANGED", + "CURRENT_NUM_WORKERS_CHANGED", + "ACTUATION_FAILURE", + "NO_CHANGE" + ] + }, + "targetNumWorkers": { + "format": "int64", + "description": "The target number of workers the worker pool wants to resize to use.", + "type": "string" + }, + "currentNumWorkers": { + "type": "string", + "format": "int64", + "description": "The current number of workers the job has." } }, - "id": "ShellTask" + "id": "AutoscalingEvent" }, "MetricShortId": { "description": "The metric short id is returned to the user alongside an offset into\nReportWorkItemStatusRequest", @@ -1920,62 +2206,24 @@ }, "id": "MetricShortId" }, - "AutoscalingEvent": { - "description": "A structured message reporting an autoscaling decision made by the Dataflow\nservice.", + "ShellTask": { + "description": "A task which consists of a shell command for the worker to execute.", "type": "object", "properties": { - "time": { - "format": "google-datetime", - "description": "The time this event was emitted to indicate a new target or current\nnum_workers value.", - "type": "string" + "exitCode": { + "format": "int32", + "description": "Exit code for the task.", + "type": "integer" }, - "description": { - "$ref": "StructuredMessage", - "description": "A message describing why the system decided to adjust the current\nnumber of workers, why it failed, or why the system decided to\nnot make any changes to the number of workers." - }, - "eventType": { - "enumDescriptions": [ - "Default type for the enum. Value should never be returned.", - "The TARGET_NUM_WORKERS_CHANGED type should be used when the target\nworker pool size has changed at the start of an actuation. An event\nshould always be specified as TARGET_NUM_WORKERS_CHANGED if it reflects\na change in the target_num_workers.", - "The CURRENT_NUM_WORKERS_CHANGED type should be used when actual worker\npool size has been changed, but the target_num_workers has not changed.", - "The ACTUATION_FAILURE type should be used when we want to report\nan error to the user indicating why the current number of workers\nin the pool could not be changed.\nDisplayed in the current status and history widgets.", - "Used when we want to report to the user a reason why we are\nnot currently adjusting the number of workers.\nShould specify both target_num_workers, current_num_workers and a\ndecision_message." - ], - "enum": [ - "TYPE_UNKNOWN", - "TARGET_NUM_WORKERS_CHANGED", - "CURRENT_NUM_WORKERS_CHANGED", - "ACTUATION_FAILURE", - "NO_CHANGE" - ], - "description": "The type of autoscaling event to report.", - "type": "string" - }, - "targetNumWorkers": { - "format": "int64", - "description": "The target number of workers the worker pool wants to resize to use.", - "type": "string" - }, - "currentNumWorkers": { - "format": "int64", - "description": "The current number of workers the job has.", - "type": "string" + "command": { + "type": "string", + "description": "The shell command to run." } }, - "id": "AutoscalingEvent" + "id": "ShellTask" }, "TaskRunnerSettings": { - "description": "Taskrunner configuration settings.", - "type": "object", "properties": { - "taskUser": { - "description": "The UNIX user ID on the worker VM to use for tasks launched by\ntaskrunner; e.g. \"root\".", - "type": "string" - }, - "vmId": { - "description": "The ID string of the VM.", - "type": "string" - }, "alsologtostderr": { "description": "Whether to also send taskrunner log info to stderr.", "type": "boolean" @@ -2012,7 +2260,15 @@ "type": "string" }, "workflowFileName": { - "description": "The file to store the workflow in.", + "type": "string", + "description": "The file to store the workflow in." + }, + "baseTaskDir": { + "description": "The location on the worker for task-specific subdirectories.", + "type": "string" + }, + "tempStoragePrefix": { + "description": "The prefix of the resources the taskrunner should use for\ntemporary storage.\n\nThe supported resource type is:\n\nGoogle Cloud Storage:\n storage.googleapis.com/{bucket}/{object}\n bucket.storage.googleapis.com/{object}", "type": "string" }, "languageHint": { @@ -2023,14 +2279,6 @@ "description": "The file to store preprocessing commands in.", "type": "string" }, - "tempStoragePrefix": { - "description": "The prefix of the resources the taskrunner should use for\ntemporary storage.\n\nThe supported resource type is:\n\nGoogle Cloud Storage:\n storage.googleapis.com/{bucket}/{object}\n bucket.storage.googleapis.com/{object}", - "type": "string" - }, - "baseTaskDir": { - "description": "The location on the worker for task-specific subdirectories.", - "type": "string" - }, "baseUrl": { "description": "The base URL for the taskrunner to use when accessing Google Cloud APIs.\n\nWhen workers access Google Cloud APIs, they logically do so via\nrelative URLs. If this field is specified, it supplies the base\nURL to use for resolving these relative URLs. The normative\nalgorithm used is defined by RFC 1808, \"Relative Uniform Resource\nLocators\".\n\nIf not specified, the default value is \"http://www.googleapis.com/\"", "type": "string" @@ -2046,14 +2294,42 @@ "parallelWorkerSettings": { "description": "The settings to pass to the parallel worker harness.", "$ref": "WorkerSettings" + }, + "vmId": { + "description": "The ID string of the VM.", + "type": "string" + }, + "taskUser": { + "description": "The UNIX user ID on the worker VM to use for tasks launched by\ntaskrunner; e.g. \"root\".", + "type": "string" } }, - "id": "TaskRunnerSettings" + "id": "TaskRunnerSettings", + "description": "Taskrunner configuration settings.", + "type": "object" }, "Position": { "description": "Position defines a position within a collection of data. The value\ncan be either the end position, a key (used with ordered\ncollections), a byte offset, or a record index.", "type": "object", "properties": { + "recordIndex": { + "format": "int64", + "description": "Position is a record index.", + "type": "string" + }, + "shufflePosition": { + "type": "string", + "description": "CloudPosition is a base64 encoded BatchShufflePosition (with FIXED\nsharding)." + }, + "concatPosition": { + "description": "CloudPosition is a concat position.", + "$ref": "ConcatPosition" + }, + "byteOffset": { + "format": "int64", + "description": "Position is a byte offset.", + "type": "string" + }, "end": { "description": "Position is past all other positions. Also useful for the end\nposition of an unbounded range.", "type": "boolean" @@ -2061,70 +2337,10 @@ "key": { "description": "Position is a string key, ordered lexicographically.", "type": "string" - }, - "recordIndex": { - "format": "int64", - "description": "Position is a record index.", - "type": "string" - }, - "shufflePosition": { - "description": "CloudPosition is a base64 encoded BatchShufflePosition (with FIXED\nsharding).", - "type": "string" - }, - "concatPosition": { - "$ref": "ConcatPosition", - "description": "CloudPosition is a concat position." - }, - "byteOffset": { - "format": "int64", - "description": "Position is a byte offset.", - "type": "string" } }, "id": "Position" }, - "Source": { - "description": "A source that records can be read and decoded from.", - "type": "object", - "properties": { - "doesNotNeedSplitting": { - "description": "Setting this value to true hints to the framework that the source\ndoesn't need splitting, and using SourceSplitRequest on it would\nyield SOURCE_SPLIT_OUTCOME_USE_CURRENT.\n\nE.g. a file splitter may set this to true when splitting a single file\ninto a set of byte ranges of appropriate size, and set this\nto false when splitting a filepattern into individual files.\nHowever, for efficiency, a file splitter may decide to produce\nfile subranges directly from the filepattern to avoid a splitting\nround-trip.\n\nSee SourceSplitRequest for an overview of the splitting process.\n\nThis field is meaningful only in the Source objects populated\nby the user (e.g. when filling in a DerivedSource).\nSource objects supplied by the framework to the user don't have\nthis field populated.", - "type": "boolean" - }, - "codec": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "The codec to use to decode data read from the source.", - "type": "object" - }, - "spec": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "The source to read from, plus its parameters.", - "type": "object" - }, - "metadata": { - "description": "Optionally, metadata for this source can be supplied right away,\navoiding a SourceGetMetadataOperation roundtrip\n(see SourceOperationRequest).\n\nThis field is meaningful only in the Source objects populated\nby the user (e.g. when filling in a DerivedSource).\nSource objects supplied by the framework to the user don't have\nthis field populated.", - "$ref": "SourceMetadata" - }, - "baseSpecs": { - "description": "While splitting, sources may specify the produced bundles\nas differences against another source, in order to save backend-side\nmemory and allow bigger jobs. For details, see SourceSplitRequest.\nTo support this use case, the full set of parameters of the source\nis logically obtained by taking the latest explicitly specified value\nof each parameter in the order:\nbase_specs (later items win), spec (overrides anything in base_specs).", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - }, - "type": "array" - } - }, - "id": "Source" - }, "SplitInt64": { "description": "A representation of an int64, n, that is immune to precision loss when\nencoded in JSON.", "type": "object", @@ -2142,21 +2358,51 @@ }, "id": "SplitInt64" }, - "WorkerPool": { - "description": "Describes one particular pool of Cloud Dataflow workers to be\ninstantiated by the Cloud Dataflow service in order to perform the\ncomputations required by a job. Note that a workflow job may use\nmultiple pools, in order to match the various computational\nrequirements of the various stages of the job.", + "Source": { + "description": "A source that records can be read and decoded from.", "type": "object", "properties": { - "kind": { - "description": "The kind of the worker pool; currently only `harness` and `shuffle`\nare supported.", - "type": "string" + "metadata": { + "$ref": "SourceMetadata", + "description": "Optionally, metadata for this source can be supplied right away,\navoiding a SourceGetMetadataOperation roundtrip\n(see SourceOperationRequest).\n\nThis field is meaningful only in the Source objects populated\nby the user (e.g. when filling in a DerivedSource).\nSource objects supplied by the framework to the user don't have\nthis field populated." }, - "dataDisks": { - "description": "Data disks that are used by a VM in this workflow.", + "baseSpecs": { + "description": "While splitting, sources may specify the produced bundles\nas differences against another source, in order to save backend-side\nmemory and allow bigger jobs. For details, see SourceSplitRequest.\nTo support this use case, the full set of parameters of the source\nis logically obtained by taking the latest explicitly specified value\nof each parameter in the order:\nbase_specs (later items win), spec (overrides anything in base_specs).", "items": { - "$ref": "Disk" + "type": "object", + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + } }, "type": "array" }, + "doesNotNeedSplitting": { + "description": "Setting this value to true hints to the framework that the source\ndoesn't need splitting, and using SourceSplitRequest on it would\nyield SOURCE_SPLIT_OUTCOME_USE_CURRENT.\n\nE.g. a file splitter may set this to true when splitting a single file\ninto a set of byte ranges of appropriate size, and set this\nto false when splitting a filepattern into individual files.\nHowever, for efficiency, a file splitter may decide to produce\nfile subranges directly from the filepattern to avoid a splitting\nround-trip.\n\nSee SourceSplitRequest for an overview of the splitting process.\n\nThis field is meaningful only in the Source objects populated\nby the user (e.g. when filling in a DerivedSource).\nSource objects supplied by the framework to the user don't have\nthis field populated.", + "type": "boolean" + }, + "codec": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The codec to use to decode data read from the source." + }, + "spec": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The source to read from, plus its parameters.", + "type": "object" + } + }, + "id": "Source" + }, + "WorkerPool": { + "type": "object", + "properties": { "subnetwork": { "description": "Subnetwork to which VMs will be assigned, if desired. Expected to be of\nthe form \"regions/REGION/subnetworks/SUBNETWORK\".", "type": "string" @@ -2176,23 +2422,21 @@ "type": "string" }, "autoscalingSettings": { - "description": "Settings for autoscaling of this WorkerPool.", - "$ref": "AutoscalingSettings" + "$ref": "AutoscalingSettings", + "description": "Settings for autoscaling of this WorkerPool." }, "taskrunnerSettings": { - "$ref": "TaskRunnerSettings", - "description": "Settings passed through to Google Compute Engine workers when\nusing the standard Dataflow task runner. Users should ignore\nthis field." + "description": "Settings passed through to Google Compute Engine workers when\nusing the standard Dataflow task runner. Users should ignore\nthis field.", + "$ref": "TaskRunnerSettings" }, "metadata": { - "description": "Metadata to set on the Google Compute Engine VMs.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Metadata to set on the Google Compute Engine VMs.", + "type": "object" }, "defaultPackageSet": { - "description": "The default package set to install. This allows the service to\nselect a default set of packages which are useful to worker\nharnesses written in a particular language.", - "type": "string", "enumDescriptions": [ "The default set of packages to stage is unknown, or unspecified.", "Indicates that no packages should be staged at the worker unless\nexplicitly specified by the job.", @@ -2204,7 +2448,9 @@ "DEFAULT_PACKAGE_SET_NONE", "DEFAULT_PACKAGE_SET_JAVA", "DEFAULT_PACKAGE_SET_PYTHON" - ] + ], + "description": "The default package set to install. This allows the service to\nselect a default set of packages which are useful to worker\nharnesses written in a particular language.", + "type": "string" }, "network": { "description": "Network to which VMs will be assigned. If empty or unspecified,\nthe service will use the network \"default\".", @@ -2236,8 +2482,6 @@ "type": "array" }, "teardownPolicy": { - "description": "Sets the policy for determining when to turndown worker pool.\nAllowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and\n`TEARDOWN_NEVER`.\n`TEARDOWN_ALWAYS` means workers are always torn down regardless of whether\nthe job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down\nif the job succeeds. `TEARDOWN_NEVER` means the workers are never torn\ndown.\n\nIf the workers are not torn down by the service, they will\ncontinue to run and use Google Compute Engine VM resources in the\nuser's project until they are explicitly terminated by the user.\nBecause of this, Google recommends using the `TEARDOWN_ALWAYS`\npolicy except for small, manually supervised test jobs.\n\nIf unknown or unspecified, the service will attempt to choose a reasonable\ndefault.", - "type": "string", "enumDescriptions": [ "The teardown policy isn't specified, or is unknown.", "Always teardown the resource.", @@ -2249,7 +2493,9 @@ "TEARDOWN_ALWAYS", "TEARDOWN_ON_SUCCESS", "TEARDOWN_NEVER" - ] + ], + "description": "Sets the policy for determining when to turndown worker pool.\nAllowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and\n`TEARDOWN_NEVER`.\n`TEARDOWN_ALWAYS` means workers are always torn down regardless of whether\nthe job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down\nif the job succeeds. `TEARDOWN_NEVER` means the workers are never torn\ndown.\n\nIf the workers are not torn down by the service, they will\ncontinue to run and use Google Compute Engine VM resources in the\nuser's project until they are explicitly terminated by the user.\nBecause of this, Google recommends using the `TEARDOWN_ALWAYS`\npolicy except for small, manually supervised test jobs.\n\nIf unknown or unspecified, the service will attempt to choose a reasonable\ndefault.", + "type": "string" }, "onHostMaintenance": { "description": "The action to take on host maintenance, as defined by the Google\nCompute Engine API.", @@ -2264,13 +2510,13 @@ "type": "object" }, "diskSizeGb": { + "type": "integer", "format": "int32", - "description": "Size of root disk for VMs, in GB. If zero or unspecified, the service will\nattempt to choose a reasonable default.", - "type": "integer" + "description": "Size of root disk for VMs, in GB. If zero or unspecified, the service will\nattempt to choose a reasonable default." }, "workerHarnessContainerImage": { - "description": "Required. Docker container image that executes the Cloud Dataflow worker\nharness, residing in Google Container Registry.", - "type": "string" + "type": "string", + "description": "Required. Docker container image that executes the Cloud Dataflow worker\nharness, residing in Google Container Registry." }, "diskType": { "description": "Type of root disk for VMs. If empty or unspecified, the service will\nattempt to choose a reasonable default.", @@ -2279,9 +2525,21 @@ "machineType": { "description": "Machine type (e.g. \"n1-standard-1\"). If empty or unspecified, the\nservice will attempt to choose a reasonable default.", "type": "string" + }, + "kind": { + "description": "The kind of the worker pool; currently only `harness` and `shuffle`\nare supported.", + "type": "string" + }, + "dataDisks": { + "description": "Data disks that are used by a VM in this workflow.", + "items": { + "$ref": "Disk" + }, + "type": "array" } }, - "id": "WorkerPool" + "id": "WorkerPool", + "description": "Describes one particular pool of Cloud Dataflow workers to be\ninstantiated by the Cloud Dataflow service in order to perform the\ncomputations required by a job. Note that a workflow job may use\nmultiple pools, in order to match the various computational\nrequirements of the various stages of the job." }, "SourceOperationRequest": { "description": "A work item that represents the different operations that can be\nperformed on a user-defined Source specification.", @@ -2302,10 +2560,6 @@ "description": "A rich message format, including a human readable string, a key for\nidentifying the message, and structured data associated with the message for\nprogrammatic consumption.", "type": "object", "properties": { - "messageText": { - "description": "Human-readable version of message.", - "type": "string" - }, "parameters": { "description": "The structured data associated with this message.", "items": { @@ -2316,6 +2570,10 @@ "messageKey": { "description": "Idenfier for this message type. Used by external systems to\ninternationalize or personalize message.", "type": "string" + }, + "messageText": { + "description": "Human-readable version of message.", + "type": "string" } }, "id": "StructuredMessage" @@ -2329,14 +2587,14 @@ "description": "The initial index to use when reporting the status of the WorkItem.", "type": "string" }, + "streamingComputationTask": { + "$ref": "StreamingComputationTask", + "description": "Additional information for StreamingComputationTask WorkItems." + }, "shellTask": { "description": "Additional information for ShellTask WorkItems.", "$ref": "ShellTask" }, - "streamingComputationTask": { - "description": "Additional information for StreamingComputationTask WorkItems.", - "$ref": "StreamingComputationTask" - }, "jobId": { "description": "Identifies the workflow job this WorkItem belongs to.", "type": "string" @@ -2355,8 +2613,8 @@ "description": "Additional information for MapTask WorkItems." }, "seqMapTask": { - "description": "Additional information for SeqMapTask WorkItems.", - "$ref": "SeqMapTask" + "$ref": "SeqMapTask", + "description": "Additional information for SeqMapTask WorkItems." }, "packages": { "description": "Any required packages that need to be fetched in order to execute\nthis WorkItem.", @@ -2369,10 +2627,6 @@ "description": "Identifies the cloud project this WorkItem belongs to.", "type": "string" }, - "sourceOperationTask": { - "description": "Additional information for source operation WorkItems.", - "$ref": "SourceOperationRequest" - }, "reportStatusInterval": { "format": "google-duration", "description": "Recommended reporting interval.", @@ -2382,9 +2636,13 @@ "description": "Additional information for StreamingSetupTask WorkItems.", "$ref": "StreamingSetupTask" }, + "sourceOperationTask": { + "$ref": "SourceOperationRequest", + "description": "Additional information for source operation WorkItems." + }, "streamingConfigTask": { - "description": "Additional information for StreamingConfigTask WorkItems.", - "$ref": "StreamingConfigTask" + "$ref": "StreamingConfigTask", + "description": "Additional information for StreamingConfigTask WorkItems." }, "leaseExpireTime": { "format": "google-datetime", @@ -2409,8 +2667,6 @@ "id": "ResourceUtilizationReport" }, "ReportedParallelism": { - "description": "Represents the level of parallelism in a WorkItem's input,\nreported by the worker.", - "type": "object", "properties": { "isInfinite": { "description": "Specifies whether the parallelism is infinite. If true, \"value\" is\nignored.\nInfinite parallelism means the service will assume that the work item\ncan always be split into more non-empty work items by dynamic splitting.\nThis is a work-around for lack of support for infinity by the current\nJSON-based Java RPC stack.", @@ -2422,26 +2678,12 @@ "type": "number" } }, - "id": "ReportedParallelism" + "id": "ReportedParallelism", + "description": "Represents the level of parallelism in a WorkItem's input,\nreported by the worker.", + "type": "object" }, "TopologyConfig": { - "description": "Global topology of the streaming Dataflow job, including all\ncomputations and their sharded locations.", - "type": "object", "properties": { - "userStageToComputationNameMap": { - "additionalProperties": { - "type": "string" - }, - "description": "Maps user stage names to stable computation names.", - "type": "object" - }, - "computations": { - "description": "The computations associated with a streaming Dataflow job.", - "items": { - "$ref": "ComputationTopology" - }, - "type": "array" - }, "persistentStateVersion": { "format": "int32", "description": "Version number for persistent state.", @@ -2458,12 +2700,27 @@ "format": "int32", "description": "The size (in bits) of keys that will be assigned to source messages.", "type": "integer" + }, + "userStageToComputationNameMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Maps user stage names to stable computation names." + }, + "computations": { + "description": "The computations associated with a streaming Dataflow job.", + "items": { + "$ref": "ComputationTopology" + }, + "type": "array" } }, - "id": "TopologyConfig" + "id": "TopologyConfig", + "description": "Global topology of the streaming Dataflow job, including all\ncomputations and their sharded locations.", + "type": "object" }, "SourceSplitOptions": { - "description": "Hints for splitting a Source into bundles (parts for parallel\nprocessing) using SourceSplitRequest.", "type": "object", "properties": { "desiredBundleSizeBytes": { @@ -2477,26 +2734,25 @@ "type": "string" } }, - "id": "SourceSplitOptions" + "id": "SourceSplitOptions", + "description": "Hints for splitting a Source into bundles (parts for parallel\nprocessing) using SourceSplitRequest." }, "ReadInstruction": { "description": "An instruction that reads records.\nTakes no inputs, produces one output.", "type": "object", "properties": { "source": { - "description": "The source to read from.", - "$ref": "Source" + "$ref": "Source", + "description": "The source to read from." } }, "id": "ReadInstruction" }, "WorkerSettings": { - "description": "Provides data to pass through to the worker harness.", - "type": "object", "properties": { "baseUrl": { - "description": "The base URL for accessing Google Cloud APIs.\n\nWhen workers access Google Cloud APIs, they logically do so via\nrelative URLs. If this field is specified, it supplies the base\nURL to use for resolving these relative URLs. The normative\nalgorithm used is defined by RFC 1808, \"Relative Uniform Resource\nLocators\".\n\nIf not specified, the default value is \"http://www.googleapis.com/\"", - "type": "string" + "type": "string", + "description": "The base URL for accessing Google Cloud APIs.\n\nWhen workers access Google Cloud APIs, they logically do so via\nrelative URLs. If this field is specified, it supplies the base\nURL to use for resolving these relative URLs. The normative\nalgorithm used is defined by RFC 1808, \"Relative Uniform Resource\nLocators\".\n\nIf not specified, the default value is \"http://www.googleapis.com/\"" }, "reportingEnabled": { "description": "Whether to send work progress updates to the service.", @@ -2515,11 +2771,24 @@ "type": "string" }, "tempStoragePrefix": { - "description": "The prefix of the resources the system should use for temporary\nstorage.\n\nThe supported resource type is:\n\nGoogle Cloud Storage:\n\n storage.googleapis.com/{bucket}/{object}\n bucket.storage.googleapis.com/{object}", + "type": "string", + "description": "The prefix of the resources the system should use for temporary\nstorage.\n\nThe supported resource type is:\n\nGoogle Cloud Storage:\n\n storage.googleapis.com/{bucket}/{object}\n bucket.storage.googleapis.com/{object}" + } + }, + "id": "WorkerSettings", + "description": "Provides data to pass through to the worker harness.", + "type": "object" + }, + "StreamingStageLocation": { + "description": "Identifies the location of a streaming computation stage, for\nstage-to-stage communication.", + "type": "object", + "properties": { + "streamId": { + "description": "Identifies the particular stream within the streaming Dataflow\njob.", "type": "string" } }, - "id": "WorkerSettings" + "id": "StreamingStageLocation" }, "DataDiskAssignment": { "description": "Data disk assignment for a given VM instance.", @@ -2539,17 +2808,6 @@ }, "id": "DataDiskAssignment" }, - "StreamingStageLocation": { - "description": "Identifies the location of a streaming computation stage, for\nstage-to-stage communication.", - "type": "object", - "properties": { - "streamId": { - "description": "Identifies the particular stream within the streaming Dataflow\njob.", - "type": "string" - } - }, - "id": "StreamingStageLocation" - }, "ApproximateSplitRequest": { "description": "A suggestion by the service to the worker to dynamically split the WorkItem.", "type": "object", @@ -2573,11 +2831,11 @@ "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "items": { - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - } + }, + "type": "object" }, "type": "array" }, @@ -2597,8 +2855,12 @@ "description": "A message describing the state of a particular execution stage.", "type": "object", "properties": { + "currentStateTime": { + "format": "google-datetime", + "description": "The time at which the stage transitioned to this state.", + "type": "string" + }, "executionStageState": { - "description": "Executions stage states allow the same set of values as JobState.", "type": "string", "enumDescriptions": [ "The job's run state isn't specified.", @@ -2625,21 +2887,18 @@ "JOB_STATE_DRAINED", "JOB_STATE_PENDING", "JOB_STATE_CANCELLING" - ] + ], + "description": "Executions stage states allow the same set of values as JobState." }, "executionStageName": { - "description": "The name of the execution stage.", - "type": "string" - }, - "currentStateTime": { - "format": "google-datetime", - "description": "The time at which the stage transitioned to this state.", - "type": "string" + "type": "string", + "description": "The name of the execution stage." } }, "id": "ExecutionStageState" }, "StreamLocation": { + "id": "StreamLocation", "description": "Describes a stream of data, either as input to be processed or as\noutput of a streaming Dataflow job.", "type": "object", "properties": { @@ -2648,58 +2907,58 @@ "description": "The stream is a custom source." }, "sideInputLocation": { - "description": "The stream is a streaming side input.", - "$ref": "StreamingSideInputLocation" + "$ref": "StreamingSideInputLocation", + "description": "The stream is a streaming side input." }, "pubsubLocation": { - "$ref": "PubsubLocation", - "description": "The stream is a pubsub stream." + "description": "The stream is a pubsub stream.", + "$ref": "PubsubLocation" }, "streamingStageLocation": { "description": "The stream is part of another computation within the current\nstreaming Dataflow job.", "$ref": "StreamingStageLocation" } - }, - "id": "StreamLocation" + } }, "SendWorkerMessagesResponse": { "description": "The response to the worker messages.", "type": "object", "properties": { "workerMessageResponses": { - "description": "The servers response to the worker messages.", "items": { "$ref": "WorkerMessageResponse" }, - "type": "array" + "type": "array", + "description": "The servers response to the worker messages." } }, "id": "SendWorkerMessagesResponse" }, "LeaseWorkItemResponse": { - "description": "Response to a request to lease WorkItems.", "type": "object", "properties": { "workItems": { - "description": "A list of the leased WorkItems.", "items": { "$ref": "WorkItem" }, - "type": "array" + "type": "array", + "description": "A list of the leased WorkItems." } }, - "id": "LeaseWorkItemResponse" + "id": "LeaseWorkItemResponse", + "description": "Response to a request to lease WorkItems." }, "TransformSummary": { "description": "Description of the type, names/ids, and input/outputs for a transform.", "type": "object", "properties": { - "displayData": { - "description": "Transform-specific display data.", - "items": { - "$ref": "DisplayData" - }, - "type": "array" + "name": { + "description": "User provided name for this transform instance.", + "type": "string" + }, + "id": { + "description": "SDK generated id of this transform instance.", + "type": "string" }, "outputCollectionName": { "description": "User names for all collection outputs to this transform.", @@ -2708,6 +2967,13 @@ }, "type": "array" }, + "displayData": { + "description": "Transform-specific display data.", + "items": { + "$ref": "DisplayData" + }, + "type": "array" + }, "kind": { "enumDescriptions": [ "Unrecognized transform type.", @@ -2735,25 +3001,16 @@ "type": "string" }, "inputCollectionName": { - "description": "User names for all collection inputs to this transform.", "items": { "type": "string" }, - "type": "array" - }, - "name": { - "description": "User provided name for this transform instance.", - "type": "string" - }, - "id": { - "description": "SDK generated id of this transform instance.", - "type": "string" + "type": "array", + "description": "User names for all collection inputs to this transform." } }, "id": "TransformSummary" }, "StreamingComputationConfig": { - "description": "Configuration information for a single streaming computation.", "type": "object", "properties": { "computationId": { @@ -2769,37 +3026,15 @@ "type": "string" }, "instructions": { - "description": "Instructions that comprise the computation.", "items": { "$ref": "ParallelInstruction" }, - "type": "array" + "type": "array", + "description": "Instructions that comprise the computation." } }, - "id": "StreamingComputationConfig" - }, - "Sink": { - "description": "A sink that records can be encoded and written to.", - "type": "object", - "properties": { - "codec": { - "description": "The codec to use to encode data written to the sink.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - }, - "spec": { - "description": "The sink to write to, plus its parameters.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - } - }, - "id": "Sink" + "id": "StreamingComputationConfig", + "description": "Configuration information for a single streaming computation." }, "LaunchTemplateParameters": { "description": "Parameters to provide to the template being launched.", @@ -2810,19 +3045,42 @@ "type": "string" }, "environment": { - "$ref": "RuntimeEnvironment", - "description": "The runtime environment for the job." + "description": "The runtime environment for the job.", + "$ref": "RuntimeEnvironment" }, "parameters": { - "description": "The runtime parameters to pass to the job.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "The runtime parameters to pass to the job.", + "type": "object" } }, "id": "LaunchTemplateParameters" }, + "Sink": { + "properties": { + "codec": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The codec to use to encode data written to the sink.", + "type": "object" + }, + "spec": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The sink to write to, plus its parameters.", + "type": "object" + } + }, + "id": "Sink", + "description": "A sink that records can be encoded and written to.", + "type": "object" + }, "FlattenInstruction": { "description": "An instruction that copies its inputs (zero or more) to its (single) output.", "type": "object", @@ -2838,24 +3096,26 @@ "id": "FlattenInstruction" }, "PartialGroupByKeyInstruction": { - "description": "An instruction that does a partial group-by-key.\nOne input and one output.", - "type": "object", "properties": { - "valueCombiningFn": { - "description": "The value combining function to invoke.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } + "input": { + "$ref": "InstructionInput", + "description": "Describes the input to the partial group-by-key instruction." }, "inputElementCodec": { - "description": "The codec to use for interpreting an element in the input PTable.", - "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "description": "The codec to use for interpreting an element in the input PTable.", + "type": "object" + }, + "valueCombiningFn": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The value combining function to invoke.", + "type": "object" }, "originalCombineValuesInputStoreName": { "description": "If this instruction includes a combining function this is the name of the\nintermediate store between the GBK and the CombineValues.", @@ -2871,17 +3131,13 @@ "originalCombineValuesStepName": { "description": "If this instruction includes a combining function, this is the name of the\nCombineValues instruction lifted into this instruction.", "type": "string" - }, - "input": { - "$ref": "InstructionInput", - "description": "Describes the input to the partial group-by-key instruction." } }, - "id": "PartialGroupByKeyInstruction" + "id": "PartialGroupByKeyInstruction", + "description": "An instruction that does a partial group-by-key.\nOne input and one output.", + "type": "object" }, "InstructionInput": { - "description": "An input of an instruction, as a reference to an output of a\nproducer instruction.", - "type": "object", "properties": { "producerInstructionIndex": { "format": "int32", @@ -2894,20 +3150,14 @@ "type": "integer" } }, - "id": "InstructionInput" + "id": "InstructionInput", + "description": "An input of an instruction, as a reference to an output of a\nproducer instruction.", + "type": "object" }, "StageSource": { "description": "Description of an input or output of an execution stage.", "type": "object", "properties": { - "userName": { - "description": "Human-readable name for this source; may be user or system generated.", - "type": "string" - }, - "originalTransformOrCollection": { - "description": "User name for the original user transform or collection with which this\nsource is most closely associated.", - "type": "string" - }, "sizeBytes": { "format": "int64", "description": "Size of the source, if measurable.", @@ -2916,11 +3166,20 @@ "name": { "description": "Dataflow service generated name for this source.", "type": "string" + }, + "userName": { + "description": "Human-readable name for this source; may be user or system generated.", + "type": "string" + }, + "originalTransformOrCollection": { + "description": "User name for the original user transform or collection with which this\nsource is most closely associated.", + "type": "string" } }, "id": "StageSource" }, "StringList": { + "id": "StringList", "description": "A metric value representing a list of strings.", "type": "object", "properties": { @@ -2931,26 +3190,12 @@ }, "type": "array" } - }, - "id": "StringList" + } }, "DisplayData": { "description": "Data provided with a pipeline or transform to provide descriptive info.", "type": "object", "properties": { - "timestampValue": { - "format": "google-datetime", - "description": "Contains value if the data is of timestamp type.", - "type": "string" - }, - "javaClassValue": { - "description": "Contains value if the data is of java class type.", - "type": "string" - }, - "boolValue": { - "description": "Contains value if the data is of a boolean type.", - "type": "boolean" - }, "strValue": { "description": "Contains value if the data is of string type.", "type": "string" @@ -2961,9 +3206,9 @@ "type": "string" }, "durationValue": { + "type": "string", "format": "google-duration", - "description": "Contains value if the data is of duration type.", - "type": "string" + "description": "Contains value if the data is of duration type." }, "namespace": { "description": "The namespace for the key. This is usually a class name or programming\nlanguage namespace (i.e. python module) which defines the display data.\nThis allows a dax monitoring system to specially handle the data\nand perform custom rendering.", @@ -2989,6 +3234,19 @@ "url": { "description": "An optional full URL.", "type": "string" + }, + "timestampValue": { + "format": "google-datetime", + "description": "Contains value if the data is of timestamp type.", + "type": "string" + }, + "javaClassValue": { + "description": "Contains value if the data is of java class type.", + "type": "string" + }, + "boolValue": { + "description": "Contains value if the data is of a boolean type.", + "type": "boolean" } }, "id": "DisplayData" @@ -2997,10 +3255,6 @@ "description": "Request to lease WorkItems.", "type": "object", "properties": { - "workerId": { - "description": "Identifies the worker leasing work -- typically the ID of the\nvirtual machine running the worker.", - "type": "string" - }, "workerCapabilities": { "description": "Worker capabilities. WorkItems might be limited to workers with specific\ncapabilities.", "items": { @@ -3008,6 +3262,10 @@ }, "type": "array" }, + "workerId": { + "description": "Identifies the worker leasing work -- typically the ID of the\nvirtual machine running the worker.", + "type": "string" + }, "requestedLeaseDuration": { "format": "google-duration", "description": "The initial lease period.", @@ -3033,6 +3291,7 @@ "id": "LeaseWorkItemRequest" }, "GetDebugConfigRequest": { + "id": "GetDebugConfigRequest", "description": "Request to get updated debug configuration for component.", "type": "object", "properties": { @@ -3048,16 +3307,15 @@ "description": "The location which contains the job specified by job_id.", "type": "string" } - }, - "id": "GetDebugConfigRequest" + } }, "GetTemplateResponse": { "description": "The response to a GetTemplate request.", "type": "object", "properties": { "metadata": { - "$ref": "TemplateMetadata", - "description": "The template metadata describing the template name, available\nparameters, etc." + "description": "The template metadata describing the template name, available\nparameters, etc.", + "$ref": "TemplateMetadata" }, "status": { "$ref": "Status", @@ -3070,20 +3328,18 @@ "description": "Structured data associated with this message.", "type": "object", "properties": { - "value": { - "description": "Value for this parameter.", - "type": "any" - }, "key": { "description": "Key or name for this parameter.", "type": "string" + }, + "value": { + "description": "Value for this parameter.", + "type": "any" } }, "id": "Parameter" }, "ReportWorkItemStatusRequest": { - "description": "Request to report the status of WorkItems.", - "type": "object", "properties": { "currentWorkerTime": { "format": "google-datetime", @@ -3106,35 +3362,9 @@ "type": "array" } }, - "id": "ReportWorkItemStatusRequest" - }, - "PipelineDescription": { - "description": "A descriptive representation of submitted pipeline as well as the executed\nform. This data is provided by the Dataflow service for ease of visualizing\nthe pipeline and interpretting Dataflow provided metrics.", - "type": "object", - "properties": { - "originalPipelineTransform": { - "description": "Description of each transform in the pipeline and collections between them.", - "items": { - "$ref": "TransformSummary" - }, - "type": "array" - }, - "displayData": { - "description": "Pipeline level display data.", - "items": { - "$ref": "DisplayData" - }, - "type": "array" - }, - "executionPipelineStage": { - "description": "Description of each stage of execution of the pipeline.", - "items": { - "$ref": "ExecutionStageSummary" - }, - "type": "array" - } - }, - "id": "PipelineDescription" + "id": "ReportWorkItemStatusRequest", + "description": "Request to report the status of WorkItems.", + "type": "object" }, "StreamingConfigTask": { "description": "A task that carries configuration information for streaming computations.", @@ -3166,6 +3396,57 @@ }, "id": "StreamingConfigTask" }, + "PipelineDescription": { + "description": "A descriptive representation of submitted pipeline as well as the executed\nform. This data is provided by the Dataflow service for ease of visualizing\nthe pipeline and interpretting Dataflow provided metrics.", + "type": "object", + "properties": { + "displayData": { + "description": "Pipeline level display data.", + "items": { + "$ref": "DisplayData" + }, + "type": "array" + }, + "executionPipelineStage": { + "description": "Description of each stage of execution of the pipeline.", + "items": { + "$ref": "ExecutionStageSummary" + }, + "type": "array" + }, + "originalPipelineTransform": { + "items": { + "$ref": "TransformSummary" + }, + "type": "array", + "description": "Description of each transform in the pipeline and collections between them." + } + }, + "id": "PipelineDescription" + }, + "Step": { + "properties": { + "name": { + "description": "The name that identifies the step. This must be unique for each\nstep with respect to all other steps in the Cloud Dataflow job.", + "type": "string" + }, + "kind": { + "description": "The kind of step in the Cloud Dataflow job.", + "type": "string" + }, + "properties": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Named properties associated with the step. Each kind of\npredefined step has its own required set of properties.\nMust be provided on Create. Only retrieved with JOB_VIEW_ALL.", + "type": "object" + } + }, + "id": "Step", + "description": "Defines a particular step within a Cloud Dataflow job.\n\nA job consists of multiple steps, each of which performs some\nspecific operation as part of the overall job. Data is typically\npassed from one step to another as part of the job.\n\nHere's an example of a sequence of steps which together implement a\nMap-Reduce job:\n\n * Read a collection of data from some source, parsing the\n collection's elements.\n\n * Validate the elements.\n\n * Apply a user-defined function to map each element to some value\n and extract an element-specific key value.\n\n * Group elements with the same key into a single element with\n that key, transforming a multiply-keyed collection into a\n uniquely-keyed collection.\n\n * Write the elements out to some data sink.\n\nNote that the Cloud Dataflow service may be used to run many different\ntypes of jobs, not just Map-Reduce.", + "type": "object" + }, "JobExecutionInfo": { "description": "Additional information about how a Cloud Dataflow job will be executed that\nisn't contained in the submitted job.", "type": "object", @@ -3180,29 +3461,6 @@ }, "id": "JobExecutionInfo" }, - "Step": { - "description": "Defines a particular step within a Cloud Dataflow job.\n\nA job consists of multiple steps, each of which performs some\nspecific operation as part of the overall job. Data is typically\npassed from one step to another as part of the job.\n\nHere's an example of a sequence of steps which together implement a\nMap-Reduce job:\n\n * Read a collection of data from some source, parsing the\n collection's elements.\n\n * Validate the elements.\n\n * Apply a user-defined function to map each element to some value\n and extract an element-specific key value.\n\n * Group elements with the same key into a single element with\n that key, transforming a multiply-keyed collection into a\n uniquely-keyed collection.\n\n * Write the elements out to some data sink.\n\nNote that the Cloud Dataflow service may be used to run many different\ntypes of jobs, not just Map-Reduce.", - "type": "object", - "properties": { - "name": { - "description": "The name that identifies the step. This must be unique for each\nstep with respect to all other steps in the Cloud Dataflow job.", - "type": "string" - }, - "kind": { - "description": "The kind of step in the Cloud Dataflow job.", - "type": "string" - }, - "properties": { - "description": "Named properties associated with the step. Each kind of\npredefined step has its own required set of properties.\nMust be provided on Create. Only retrieved with JOB_VIEW_ALL.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - } - }, - "id": "Step" - }, "FailedLocation": { "description": "Indicates which location failed to respond to a request for data.", "type": "object", @@ -3234,6 +3492,31 @@ }, "id": "Disk" }, + "ListJobMessagesResponse": { + "properties": { + "autoscalingEvents": { + "description": "Autoscaling events in ascending timestamp order.", + "items": { + "$ref": "AutoscalingEvent" + }, + "type": "array" + }, + "jobMessages": { + "description": "Messages in ascending timestamp order.", + "items": { + "$ref": "JobMessage" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The token to obtain the next page of results if there are more.", + "type": "string" + } + }, + "id": "ListJobMessagesResponse", + "description": "Response to a request to list job messages.", + "type": "object" + }, "CounterMetadata": { "description": "CounterMetadata includes all static non-name non-value counter attributes.", "type": "object", @@ -3243,6 +3526,7 @@ "type": "string" }, "kind": { + "type": "string", "enumDescriptions": [ "Counter aggregation kind was not set.", "Aggregated value is the sum of all contributed values.", @@ -3265,11 +3549,9 @@ "SET", "DISTRIBUTION" ], - "description": "Counter aggregation kind.", - "type": "string" + "description": "Counter aggregation kind." }, "standardUnits": { - "description": "System defined Units, see above enum.", "type": "string", "enumDescriptions": [ "Counter returns a value in bytes.", @@ -3290,7 +3572,8 @@ "TIMESTAMP_MSEC", "TIMESTAMP_USEC", "TIMESTAMP_NSEC" - ] + ], + "description": "System defined Units, see above enum." }, "otherUnits": { "description": "A string referring to the unit type.", @@ -3299,51 +3582,26 @@ }, "id": "CounterMetadata" }, - "ListJobMessagesResponse": { - "description": "Response to a request to list job messages.", - "type": "object", - "properties": { - "autoscalingEvents": { - "description": "Autoscaling events in ascending timestamp order.", - "items": { - "$ref": "AutoscalingEvent" - }, - "type": "array" - }, - "jobMessages": { - "description": "Messages in ascending timestamp order.", - "items": { - "$ref": "JobMessage" - }, - "type": "array" - }, - "nextPageToken": { - "description": "The token to obtain the next page of results if there are more.", - "type": "string" - } - }, - "id": "ListJobMessagesResponse" - }, "ApproximateReportedProgress": { "description": "A progress measurement of a WorkItem by a worker.", "type": "object", "properties": { - "consumedParallelism": { - "description": "Total amount of parallelism in the portion of input of this task that has\nalready been consumed and is no longer active. In the first two examples\nabove (see remaining_parallelism), the value should be 29 or 2\nrespectively. The sum of remaining_parallelism and consumed_parallelism\nshould equal the total amount of parallelism in this work item. If\nspecified, must be finite.", - "$ref": "ReportedParallelism" - }, - "remainingParallelism": { - "description": "Total amount of parallelism in the input of this task that remains,\n(i.e. can be delegated to this task and any new tasks via dynamic\nsplitting). Always at least 1 for non-finished work items and 0 for\nfinished.\n\n\"Amount of parallelism\" refers to how many non-empty parts of the input\ncan be read in parallel. This does not necessarily equal number\nof records. An input that can be read in parallel down to the\nindividual records is called \"perfectly splittable\".\nAn example of non-perfectly parallelizable input is a block-compressed\nfile format where a block of records has to be read as a whole,\nbut different blocks can be read in parallel.\n\nExamples:\n* If we are processing record #30 (starting at 1) out of 50 in a perfectly\n splittable 50-record input, this value should be 21 (20 remaining + 1\n current).\n* If we are reading through block 3 in a block-compressed file consisting\n of 5 blocks, this value should be 3 (since blocks 4 and 5 can be\n processed in parallel by new tasks via dynamic splitting and the current\n task remains processing block 3).\n* If we are reading through the last block in a block-compressed file,\n or reading or processing the last record in a perfectly splittable\n input, this value should be 1, because apart from the current task, no\n additional remainder can be split off.", - "$ref": "ReportedParallelism" - }, - "position": { - "$ref": "Position", - "description": "A Position within the work to represent a progress." - }, "fractionConsumed": { "format": "double", "description": "Completion as fraction of the input consumed, from 0.0 (beginning, nothing\nconsumed), to 1.0 (end of the input, entire input consumed).", "type": "number" + }, + "consumedParallelism": { + "$ref": "ReportedParallelism", + "description": "Total amount of parallelism in the portion of input of this task that has\nalready been consumed and is no longer active. In the first two examples\nabove (see remaining_parallelism), the value should be 29 or 2\nrespectively. The sum of remaining_parallelism and consumed_parallelism\nshould equal the total amount of parallelism in this work item. If\nspecified, must be finite." + }, + "remainingParallelism": { + "$ref": "ReportedParallelism", + "description": "Total amount of parallelism in the input of this task that remains,\n(i.e. can be delegated to this task and any new tasks via dynamic\nsplitting). Always at least 1 for non-finished work items and 0 for\nfinished.\n\n\"Amount of parallelism\" refers to how many non-empty parts of the input\ncan be read in parallel. This does not necessarily equal number\nof records. An input that can be read in parallel down to the\nindividual records is called \"perfectly splittable\".\nAn example of non-perfectly parallelizable input is a block-compressed\nfile format where a block of records has to be read as a whole,\nbut different blocks can be read in parallel.\n\nExamples:\n* If we are processing record #30 (starting at 1) out of 50 in a perfectly\n splittable 50-record input, this value should be 21 (20 remaining + 1\n current).\n* If we are reading through block 3 in a block-compressed file consisting\n of 5 blocks, this value should be 3 (since blocks 4 and 5 can be\n processed in parallel by new tasks via dynamic splitting and the current\n task remains processing block 3).\n* If we are reading through the last block in a block-compressed file,\n or reading or processing the last record in a perfectly splittable\n input, this value should be 1, because apart from the current task, no\n additional remainder can be split off." + }, + "position": { + "$ref": "Position", + "description": "A Position within the work to represent a progress." } }, "id": "ApproximateReportedProgress" @@ -3363,44 +3621,30 @@ "id": "IntegerList" }, "StateFamilyConfig": { + "id": "StateFamilyConfig", "description": "State family configuration.", "type": "object", "properties": { - "stateFamily": { - "description": "The state family value.", - "type": "string" - }, "isRead": { "description": "If true, this family corresponds to a read operation.", "type": "boolean" + }, + "stateFamily": { + "description": "The state family value.", + "type": "string" } - }, - "id": "StateFamilyConfig" + } }, "ResourceUtilizationReportResponse": { - "description": "Service-side response to WorkerMessage reporting resource utilization.", "type": "object", "properties": {}, - "id": "ResourceUtilizationReportResponse" + "id": "ResourceUtilizationReportResponse", + "description": "Service-side response to WorkerMessage reporting resource utilization." }, "SourceSplitResponse": { "description": "The response to a SourceSplitRequest.", "type": "object", "properties": { - "outcome": { - "enumDescriptions": [ - "The source split outcome is unknown, or unspecified.", - "The current source should be processed \"as is\" without splitting.", - "Splitting produced a list of bundles." - ], - "enum": [ - "SOURCE_SPLIT_OUTCOME_UNKNOWN", - "SOURCE_SPLIT_OUTCOME_USE_CURRENT", - "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" - ], - "description": "Indicates whether splitting happened and produced a list of bundles.\nIf this is USE_CURRENT_SOURCE_AS_IS, the current source should\nbe processed \"as is\" without splitting. \"bundles\" is ignored in this case.\nIf this is SPLITTING_HAPPENED, then \"bundles\" contains a list of\nbundles into which the source was split.", - "type": "string" - }, "bundles": { "description": "If outcome is SPLITTING_HAPPENED, then this is a list of bundles\ninto which the source was split. Otherwise this field is ignored.\nThis list can be empty, which means the source represents an empty input.", "items": { @@ -3414,34 +3658,27 @@ "$ref": "SourceSplitShard" }, "type": "array" + }, + "outcome": { + "enumDescriptions": [ + "The source split outcome is unknown, or unspecified.", + "The current source should be processed \"as is\" without splitting.", + "Splitting produced a list of bundles." + ], + "enum": [ + "SOURCE_SPLIT_OUTCOME_UNKNOWN", + "SOURCE_SPLIT_OUTCOME_USE_CURRENT", + "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" + ], + "description": "Indicates whether splitting happened and produced a list of bundles.\nIf this is USE_CURRENT_SOURCE_AS_IS, the current source should\nbe processed \"as is\" without splitting. \"bundles\" is ignored in this case.\nIf this is SPLITTING_HAPPENED, then \"bundles\" contains a list of\nbundles into which the source was split.", + "type": "string" } }, "id": "SourceSplitResponse" }, "ParallelInstruction": { - "description": "Describes a particular operation comprising a MapTask.", "type": "object", "properties": { - "flatten": { - "$ref": "FlattenInstruction", - "description": "Additional information for Flatten instructions." - }, - "originalName": { - "description": "System-defined name for the operation in the original workflow graph.", - "type": "string" - }, - "systemName": { - "description": "System-defined name of this operation.\nUnique across the workflow.", - "type": "string" - }, - "write": { - "description": "Additional information for Write instructions.", - "$ref": "WriteInstruction" - }, - "partialGroupByKey": { - "$ref": "PartialGroupByKeyInstruction", - "description": "Additional information for PartialGroupByKey instructions." - }, "outputs": { "description": "Describes the outputs of the instruction.", "items": { @@ -3458,26 +3695,47 @@ "$ref": "ParDoInstruction" }, "read": { - "description": "Additional information for Read instructions.", - "$ref": "ReadInstruction" + "$ref": "ReadInstruction", + "description": "Additional information for Read instructions." + }, + "flatten": { + "$ref": "FlattenInstruction", + "description": "Additional information for Flatten instructions." + }, + "originalName": { + "description": "System-defined name for the operation in the original workflow graph.", + "type": "string" + }, + "systemName": { + "description": "System-defined name of this operation.\nUnique across the workflow.", + "type": "string" + }, + "write": { + "$ref": "WriteInstruction", + "description": "Additional information for Write instructions." + }, + "partialGroupByKey": { + "$ref": "PartialGroupByKeyInstruction", + "description": "Additional information for PartialGroupByKey instructions." } }, - "id": "ParallelInstruction" + "id": "ParallelInstruction", + "description": "Describes a particular operation comprising a MapTask." }, "Package": { + "id": "Package", "description": "The packages that must be installed in order for a worker to run the\nsteps of the Cloud Dataflow job that will be assigned to its worker\npool.\n\nThis is the mechanism by which the Cloud Dataflow SDK causes code to\nbe loaded onto the workers. For example, the Cloud Dataflow Java SDK\nmight use this to install jars containing the user's code and all of the\nvarious dependencies (libraries, data files, etc.) required in order\nfor that code to run.", "type": "object", "properties": { - "location": { - "description": "The resource to read the package from. The supported resource type is:\n\nGoogle Cloud Storage:\n\n storage.googleapis.com/{bucket}\n bucket.storage.googleapis.com/", - "type": "string" - }, "name": { "description": "The name of the package.", "type": "string" + }, + "location": { + "description": "The resource to read the package from. The supported resource type is:\n\nGoogle Cloud Storage:\n\n storage.googleapis.com/{bucket}\n bucket.storage.googleapis.com/", + "type": "string" } - }, - "id": "Package" + } }, "KeyRangeDataDiskAssignment": { "description": "Data disk assignment information for a specific key-range of a sharded\ncomputation.\nCurrently we only support UTF-8 character splits to simplify encoding into\nJSON.", @@ -3488,12 +3746,12 @@ "type": "string" }, "dataDisk": { - "description": "The name of the data disk where data for this range is stored.\nThis name is local to the Google Cloud Platform project and uniquely\nidentifies the disk within that project, for example\n\"myproject-1014-104817-4c2-harness-0-disk-1\".", - "type": "string" + "type": "string", + "description": "The name of the data disk where data for this range is stored.\nThis name is local to the Google Cloud Platform project and uniquely\nidentifies the disk within that project, for example\n\"myproject-1014-104817-4c2-harness-0-disk-1\"." }, "start": { - "description": "The start (inclusive) of the key range.", - "type": "string" + "type": "string", + "description": "The start (inclusive) of the key range." } }, "id": "KeyRangeDataDiskAssignment" @@ -3502,6 +3760,22 @@ "description": "An instruction that does a ParDo operation.\nTakes one main input and zero or more side inputs, and produces\nzero or more outputs.\nRuns user code.", "type": "object", "properties": { + "input": { + "$ref": "InstructionInput", + "description": "The input." + }, + "numOutputs": { + "format": "int32", + "description": "The number of outputs.", + "type": "integer" + }, + "sideInputs": { + "description": "Zero or more side inputs.", + "items": { + "$ref": "SideInputInfo" + }, + "type": "array" + }, "multiOutputInfos": { "description": "Information about each of the outputs, if user_fn is a MultiDoFn.", "items": { @@ -3516,30 +3790,91 @@ }, "description": "The user function to invoke.", "type": "object" - }, - "input": { - "description": "The input.", - "$ref": "InstructionInput" - }, - "numOutputs": { - "format": "int32", - "description": "The number of outputs.", - "type": "integer" - }, - "sideInputs": { - "description": "Zero or more side inputs.", - "items": { - "$ref": "SideInputInfo" - }, - "type": "array" } }, "id": "ParDoInstruction" }, + "MetricUpdate": { + "description": "Describes the state of a metric.", + "type": "object", + "properties": { + "meanCount": { + "type": "any", + "description": "Worker-computed aggregate value for the \"Mean\" aggregation kind.\nThis holds the count of the aggregated values and is used in combination\nwith mean_sum above to obtain the actual mean aggregate value.\nThe only possible value type is Long." + }, + "meanSum": { + "description": "Worker-computed aggregate value for the \"Mean\" aggregation kind.\nThis holds the sum of the aggregated values and is used in combination\nwith mean_count below to obtain the actual mean aggregate value.\nThe only possible value types are Long and Double.", + "type": "any" + }, + "updateTime": { + "format": "google-datetime", + "description": "Timestamp associated with the metric value. Optional when workers are\nreporting work progress; it will be filled in responses from the\nmetrics API.", + "type": "string" + }, + "name": { + "description": "Name of the metric.", + "$ref": "MetricStructuredName" + }, + "distribution": { + "description": "A struct value describing properties of a distribution of numeric values.", + "type": "any" + }, + "set": { + "type": "any", + "description": "Worker-computed aggregate value for the \"Set\" aggregation kind. The only\npossible value type is a list of Values whose type can be Long, Double,\nor String, according to the metric's type. All Values in the list must\nbe of the same type." + }, + "cumulative": { + "description": "True if this metric is reported as the total cumulative aggregate\nvalue accumulated since the worker started working on this WorkItem.\nBy default this is false, indicating that this metric is reported\nas a delta that is not associated with any WorkItem.", + "type": "boolean" + }, + "internal": { + "description": "Worker-computed aggregate value for internal use by the Dataflow\nservice.", + "type": "any" + }, + "kind": { + "description": "Metric aggregation kind. The possible metric aggregation kinds are\n\"Sum\", \"Max\", \"Min\", \"Mean\", \"Set\", \"And\", \"Or\", and \"Distribution\".\nThe specified aggregation kind is case-insensitive.\n\nIf omitted, this is not an aggregated value but instead\na single metric sample value.", + "type": "string" + }, + "scalar": { + "type": "any", + "description": "Worker-computed aggregate value for aggregation kinds \"Sum\", \"Max\", \"Min\",\n\"And\", and \"Or\". The possible value types are Long, Double, and Boolean." + } + }, + "id": "MetricUpdate" + }, "CounterStructuredName": { + "id": "CounterStructuredName", "description": "Identifies a counter within a per-job namespace. Counters whose structured\nnames are the same get merged into a single value for the job.", "type": "object", "properties": { + "sideInput": { + "$ref": "SideInputId", + "description": "ID of a side input being read from/written to. Side inputs are identified\nby a pair of (reader, input_index). The reader is usually equal to the\noriginal name, but it may be different, if a ParDo emits it's Iterator /\nMap side input object." + }, + "executionStepName": { + "type": "string", + "description": "Name of the stage. An execution step contains multiple component steps." + }, + "name": { + "description": "Counter name. Not necessarily globally-unique, but unique within the\ncontext of the other fields.\nRequired.", + "type": "string" + }, + "origin": { + "enumDescriptions": [ + "Counter was created by the Dataflow system.", + "Counter was created by the user." + ], + "enum": [ + "SYSTEM", + "USER" + ], + "description": "One of the standard Origins defined above.", + "type": "string" + }, + "componentStepName": { + "description": "Name of the optimized step being executed by the workers.", + "type": "string" + }, "portion": { "enumDescriptions": [ "Counter portion has not been set.", @@ -3567,103 +3902,29 @@ "type": "string" }, "originNamespace": { - "description": "A string containing a more specific namespace of the counter's origin.", - "type": "string" - }, - "sideInput": { - "$ref": "SideInputId", - "description": "ID of a side input being read from/written to. Side inputs are identified\nby a pair of (reader, input_index). The reader is usually equal to the\noriginal name, but it may be different, if a ParDo emits it's Iterator /\nMap side input object." - }, - "name": { - "description": "Counter name. Not necessarily globally-unique, but unique within the\ncontext of the other fields.\nRequired.", - "type": "string" - }, - "origin": { - "description": "One of the standard Origins defined above.", "type": "string", - "enumDescriptions": [ - "Counter was created by the Dataflow system.", - "Counter was created by the user." - ], - "enum": [ - "SYSTEM", - "USER" - ] - }, - "executionStepName": { - "description": "Name of the stage. An execution step contains multiple component steps.", - "type": "string" - }, - "componentStepName": { - "description": "Name of the optimized step being executed by the workers.", - "type": "string" + "description": "A string containing a more specific namespace of the counter's origin." } - }, - "id": "CounterStructuredName" + } }, "WorkerShutdownNotice": { - "description": "Shutdown notification from workers. This is to be sent by the shutdown\nscript of the worker VM so that the backend knows that the VM is being\nshut down.", "type": "object", "properties": { "reason": { - "description": "The reason for the worker shutdown.\nCurrent possible values are:\n \"UNKNOWN\": shutdown reason is unknown.\n \"PREEMPTION\": shutdown reason is preemption.\nOther possible reasons may be added in the future.\nNote that this must match the names of the enum specified in\ngoogle3/cloud/dataflow/router/protos/cloud_worker_messages_service.proto.", + "description": "The reason for the worker shutdown.\nCurrent possible values are:\n \"UNKNOWN\": shutdown reason is unknown.\n \"PREEMPTION\": shutdown reason is preemption.\nOther possible reasons may be added in the future.", "type": "string" } }, - "id": "WorkerShutdownNotice" - }, - "MetricUpdate": { - "description": "Describes the state of a metric.", - "type": "object", - "properties": { - "kind": { - "description": "Metric aggregation kind. The possible metric aggregation kinds are\n\"Sum\", \"Max\", \"Min\", \"Mean\", \"Set\", \"And\", \"Or\", and \"Distribution\".\nThe specified aggregation kind is case-insensitive.\n\nIf omitted, this is not an aggregated value but instead\na single metric sample value.", - "type": "string" - }, - "scalar": { - "description": "Worker-computed aggregate value for aggregation kinds \"Sum\", \"Max\", \"Min\",\n\"And\", and \"Or\". The possible value types are Long, Double, and Boolean.", - "type": "any" - }, - "meanCount": { - "description": "Worker-computed aggregate value for the \"Mean\" aggregation kind.\nThis holds the count of the aggregated values and is used in combination\nwith mean_sum above to obtain the actual mean aggregate value.\nThe only possible value type is Long.", - "type": "any" - }, - "meanSum": { - "description": "Worker-computed aggregate value for the \"Mean\" aggregation kind.\nThis holds the sum of the aggregated values and is used in combination\nwith mean_count below to obtain the actual mean aggregate value.\nThe only possible value types are Long and Double.", - "type": "any" - }, - "updateTime": { - "format": "google-datetime", - "description": "Timestamp associated with the metric value. Optional when workers are\nreporting work progress; it will be filled in responses from the\nmetrics API.", - "type": "string" - }, - "name": { - "$ref": "MetricStructuredName", - "description": "Name of the metric." - }, - "distribution": { - "description": "A struct value describing properties of a distribution of numeric values.", - "type": "any" - }, - "set": { - "description": "Worker-computed aggregate value for the \"Set\" aggregation kind. The only\npossible value type is a list of Values whose type can be Long, Double,\nor String, according to the metric's type. All Values in the list must\nbe of the same type.", - "type": "any" - }, - "internal": { - "description": "Worker-computed aggregate value for internal use by the Dataflow\nservice.", - "type": "any" - }, - "cumulative": { - "description": "True if this metric is reported as the total cumulative aggregate\nvalue accumulated since the worker started working on this WorkItem.\nBy default this is false, indicating that this metric is reported\nas a delta that is not associated with any WorkItem.", - "type": "boolean" - } - }, - "id": "MetricUpdate" + "id": "WorkerShutdownNotice", + "description": "Shutdown notification from workers. This is to be sent by the shutdown\nscript of the worker VM so that the backend knows that the VM is being\nshut down." }, "ApproximateProgress": { - "description": "Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest.", "type": "object", "properties": { + "position": { + "description": "Obsolete.", + "$ref": "Position" + }, "percentComplete": { "format": "float", "description": "Obsolete.", @@ -3673,18 +3934,19 @@ "format": "google-duration", "description": "Obsolete.", "type": "string" - }, - "position": { - "$ref": "Position", - "description": "Obsolete." } }, - "id": "ApproximateProgress" + "id": "ApproximateProgress", + "description": "Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest." }, "WorkerMessageResponse": { "description": "A worker_message response allows the server to pass information to the\nsender.", "type": "object", "properties": { + "workerHealthReportResponse": { + "description": "The service's response to a worker's health report.", + "$ref": "WorkerHealthReportResponse" + }, "workerShutdownNoticeResponse": { "$ref": "WorkerShutdownNoticeResponse", "description": "Service's response to shutdown notice (currently empty)." @@ -3692,24 +3954,18 @@ "workerMetricsResponse": { "$ref": "ResourceUtilizationReportResponse", "description": "Service's response to reporting worker metrics (currently empty)." - }, - "workerHealthReportResponse": { - "$ref": "WorkerHealthReportResponse", - "description": "The service's response to a worker's health report." } }, "id": "WorkerMessageResponse" }, "TemplateMetadata": { - "description": "Metadata describing a template.", - "type": "object", "properties": { "parameters": { - "description": "The parameters for the template.", "items": { "$ref": "ParameterMetadata" }, - "type": "array" + "type": "array", + "description": "The parameters for the template." }, "name": { "description": "Required. The name of the template.", @@ -3720,7 +3976,9 @@ "type": "string" } }, - "id": "TemplateMetadata" + "id": "TemplateMetadata", + "description": "Metadata describing a template.", + "type": "object" }, "WorkerMessage": { "description": "WorkerMessage provides information to the backend about a worker.", @@ -3731,12 +3989,12 @@ "$ref": "WorkerHealthReport" }, "workerMessageCode": { - "description": "A worker message code.", - "$ref": "WorkerMessageCode" + "$ref": "WorkerMessageCode", + "description": "A worker message code." }, "workerMetrics": { - "description": "Resource metrics reported by workers.", - "$ref": "ResourceUtilizationReport" + "$ref": "ResourceUtilizationReport", + "description": "Resource metrics reported by workers." }, "labels": { "additionalProperties": { @@ -3757,33 +4015,32 @@ }, "id": "WorkerMessage" }, - "JobMetrics": { - "description": "JobMetrics contains a collection of metrics descibing the detailed progress\nof a Dataflow job. Metrics correspond to user-defined and system-defined\nmetrics in the job.\n\nThis resource captures only the most recent values of each metric;\ntime-series data can be queried for them (under the same metric names)\nfrom Cloud Monitoring.", - "type": "object", - "properties": { - "metrics": { - "description": "All metrics for this job.", - "items": { - "$ref": "MetricUpdate" - }, - "type": "array" - }, - "metricTime": { - "format": "google-datetime", - "description": "Timestamp as of which metric values are current.", - "type": "string" - } - }, - "id": "JobMetrics" - }, "WorkerShutdownNoticeResponse": { "description": "Service-side response to WorkerMessage issuing shutdown notice.", "type": "object", "properties": {}, "id": "WorkerShutdownNoticeResponse" }, + "JobMetrics": { + "id": "JobMetrics", + "description": "JobMetrics contains a collection of metrics descibing the detailed progress\nof a Dataflow job. Metrics correspond to user-defined and system-defined\nmetrics in the job.\n\nThis resource captures only the most recent values of each metric;\ntime-series data can be queried for them (under the same metric names)\nfrom Cloud Monitoring.", + "type": "object", + "properties": { + "metrics": { + "items": { + "$ref": "MetricUpdate" + }, + "type": "array", + "description": "All metrics for this job." + }, + "metricTime": { + "format": "google-datetime", + "description": "Timestamp as of which metric values are current.", + "type": "string" + } + } + }, "FloatingPointList": { - "description": "A metric value representing a list of floating point numbers.", "type": "object", "properties": { "elements": { @@ -3795,81 +4052,82 @@ "type": "array" } }, - "id": "FloatingPointList" + "id": "FloatingPointList", + "description": "A metric value representing a list of floating point numbers." }, "CounterUpdate": { + "id": "CounterUpdate", "description": "An update to a Counter sent from a worker.", "type": "object", "properties": { - "floatingPointMean": { - "description": "Floating point mean aggregation value for Mean.", - "$ref": "FloatingPointMean" - }, - "boolean": { - "description": "Boolean value for And, Or.", - "type": "boolean" - }, - "nameAndKind": { - "$ref": "NameAndKind", - "description": "Counter name and aggregation type." - }, - "stringList": { - "description": "List of strings, for Set.", - "$ref": "StringList" - }, - "distribution": { - "description": "Distribution data", - "$ref": "DistributionUpdate" - }, - "shortId": { - "format": "int64", - "description": "The service-generated short identifier for this counter.\nThe short_id -\u003e (name, metadata) mapping is constant for the lifetime of\na job.", - "type": "string" - }, "floatingPointList": { - "description": "List of floating point numbers, for Set.", - "$ref": "FloatingPointList" + "$ref": "FloatingPointList", + "description": "List of floating point numbers, for Set." }, "integer": { - "description": "Integer value for Sum, Max, Min.", - "$ref": "SplitInt64" + "$ref": "SplitInt64", + "description": "Integer value for Sum, Max, Min." }, "structuredNameAndMetadata": { "$ref": "CounterStructuredNameAndMetadata", "description": "Counter structured name and metadata." }, "integerList": { - "$ref": "IntegerList", - "description": "List of integers, for Set." + "description": "List of integers, for Set.", + "$ref": "IntegerList" }, "integerMean": { - "description": "Integer mean aggregation value for Mean.", - "$ref": "IntegerMean" + "$ref": "IntegerMean", + "description": "Integer mean aggregation value for Mean." }, "floatingPoint": { "format": "double", "description": "Floating point value for Sum, Max, Min.", "type": "number" }, + "internal": { + "type": "any", + "description": "Value for internally-defined counters used by the Dataflow service." + }, "cumulative": { "description": "True if this counter is reported as the total cumulative aggregate\nvalue accumulated since the worker started working on this WorkItem.\nBy default this is false, indicating that this counter is reported\nas a delta.", "type": "boolean" }, - "internal": { - "description": "Value for internally-defined counters used by the Dataflow service.", - "type": "any" + "floatingPointMean": { + "$ref": "FloatingPointMean", + "description": "Floating point mean aggregation value for Mean." + }, + "boolean": { + "description": "Boolean value for And, Or.", + "type": "boolean" + }, + "nameAndKind": { + "description": "Counter name and aggregation type.", + "$ref": "NameAndKind" + }, + "distribution": { + "description": "Distribution data", + "$ref": "DistributionUpdate" + }, + "stringList": { + "description": "List of strings, for Set.", + "$ref": "StringList" + }, + "shortId": { + "format": "int64", + "description": "The service-generated short identifier for this counter.\nThe short_id -\u003e (name, metadata) mapping is constant for the lifetime of\na job.", + "type": "string" } - }, - "id": "CounterUpdate" + } }, "SourceMetadata": { "description": "Metadata about a Source useful for automatically optimizing\nand tuning the pipeline, etc.", "type": "object", "properties": { "estimatedSizeBytes": { + "type": "string", "format": "int64", - "description": "An estimate of the total size (in bytes) of the data that would be\nread from this source. This estimate is in terms of external storage\nsize, before any decompression or other processing done by the reader.", - "type": "string" + "description": "An estimate of the total size (in bytes) of the data that would be\nread from this source. This estimate is in terms of external storage\nsize, before any decompression or other processing done by the reader." }, "infinite": { "description": "Specifies that the size of this source is known to be infinite\n(this is a streaming source).", @@ -3886,12 +4144,16 @@ "description": "A metric value representing a distribution.", "type": "object", "properties": { - "count": { - "$ref": "SplitInt64", - "description": "The count of the number of elements present in the distribution." + "histogram": { + "$ref": "Histogram", + "description": "(Optional) Histogram of value counts for the distribution." }, - "min": { - "description": "The minimum value present in the distribution.", + "max": { + "$ref": "SplitInt64", + "description": "The maximum value present in the distribution." + }, + "count": { + "description": "The count of the number of elements present in the distribution.", "$ref": "SplitInt64" }, "sumOfSquares": { @@ -3899,21 +4161,29 @@ "description": "Use a double since the sum of squares is likely to overflow int64.", "type": "number" }, + "min": { + "$ref": "SplitInt64", + "description": "The minimum value present in the distribution." + }, "sum": { "$ref": "SplitInt64", "description": "Use an int64 since we'd prefer the added precision. If overflow is a common\nproblem we can detect it and use an additional int64 or a double." - }, - "max": { - "description": "The maximum value present in the distribution.", - "$ref": "SplitInt64" - }, - "histogram": { - "description": "(Optional) Histogram of value counts for the distribution.", - "$ref": "Histogram" } }, "id": "DistributionUpdate" }, + "WorkerHealthReportResponse": { + "id": "WorkerHealthReportResponse", + "description": "WorkerHealthReportResponse contains information returned to the worker\nin response to a health ping.", + "type": "object", + "properties": { + "reportInterval": { + "format": "google-duration", + "description": "A positive value indicates the worker should change its reporting interval\nto the specified value.\n\nThe default value of zero means no change in report rate is requested by\nthe server.", + "type": "string" + } + } + }, "SourceFork": { "description": "DEPRECATED in favor of DynamicSourceSplit.", "type": "object", @@ -3927,8 +4197,8 @@ "description": "DEPRECATED" }, "primary": { - "$ref": "SourceSplitShard", - "description": "DEPRECATED" + "description": "DEPRECATED", + "$ref": "SourceSplitShard" }, "primarySource": { "$ref": "DerivedSource", @@ -3937,22 +4207,36 @@ }, "id": "SourceFork" }, - "WorkerHealthReportResponse": { - "description": "WorkerHealthReportResponse contains information returned to the worker\nin response to a health ping.", - "type": "object", - "properties": { - "reportInterval": { - "format": "google-duration", - "description": "A positive value indicates the worker should change its reporting interval\nto the specified value.\n\nThe default value of zero means no change in report rate is requested by\nthe server.", - "type": "string" - } - }, - "id": "WorkerHealthReportResponse" - }, "WorkItemStatus": { "description": "Conveys a worker's progress through the work described by a WorkItem.", "type": "object", "properties": { + "dynamicSourceSplit": { + "$ref": "DynamicSourceSplit", + "description": "See documentation of stop_position." + }, + "sourceOperationResponse": { + "$ref": "SourceOperationResponse", + "description": "If the work item represented a SourceOperationRequest, and the work\nis completed, contains the result of the operation." + }, + "progress": { + "description": "DEPRECATED in favor of reported_progress.", + "$ref": "ApproximateProgress" + }, + "requestedLeaseDuration": { + "type": "string", + "format": "google-duration", + "description": "Amount of time the worker requests for its lease." + }, + "reportIndex": { + "format": "int64", + "description": "The report index. When a WorkItem is leased, the lease will\ncontain an initial report index. When a WorkItem's status is\nreported to the system, the report should be sent with\nthat report index, and the response will contain the index the\nworker should use for the next report. Reports received with\nunexpected index values will be rejected by the service.\n\nIn order to preserve idempotency, the worker should not alter the\ncontents of a report, even if the worker must submit the same\nreport multiple times before getting back a response. The worker\nshould not submit a subsequent report until the response for the\nprevious report had been received from the service.", + "type": "string" + }, + "stopPosition": { + "description": "A worker may split an active map task in two parts, \"primary\" and\n\"residual\", continuing to process the primary part and returning the\nresidual part into the pool of available work.\nThis event is called a \"dynamic split\" and is critical to the dynamic\nwork rebalancing feature. The two obtained sub-tasks are called\n\"parts\" of the split.\nThe parts, if concatenated, must represent the same input as would\nbe read by the current task if the split did not happen.\nThe exact way in which the original task is decomposed into the two\nparts is specified either as a position demarcating them\n(stop_position), or explicitly as two DerivedSources, if this\ntask consumes a user-defined source type (dynamic_source_split).\n\nThe \"current\" task is adjusted as a result of the split: after a task\nwith range [A, B) sends a stop_position update at C, its range is\nconsidered to be [A, C), e.g.:\n* Progress should be interpreted relative to the new range, e.g.\n \"75% completed\" means \"75% of [A, C) completed\"\n* The worker should interpret proposed_stop_position relative to the\n new range, e.g. \"split at 68%\" should be interpreted as\n \"split at 68% of [A, C)\".\n* If the worker chooses to split again using stop_position, only\n stop_positions in [A, C) will be accepted.\n* Etc.\ndynamic_source_split has similar semantics: e.g., if a task with\nsource S splits using dynamic_source_split into {P, R}\n(where P and R must be together equivalent to S), then subsequent\nprogress and proposed_stop_position should be interpreted relative\nto P, and in a potential subsequent dynamic_source_split into {P', R'},\nP' and R' must be together equivalent to P, etc.", + "$ref": "Position" + }, "completed": { "description": "True if the WorkItem was completed (successfully or unsuccessfully).", "type": "boolean" @@ -3971,22 +4255,22 @@ "type": "number" }, "counterUpdates": { - "description": "Worker output counters for this WorkItem.", "items": { "$ref": "CounterUpdate" }, - "type": "array" + "type": "array", + "description": "Worker output counters for this WorkItem." }, "workItemId": { "description": "Identifies the WorkItem.", "type": "string" }, "errors": { - "description": "Specifies errors which occurred during processing. If errors are\nprovided, and completed = true, then the WorkItem is considered\nto have failed.", "items": { "$ref": "Status" }, - "type": "array" + "type": "array", + "description": "Specifies errors which occurred during processing. If errors are\nprovided, and completed = true, then the WorkItem is considered\nto have failed." }, "metricUpdates": { "description": "DEPRECATED in favor of counter_updates.", @@ -3994,32 +4278,6 @@ "$ref": "MetricUpdate" }, "type": "array" - }, - "dynamicSourceSplit": { - "description": "See documentation of stop_position.", - "$ref": "DynamicSourceSplit" - }, - "sourceOperationResponse": { - "description": "If the work item represented a SourceOperationRequest, and the work\nis completed, contains the result of the operation.", - "$ref": "SourceOperationResponse" - }, - "progress": { - "description": "DEPRECATED in favor of reported_progress.", - "$ref": "ApproximateProgress" - }, - "requestedLeaseDuration": { - "format": "google-duration", - "description": "Amount of time the worker requests for its lease.", - "type": "string" - }, - "reportIndex": { - "format": "int64", - "description": "The report index. When a WorkItem is leased, the lease will\ncontain an initial report index. When a WorkItem's status is\nreported to the system, the report should be sent with\nthat report index, and the response will contain the index the\nworker should use for the next report. Reports received with\nunexpected index values will be rejected by the service.\n\nIn order to preserve idempotency, the worker should not alter the\ncontents of a report, even if the worker must submit the same\nreport multiple times before getting back a response. The worker\nshould not submit a subsequent report until the response for the\nprevious report had been received from the service.", - "type": "string" - }, - "stopPosition": { - "description": "A worker may split an active map task in two parts, \"primary\" and\n\"residual\", continuing to process the primary part and returning the\nresidual part into the pool of available work.\nThis event is called a \"dynamic split\" and is critical to the dynamic\nwork rebalancing feature. The two obtained sub-tasks are called\n\"parts\" of the split.\nThe parts, if concatenated, must represent the same input as would\nbe read by the current task if the split did not happen.\nThe exact way in which the original task is decomposed into the two\nparts is specified either as a position demarcating them\n(stop_position), or explicitly as two DerivedSources, if this\ntask consumes a user-defined source type (dynamic_source_split).\n\nThe \"current\" task is adjusted as a result of the split: after a task\nwith range [A, B) sends a stop_position update at C, its range is\nconsidered to be [A, C), e.g.:\n* Progress should be interpreted relative to the new range, e.g.\n \"75% completed\" means \"75% of [A, C) completed\"\n* The worker should interpret proposed_stop_position relative to the\n new range, e.g. \"split at 68%\" should be interpreted as\n \"split at 68% of [A, C)\".\n* If the worker chooses to split again using stop_position, only\n stop_positions in [A, C) will be accepted.\n* Etc.\ndynamic_source_split has similar semantics: e.g., if a task with\nsource S splits using dynamic_source_split into {P, R}\n(where P and R must be together equivalent to S), then subsequent\nprogress and proposed_stop_position should be interpreted relative\nto P, and in a potential subsequent dynamic_source_split into {P', R'},\nP' and R' must be together equivalent to P, etc.", - "$ref": "Position" } }, "id": "WorkItemStatus" @@ -4028,17 +4286,17 @@ "description": "Description of an interstitial value between transforms in an execution\nstage.", "type": "object", "properties": { - "userName": { - "description": "Human-readable name for this transform; may be user or system generated.", + "name": { + "description": "Dataflow service generated name for this source.", "type": "string" }, + "userName": { + "type": "string", + "description": "Human-readable name for this transform; may be user or system generated." + }, "originalTransformOrCollection": { "description": "User name for the original user transform or collection with which this\nsource is most closely associated.", "type": "string" - }, - "name": { - "description": "Dataflow service generated name for this source.", - "type": "string" } }, "id": "ComponentSource" @@ -4047,11 +4305,6 @@ "description": "Histogram of value counts for a distribution.\n\nBuckets have an inclusive lower bound and exclusive upper bound and use\n\"1,2,5 bucketing\": The first bucket range is from [0,1) and all subsequent\nbucket boundaries are powers of ten multiplied by 1, 2, or 5. Thus, bucket\nboundaries are 0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, ...\nNegative values are not supported.", "type": "object", "properties": { - "firstBucketOffset": { - "format": "int32", - "description": "Starting index of first stored bucket. The non-inclusive upper-bound of\nthe ith bucket is given by:\n pow(10,(i-first_bucket_offset)/3) * (1,2,5)[(i-first_bucket_offset)%3]", - "type": "integer" - }, "bucketCounts": { "description": "Counts of values in each bucket. For efficiency, prefix and trailing\nbuckets with count = 0 are elided. Buckets can store the full range of\nvalues of an unsigned long, with ULLONG_MAX falling into the 59th bucket\nwith range [1e19, 2e19).", "items": { @@ -4059,30 +4312,36 @@ "type": "string" }, "type": "array" + }, + "firstBucketOffset": { + "format": "int32", + "description": "Starting index of first stored bucket. The non-inclusive upper-bound of\nthe ith bucket is given by:\n pow(10,(i-first_bucket_offset)/3) * (1,2,5)[(i-first_bucket_offset)%3]", + "type": "integer" } }, "id": "Histogram" }, "WorkItemServiceState": { + "id": "WorkItemServiceState", "description": "The Dataflow service's idea of the current state of a WorkItem\nbeing processed by a worker.", "type": "object", "properties": { - "suggestedStopPosition": { - "description": "Obsolete, always empty.", - "$ref": "Position" - }, "reportStatusInterval": { "format": "google-duration", "description": "New recommended reporting interval.", "type": "string" }, + "suggestedStopPosition": { + "description": "Obsolete, always empty.", + "$ref": "Position" + }, "harnessData": { - "description": "Other data returned by the service, specific to the particular\nworker harness.", - "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "description": "Other data returned by the service, specific to the particular\nworker harness.", + "type": "object" }, "leaseExpireTime": { "format": "google-datetime", @@ -4106,15 +4365,12 @@ "$ref": "ApproximateProgress" }, "splitRequest": { - "description": "The progress point in the WorkItem where the Dataflow service\nsuggests that the worker truncate the task.", - "$ref": "ApproximateSplitRequest" + "$ref": "ApproximateSplitRequest", + "description": "The progress point in the WorkItem where the Dataflow service\nsuggests that the worker truncate the task." } - }, - "id": "WorkItemServiceState" + } }, "MetricStructuredName": { - "description": "Identifies a metric, by describing the source which generated the\nmetric.", - "type": "object", "properties": { "name": { "description": "Worker-defined metric name.", @@ -4125,26 +4381,28 @@ "type": "string" }, "context": { - "description": "Zero or more labeled fields which identify the part of the job this\nmetric is associated with, such as the name of a step or collection.\n\nFor example, built-in counters associated with steps will have\ncontext['step'] = \u003cstep-name\u003e. Counters associated with PCollections\nin the SDK will have context['pcollection'] = \u003cpcollection-name\u003e.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Zero or more labeled fields which identify the part of the job this\nmetric is associated with, such as the name of a step or collection.\n\nFor example, built-in counters associated with steps will have\ncontext['step'] = \u003cstep-name\u003e. Counters associated with PCollections\nin the SDK will have context['pcollection'] = \u003cpcollection-name\u003e.", + "type": "object" } }, - "id": "MetricStructuredName" + "id": "MetricStructuredName", + "description": "Identifies a metric, by describing the source which generated the\nmetric.", + "type": "object" }, "SeqMapTaskOutputInfo": { "description": "Information about an output of a SeqMapTask.", "type": "object", "properties": { + "sink": { + "$ref": "Sink", + "description": "The sink to write the output value to." + }, "tag": { "description": "The id of the TupleTag the user code will tag the output value by.", "type": "string" - }, - "sink": { - "description": "The sink to write the output value to.", - "$ref": "Sink" } }, "id": "SeqMapTaskOutputInfo" @@ -4167,10 +4425,6 @@ "description": "Location information for a specific key-range of a sharded computation.\nCurrently we only support UTF-8 character splits to simplify encoding into\nJSON.", "type": "object", "properties": { - "end": { - "description": "The end (exclusive) of the key range.", - "type": "string" - }, "deprecatedPersistentDirectory": { "description": "DEPRECATED. The location of the persistent state for this range, as a\npersistent directory in the worker local filesystem.", "type": "string" @@ -4180,12 +4434,16 @@ "type": "string" }, "dataDisk": { - "description": "The name of the data disk where data for this range is stored.\nThis name is local to the Google Cloud Platform project and uniquely\nidentifies the disk within that project, for example\n\"myproject-1014-104817-4c2-harness-0-disk-1\".", - "type": "string" + "type": "string", + "description": "The name of the data disk where data for this range is stored.\nThis name is local to the Google Cloud Platform project and uniquely\nidentifies the disk within that project, for example\n\"myproject-1014-104817-4c2-harness-0-disk-1\"." }, "start": { "description": "The start (inclusive) of the key range.", "type": "string" + }, + "end": { + "description": "The end (exclusive) of the key range.", + "type": "string" } }, "id": "KeyRangeLocation" @@ -4201,10 +4459,55 @@ }, "id": "SourceGetMetadataRequest" }, + "SeqMapTask": { + "description": "Describes a particular function to invoke.", + "type": "object", + "properties": { + "name": { + "description": "The user-provided name of the SeqDo operation.", + "type": "string" + }, + "outputInfos": { + "description": "Information about each of the outputs.", + "items": { + "$ref": "SeqMapTaskOutputInfo" + }, + "type": "array" + }, + "inputs": { + "items": { + "$ref": "SideInputInfo" + }, + "type": "array", + "description": "Information about each of the inputs." + }, + "stageName": { + "description": "System-defined name of the stage containing the SeqDo operation.\nUnique across the workflow.", + "type": "string" + }, + "systemName": { + "description": "System-defined name of the SeqDo operation.\nUnique across the workflow.", + "type": "string" + }, + "userFn": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The user function to invoke.", + "type": "object" + } + }, + "id": "SeqMapTask" + }, "NameAndKind": { "description": "Basic metadata about a counter.", "type": "object", "properties": { + "name": { + "type": "string", + "description": "Name of the counter." + }, "kind": { "enumDescriptions": [ "Counter aggregation kind was not set.", @@ -4230,73 +4533,28 @@ ], "description": "Counter aggregation kind.", "type": "string" - }, - "name": { - "description": "Name of the counter.", - "type": "string" } }, "id": "NameAndKind" }, - "SeqMapTask": { - "description": "Describes a particular function to invoke.", - "type": "object", - "properties": { - "inputs": { - "description": "Information about each of the inputs.", - "items": { - "$ref": "SideInputInfo" - }, - "type": "array" - }, - "stageName": { - "description": "System-defined name of the stage containing the SeqDo operation.\nUnique across the workflow.", - "type": "string" - }, - "systemName": { - "description": "System-defined name of the SeqDo operation.\nUnique across the workflow.", - "type": "string" - }, - "userFn": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "The user function to invoke.", - "type": "object" - }, - "name": { - "description": "The user-provided name of the SeqDo operation.", - "type": "string" - }, - "outputInfos": { - "description": "Information about each of the outputs.", - "items": { - "$ref": "SeqMapTaskOutputInfo" - }, - "type": "array" - } - }, - "id": "SeqMapTask" - }, "WorkerMessageCode": { - "description": "A message code is used to report status and error messages to the service.\nThe message codes are intended to be machine readable. The service will\ntake care of translating these into user understandable messages if\nnecessary.\n\nExample use cases:\n 1. Worker processes reporting successful startup.\n 2. Worker processes reporting specific errors (e.g. package staging\n failure).", "type": "object", "properties": { "parameters": { - "description": "Parameters contains specific information about the code.\n\nThis is a struct to allow parameters of different types.\n\nExamples:\n 1. For a \"HARNESS_STARTED\" message parameters might provide the name\n of the worker and additional data like timing information.\n 2. For a \"GCS_DOWNLOAD_ERROR\" parameters might contain fields listing\n the GCS objects being downloaded and fields containing errors.\n\nIn general complex data structures should be avoided. If a worker\nneeds to send a specific and complicated data structure then please\nconsider defining a new proto and adding it to the data oneof in\nWorkerMessageResponse.\n\nConventions:\n Parameters should only be used for information that isn't typically passed\n as a label.\n hostname and other worker identifiers should almost always be passed\n as labels since they will be included on most messages.", - "type": "object", "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } + "type": "any", + "description": "Properties of the object." + }, + "description": "Parameters contains specific information about the code.\n\nThis is a struct to allow parameters of different types.\n\nExamples:\n 1. For a \"HARNESS_STARTED\" message parameters might provide the name\n of the worker and additional data like timing information.\n 2. For a \"GCS_DOWNLOAD_ERROR\" parameters might contain fields listing\n the GCS objects being downloaded and fields containing errors.\n\nIn general complex data structures should be avoided. If a worker\nneeds to send a specific and complicated data structure then please\nconsider defining a new proto and adding it to the data oneof in\nWorkerMessageResponse.\n\nConventions:\n Parameters should only be used for information that isn't typically passed\n as a label.\n hostname and other worker identifiers should almost always be passed\n as labels since they will be included on most messages.", + "type": "object" }, "code": { - "description": "The code is a string intended for consumption by a machine that identifies\nthe type of message being sent.\nExamples:\n 1. \"HARNESS_STARTED\" might be used to indicate the worker harness has\n started.\n 2. \"GCS_DOWNLOAD_ERROR\" might be used to indicate an error downloading\n a GCS file as part of the boot process of one of the worker containers.\n\nThis is a string and not an enum to make it easy to add new codes without\nwaiting for an API change.", - "type": "string" + "type": "string", + "description": "The code is a string intended for consumption by a machine that identifies\nthe type of message being sent.\nExamples:\n 1. \"HARNESS_STARTED\" might be used to indicate the worker harness has\n started.\n 2. \"GCS_DOWNLOAD_ERROR\" might be used to indicate an error downloading\n a GCS file as part of the boot process of one of the worker containers.\n\nThis is a string and not an enum to make it easy to add new codes without\nwaiting for an API change." } }, - "id": "WorkerMessageCode" + "id": "WorkerMessageCode", + "description": "A message code is used to report status and error messages to the service.\nThe message codes are intended to be machine readable. The service will\ntake care of translating these into user understandable messages if\nnecessary.\n\nExample use cases:\n 1. Worker processes reporting successful startup.\n 2. Worker processes reporting specific errors (e.g. package staging\n failure)." }, "CustomSourceLocation": { "description": "Identifies the location of a custom souce.", @@ -4336,18 +4594,19 @@ "type": "object", "properties": { "sum": { + "type": "number", "format": "double", - "description": "The sum of all values being aggregated.", - "type": "number" + "description": "The sum of all values being aggregated." }, "count": { - "$ref": "SplitInt64", - "description": "The number of values being aggregated." + "description": "The number of values being aggregated.", + "$ref": "SplitInt64" } }, "id": "FloatingPointMean" }, "ReportWorkItemStatusResponse": { + "id": "ReportWorkItemStatusResponse", "description": "Response from a request to report the status of WorkItems.", "type": "object", "properties": { @@ -4358,56 +4617,46 @@ }, "type": "array" } - }, - "id": "ReportWorkItemStatusResponse" + } }, "InstructionOutput": { "description": "An output of an instruction.", "type": "object", "properties": { - "originalName": { - "description": "System-defined name for this output in the original workflow graph.\nOutputs that do not contribute to an original instruction do not set this.", - "type": "string" + "onlyCountKeyBytes": { + "description": "For system-generated byte and mean byte metrics, certain instructions\nshould only report the key size.", + "type": "boolean" }, "systemName": { "description": "System-defined name of this output.\nUnique across the workflow.", "type": "string" }, - "onlyCountKeyBytes": { - "description": "For system-generated byte and mean byte metrics, certain instructions\nshould only report the key size.", - "type": "boolean" - }, "onlyCountValueBytes": { "description": "For system-generated byte and mean byte metrics, certain instructions\nshould only report the value size.", "type": "boolean" }, "codec": { + "description": "The codec to use to encode data being written via this output.", + "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - }, - "description": "The codec to use to encode data being written via this output.", - "type": "object" + } }, "name": { "description": "The user-provided name of this output.", "type": "string" + }, + "originalName": { + "description": "System-defined name for this output in the original workflow graph.\nOutputs that do not contribute to an original instruction do not set this.", + "type": "string" } }, "id": "InstructionOutput" }, "CreateJobFromTemplateRequest": { - "description": "A request to create a Cloud Dataflow job from a template.", "type": "object", "properties": { - "environment": { - "description": "The runtime environment for the job.", - "$ref": "RuntimeEnvironment" - }, - "location": { - "description": "The location to which to direct the request.", - "type": "string" - }, "parameters": { "additionalProperties": { "type": "string" @@ -4422,36 +4671,38 @@ "gcsPath": { "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be a valid Cloud Storage URL, beginning with `gs://`.", "type": "string" + }, + "environment": { + "description": "The runtime environment for the job.", + "$ref": "RuntimeEnvironment" + }, + "location": { + "description": "The location to which to direct the request.", + "type": "string" } }, - "id": "CreateJobFromTemplateRequest" + "id": "CreateJobFromTemplateRequest", + "description": "A request to create a Cloud Dataflow job from a template." }, "IntegerMean": { + "id": "IntegerMean", "description": "A representation of an integer mean metric contribution.", "type": "object", "properties": { "count": { - "$ref": "SplitInt64", - "description": "The number of values being aggregated." + "description": "The number of values being aggregated.", + "$ref": "SplitInt64" }, "sum": { - "$ref": "SplitInt64", - "description": "The sum of all values being aggregated." + "description": "The sum of all values being aggregated.", + "$ref": "SplitInt64" } - }, - "id": "IntegerMean" + } }, "ListJobsResponse": { "description": "Response to a request to list Cloud Dataflow jobs. This may be a partial\nresponse, depending on the page size in the ListJobsRequest.", "type": "object", "properties": { - "jobs": { - "description": "A subset of the requested job information.", - "items": { - "$ref": "Job" - }, - "type": "array" - }, "failedLocation": { "description": "Zero or more messages describing locations that failed to respond.", "items": { @@ -4462,6 +4713,13 @@ "nextPageToken": { "description": "Set if there may be more results than fit in this response.", "type": "string" + }, + "jobs": { + "description": "A subset of the requested job information.", + "items": { + "$ref": "Job" + }, + "type": "array" } }, "id": "ListJobsResponse" @@ -4470,23 +4728,9 @@ "description": "All configuration data for a particular Computation.", "type": "object", "properties": { - "outputs": { - "description": "The outputs from the computation.", - "items": { - "$ref": "StreamLocation" - }, - "type": "array" - }, - "stateFamilies": { - "description": "The state family values.", - "items": { - "$ref": "StateFamilyConfig" - }, - "type": "array" - }, "systemStageName": { - "description": "The system stage name.", - "type": "string" + "type": "string", + "description": "The system stage name." }, "computationId": { "description": "The ID of the computation.", @@ -4500,32 +4744,39 @@ "type": "array" }, "keyRanges": { - "description": "The key ranges processed by the computation.", "items": { "$ref": "KeyRangeLocation" }, + "type": "array", + "description": "The key ranges processed by the computation." + }, + "stateFamilies": { + "description": "The state family values.", + "items": { + "$ref": "StateFamilyConfig" + }, + "type": "array" + }, + "outputs": { + "description": "The outputs from the computation.", + "items": { + "$ref": "StreamLocation" + }, "type": "array" } }, "id": "ComputationTopology" }, "RuntimeEnvironment": { + "id": "RuntimeEnvironment", "description": "The environment values to set at runtime.", "type": "object", "properties": { - "zone": { - "description": "The Compute Engine [availability\nzone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)\nfor launching worker instances to run your pipeline.", - "type": "string" - }, "maxWorkers": { "format": "int32", "description": "The maximum number of Google Compute Engine instances to be made\navailable to your pipeline during execution, from 1 to 1000.", "type": "integer" }, - "bypassTempDirValidation": { - "description": "Whether to bypass the safety checks for the job's temporary directory.\nUse with caution.", - "type": "boolean" - }, "serviceAccountEmail": { "description": "The email address of the service account to run the job as.", "type": "string" @@ -4534,12 +4785,19 @@ "description": "The Cloud Storage path to use for temporary files.\nMust be a valid Cloud Storage URL, beginning with `gs://`.", "type": "string" }, + "bypassTempDirValidation": { + "type": "boolean", + "description": "Whether to bypass the safety checks for the job's temporary directory.\nUse with caution." + }, "machineType": { "description": "The machine type to use for the job. Defaults to the value from the\ntemplate if not specified.", "type": "string" + }, + "zone": { + "description": "The Compute Engine [availability\nzone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)\nfor launching worker instances to run your pipeline.", + "type": "string" } - }, - "id": "RuntimeEnvironment" + } }, "MountedDataDisk": { "description": "Describes mounted data disk.", @@ -4561,8 +4819,8 @@ "type": "string" }, "stateFamily": { - "description": "Identifies the state family where this side input is stored.", - "type": "string" + "type": "string", + "description": "Identifies the state family where this side input is stored." } }, "id": "StreamingSideInputLocation" @@ -4572,23 +4830,18 @@ "type": "object", "properties": { "job": { - "description": "The job that was launched, if the request was not a dry run and\nthe job was successfully launched.", - "$ref": "Job" + "$ref": "Job", + "description": "The job that was launched, if the request was not a dry run and\nthe job was successfully launched." } }, "id": "LaunchTemplateResponse" }, "DerivedSource": { + "id": "DerivedSource", "description": "Specification of one of the bundles produced as a result of splitting\na Source (e.g. when executing a SourceSplitRequest, or when\nsplitting an active task using WorkItemStatus.dynamic_source_split),\nrelative to the source being split.", "type": "object", "properties": { "derivationMode": { - "enumDescriptions": [ - "The source derivation is unknown, or unspecified.", - "Produce a completely independent Source with no base.", - "Produce a Source based on the Source being split.", - "Produce a Source based on the base of the Source being split." - ], "enum": [ "SOURCE_DERIVATION_MODE_UNKNOWN", "SOURCE_DERIVATION_MODE_INDEPENDENT", @@ -4596,26 +4849,31 @@ "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" ], "description": "What source to base the produced source on (if any).", - "type": "string" + "type": "string", + "enumDescriptions": [ + "The source derivation is unknown, or unspecified.", + "Produce a completely independent Source with no base.", + "Produce a Source based on the Source being split.", + "Produce a Source based on the base of the Source being split." + ] }, "source": { - "description": "Specification of the source.", - "$ref": "Source" + "$ref": "Source", + "description": "Specification of the source." } - }, - "id": "DerivedSource" + } }, "DynamicSourceSplit": { "description": "When a task splits using WorkItemStatus.dynamic_source_split, this\nmessage describes the two parts of the split relative to the\ndescription of the current task's input.", "type": "object", "properties": { + "primary": { + "$ref": "DerivedSource", + "description": "Primary part (continued to be processed by worker).\nSpecified relative to the previously-current source.\nBecomes current." + }, "residual": { "$ref": "DerivedSource", "description": "Residual part (returned to the pool of work).\nSpecified relative to the previously-current source." - }, - "primary": { - "description": "Primary part (continued to be processed by worker).\nSpecified relative to the previously-current source.\nBecomes current.", - "$ref": "DerivedSource" } }, "id": "DynamicSourceSplit" @@ -4624,63 +4882,6 @@ "description": "Defines a job to be run by the Cloud Dataflow service.", "type": "object", "properties": { - "currentStateTime": { - "format": "google-datetime", - "description": "The timestamp associated with the current state.", - "type": "string" - }, - "transformNameMapping": { - "description": "The map of transform name prefixes of the job to be replaced to the\ncorresponding name prefixes of the new job.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "User-defined labels for this job.\n\nThe labels map can contain no more than 64 entries. Entries of the labels\nmap are UTF8 strings that comply with the following restrictions:\n\n* Keys must conform to regexp: \\p{Ll}\\p{Lo}{0,62}\n* Values must conform to regexp: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n* Both keys and values are additionally constrained to be \u003c= 128 bytes in\nsize.", - "type": "object" - }, - "environment": { - "description": "The environment for the job.", - "$ref": "Environment" - }, - "createTime": { - "format": "google-datetime", - "description": "The timestamp when the job was initially created. Immutable and set by the\nCloud Dataflow service.", - "type": "string" - }, - "stageStates": { - "description": "This field may be mutated by the Cloud Dataflow service;\ncallers cannot mutate it.", - "items": { - "$ref": "ExecutionStageState" - }, - "type": "array" - }, - "type": { - "description": "The type of Cloud Dataflow job.", - "type": "string", - "enumDescriptions": [ - "The type of the job is unspecified, or unknown.", - "A batch job with a well-defined end point: data is read, data is\nprocessed, data is written, and the job is done.", - "A continuously streaming job with no end: data is read,\nprocessed, and written continuously." - ], - "enum": [ - "JOB_TYPE_UNKNOWN", - "JOB_TYPE_BATCH", - "JOB_TYPE_STREAMING" - ] - }, - "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", - "type": "string" - }, - "pipelineDescription": { - "$ref": "PipelineDescription", - "description": "Preliminary field: The format of this data may change at any time.\nA description of the user pipeline and stages through which it is executed.\nCreated by Cloud Dataflow service. Only retrieved with\nJOB_VIEW_DESCRIPTION or JOB_VIEW_ALL." - }, "replaceJobId": { "description": "If this job is an update of an existing job, this field is the job ID\nof the job it replaced.\n\nWhen sending a `CreateJobRequest`, you can update a job by specifying it\nhere. The job named here is stopped, and its intermediate state is\ntransferred to this job.", "type": "string" @@ -4723,17 +4924,13 @@ "type": "array" }, "clientRequestId": { - "description": "The client's unique identifier of the job, re-used across retried attempts.\nIf this field is set, the service will ensure its uniqueness.\nThe request to create a job will fail if the service has knowledge of a\npreviously submitted job with the same client's ID and job name.\nThe caller may use this field to ensure idempotence of job\ncreation across retried attempts to create a job.\nBy default, the field is empty and, in that case, the service ignores it.", - "type": "string" + "type": "string", + "description": "The client's unique identifier of the job, re-used across retried attempts.\nIf this field is set, the service will ensure its uniqueness.\nThe request to create a job will fail if the service has knowledge of a\npreviously submitted job with the same client's ID and job name.\nThe caller may use this field to ensure idempotence of job\ncreation across retried attempts to create a job.\nBy default, the field is empty and, in that case, the service ignores it." }, "name": { "description": "The user-specified Cloud Dataflow job name.\n\nOnly one Job with a given name may exist in a project at any\ngiven time. If a caller attempts to create a Job with the same\nname as an already-existing Job, the attempt returns the\nexisting Job.\n\nThe name must match the regular expression\n`[a-z]([-a-z0-9]{0,38}[a-z0-9])?`", "type": "string" }, - "replacedByJobId": { - "description": "If another job is an update of this job (and thus, this job is in\n`JOB_STATE_UPDATED`), this field contains the ID of that job.", - "type": "string" - }, "steps": { "description": "The top-level steps that constitute the entire job.", "items": { @@ -4741,15 +4938,32 @@ }, "type": "array" }, - "id": { - "description": "The unique ID of this job.\n\nThis field is set by the Cloud Dataflow service when the Job is\ncreated, and is immutable for the life of the job.", + "replacedByJobId": { + "description": "If another job is an update of this job (and thus, this job is in\n`JOB_STATE_UPDATED`), this field contains the ID of that job.", "type": "string" }, + "id": { + "type": "string", + "description": "The unique ID of this job.\n\nThis field is set by the Cloud Dataflow service when the Job is\ncreated, and is immutable for the life of the job." + }, "executionInfo": { - "$ref": "JobExecutionInfo", - "description": "Deprecated." + "description": "Deprecated.", + "$ref": "JobExecutionInfo" }, "currentState": { + "enum": [ + "JOB_STATE_UNKNOWN", + "JOB_STATE_STOPPED", + "JOB_STATE_RUNNING", + "JOB_STATE_DONE", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLED", + "JOB_STATE_UPDATED", + "JOB_STATE_DRAINING", + "JOB_STATE_DRAINED", + "JOB_STATE_PENDING", + "JOB_STATE_CANCELLING" + ], "description": "The current state of the job.\n\nJobs are created in the `JOB_STATE_STOPPED` state unless otherwise\nspecified.\n\nA job in the `JOB_STATE_RUNNING` state may asynchronously enter a\nterminal state. After a job has reached a terminal state, no\nfurther state updates may be made.\n\nThis field may be mutated by the Cloud Dataflow service;\ncallers cannot mutate it.", "type": "string", "enumDescriptions": [ @@ -4764,30 +4978,73 @@ "`JOB_STATE_DRAINED` indicates that the job has been drained.\nA drained job terminated by stopping pulling from its input sources and\nprocessing any data that remained in-flight when draining was requested.\nThis state is a terminal state, may only be set by the Cloud Dataflow\nservice, and only as a transition from `JOB_STATE_DRAINING`.", "'JOB_STATE_PENDING' indicates that the job has been created but is not yet\nrunning. Jobs that are pending may only transition to `JOB_STATE_RUNNING`,\nor `JOB_STATE_FAILED`.", "'JOB_STATE_CANCELLING' indicates that the job has been explicitly cancelled\nand is in the process of stopping. Jobs that are cancelling may only\ntransition to 'JOB_STATE_CANCELLED' or 'JOB_STATE_FAILED'." - ], - "enum": [ - "JOB_STATE_UNKNOWN", - "JOB_STATE_STOPPED", - "JOB_STATE_RUNNING", - "JOB_STATE_DONE", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLED", - "JOB_STATE_UPDATED", - "JOB_STATE_DRAINING", - "JOB_STATE_DRAINED", - "JOB_STATE_PENDING", - "JOB_STATE_CANCELLING" ] }, "location": { "description": "The location that contains this job.", "type": "string" + }, + "currentStateTime": { + "type": "string", + "format": "google-datetime", + "description": "The timestamp associated with the current state." + }, + "transformNameMapping": { + "description": "The map of transform name prefixes of the job to be replaced to the\ncorresponding name prefixes of the new job.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels for this job.\n\nThe labels map can contain no more than 64 entries. Entries of the labels\nmap are UTF8 strings that comply with the following restrictions:\n\n* Keys must conform to regexp: \\p{Ll}\\p{Lo}{0,62}\n* Values must conform to regexp: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}\n* Both keys and values are additionally constrained to be \u003c= 128 bytes in\nsize.", + "type": "object" + }, + "environment": { + "$ref": "Environment", + "description": "The environment for the job." + }, + "createTime": { + "format": "google-datetime", + "description": "The timestamp when the job was initially created. Immutable and set by the\nCloud Dataflow service.", + "type": "string" + }, + "stageStates": { + "description": "This field may be mutated by the Cloud Dataflow service;\ncallers cannot mutate it.", + "items": { + "$ref": "ExecutionStageState" + }, + "type": "array" + }, + "type": { + "enumDescriptions": [ + "The type of the job is unspecified, or unknown.", + "A batch job with a well-defined end point: data is read, data is\nprocessed, data is written, and the job is done.", + "A continuously streaming job with no end: data is read,\nprocessed, and written continuously." + ], + "enum": [ + "JOB_TYPE_UNKNOWN", + "JOB_TYPE_BATCH", + "JOB_TYPE_STREAMING" + ], + "description": "The type of Cloud Dataflow job.", + "type": "string" + }, + "projectId": { + "description": "The ID of the Cloud Platform project that the job belongs to.", + "type": "string" + }, + "pipelineDescription": { + "$ref": "PipelineDescription", + "description": "Preliminary field: The format of this data may change at any time.\nA description of the user pipeline and stages through which it is executed.\nCreated by Cloud Dataflow service. Only retrieved with\nJOB_VIEW_DESCRIPTION or JOB_VIEW_ALL." } }, "id": "Job" }, "SideInputId": { - "description": "Uniquely identifies a side input.", "type": "object", "properties": { "inputIndex": { @@ -4800,280 +5057,23 @@ "type": "string" } }, - "id": "SideInputId" + "id": "SideInputId", + "description": "Uniquely identifies a side input." }, "SourceOperationResponse": { + "id": "SourceOperationResponse", "description": "The result of a SourceOperationRequest, specified in\nReportWorkItemStatusRequest.source_operation when the work item\nis completed.", "type": "object", "properties": { - "split": { - "description": "A response to a request to split a source.", - "$ref": "SourceSplitResponse" - }, "getMetadata": { "$ref": "SourceGetMetadataResponse", "description": "A response to a request to get metadata about a source." + }, + "split": { + "$ref": "SourceSplitResponse", + "description": "A response to a request to split a source." } - }, - "id": "SourceOperationResponse" - }, - "SendDebugCaptureResponse": { - "description": "Response to a send capture request.\nnothing", - "type": "object", - "properties": {}, - "id": "SendDebugCaptureResponse" - }, - "SideInputInfo": { - "description": "Information about a side input of a DoFn or an input of a SeqDoFn.", - "type": "object", - "properties": { - "tag": { - "description": "The id of the tag the user code will access this side input by;\nthis should correspond to the tag of some MultiOutputInfo.", - "type": "string" - }, - "kind": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "How to interpret the source element(s) as a side input value.", - "type": "object" - }, - "sources": { - "description": "The source(s) to read element(s) from to get the value of this side input.\nIf more than one source, then the elements are taken from the\nsources, in the specified order if order matters.\nAt least one source is required.", - "items": { - "$ref": "Source" - }, - "type": "array" - } - }, - "id": "SideInputInfo" - }, - "CounterStructuredNameAndMetadata": { - "description": "A single message which encapsulates structured name and metadata for a given\ncounter.", - "type": "object", - "properties": { - "name": { - "description": "Structured name of the counter.", - "$ref": "CounterStructuredName" - }, - "metadata": { - "description": "Metadata associated with a counter", - "$ref": "CounterMetadata" - } - }, - "id": "CounterStructuredNameAndMetadata" - }, - "ConcatPosition": { - "description": "A position that encapsulates an inner position and an index for the inner\nposition. A ConcatPosition can be used by a reader of a source that\nencapsulates a set of other sources.", - "type": "object", - "properties": { - "position": { - "$ref": "Position", - "description": "Position within the inner source." - }, - "index": { - "format": "int32", - "description": "Index of the inner source.", - "type": "integer" - } - }, - "id": "ConcatPosition" - }, - "WriteInstruction": { - "description": "An instruction that writes records.\nTakes one input, produces no outputs.", - "type": "object", - "properties": { - "input": { - "$ref": "InstructionInput", - "description": "The input." - }, - "sink": { - "description": "The sink to write to.", - "$ref": "Sink" - } - }, - "id": "WriteInstruction" - }, - "StreamingComputationRanges": { - "description": "Describes full or partial data disk assignment information of the computation\nranges.", - "type": "object", - "properties": { - "computationId": { - "description": "The ID of the computation.", - "type": "string" - }, - "rangeAssignments": { - "description": "Data disk assignments for ranges from this computation.", - "items": { - "$ref": "KeyRangeDataDiskAssignment" - }, - "type": "array" - } - }, - "id": "StreamingComputationRanges" - }, - "AutoscalingSettings": { - "description": "Settings for WorkerPool autoscaling.", - "type": "object", - "properties": { - "algorithm": { - "description": "The algorithm to use for autoscaling.", - "type": "string", - "enumDescriptions": [ - "The algorithm is unknown, or unspecified.", - "Disable autoscaling.", - "Increase worker count over time to reduce job execution time." - ], - "enum": [ - "AUTOSCALING_ALGORITHM_UNKNOWN", - "AUTOSCALING_ALGORITHM_NONE", - "AUTOSCALING_ALGORITHM_BASIC" - ] - }, - "maxNumWorkers": { - "format": "int32", - "description": "The maximum number of workers to cap scaling at.", - "type": "integer" - } - }, - "id": "AutoscalingSettings" - }, - "ExecutionStageSummary": { - "description": "Description of the composing transforms, names/ids, and input/outputs of a\nstage of execution. Some composing transforms and sources may have been\ngenerated by the Dataflow service during execution planning.", - "type": "object", - "properties": { - "inputSource": { - "description": "Input sources for this stage.", - "items": { - "$ref": "StageSource" - }, - "type": "array" - }, - "id": { - "description": "Dataflow service generated id for this stage.", - "type": "string" - }, - "componentTransform": { - "description": "Transforms that comprise this execution stage.", - "items": { - "$ref": "ComponentTransform" - }, - "type": "array" - }, - "componentSource": { - "description": "Collections produced and consumed by component transforms of this stage.", - "items": { - "$ref": "ComponentSource" - }, - "type": "array" - }, - "kind": { - "enumDescriptions": [ - "Unrecognized transform type.", - "ParDo transform.", - "Group By Key transform.", - "Flatten transform.", - "Read transform.", - "Write transform.", - "Constructs from a constant value, such as with Create.of.", - "Creates a Singleton view of a collection.", - "Opening or closing a shuffle session, often as part of a GroupByKey." - ], - "enum": [ - "UNKNOWN_KIND", - "PAR_DO_KIND", - "GROUP_BY_KEY_KIND", - "FLATTEN_KIND", - "READ_KIND", - "WRITE_KIND", - "CONSTANT_KIND", - "SINGLETON_KIND", - "SHUFFLE_KIND" - ], - "description": "Type of tranform this stage is executing.", - "type": "string" - }, - "outputSource": { - "description": "Output sources for this stage.", - "items": { - "$ref": "StageSource" - }, - "type": "array" - }, - "name": { - "description": "Dataflow service generated name for this stage.", - "type": "string" - } - }, - "id": "ExecutionStageSummary" - }, - "SendWorkerMessagesRequest": { - "description": "A request for sending worker messages to the service.", - "type": "object", - "properties": { - "workerMessages": { - "description": "The WorkerMessages to send.", - "items": { - "$ref": "WorkerMessage" - }, - "type": "array" - }, - "location": { - "description": "The location which contains the job", - "type": "string" - } - }, - "id": "SendWorkerMessagesRequest" - }, - "SourceSplitShard": { - "description": "DEPRECATED in favor of DerivedSource.", - "type": "object", - "properties": { - "derivationMode": { - "enumDescriptions": [ - "The source derivation is unknown, or unspecified.", - "Produce a completely independent Source with no base.", - "Produce a Source based on the Source being split.", - "Produce a Source based on the base of the Source being split." - ], - "enum": [ - "SOURCE_DERIVATION_MODE_UNKNOWN", - "SOURCE_DERIVATION_MODE_INDEPENDENT", - "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT", - "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - ], - "description": "DEPRECATED", - "type": "string" - }, - "source": { - "$ref": "Source", - "description": "DEPRECATED" - } - }, - "id": "SourceSplitShard" - }, - "CPUTime": { - "description": "Modeled after information exposed by /proc/stat.", - "type": "object", - "properties": { - "timestamp": { - "format": "google-datetime", - "description": "Timestamp of the measurement.", - "type": "string" - }, - "totalMs": { - "format": "uint64", - "description": "Total active CPU time across all cores (ie., non-idle) in milliseconds\nsince start-up.", - "type": "string" - }, - "rate": { - "format": "double", - "description": "Average CPU utilization rate (% non-idle cpu / second) since previous\nsample.", - "type": "number" - } - }, - "id": "CPUTime" + } } }, "protocol": "rest", diff --git a/vendor/google.golang.org/api/dataflow/v1b3/dataflow-gen.go b/vendor/google.golang.org/api/dataflow/v1b3/dataflow-gen.go index a3a16ea10..f80a9dd95 100644 --- a/vendor/google.golang.org/api/dataflow/v1b3/dataflow-gen.go +++ b/vendor/google.golang.org/api/dataflow/v1b3/dataflow-gen.go @@ -6545,10 +6545,6 @@ type WorkerShutdownNotice struct { // "UNKNOWN": shutdown reason is unknown. // "PREEMPTION": shutdown reason is preemption. // Other possible reasons may be added in the future. - // Note that this must match the names of the enum specified - // in - // google3/cloud/dataflow/router/protos/cloud_worker_messages_service. - // proto. Reason string `json:"reason,omitempty"` // ForceSendFields is a list of field names (e.g. "Reason") to diff --git a/vendor/google.golang.org/api/dataproc/v1/dataproc-api.json b/vendor/google.golang.org/api/dataproc/v1/dataproc-api.json index c770cff75..77e717c12 100644 --- a/vendor/google.golang.org/api/dataproc/v1/dataproc-api.json +++ b/vendor/google.golang.org/api/dataproc/v1/dataproc-api.json @@ -1,5 +1,4 @@ { - "baseUrl": "https://dataproc.googleapis.com/", "auth": { "oauth2": { "scopes": { @@ -17,9 +16,9 @@ "ownerDomain": "google.com", "name": "dataproc", "batchPath": "batch", - "id": "dataproc:v1", + "revision": "20171016", "documentationLink": "https://cloud.google.com/dataproc/", - "revision": "20170926", + "id": "dataproc:v1", "title": "Google Cloud Dataproc API", "ownerName": "Google", "discoveryVersion": "v1", @@ -30,31 +29,6 @@ "resources": { "operations": { "methods": { - "cancel": { - "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}:cancel", - "id": "dataproc.projects.regions.operations.cancel", - "path": "v1/{+name}:cancel" - }, "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.", "response": { @@ -64,21 +38,62 @@ "name" ], "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "name": { + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", "location": "path", "description": "The name of the operation resource to be deleted.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", + "path": "v1/{+name}", + "id": "dataproc.projects.regions.operations.delete" + }, + "list": { + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations$", + "location": "path" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "type": "integer", + "location": "query" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", - "id": "dataproc.projects.regions.operations.delete", - "path": "v1/{+name}" + "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations", + "path": "v1/{+name}", + "id": "dataproc.projects.regions.operations.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." }, "get": { "response": { @@ -88,227 +103,125 @@ "name" ], "httpMethod": "GET", - "parameters": { - "name": { - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", - "location": "path" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource.", + "required": true, + "type": "string" + } + }, "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", - "id": "dataproc.projects.regions.operations.get", "path": "v1/{+name}", + "id": "dataproc.projects.regions.operations.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." }, - "list": { - "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations", - "id": "dataproc.projects.regions.operations.list", - "path": "v1/{+name}", - "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.", + "cancel": { "response": { - "$ref": "ListOperationsResponse" + "$ref": "Empty" }, "parameterOrder": [ "name" ], - "httpMethod": "GET", + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, "name": { - "description": "The name of the operation's parent resource.", - "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource to be cancelled.", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations$", - "location": "path" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" + "type": "string" } - } + }, + "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}:cancel", + "path": "v1/{+name}:cancel", + "id": "dataproc.projects.regions.operations.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." } } }, "jobs": { "methods": { - "get": { - "description": "Gets the resource representation for a job in a project.", - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "httpMethod": "GET", - "parameters": { - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "jobId": { - "description": "Required. The job ID.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", - "id": "dataproc.projects.regions.jobs.get", - "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}" - }, - "patch": { - "description": "Updates a job in a project.", - "request": { - "$ref": "Job" - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "response": { - "$ref": "Job" - }, - "parameters": { - "jobId": { - "location": "path", - "description": "Required. The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. Specifies the path, relative to \u003ccode\u003eJob\u003c/code\u003e, of the field to update. For example, to update the labels of a Job the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003elabels\u003c/code\u003e, and the PATCH request body would specify the new value. \u003cstrong\u003eNote:\u003c/strong\u003e Currently, \u003ccode\u003elabels\u003c/code\u003e is the only field that can be updated.", - "type": "string" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", - "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", - "id": "dataproc.projects.regions.jobs.patch" - }, "submit": { - "httpMethod": "POST", + "path": "v1/projects/{projectId}/regions/{region}/jobs:submit", + "id": "dataproc.projects.regions.jobs.submit", + "description": "Submits a job to a cluster.", + "request": { + "$ref": "SubmitJobRequest" + }, + "response": { + "$ref": "Job" + }, "parameterOrder": [ "projectId", "region" ], - "response": { - "$ref": "Job" - }, + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, "region": { "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", "required": true, - "location": "path" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", "type": "string", - "required": true, "location": "path" } }, - "flatPath": "v1/projects/{projectId}/regions/{region}/jobs:submit", - "path": "v1/projects/{projectId}/regions/{region}/jobs:submit", - "id": "dataproc.projects.regions.jobs.submit", - "request": { - "$ref": "SubmitJobRequest" - }, - "description": "Submits a job to a cluster." + "flatPath": "v1/projects/{projectId}/regions/{region}/jobs:submit" }, "delete": { - "description": "Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.", - "response": { - "$ref": "Empty" - }, + "httpMethod": "DELETE", "parameterOrder": [ "projectId", "region", "jobId" ], - "httpMethod": "DELETE", - "parameters": { - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "jobId": { - "location": "path", - "description": "Required. The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - } + "response": { + "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "parameters": { + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string", + "location": "path" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", "id": "dataproc.projects.regions.jobs.delete", - "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}" + "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", + "description": "Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION." }, "list": { - "description": "Lists regions/{region}/jobs in a project.", "response": { "$ref": "ListJobsResponse" }, @@ -318,22 +231,11 @@ ], "httpMethod": "GET", "parameters": { - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterName": { - "description": "Optional. If set, the returned jobs list includes only jobs that were submitted to the named cluster.", - "type": "string", - "location": "query" - }, "projectId": { "location": "path", "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true + "required": true, + "type": "string" }, "filter": { "location": "query", @@ -341,35 +243,53 @@ "type": "string" }, "jobStateMatcher": { - "description": "Optional. Specifies enumerated categories of jobs to list (default = match ALL jobs).", - "type": "string", "location": "query", "enum": [ "ALL", "ACTIVE", "NON_ACTIVE" - ] + ], + "description": "Optional. Specifies enumerated categories of jobs to list (default = match ALL jobs).", + "type": "string" }, "pageToken": { + "location": "query", "description": "Optional. The page token, returned by a previous call, to request the next page of results.", - "type": "string", - "location": "query" + "type": "string" }, "pageSize": { - "format": "int32", + "location": "query", "description": "Optional. The number of results to return in each response.", - "type": "integer", - "location": "query" + "format": "int32", + "type": "integer" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + }, + "clusterName": { + "location": "query", + "description": "Optional. If set, the returned jobs list includes only jobs that were submitted to the named cluster.", + "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v1/projects/{projectId}/regions/{region}/jobs", + "path": "v1/projects/{projectId}/regions/{region}/jobs", "id": "dataproc.projects.regions.jobs.list", - "path": "v1/projects/{projectId}/regions/{region}/jobs" + "description": "Lists regions/{region}/jobs in a project." }, "cancel": { + "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", + "id": "dataproc.projects.regions.jobs.cancel", + "description": "Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.", + "request": { + "$ref": "CancelJobRequest" + }, "response": { "$ref": "Job" }, @@ -379,122 +299,120 @@ "jobId" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "jobId": { - "description": "Required. The job ID.", - "type": "string", - "required": true, - "location": "path" - }, "projectId": { "location": "path", "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true + "required": true, + "type": "string" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel" + }, + "get": { + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "GET", + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", - "id": "dataproc.projects.regions.jobs.cancel", - "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", - "description": "Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.", + "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", + "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", + "id": "dataproc.projects.regions.jobs.get", + "description": "Gets the resource representation for a job in a project." + }, + "patch": { + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "updateMask": { + "location": "query", + "description": "Required. Specifies the path, relative to \u003ccode\u003eJob\u003c/code\u003e, of the field to update. For example, to update the labels of a Job the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003elabels\u003c/code\u003e, and the PATCH request body would specify the new value. \u003cstrong\u003eNote:\u003c/strong\u003e Currently, \u003ccode\u003elabels\u003c/code\u003e is the only field that can be updated.", + "format": "google-fieldmask", + "type": "string" + }, + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string", + "location": "path" + }, + "jobId": { + "required": true, + "type": "string", + "location": "path", + "description": "Required. The job ID." + } + }, + "flatPath": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", + "path": "v1/projects/{projectId}/regions/{region}/jobs/{jobId}", + "id": "dataproc.projects.regions.jobs.patch", + "description": "Updates a job in a project.", "request": { - "$ref": "CancelJobRequest" + "$ref": "Job" } } } }, "clusters": { "methods": { - "list": { - "description": "Lists all regions/{region}/clusters in a project.", - "response": { - "$ref": "ListClustersResponse" - }, - "parameterOrder": [ - "projectId", - "region" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageSize": { - "format": "int32", - "description": "Optional. The standard List page size.", - "type": "integer", - "location": "query" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "filter": { - "location": "query", - "description": "Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *", - "type": "string" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "description": "Optional. The standard List page token.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1/projects/{projectId}/regions/{region}/clusters", - "id": "dataproc.projects.regions.clusters.list", - "path": "v1/projects/{projectId}/regions/{region}/clusters" - }, - "create": { - "flatPath": "v1/projects/{projectId}/regions/{region}/clusters", - "path": "v1/projects/{projectId}/regions/{region}/clusters", - "id": "dataproc.projects.regions.clusters.create", - "description": "Creates a cluster in a project.", - "request": { - "$ref": "Cluster" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "region" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "patch": { "request": { "$ref": "Cluster" @@ -509,68 +427,68 @@ "response": { "$ref": "Operation" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project the cluster belongs to.", + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, "type": "string", - "required": true + "location": "path" }, "updateMask": { - "format": "google-fieldmask", "description": "Required. Specifies the path, relative to Cluster, of the field to update. For example, to change the number of workers in a cluster to 5, the update_mask parameter would be specified as config.worker_config.num_instances, and the PATCH request body would specify the new value, as follows:\n{\n \"config\":{\n \"workerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\nSimilarly, to change the number of preemptible workers in a cluster to 5, the update_mask parameter would be config.secondary_worker_config.num_instances, and the PATCH request body would be set as follows:\n{\n \"config\":{\n \"secondaryWorkerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\n\u003cstrong\u003eNote:\u003c/strong\u003e Currently, only the following fields can be updated:\u003ctable\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd\u003e\u003cstrong\u003eMask\u003c/strong\u003e\u003c/td\u003e \u003ctd\u003e\u003cstrong\u003ePurpose\u003c/strong\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e\u003cstrong\u003e\u003cem\u003elabels\u003c/em\u003e\u003c/strong\u003e\u003c/td\u003e \u003ctd\u003eUpdate labels\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e\u003cstrong\u003e\u003cem\u003econfig.worker_config.num_instances\u003c/em\u003e\u003c/strong\u003e\u003c/td\u003e \u003ctd\u003eResize primary worker group\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e\u003cstrong\u003e\u003cem\u003econfig.secondary_worker_config.num_instances\u003c/em\u003e\u003c/strong\u003e\u003c/td\u003e \u003ctd\u003eResize secondary worker group\u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e", + "format": "google-fieldmask", "type": "string", "location": "query" }, - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, "clusterName": { + "location": "path", "description": "Required. The cluster name.", - "type": "string", "required": true, - "location": "path" + "type": "string" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project the cluster belongs to.", + "required": true, + "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "id": "dataproc.projects.regions.clusters.patch" + "id": "dataproc.projects.regions.clusters.patch", + "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}" }, "get": { "description": "Gets the resource representation for a cluster in a project.", - "httpMethod": "GET", + "response": { + "$ref": "Cluster" + }, "parameterOrder": [ "projectId", "region", "clusterName" ], - "response": { - "$ref": "Cluster" - }, + "httpMethod": "GET", "parameters": { "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", "required": true, - "location": "path" + "type": "string", + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request." }, "clusterName": { - "location": "path", "description": "Required. The cluster name.", + "required": true, "type": "string", - "required": true + "location": "path" }, "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, "type": "string", - "required": true + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to." } }, "scopes": [ @@ -580,51 +498,9 @@ "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}", "id": "dataproc.projects.regions.clusters.get" }, - "diagnose": { - "request": { - "$ref": "DiagnoseClusterRequest" - }, - "description": "Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "region", - "clusterName" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "clusterName": { - "location": "path", - "description": "Required. The cluster name.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", - "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", - "id": "dataproc.projects.regions.clusters.diagnose" - }, "delete": { - "flatPath": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "id": "dataproc.projects.regions.clusters.delete", "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "id": "dataproc.projects.regions.clusters.delete", "description": "Deletes a cluster in a project.", "response": { "$ref": "Operation" @@ -635,29 +511,152 @@ "clusterName" ], "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "projectId": { "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", "required": true, + "type": "string", "location": "path" }, "region": { "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", "required": true, + "type": "string", "location": "path" }, "clusterName": { "location": "path", "description": "Required. The cluster name.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}" + }, + "diagnose": { + "path": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", + "id": "dataproc.projects.regions.clusters.diagnose", + "request": { + "$ref": "DiagnoseClusterRequest" + }, + "description": "Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region", + "clusterName" + ], + "httpMethod": "POST", + "parameters": { + "clusterName": { + "description": "Required. The cluster name.", + "required": true, "type": "string", - "required": true + "location": "path" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose" + }, + "list": { + "flatPath": "v1/projects/{projectId}/regions/{region}/clusters", + "path": "v1/projects/{projectId}/regions/{region}/clusters", + "id": "dataproc.projects.regions.clusters.list", + "description": "Lists all regions/{region}/clusters in a project.", + "response": { + "$ref": "ListClustersResponse" + }, + "parameterOrder": [ + "projectId", + "region" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "required": true, + "type": "string", + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to." + }, + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "filter": { + "location": "query", + "description": "Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Optional. The standard List page token.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Optional. The standard List page size.", + "format": "int32", + "type": "integer" } } + }, + "create": { + "description": "Creates a cluster in a project.", + "request": { + "$ref": "Cluster" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/regions/{region}/clusters", + "path": "v1/projects/{projectId}/regions/{region}/clusters", + "id": "dataproc.projects.regions.clusters.create" } } } @@ -667,52 +666,10 @@ } }, "parameters": { - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", @@ -720,22 +677,22 @@ "location": "query" }, "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "alt": { "description": "Data format for response.", @@ -752,897 +709,51 @@ "Responses with Content-Type of application/x-protobuf" ], "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "type": "string", + "location": "query", + "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." + }, + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "type": "boolean", + "default": "true", + "location": "query", + "description": "Returns response with indentations and line breaks." } }, "schemas": { - "ListClustersResponse": { - "description": "The list of all clusters in a project.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Output-only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent ListClustersRequest.", - "type": "string" - }, - "clusters": { - "description": "Output-only. The clusters in the project.", - "items": { - "$ref": "Cluster" - }, - "type": "array" - } - }, - "id": "ListClustersResponse" - }, - "Job": { - "description": "A Cloud Dataproc job resource.", - "type": "object", - "properties": { - "scheduling": { - "$ref": "JobScheduling", - "description": "Optional. Job scheduling configuration." - }, - "pigJob": { - "$ref": "PigJob", - "description": "Job is a Pig job." - }, - "hiveJob": { - "description": "Job is a Hive job.", - "$ref": "HiveJob" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.", - "type": "object" - }, - "driverOutputResourceUri": { - "description": "Output-only. A URI pointing to the location of the stdout of the job's driver program.", - "type": "string" - }, - "sparkJob": { - "description": "Job is a Spark job.", - "$ref": "SparkJob" - }, - "sparkSqlJob": { - "description": "Job is a SparkSql job.", - "$ref": "SparkSqlJob" - }, - "statusHistory": { - "description": "Output-only. The previous job status.", - "items": { - "$ref": "JobStatus" - }, - "type": "array" - }, - "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": { - "$ref": "YarnApplication" - }, - "type": "array" - }, - "pysparkJob": { - "$ref": "PySparkJob", - "description": "Job is a Pyspark job." - }, - "reference": { - "description": "Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a \u003ccode\u003ejob_id\u003c/code\u003e.", - "$ref": "JobReference" - }, - "hadoopJob": { - "description": "Job is a Hadoop job.", - "$ref": "HadoopJob" - }, - "placement": { - "description": "Required. Job information, including how, when, and where to run the job.", - "$ref": "JobPlacement" - }, - "status": { - "description": "Output-only. The job status. Additional application-specific status information may be contained in the \u003ccode\u003etype_job\u003c/code\u003e and \u003ccode\u003eyarn_applications\u003c/code\u003e fields.", - "$ref": "JobStatus" - }, - "driverControlFilesUri": { - "description": "Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.", - "type": "string" - } - }, - "id": "Job" - }, - "SparkJob": { - "description": "A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN.", - "type": "object", - "properties": { - "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fileUris": { - "description": "Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainClass": { - "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.", - "type": "string" - }, - "archiveUris": { - "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainJarFileUri": { - "description": "The HCFS URI of the jar file that contains the main class.", - "type": "string" - }, - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "description": "Optional. The runtime log config for job execution.", - "$ref": "LoggingConfig" - }, - "properties": { - "description": "Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "id": "SparkJob" - }, - "JobStatus": { - "description": "Cloud Dataproc job status.", - "type": "object", - "properties": { - "details": { - "description": "Output-only. Optional job state details, such as an error description if the state is \u003ccode\u003eERROR\u003c/code\u003e.", - "type": "string" - }, - "state": { - "enumDescriptions": [ - "The job state is unknown.", - "The job is pending; it has been submitted, but is not yet running.", - "Job has been received by the service and completed initial setup; it will soon be submitted to the cluster.", - "The job is running on the cluster.", - "A CancelJob request has been received, but is pending.", - "Transient in-flight resources have been canceled, and the request to cancel the running job has been issued to the cluster.", - "The job cancellation was successful.", - "The job has completed successfully.", - "The job has completed, but encountered an error.", - "Job attempt has failed. The detail field contains failure details for this attempt.Applies to restartable jobs only." - ], - "enum": [ - "STATE_UNSPECIFIED", - "PENDING", - "SETUP_DONE", - "RUNNING", - "CANCEL_PENDING", - "CANCEL_STARTED", - "CANCELLED", - "DONE", - "ERROR", - "ATTEMPT_FAILURE" - ], - "description": "Output-only. A state message specifying the overall job state.", - "type": "string" - }, - "substate": { - "enumDescriptions": [ - "", - "The Job is submitted to the agent.Applies to RUNNING state.", - "The Job has been received and is awaiting execution (it may be waiting for a condition to be met). See the \"details\" field for the reason for the delay.Applies to RUNNING state.", - "The agent-reported status is out of date, which may be caused by a loss of communication between the agent and Cloud Dataproc. If the agent does not send a timely update, the job will fail.Applies to RUNNING state." - ], - "enum": [ - "UNSPECIFIED", - "SUBMITTED", - "QUEUED", - "STALE_STATUS" - ], - "description": "Output-only. Additional state information, which includes status reported by the agent.", - "type": "string" - }, - "stateStartTime": { - "format": "google-datetime", - "description": "Output-only. The time when this state was entered.", - "type": "string" - } - }, - "id": "JobStatus" - }, - "ManagedGroupConfig": { - "description": "Specifies the resources used to actively manage an instance group.", - "type": "object", - "properties": { - "instanceGroupManagerName": { - "description": "Output-only. The name of the Instance Group Manager for this group.", - "type": "string" - }, - "instanceTemplateName": { - "description": "Output-only. The name of the Instance Template used for the Managed Instance Group.", - "type": "string" - } - }, - "id": "ManagedGroupConfig" - }, - "ClusterOperationStatus": { - "description": "The status of the operation.", - "type": "object", - "properties": { - "details": { - "description": "Output-only.A message containing any operation metadata details.", - "type": "string" - }, - "state": { - "description": "Output-only. A message containing the operation state.", - "type": "string", - "enumDescriptions": [ - "Unused.", - "The operation has been created.", - "The operation is running.", - "The operation is done; either cancelled or completed." - ], - "enum": [ - "UNKNOWN", - "PENDING", - "RUNNING", - "DONE" - ] - }, - "innerState": { - "description": "Output-only. A message containing the detailed operation state.", - "type": "string" - }, - "stateStartTime": { - "format": "google-datetime", - "description": "Output-only. The time this state was entered.", - "type": "string" - } - }, - "id": "ClusterOperationStatus" - }, - "YarnApplication": { - "description": "A YARN application created by a job. Application information is a subset of \u003ccode\u003eorg.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto\u003c/code\u003e.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", - "type": "object", - "properties": { - "trackingUrl": { - "description": "Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.", - "type": "string" - }, - "progress": { - "format": "float", - "description": "Required. The numerical progress of the application, from 1 to 100.", - "type": "number" - }, - "state": { - "enumDescriptions": [ - "Status is unspecified.", - "Status is NEW.", - "Status is NEW_SAVING.", - "Status is SUBMITTED.", - "Status is ACCEPTED.", - "Status is RUNNING.", - "Status is FINISHED.", - "Status is FAILED.", - "Status is KILLED." - ], - "enum": [ - "STATE_UNSPECIFIED", - "NEW", - "NEW_SAVING", - "SUBMITTED", - "ACCEPTED", - "RUNNING", - "FINISHED", - "FAILED", - "KILLED" - ], - "description": "Required. The application state.", - "type": "string" - }, - "name": { - "description": "Required. The application name.", - "type": "string" - } - }, - "id": "YarnApplication" - }, - "QueryList": { - "description": "A list of queries to run on a cluster.", - "type": "object", - "properties": { - "queries": { - "description": "Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:\n\"hiveJob\": {\n \"queryList\": {\n \"queries\": [\n \"query1\",\n \"query2\",\n \"query3;query4\",\n ]\n }\n}\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "QueryList" - }, - "HadoopJob": { - "description": "A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).", - "type": "object", - "properties": { - "mainClass": { - "description": "The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.", - "type": "string" - }, - "archiveUris": { - "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainJarFileUri": { - "description": "The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'", - "type": "string" - }, - "jarFileUris": { - "description": "Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "$ref": "LoggingConfig", - "description": "Optional. The runtime log config for job execution." - }, - "properties": { - "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fileUris": { - "description": "Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "HadoopJob" - }, - "DiagnoseClusterRequest": { - "description": "A request to collect cluster diagnostic information.", - "type": "object", - "properties": {}, - "id": "DiagnoseClusterRequest" - }, - "DiskConfig": { - "description": "Specifies the config of disk options for a group of VM instances.", - "type": "object", - "properties": { - "bootDiskSizeGb": { - "format": "int32", - "description": "Optional. Size in GB of the boot disk (default is 500GB).", - "type": "integer" - }, - "numLocalSsds": { - "format": "int32", - "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.", - "type": "integer" - } - }, - "id": "DiskConfig" - }, - "ClusterOperationMetadata": { - "description": "Metadata describing the operation.", - "type": "object", - "properties": { - "labels": { - "description": "Output-only. Labels associated with the operation", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "status": { - "$ref": "ClusterOperationStatus", - "description": "Output-only. Current operation status." - }, - "statusHistory": { - "description": "Output-only. The previous operation status.", - "items": { - "$ref": "ClusterOperationStatus" - }, - "type": "array" - }, - "clusterName": { - "description": "Output-only. Name of the cluster for the operation.", - "type": "string" - }, - "clusterUuid": { - "description": "Output-only. Cluster UUID for the operation.", - "type": "string" - }, - "operationType": { - "description": "Output-only. The operation type.", - "type": "string" - }, - "description": { - "description": "Output-only. Short description of operation.", - "type": "string" - }, - "warnings": { - "description": "Output-only. Errors encountered during operation execution.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "ClusterOperationMetadata" - }, - "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "HiveJob": { - "description": "A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN.", - "type": "object", - "properties": { - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scriptVariables": { - "description": "Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "properties": { - "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "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" - }, - "queryFileUri": { - "description": "The HCFS URI of the script that contains Hive queries.", - "type": "string" - }, - "queryList": { - "$ref": "QueryList", - "description": "A list of queries." - } - }, - "id": "HiveJob" - }, - "DiagnoseClusterResults": { - "description": "The location of diagnostic output.", - "type": "object", - "properties": { - "outputUri": { - "description": "Output-only. The Google Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.", - "type": "string" - } - }, - "id": "DiagnoseClusterResults" - }, - "ClusterConfig": { - "description": "The cluster config.", - "type": "object", - "properties": { - "masterConfig": { - "description": "Optional. The Google Compute Engine config settings for the master instance in a cluster.", - "$ref": "InstanceGroupConfig" - }, - "secondaryWorkerConfig": { - "$ref": "InstanceGroupConfig", - "description": "Optional. The Google Compute Engine config settings for additional worker instances in a cluster." - }, - "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):\nROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)\nif [[ \"${ROLE}\" == 'Master' ]]; then\n ... master specific actions ...\nelse\n ... worker specific actions ...\nfi\n", - "items": { - "$ref": "NodeInitializationAction" - }, - "type": "array" - }, - "configBucket": { - "description": "Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.", - "type": "string" - }, - "workerConfig": { - "description": "Optional. The Google Compute Engine config settings for worker instances in a cluster.", - "$ref": "InstanceGroupConfig" - }, - "gceClusterConfig": { - "description": "Required. The shared Google Compute Engine config settings for all instances in a cluster.", - "$ref": "GceClusterConfig" - }, - "softwareConfig": { - "description": "Optional. The config settings for software inside the cluster.", - "$ref": "SoftwareConfig" - } - }, - "id": "ClusterConfig" - }, - "PySparkJob": { - "description": "A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN.", - "type": "object", - "properties": { - "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fileUris": { - "description": "Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pythonFileUris": { - "description": "Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainPythonFileUri": { - "description": "Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.", - "type": "string" - }, - "archiveUris": { - "description": "Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "$ref": "LoggingConfig", - "description": "Optional. The runtime log config for job execution." - }, - "properties": { - "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "id": "PySparkJob" - }, - "GceClusterConfig": { - "description": "Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster.", - "type": "object", - "properties": { - "serviceAccount": { - "description": "Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com", - "type": "string" - }, - "subnetworkUri": { - "description": "Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0\nprojects/[project_id]/regions/us-east1/sub0\nsub0", - "type": "string" - }, - "networkUri": { - "description": "Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks for more information).A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default\nprojects/[project_id]/regions/global/default\ndefault", - "type": "string" - }, - "zoneUri": { - "description": "Optional. The zone where the Google Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Cloud Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]\nprojects/[project_id]/zones/[zone]\nus-central1-f", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).", - "type": "object" - }, - "internalIpOnly": { - "description": "Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.", - "type": "boolean" - }, - "serviceAccountScopes": { - "description": "Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control", - "items": { - "type": "string" - }, - "type": "array" - }, - "tags": { - "description": "The Google Compute Engine tags to add to all instances (see Tagging instances).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "GceClusterConfig" - }, - "AcceleratorConfig": { - "description": "Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).", - "type": "object", - "properties": { - "acceleratorCount": { - "format": "int32", - "description": "The number of the accelerator cards of this type exposed to this instance.", - "type": "integer" - }, - "acceleratorTypeUri": { - "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80", - "type": "string" - } - }, - "id": "AcceleratorConfig" - }, - "ClusterMetrics": { - "description": "Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", - "type": "object", - "properties": { - "yarnMetrics": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "The YARN metrics.", - "type": "object" - }, - "hdfsMetrics": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "The HDFS metrics.", - "type": "object" - } - }, - "id": "ClusterMetrics" - }, - "LoggingConfig": { - "description": "The runtime logging config of the job.", - "type": "object", - "properties": { - "driverLogLevels": { - "additionalProperties": { - "enum": [ - "LEVEL_UNSPECIFIED", - "ALL", - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - }, - "description": "The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'", - "type": "object" - } - }, - "id": "LoggingConfig" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a network API call.", - "type": "object", - "properties": { - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "metadata": { - "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", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "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" - }, - "response": { - "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", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "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 have the format of operations/some/unique/name.", - "type": "string" - } - }, - "id": "Operation" - }, - "JobReference": { - "description": "Encapsulates the full scoping used to reference a job.", - "type": "object", - "properties": { - "jobId": { - "description": "Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.", - "type": "string" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string" - } - }, - "id": "JobReference" - }, - "SubmitJobRequest": { - "description": "A request to submit a job.", - "type": "object", - "properties": { - "job": { - "description": "Required. The job resource.", - "$ref": "Job" - } - }, - "id": "SubmitJobRequest" - }, - "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "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" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "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" - } - }, - "id": "Status" - }, - "JobScheduling": { - "description": "Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release.", - "type": "object", - "properties": { - "maxFailuresPerHour": { - "format": "int32", - "description": "Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating 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.", - "type": "integer" - } - }, - "id": "JobScheduling" - }, - "InstanceGroupConfig": { - "description": "Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group.", - "type": "object", - "properties": { - "machineTypeUri": { - "description": "Optional. The Google Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2", - "type": "string" - }, - "imageUri": { - "description": "Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.", - "type": "string" - }, - "isPreemptible": { - "description": "Optional. Specifies that this instance group contains preemptible instances.", - "type": "boolean" - }, - "managedGroupConfig": { - "description": "Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.", - "$ref": "ManagedGroupConfig" - }, - "instanceNames": { - "description": "Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).", - "items": { - "type": "string" - }, - "type": "array" - }, - "accelerators": { - "description": "Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "numInstances": { - "format": "int32", - "description": "Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.", - "type": "integer" - }, - "diskConfig": { - "description": "Optional. Disk option config settings.", - "$ref": "DiskConfig" - } - }, - "id": "InstanceGroupConfig" - }, - "NodeInitializationAction": { - "description": "Specifies an executable to run on a fully configured node and a timeout period for executable completion.", - "type": "object", - "properties": { - "executionTimeout": { - "format": "google-duration", - "description": "Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.", - "type": "string" - }, - "executableFile": { - "description": "Required. Google Cloud Storage URI of executable file.", - "type": "string" - } - }, - "id": "NodeInitializationAction" - }, - "ListJobsResponse": { - "description": "A list of jobs in a project.", - "type": "object", - "properties": { - "jobs": { - "description": "Output-only. Jobs list.", - "items": { - "$ref": "Job" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Optional. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListJobsRequest\u003c/code\u003e.", - "type": "string" - } - }, - "id": "ListJobsResponse" - }, "CancelJobRequest": { "description": "A request to cancel a job.", "type": "object", @@ -1653,6 +764,14 @@ "description": "A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries.", "type": "object", "properties": { + "queryList": { + "$ref": "QueryList", + "description": "A list of queries." + }, + "queryFileUri": { + "description": "The HCFS URI of the script that contains SQL queries.", + "type": "string" + }, "scriptVariables": { "additionalProperties": { "type": "string" @@ -1662,29 +781,21 @@ }, "jarFileUris": { "description": "Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "$ref": "LoggingConfig", - "description": "Optional. The runtime log config for job execution." - }, - "properties": { - "description": "Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.", - "type": "object", - "additionalProperties": { - "type": "string" } }, - "queryFileUri": { - "description": "The HCFS URI of the script that contains SQL queries.", - "type": "string" + "loggingConfig": { + "description": "Optional. The runtime log config for job execution.", + "$ref": "LoggingConfig" }, - "queryList": { - "$ref": "QueryList", - "description": "A list of queries." + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.", + "type": "object" } }, "id": "SparkSqlJob" @@ -1700,24 +811,24 @@ "description": "Optional. The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.", "type": "object" }, - "status": { - "$ref": "ClusterStatus", - "description": "Output-only. Cluster status." - }, "metrics": { "$ref": "ClusterMetrics", "description": "Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release." }, - "config": { - "$ref": "ClusterConfig", - "description": "Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated." + "status": { + "$ref": "ClusterStatus", + "description": "Output-only. Cluster status." }, "statusHistory": { "description": "Output-only. The previous cluster status.", + "type": "array", "items": { "$ref": "ClusterStatus" - }, - "type": "array" + } + }, + "config": { + "$ref": "ClusterConfig", + "description": "Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated." }, "clusterName": { "description": "Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.", @@ -1744,10 +855,10 @@ }, "operations": { "description": "A list of operations that matches the specified filter in the request.", + "type": "array", "items": { "$ref": "Operation" - }, - "type": "array" + } } }, "id": "ListOperationsResponse" @@ -1756,13 +867,13 @@ "description": "Cloud Dataproc job config.", "type": "object", "properties": { - "clusterUuid": { - "description": "Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.", - "type": "string" - }, "clusterName": { "description": "Required. The name of the cluster where the job will be submitted.", "type": "string" + }, + "clusterUuid": { + "description": "Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.", + "type": "string" } }, "id": "JobPlacement" @@ -1786,9 +897,13 @@ "id": "SoftwareConfig" }, "ClusterStatus": { - "description": "The status of a cluster and its instances.", "type": "object", "properties": { + "stateStartTime": { + "description": "Output-only. Time when this state was entered.", + "format": "google-datetime", + "type": "string" + }, "substate": { "description": "Output-only. Additional state information that includes status reported by the agent.", "type": "string", @@ -1803,18 +918,11 @@ "STALE_STATUS" ] }, - "stateStartTime": { - "format": "google-datetime", - "description": "Output-only. Time when this state was entered.", - "type": "string" - }, "detail": { "description": "Output-only. Optional details of cluster's state.", "type": "string" }, "state": { - "description": "Output-only. The cluster's state.", - "type": "string", "enumDescriptions": [ "The cluster state is unknown.", "The cluster is being created and set up. It is not ready for use.", @@ -1830,28 +938,42 @@ "ERROR", "DELETING", "UPDATING" - ] + ], + "description": "Output-only. The cluster's state.", + "type": "string" } }, - "id": "ClusterStatus" + "id": "ClusterStatus", + "description": "The status of a cluster and its instances." }, "PigJob": { - "description": "A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN.", "type": "object", "properties": { + "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" + }, + "queryFileUri": { + "description": "The HCFS URI of the script that contains the Pig queries.", + "type": "string" + }, + "queryList": { + "$ref": "QueryList", + "description": "A list of queries." + }, "jarFileUris": { "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "scriptVariables": { - "description": "Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).", + "type": "object" }, "loggingConfig": { "$ref": "LoggingConfig", @@ -1863,27 +985,905 @@ }, "description": "Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.", "type": "object" + } + }, + "id": "PigJob", + "description": "A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN." + }, + "ListClustersResponse": { + "description": "The list of all clusters in a project.", + "type": "object", + "properties": { + "clusters": { + "description": "Output-only. The clusters in the project.", + "type": "array", + "items": { + "$ref": "Cluster" + } + }, + "nextPageToken": { + "description": "Output-only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent ListClustersRequest.", + "type": "string" + } + }, + "id": "ListClustersResponse" + }, + "SparkJob": { + "type": "object", + "properties": { + "jarFileUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks." + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + }, + "properties": { + "description": "Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "args": { + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "type": "array", + "items": { + "type": "string" + } + }, + "fileUris": { + "description": "Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainClass": { + "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.", + "type": "string" + }, + "archiveUris": { + "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainJarFileUri": { + "description": "The HCFS URI of the jar file that contains the main class.", + "type": "string" + } + }, + "id": "SparkJob", + "description": "A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN." + }, + "Job": { + "description": "A Cloud Dataproc job resource.", + "type": "object", + "properties": { + "hadoopJob": { + "description": "Job is a Hadoop job.", + "$ref": "HadoopJob" + }, + "status": { + "description": "Output-only. The job status. Additional application-specific status information may be contained in the \u003ccode\u003etype_job\u003c/code\u003e and \u003ccode\u003eyarn_applications\u003c/code\u003e fields.", + "$ref": "JobStatus" + }, + "placement": { + "$ref": "JobPlacement", + "description": "Required. Job information, including how, when, and where to run the job." + }, + "driverControlFilesUri": { + "description": "Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.", + "type": "string" + }, + "scheduling": { + "$ref": "JobScheduling", + "description": "Optional. Job scheduling configuration." + }, + "pigJob": { + "description": "Job is a Pig job.", + "$ref": "PigJob" + }, + "hiveJob": { + "description": "Job is a Hive job.", + "$ref": "HiveJob" + }, + "labels": { + "description": "Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "driverOutputResourceUri": { + "description": "Output-only. A URI pointing to the location of the stdout of the job's driver program.", + "type": "string" + }, + "statusHistory": { + "type": "array", + "items": { + "$ref": "JobStatus" + }, + "description": "Output-only. The previous job status." + }, + "sparkSqlJob": { + "$ref": "SparkSqlJob", + "description": "Job is a SparkSql job." + }, + "sparkJob": { + "$ref": "SparkJob", + "description": "Job is a Spark 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.", + "type": "array", + "items": { + "$ref": "YarnApplication" + } + }, + "pysparkJob": { + "description": "Job is a Pyspark job.", + "$ref": "PySparkJob" + }, + "reference": { + "$ref": "JobReference", + "description": "Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a \u003ccode\u003ejob_id\u003c/code\u003e." + } + }, + "id": "Job" + }, + "JobStatus": { + "properties": { + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "SETUP_DONE", + "RUNNING", + "CANCEL_PENDING", + "CANCEL_STARTED", + "CANCELLED", + "DONE", + "ERROR", + "ATTEMPT_FAILURE" + ], + "description": "Output-only. A state message specifying the overall job state.", + "type": "string", + "enumDescriptions": [ + "The job state is unknown.", + "The job is pending; it has been submitted, but is not yet running.", + "Job has been received by the service and completed initial setup; it will soon be submitted to the cluster.", + "The job is running on the cluster.", + "A CancelJob request has been received, but is pending.", + "Transient in-flight resources have been canceled, and the request to cancel the running job has been issued to the cluster.", + "The job cancellation was successful.", + "The job has completed successfully.", + "The job has completed, but encountered an error.", + "Job attempt has failed. The detail field contains failure details for this attempt.Applies to restartable jobs only." + ] + }, + "details": { + "type": "string", + "description": "Output-only. Optional job state details, such as an error description if the state is \u003ccode\u003eERROR\u003c/code\u003e." + }, + "stateStartTime": { + "description": "Output-only. The time when this state was entered.", + "format": "google-datetime", + "type": "string" + }, + "substate": { + "enumDescriptions": [ + "", + "The Job is submitted to the agent.Applies to RUNNING state.", + "The Job has been received and is awaiting execution (it may be waiting for a condition to be met). See the \"details\" field for the reason for the delay.Applies to RUNNING state.", + "The agent-reported status is out of date, which may be caused by a loss of communication between the agent and Cloud Dataproc. If the agent does not send a timely update, the job will fail.Applies to RUNNING state." + ], + "enum": [ + "UNSPECIFIED", + "SUBMITTED", + "QUEUED", + "STALE_STATUS" + ], + "description": "Output-only. Additional state information, which includes status reported by the agent.", + "type": "string" + } + }, + "id": "JobStatus", + "description": "Cloud Dataproc job status.", + "type": "object" + }, + "ManagedGroupConfig": { + "description": "Specifies the resources used to actively manage an instance group.", + "type": "object", + "properties": { + "instanceGroupManagerName": { + "description": "Output-only. The name of the Instance Group Manager for this group.", + "type": "string" + }, + "instanceTemplateName": { + "description": "Output-only. The name of the Instance Template used for the Managed Instance Group.", + "type": "string" + } + }, + "id": "ManagedGroupConfig" + }, + "ClusterOperationStatus": { + "properties": { + "innerState": { + "description": "Output-only. A message containing the detailed operation state.", + "type": "string" + }, + "stateStartTime": { + "description": "Output-only. The time this state was entered.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "enumDescriptions": [ + "Unused.", + "The operation has been created.", + "The operation is running.", + "The operation is done; either cancelled or completed." + ], + "enum": [ + "UNKNOWN", + "PENDING", + "RUNNING", + "DONE" + ], + "description": "Output-only. A message containing the operation state.", + "type": "string" + }, + "details": { + "description": "Output-only.A message containing any operation metadata details.", + "type": "string" + } + }, + "id": "ClusterOperationStatus", + "description": "The status of the operation.", + "type": "object" + }, + "HadoopJob": { + "description": "A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).", + "type": "object", + "properties": { + "mainClass": { + "type": "string", + "description": "The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris." + }, + "archiveUris": { + "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainJarFileUri": { + "description": "The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'", + "type": "string" + }, + "jarFileUris": { + "description": "Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "loggingConfig": { + "description": "Optional. The runtime log config for job execution.", + "$ref": "LoggingConfig" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", + "type": "object" + }, + "args": { + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "type": "array", + "items": { + "type": "string" + } + }, + "fileUris": { + "description": "Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "HadoopJob" + }, + "QueryList": { + "description": "A list of queries to run on a cluster.", + "type": "object", + "properties": { + "queries": { + "description": "Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:\n\"hiveJob\": {\n \"queryList\": {\n \"queries\": [\n \"query1\",\n \"query2\",\n \"query3;query4\",\n ]\n }\n}\n", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "QueryList" + }, + "YarnApplication": { + "description": "A YARN application created by a job. Application information is a subset of \u003ccode\u003eorg.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto\u003c/code\u003e.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", + "type": "object", + "properties": { + "trackingUrl": { + "description": "Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.", + "type": "string" + }, + "progress": { + "description": "Required. The numerical progress of the application, from 1 to 100.", + "format": "float", + "type": "number" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "NEW", + "NEW_SAVING", + "SUBMITTED", + "ACCEPTED", + "RUNNING", + "FINISHED", + "FAILED", + "KILLED" + ], + "description": "Required. The application state.", + "type": "string", + "enumDescriptions": [ + "Status is unspecified.", + "Status is NEW.", + "Status is NEW_SAVING.", + "Status is SUBMITTED.", + "Status is ACCEPTED.", + "Status is RUNNING.", + "Status is FINISHED.", + "Status is FAILED.", + "Status is KILLED." + ] + }, + "name": { + "description": "Required. The application name.", + "type": "string" + } + }, + "id": "YarnApplication" + }, + "DiagnoseClusterRequest": { + "description": "A request to collect cluster diagnostic information.", + "type": "object", + "properties": {}, + "id": "DiagnoseClusterRequest" + }, + "DiskConfig": { + "description": "Specifies the config of disk options for a group of VM instances.", + "type": "object", + "properties": { + "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.", + "format": "int32", + "type": "integer" + }, + "bootDiskSizeGb": { + "description": "Optional. Size in GB of the boot disk (default is 500GB).", + "format": "int32", + "type": "integer" + } + }, + "id": "DiskConfig" + }, + "ClusterOperationMetadata": { + "description": "Metadata describing the operation.", + "type": "object", + "properties": { + "warnings": { + "description": "Output-only. Errors encountered during operation execution.", + "type": "array", + "items": { + "type": "string" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Output-only. Labels associated with the operation", + "type": "object" + }, + "status": { + "description": "Output-only. Current operation status.", + "$ref": "ClusterOperationStatus" + }, + "statusHistory": { + "description": "Output-only. The previous operation status.", + "type": "array", + "items": { + "$ref": "ClusterOperationStatus" + } + }, + "clusterUuid": { + "description": "Output-only. Cluster UUID for the operation.", + "type": "string" + }, + "clusterName": { + "type": "string", + "description": "Output-only. Name of the cluster for the operation." + }, + "operationType": { + "type": "string", + "description": "Output-only. The operation type." + }, + "description": { + "description": "Output-only. Short description of operation.", + "type": "string" + } + }, + "id": "ClusterOperationMetadata" + }, + "HiveJob": { + "description": "A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN.", + "type": "object", + "properties": { + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", + "type": "object" }, "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" }, + "queryFileUri": { + "type": "string", + "description": "The HCFS URI of the script that contains Hive queries." + }, "queryList": { "$ref": "QueryList", "description": "A list of queries." }, - "queryFileUri": { - "description": "The HCFS URI of the script that contains the Pig queries.", + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.", + "type": "array", + "items": { + "type": "string" + } + }, + "scriptVariables": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).", + "type": "object" + } + }, + "id": "HiveJob" + }, + "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "DiagnoseClusterResults": { + "description": "The location of diagnostic output.", + "type": "object", + "properties": { + "outputUri": { + "description": "Output-only. The Google Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.", "type": "string" } }, - "id": "PigJob" + "id": "DiagnoseClusterResults" + }, + "ClusterConfig": { + "id": "ClusterConfig", + "description": "The cluster config.", + "type": "object", + "properties": { + "softwareConfig": { + "$ref": "SoftwareConfig", + "description": "Optional. The config settings for software inside the cluster." + }, + "masterConfig": { + "$ref": "InstanceGroupConfig", + "description": "Optional. The Google Compute Engine config settings for the master instance in a cluster." + }, + "secondaryWorkerConfig": { + "description": "Optional. The Google Compute Engine config settings for additional worker instances in a cluster.", + "$ref": "InstanceGroupConfig" + }, + "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):\nROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)\nif [[ \"${ROLE}\" == 'Master' ]]; then\n ... master specific actions ...\nelse\n ... worker specific actions ...\nfi\n", + "type": "array", + "items": { + "$ref": "NodeInitializationAction" + } + }, + "configBucket": { + "description": "Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.", + "type": "string" + }, + "workerConfig": { + "description": "Optional. The Google Compute Engine config settings for worker instances in a cluster.", + "$ref": "InstanceGroupConfig" + }, + "gceClusterConfig": { + "description": "Required. The shared Google Compute Engine config settings for all instances in a cluster.", + "$ref": "GceClusterConfig" + } + } + }, + "PySparkJob": { + "id": "PySparkJob", + "description": "A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN.", + "type": "object", + "properties": { + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "type": "object" + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission." + }, + "fileUris": { + "description": "Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "pythonFileUris": { + "description": "Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainPythonFileUri": { + "description": "Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.", + "type": "string" + }, + "archiveUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip." + } + } + }, + "GceClusterConfig": { + "description": "Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster.", + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata))." + }, + "internalIpOnly": { + "description": "Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.", + "type": "boolean" + }, + "serviceAccountScopes": { + "description": "Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control", + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "description": "The Google Compute Engine tags to add to all instances (see Tagging instances).", + "type": "array", + "items": { + "type": "string" + } + }, + "serviceAccount": { + "description": "Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com", + "type": "string" + }, + "subnetworkUri": { + "description": "Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0\nprojects/[project_id]/regions/us-east1/sub0\nsub0", + "type": "string" + }, + "networkUri": { + "description": "Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks for more information).A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default\nprojects/[project_id]/regions/global/default\ndefault", + "type": "string" + }, + "zoneUri": { + "description": "Optional. The zone where the Google Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Cloud Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]\nprojects/[project_id]/zones/[zone]\nus-central1-f", + "type": "string" + } + }, + "id": "GceClusterConfig" + }, + "AcceleratorConfig": { + "description": "Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).", + "type": "object", + "properties": { + "acceleratorCount": { + "type": "integer", + "description": "The number of the accelerator cards of this type exposed to this instance.", + "format": "int32" + }, + "acceleratorTypeUri": { + "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80", + "type": "string" + } + }, + "id": "AcceleratorConfig" + }, + "ClusterMetrics": { + "description": "Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", + "type": "object", + "properties": { + "hdfsMetrics": { + "description": "The HDFS metrics.", + "type": "object", + "additionalProperties": { + "format": "int64", + "type": "string" + } + }, + "yarnMetrics": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "The YARN metrics.", + "type": "object" + } + }, + "id": "ClusterMetrics" + }, + "LoggingConfig": { + "description": "The runtime logging config of the job.", + "type": "object", + "properties": { + "driverLogLevels": { + "additionalProperties": { + "type": "string", + "enum": [ + "LEVEL_UNSPECIFIED", + "ALL", + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR", + "FATAL", + "OFF" + ] + }, + "description": "The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'", + "type": "object" + } + }, + "id": "LoggingConfig" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "type": "object", + "properties": { + "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" + }, + "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 have the format of operations/some/unique/name.", + "type": "string" + }, + "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" + }, + "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" + } + }, + "id": "Operation" + }, + "JobReference": { + "id": "JobReference", + "description": "Encapsulates the full scoping used to reference a job.", + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to." + }, + "jobId": { + "description": "Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.", + "type": "string" + } + } + }, + "SubmitJobRequest": { + "description": "A request to submit a job.", + "type": "object", + "properties": { + "job": { + "$ref": "Job", + "description": "Required. The job resource." + } + }, + "id": "SubmitJobRequest" + }, + "Status": { + "id": "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "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. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + } + } + }, + "InstanceGroupConfig": { + "properties": { + "instanceNames": { + "description": "Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).", + "type": "array", + "items": { + "type": "string" + } + }, + "accelerators": { + "description": "Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "numInstances": { + "description": "Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.", + "format": "int32", + "type": "integer" + }, + "diskConfig": { + "$ref": "DiskConfig", + "description": "Optional. Disk option config settings." + }, + "managedGroupConfig": { + "$ref": "ManagedGroupConfig", + "description": "Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups." + }, + "isPreemptible": { + "description": "Optional. Specifies that this instance group contains preemptible instances.", + "type": "boolean" + }, + "imageUri": { + "description": "Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.", + "type": "string" + }, + "machineTypeUri": { + "description": "Optional. The Google Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2", + "type": "string" + } + }, + "id": "InstanceGroupConfig", + "description": "Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group.", + "type": "object" + }, + "JobScheduling": { + "properties": { + "maxFailuresPerHour": { + "description": "Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating 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.", + "format": "int32", + "type": "integer" + } + }, + "id": "JobScheduling", + "description": "Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release.", + "type": "object" + }, + "NodeInitializationAction": { + "description": "Specifies an executable to run on a fully configured node and a timeout period for executable completion.", + "type": "object", + "properties": { + "executableFile": { + "description": "Required. Google Cloud Storage URI of executable file.", + "type": "string" + }, + "executionTimeout": { + "description": "Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.", + "format": "google-duration", + "type": "string" + } + }, + "id": "NodeInitializationAction" + }, + "ListJobsResponse": { + "description": "A list of jobs in a project.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Optional. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListJobsRequest\u003c/code\u003e.", + "type": "string" + }, + "jobs": { + "description": "Output-only. Jobs list.", + "type": "array", + "items": { + "$ref": "Job" + } + } + }, + "id": "ListJobsResponse" } }, - "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, "protocol": "rest", - "version": "v1" + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "version": "v1", + "baseUrl": "https://dataproc.googleapis.com/" } diff --git a/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-api.json b/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-api.json index 38b0fe315..47f3a6a63 100644 --- a/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-api.json +++ b/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-api.json @@ -1,397 +1,19 @@ { + "ownerDomain": "google.com", + "name": "dataproc", + "batchPath": "batch", + "documentationLink": "https://cloud.google.com/dataproc/", + "id": "dataproc:v1beta2", + "revision": "20171016", "title": "Google Cloud Dataproc API", - "discoveryVersion": "v1", "ownerName": "Google", + "discoveryVersion": "v1", "version_module": true, "resources": { "projects": { "resources": { - "regions": { + "locations": { "resources": { - "operations": { - "methods": { - "cancel": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}:cancel", - "id": "dataproc.projects.regions.operations.cancel", - "path": "v1beta2/{+name}: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." - }, - "delete": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be deleted.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", - "id": "dataproc.projects.regions.operations.delete", - "path": "v1beta2/{+name}", - "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." - }, - "get": { - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", - "path": "v1beta2/{+name}", - "id": "dataproc.projects.regions.operations.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.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", - "location": "path" - } - } - }, - "list": { - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations", - "id": "dataproc.projects.regions.operations.list", - "path": "v1beta2/{+name}", - "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.", - "response": { - "$ref": "ListOperationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "The standard list page token.", - "type": "string", - "location": "query" - }, - "name": { - "description": "The name of the operation's parent resource.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/operations$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - }, - "jobs": { - "methods": { - "cancel": { - "request": { - "$ref": "CancelJobRequest" - }, - "description": "Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "response": { - "$ref": "Job" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "jobId": { - "description": "Required. The job ID.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - }, - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - } - }, - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", - "id": "dataproc.projects.regions.jobs.cancel" - }, - "get": { - "description": "Gets the resource representation for a job in a project.", - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "jobId": { - "location": "path", - "description": "Required. The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", - "id": "dataproc.projects.regions.jobs.get", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}" - }, - "patch": { - "description": "Updates a job in a project.", - "request": { - "$ref": "Job" - }, - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "httpMethod": "PATCH", - "parameters": { - "jobId": { - "description": "Required. The job ID.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. Specifies the path, relative to \u003ccode\u003eJob\u003c/code\u003e, of the field to update. For example, to update the labels of a Job the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003elabels\u003c/code\u003e, and the PATCH request body would specify the new value. \u003cstrong\u003eNote:\u003c/strong\u003e Currently, \u003ccode\u003elabels\u003c/code\u003e is the only field that can be updated.", - "type": "string" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", - "id": "dataproc.projects.regions.jobs.patch", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}" - }, - "submit": { - "description": "Submits a job to a cluster.", - "request": { - "$ref": "SubmitJobRequest" - }, - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "projectId", - "region" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs:submit", - "id": "dataproc.projects.regions.jobs.submit", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs:submit" - }, - "delete": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "projectId", - "region", - "jobId" - ], - "httpMethod": "DELETE", - "parameters": { - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "jobId": { - "location": "path", - "description": "Required. The job ID.", - "type": "string", - "required": true - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", - "id": "dataproc.projects.regions.jobs.delete", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", - "description": "Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION." - }, - "list": { - "httpMethod": "GET", - "response": { - "$ref": "ListJobsResponse" - }, - "parameterOrder": [ - "projectId", - "region" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional. The number of results to return in each response.", - "type": "integer" - }, - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "clusterName": { - "location": "query", - "description": "Optional. If set, the returned jobs list includes only jobs that were submitted to the named cluster.", - "type": "string" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "filter": { - "location": "query", - "description": "Optional. A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is status.state or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be either ACTIVE or INACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND labels.env = staging AND labels.starred = *", - "type": "string" - }, - "jobStateMatcher": { - "location": "query", - "enum": [ - "ALL", - "ACTIVE", - "NON_ACTIVE" - ], - "description": "Optional. Specifies enumerated categories of jobs to list (default = match ALL jobs).", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "Optional. The page token, returned by a previous call, to request the next page of results.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs", - "path": "v1beta2/projects/{projectId}/regions/{region}/jobs", - "id": "dataproc.projects.regions.jobs.list", - "description": "Lists regions/{region}/jobs in a project." - } - } - }, "workflowTemplates": { "methods": { "get": { @@ -407,23 +29,23 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "version": { - "format": "int32", - "description": "Optional The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", - "type": "integer", - "location": "query" - }, "name": { - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", "location": "path" + }, + "version": { + "location": "query", + "description": "Optional. The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", + "format": "int32", + "type": "integer" } }, - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", - "id": "dataproc.projects.regions.workflowTemplates.get", - "path": "v1beta2/{+name}" + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", + "path": "v1beta2/{+name}", + "id": "dataproc.projects.locations.workflowTemplates.get" }, "update": { "response": { @@ -433,21 +55,21 @@ "name" ], "httpMethod": "PUT", - "parameters": { - "name": { - "location": "path", - "description": "Output-only The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", - "id": "dataproc.projects.regions.workflowTemplates.update", + "parameters": { + "name": { + "description": "Output only. The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", "path": "v1beta2/{+name}", + "id": "dataproc.projects.locations.workflowTemplates.update", "description": "Updates (replaces) workflow template. The updated template must contain version that matches the current server version.", "request": { "$ref": "WorkflowTemplate" @@ -462,27 +84,27 @@ "name" ], "httpMethod": "DELETE", - "parameters": { - "version": { - "location": "query", - "format": "int32", - "description": "Optional The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", - "type": "integer" - }, - "name": { - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", - "location": "path" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", - "id": "dataproc.projects.regions.workflowTemplates.delete", - "path": "v1beta2/{+name}" + "parameters": { + "name": { + "location": "path", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$" + }, + "version": { + "description": "Optional. The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", + "path": "v1beta2/{+name}", + "id": "dataproc.projects.locations.workflowTemplates.delete" }, "list": { "description": "Lists workflows that match the specified filter in the request.", @@ -493,38 +115,38 @@ "parent" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { "pageToken": { - "description": "Optional The page token, returned by a previous call, to request the next page of results.", + "description": "Optional. The page token, returned by a previous call, to request the next page of results.", "type": "string", "location": "query" }, "pageSize": { + "description": "Optional. The maximum number of results to return in each response.", "format": "int32", - "description": "Optional The maximum number of results to return in each response.", "type": "integer", "location": "query" }, "parent": { - "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", - "type": "string", + "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+$", + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$", "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates", - "id": "dataproc.projects.regions.workflowTemplates.list", - "path": "v1beta2/{+parent}/workflowTemplates" + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates", + "path": "v1beta2/{+parent}/workflowTemplates", + "id": "dataproc.projects.locations.workflowTemplates.list" }, "create": { - "description": "Creates new workflow template.", "request": { "$ref": "WorkflowTemplate" }, + "description": "Creates new workflow template.", "response": { "$ref": "WorkflowTemplate" }, @@ -535,23 +157,23 @@ "parameters": { "parent": { "location": "path", - "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", - "type": "string", + "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+$" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates", - "id": "dataproc.projects.regions.workflowTemplates.create", - "path": "v1beta2/{+parent}/workflowTemplates" + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates", + "path": "v1beta2/{+parent}/workflowTemplates", + "id": "dataproc.projects.locations.workflowTemplates.create" }, "instantiate": { - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}:instantiate", - "id": "dataproc.projects.regions.workflowTemplates.instantiate", + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}:instantiate", "path": "v1beta2/{+name}:instantiate", + "id": "dataproc.projects.locations.workflowTemplates.instantiate", "request": { "$ref": "InstantiateWorkflowTemplateRequest" }, @@ -563,221 +185,27 @@ "name" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "name": { - "location": "path", - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", + "location": "path" } - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } - }, + } + } + }, + "regions": { + "resources": { "clusters": { "methods": { - "patch": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "region", - "clusterName" - ], - "httpMethod": "PATCH", - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. Specifies the path, relative to \u003ccode\u003eCluster\u003c/code\u003e, of the field to update. For example, to change the number of workers in a cluster to 5, the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003econfig.worker_config.num_instances\u003c/code\u003e, and the PATCH request body would specify the new value, as follows:\n{\n \"config\":{\n \"workerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\nSimilarly, to change the number of preemptible workers in a cluster to 5, the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be \u003ccode\u003econfig.secondary_worker_config.num_instances\u003c/code\u003e, and the PATCH request body would be set as follows:\n{\n \"config\":{\n \"secondaryWorkerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\n\u003cstrong\u003eNote:\u003c/strong\u003e currently only some fields can be updated: |Mask|Purpose| |labels|Updates labels| |config.worker_config.num_instances|Resize primary worker group| |config.secondary_worker_config.num_instances|Resize secondary worker group|", - "type": "string" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterName": { - "location": "path", - "description": "Required. The cluster name.", - "type": "string", - "required": true - }, - "gracefulDecommissionTimeout": { - "location": "query", - "format": "google-duration", - "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.Only supported on Dataproc image versions 1.2 and higher.", - "type": "string" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "id": "dataproc.projects.regions.clusters.patch", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "description": "Updates a cluster in a project.", - "request": { - "$ref": "Cluster" - } - }, - "get": { - "description": "Gets the resource representation for a cluster in a project.", - "parameterOrder": [ - "projectId", - "region", - "clusterName" - ], - "response": { - "$ref": "Cluster" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterName": { - "description": "Required. The cluster name.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "id": "dataproc.projects.regions.clusters.get", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}" - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "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.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "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.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}:testIamPermissions", - "path": "v1beta2/{+resource}:testIamPermissions", - "id": "dataproc.projects.regions.clusters.testIamPermissions" - }, - "delete": { - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", - "id": "dataproc.projects.regions.clusters.delete", - "description": "Deletes a cluster in a project.", - "httpMethod": "DELETE", - "parameterOrder": [ - "projectId", - "region", - "clusterName" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - }, - "clusterName": { - "description": "Required. The cluster name.", - "type": "string", - "required": true, - "location": "path" - }, - "projectId": { - "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true - } - } - }, - "diagnose": { - "request": { - "$ref": "DiagnoseClusterRequest" - }, - "description": "Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.", - "httpMethod": "POST", - "parameterOrder": [ - "projectId", - "region", - "clusterName" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, - "clusterName": { - "location": "path", - "description": "Required. The cluster name.", - "type": "string", - "required": true - }, - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", - "id": "dataproc.projects.regions.clusters.diagnose" - }, "list": { "description": "Lists all regions/{region}/clusters in a project.", "response": { @@ -788,48 +216,82 @@ "region" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional. The standard List page size.", - "type": "integer" - }, - "projectId": { + "region": { "location": "path", - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" }, "filter": { "location": "query", "description": "Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *", "type": "string" }, - "region": { - "location": "path", - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true - }, "pageToken": { "description": "Optional. The standard List page token.", "type": "string", "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Optional. The standard List page size.", + "format": "int32", + "type": "integer" + }, + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string", + "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters", - "id": "dataproc.projects.regions.clusters.list", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters" + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters", + "id": "dataproc.projects.regions.clusters.list" + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region" + ], + "httpMethod": "POST", + "parameters": { + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters", + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters", + "id": "dataproc.projects.regions.clusters.create", + "request": { + "$ref": "Cluster" + }, + "description": "Creates a cluster in a project." }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", "request": { "$ref": "SetIamPolicyRequest" }, + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", "response": { "$ref": "Policy" }, @@ -841,8 +303,8 @@ "resource": { "location": "path", "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+$" } }, @@ -850,148 +312,249 @@ "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}:setIamPolicy", - "id": "dataproc.projects.regions.clusters.setIamPolicy", - "path": "v1beta2/{+resource}:setIamPolicy" - }, - "create": { - "request": { - "$ref": "Cluster" - }, - "description": "Creates a cluster in a project.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "projectId", - "region" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", - "type": "string", - "required": true, - "location": "path" - }, - "region": { - "description": "Required. The Cloud Dataproc region in which to handle the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters", - "id": "dataproc.projects.regions.clusters.create", - "path": "v1beta2/projects/{projectId}/regions/{region}/clusters" + "path": "v1beta2/{+resource}:setIamPolicy", + "id": "dataproc.projects.regions.clusters.setIamPolicy" }, "getIamPolicy": { + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}:getIamPolicy", + "id": "dataproc.projects.regions.clusters.getIamPolicy", + "path": "v1beta2/{+resource}: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.", "httpMethod": "GET", - "parameterOrder": [ - "resource" - ], "response": { "$ref": "Policy" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "parameterOrder": [ + "resource" ], "parameters": { "resource": { "location": "path", "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+$" } }, - "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}:getIamPolicy", - "path": "v1beta2/{+resource}:getIamPolicy", - "id": "dataproc.projects.regions.clusters.getIamPolicy" - } - } - } - } - }, - "locations": { - "resources": { - "workflowTemplates": { - "methods": { - "list": { - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates", - "id": "dataproc.projects.locations.workflowTemplates.list", - "path": "v1beta2/{+parent}/workflowTemplates", - "description": "Lists workflows that match the specified filter in the request.", - "response": { - "$ref": "ListWorkflowTemplatesResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region", + "clusterName" ], + "httpMethod": "PATCH", "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional The maximum number of results to return in each response.", - "type": "integer" - }, - "parent": { - "location": "path", - "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + "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.Only supported on Dataproc image versions 1.2 and higher.", + "format": "google-duration", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$" + "location": "query" }, - "pageToken": { + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project the cluster belongs to.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + }, + "updateMask": { "location": "query", - "description": "Optional The page token, returned by a previous call, to request the next page of results.", + "description": "Required. Specifies the path, relative to \u003ccode\u003eCluster\u003c/code\u003e, of the field to update. For example, to change the number of workers in a cluster to 5, the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003econfig.worker_config.num_instances\u003c/code\u003e, and the PATCH request body would specify the new value, as follows:\n{\n \"config\":{\n \"workerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\nSimilarly, to change the number of preemptible workers in a cluster to 5, the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be \u003ccode\u003econfig.secondary_worker_config.num_instances\u003c/code\u003e, and the PATCH request body would be set as follows:\n{\n \"config\":{\n \"secondaryWorkerConfig\":{\n \"numInstances\":\"5\"\n }\n }\n}\n\u003cstrong\u003eNote:\u003c/strong\u003e currently only some fields can be updated: |Mask|Purpose| |labels|Updates labels| |config.worker_config.num_instances|Resize primary worker group| |config.secondary_worker_config.num_instances|Resize secondary worker group|", + "format": "google-fieldmask", + "type": "string" + }, + "clusterName": { + "location": "path", + "description": "Required. The cluster name.", + "required": true, "type": "string" } - } - }, - "create": { - "request": { - "$ref": "WorkflowTemplate" }, - "description": "Creates new workflow template.", - "response": { - "$ref": "WorkflowTemplate" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "id": "dataproc.projects.regions.clusters.patch", + "request": { + "$ref": "Cluster" + }, + "description": "Updates a cluster in a project." + }, + "get": { + "description": "Gets the resource representation for a cluster in a project.", + "httpMethod": "GET", + "response": { + "$ref": "Cluster" + }, + "parameterOrder": [ + "projectId", + "region", + "clusterName" + ], "parameters": { - "parent": { - "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", - "type": "string", + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+$", + "type": "string", + "location": "path" + }, + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterName": { + "location": "path", + "description": "Required. The cluster name.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "id": "dataproc.projects.regions.clusters.get", + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}" + }, + "testIamPermissions": { + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "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.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+$", "location": "path" } }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates", - "id": "dataproc.projects.locations.workflowTemplates.create", - "path": "v1beta2/{+parent}/workflowTemplates" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}:testIamPermissions", + "path": "v1beta2/{+resource}:testIamPermissions", + "id": "dataproc.projects.regions.clusters.testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "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." }, + "delete": { + "description": "Deletes a cluster in a project.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region", + "clusterName" + ], + "httpMethod": "DELETE", + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string" + }, + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterName": { + "location": "path", + "description": "Required. The cluster name.", + "required": true, + "type": "string" + }, + "clusterUuid": { + "location": "query", + "description": "Optional. Specifying the cluster_uuid means the RPC should fail (with error NOT_FOUND) if cluster with specified UUID does not exist.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}", + "id": "dataproc.projects.regions.clusters.delete" + }, + "diagnose": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "projectId", + "region", + "clusterName" + ], + "httpMethod": "POST", + "parameters": { + "clusterName": { + "description": "Required. The cluster name.", + "required": true, + "type": "string", + "location": "path" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", + "path": "v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}:diagnose", + "id": "dataproc.projects.regions.clusters.diagnose", + "request": { + "$ref": "DiagnoseClusterRequest" + }, + "description": "Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation." + } + } + }, + "workflowTemplates": { + "methods": { "instantiate": { - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}:instantiate", - "id": "dataproc.projects.locations.workflowTemplates.instantiate", + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}:instantiate", "path": "v1beta2/{+name}:instantiate", + "id": "dataproc.projects.regions.workflowTemplates.instantiate", + "description": "Instantiates a template and begins execution.The returned Operation can be used to track execution of workflow by polling google.cloud.dataproc.v1beta2.OperationService.GetOperation. The Operation will complete when entire workflow is finished.The running workflow can be aborted via google.cloud.dataproc.v1beta2.OperationService.CancelOperation.The google.cloud.dataproc.v1beta2.Operation.metadata will always be google.cloud.dataproc.v1beta2.WorkflowMetadata.The google.cloud.dataproc.v1beta2.Operation.result will always be google.protobuf.Empty.", "request": { "$ref": "InstantiateWorkflowTemplateRequest" }, - "description": "Instantiates a template and begins execution.The returned Operation can be used to track execution of workflow by polling google.cloud.dataproc.v1beta2.OperationService.GetOperation. The Operation will complete when entire workflow is finished.The running workflow can be aborted via google.cloud.dataproc.v1beta2.OperationService.CancelOperation.The google.cloud.dataproc.v1beta2.Operation.metadata will always be google.cloud.dataproc.v1beta2.WorkflowMetadata.The google.cloud.dataproc.v1beta2.Operation.result will always be google.protobuf.Empty.", "response": { "$ref": "Operation" }, @@ -1004,11 +567,11 @@ ], "parameters": { "name": { - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "location": "path", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", - "location": "path" + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$" } } }, @@ -1025,25 +588,32 @@ ], "parameters": { "name": { - "location": "path", - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", + "location": "path" }, "version": { - "location": "query", + "description": "Optional. The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", "format": "int32", - "description": "Optional The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", - "type": "integer" + "type": "integer", + "location": "query" } }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", - "id": "dataproc.projects.locations.workflowTemplates.get", + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", "path": "v1beta2/{+name}", + "id": "dataproc.projects.regions.workflowTemplates.get", "description": "Retrieves the latest workflow template.Can retrieve previously instantiated template by specifying optional version parameter." }, "update": { + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", + "id": "dataproc.projects.regions.workflowTemplates.update", + "path": "v1beta2/{+name}", + "request": { + "$ref": "WorkflowTemplate" + }, + "description": "Updates (replaces) workflow template. The updated template must contain version that matches the current server version.", "httpMethod": "PUT", "parameterOrder": [ "name" @@ -1051,28 +621,145 @@ "response": { "$ref": "WorkflowTemplate" }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", + "location": "path", + "description": "Output only. The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a workflow template. It does not cancel in-progress workflows.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "version": { + "description": "Optional. The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "name": { + "location": "path", + "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates/{workflowTemplatesId}", + "id": "dataproc.projects.regions.workflowTemplates.delete", + "path": "v1beta2/{+name}" + }, + "list": { + "response": { + "$ref": "ListWorkflowTemplatesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "Optional. The page token, returned by a previous call, to request the next page of results.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Optional. The maximum number of results to return in each response.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates", + "path": "v1beta2/{+parent}/workflowTemplates", + "id": "dataproc.projects.regions.workflowTemplates.list", + "description": "Lists workflows that match the specified filter in the request." + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "WorkflowTemplate" + }, + "parameters": { + "parent": { + "location": "path", + "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/workflowTemplates", + "id": "dataproc.projects.regions.workflowTemplates.create", + "path": "v1beta2/{+parent}/workflowTemplates", + "request": { + "$ref": "WorkflowTemplate" + }, + "description": "Creates new workflow template." + } + } + }, + "operations": { + "methods": { + "cancel": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { - "location": "path", - "description": "Output-only The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "description": "The name of the operation resource to be cancelled.", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$", + "location": "path" } }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", - "path": "v1beta2/{+name}", - "id": "dataproc.projects.locations.workflowTemplates.update", - "request": { - "$ref": "WorkflowTemplate" - }, - "description": "Updates (replaces) workflow template. The updated template must contain version that matches the current server version." + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}:cancel", + "path": "v1beta2/{+name}:cancel", + "id": "dataproc.projects.regions.operations.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." }, "delete": { - "description": "Deletes a workflow template. It does not cancel in-progress workflows.", + "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.", "response": { "$ref": "Empty" }, @@ -1084,23 +771,347 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "version": { - "location": "query", - "format": "int32", - "description": "Optional The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", - "type": "integer" - }, "name": { "location": "path", - "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", - "type": "string", + "description": "The name of the operation resource to be deleted.", "required": true, - "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$" + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" } }, - "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/workflowTemplates/{workflowTemplatesId}", - "id": "dataproc.projects.locations.workflowTemplates.delete", + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", + "path": "v1beta2/{+name}", + "id": "dataproc.projects.regions.operations.delete" + }, + "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.", + "httpMethod": "GET", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations$", + "location": "path" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + }, + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations", + "id": "dataproc.projects.regions.operations.list", "path": "v1beta2/{+name}" + }, + "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.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the operation resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/regions/[^/]+/operations/[^/]+$" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/regions/{regionsId}/operations/{operationsId}", + "path": "v1beta2/{+name}", + "id": "dataproc.projects.regions.operations.get" + } + } + }, + "jobs": { + "methods": { + "cancel": { + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}:cancel", + "id": "dataproc.projects.regions.jobs.cancel", + "request": { + "$ref": "CancelJobRequest" + }, + "description": "Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get." + }, + "get": { + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", + "id": "dataproc.projects.regions.jobs.get", + "description": "Gets the resource representation for a job in a project.", + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + }, + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}" + }, + "patch": { + "request": { + "$ref": "Job" + }, + "description": "Updates a job in a project.", + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "PATCH", + "parameters": { + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "jobId": { + "description": "Required. The job ID.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Specifies the path, relative to \u003ccode\u003eJob\u003c/code\u003e, of the field to update. For example, to update the labels of a Job the \u003ccode\u003eupdate_mask\u003c/code\u003e parameter would be specified as \u003ccode\u003elabels\u003c/code\u003e, and the PATCH request body would specify the new value. \u003cstrong\u003eNote:\u003c/strong\u003e Currently, \u003ccode\u003elabels\u003c/code\u003e is the only field that can be updated.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", + "id": "dataproc.projects.regions.jobs.patch" + }, + "submit": { + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs:submit", + "id": "dataproc.projects.regions.jobs.submit", + "request": { + "$ref": "SubmitJobRequest" + }, + "description": "Submits a job to a cluster.", + "response": { + "$ref": "Job" + }, + "parameterOrder": [ + "projectId", + "region" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string", + "location": "path" + }, + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs:submit" + }, + "delete": { + "description": "Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "projectId", + "region", + "jobId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "region": { + "location": "path", + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "jobId": { + "location": "path", + "description": "Required. The job ID.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs/{jobId}", + "id": "dataproc.projects.regions.jobs.delete" + }, + "list": { + "flatPath": "v1beta2/projects/{projectId}/regions/{region}/jobs", + "id": "dataproc.projects.regions.jobs.list", + "path": "v1beta2/projects/{projectId}/regions/{region}/jobs", + "description": "Lists regions/{region}/jobs in a project.", + "httpMethod": "GET", + "parameterOrder": [ + "projectId", + "region" + ], + "response": { + "$ref": "ListJobsResponse" + }, + "parameters": { + "pageToken": { + "description": "Optional. The page token, returned by a previous call, to request the next page of results.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Optional. The number of results to return in each response.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "region": { + "description": "Required. The Cloud Dataproc region in which to handle the request.", + "required": true, + "type": "string", + "location": "path" + }, + "clusterName": { + "location": "query", + "description": "Optional. If set, the returned jobs list includes only jobs that were submitted to the named cluster.", + "type": "string" + }, + "projectId": { + "location": "path", + "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", + "required": true, + "type": "string" + }, + "filter": { + "description": "Optional. A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is status.state or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be either ACTIVE or INACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND labels.env = staging AND labels.starred = *", + "type": "string", + "location": "query" + }, + "jobStateMatcher": { + "enum": [ + "ALL", + "ACTIVE", + "NON_ACTIVE" + ], + "description": "Optional. Specifies enumerated categories of jobs to list (default = match ALL jobs).", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1110,16 +1121,26 @@ } }, "parameters": { - "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.", + "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.", "type": "string", "location": "query" }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, "pp": { + "location": "query", "description": "Pretty-print response.", - "default": "true", "type": "boolean", - "location": "query" + "default": "true" }, "bearer_token": { "location": "query", @@ -1132,45 +1153,50 @@ "type": "string" }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", - "default": "true", "type": "boolean", + "default": "true", "location": "query" }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "$.xgafv": { + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" + "location": "query" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -1179,40 +1205,390 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" + "default": "json" } }, "schemas": { - "JobScheduling": { - "description": "Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release.", + "HiveJob": { + "description": "A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN.", "type": "object", "properties": { - "maxFailuresPerHour": { + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.", + "type": "array", + "items": { + "type": "string" + } + }, + "scriptVariables": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).", + "type": "object" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", + "type": "object" + }, + "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" + }, + "queryFileUri": { + "description": "The HCFS URI of the script that contains Hive queries.", + "type": "string" + }, + "queryList": { + "description": "A list of queries.", + "$ref": "QueryList" + } + }, + "id": "HiveJob" + }, + "DiagnoseClusterResults": { + "description": "The location of diagnostic output.", + "type": "object", + "properties": { + "outputUri": { + "description": "Output-only. The Google Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.", + "type": "string" + } + }, + "id": "DiagnoseClusterResults" + }, + "WorkflowGraph": { + "description": "The workflow graph.", + "type": "object", + "properties": { + "nodes": { + "description": "Output only. The workflow nodes.", + "type": "array", + "items": { + "$ref": "WorkflowNode" + } + } + }, + "id": "WorkflowGraph" + }, + "ClusterConfig": { + "description": "The cluster config.", + "type": "object", + "properties": { + "lifecycleConfig": { + "description": "Optional. The config setting for auto delete cluster schedule.", + "$ref": "LifecycleConfig" + }, + "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 \u003ccode\u003erole\u003c/code\u003e metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):\nROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1beta2/instance/attributes/dataproc-role)\nif [[ \"${ROLE}\" == 'Master' ]]; then\n ... master specific actions ...\nelse\n ... worker specific actions ...\nfi\n", + "type": "array", + "items": { + "$ref": "NodeInitializationAction" + } + }, + "configBucket": { + "description": "Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.", + "type": "string" + }, + "workerConfig": { + "$ref": "InstanceGroupConfig", + "description": "Optional. The Google Compute Engine config settings for worker instances in a cluster." + }, + "gceClusterConfig": { + "$ref": "GceClusterConfig", + "description": "Required. The shared Google Compute Engine config settings for all instances in a cluster." + }, + "softwareConfig": { + "$ref": "SoftwareConfig", + "description": "Optional. The config settings for software inside the cluster." + }, + "masterConfig": { + "$ref": "InstanceGroupConfig", + "description": "Optional. The Google Compute Engine config settings for the master instance in a cluster." + }, + "secondaryWorkerConfig": { + "description": "Optional. The Google Compute Engine config settings for additional worker instances in a cluster.", + "$ref": "InstanceGroupConfig" + } + }, + "id": "ClusterConfig" + }, + "PySparkJob": { + "description": "A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN.", + "type": "object", + "properties": { + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", + "type": "object" + }, + "args": { + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "type": "array", + "items": { + "type": "string" + } + }, + "fileUris": { + "description": "Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "pythonFileUris": { + "description": "Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainPythonFileUri": { + "description": "Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.", + "type": "string" + }, + "archiveUris": { + "description": "Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "PySparkJob" + }, + "TestIamPermissionsRequest": { + "description": "Request message for TestIamPermissions method.", + "type": "object", + "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).", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsRequest" + }, + "AcceleratorConfig": { + "description": "Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).", + "type": "object", + "properties": { + "acceleratorTypeUri": { + "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80", + "type": "string" + }, + "acceleratorCount": { + "description": "The number of the accelerator cards of this type exposed to this instance.", "format": "int32", - "description": "Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating 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.", "type": "integer" } }, - "id": "JobScheduling" + "id": "AcceleratorConfig" + }, + "ClusterMetrics": { + "description": "Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", + "type": "object", + "properties": { + "yarnMetrics": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "The YARN metrics.", + "type": "object" + }, + "hdfsMetrics": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "The HDFS metrics.", + "type": "object" + } + }, + "id": "ClusterMetrics" + }, + "LoggingConfig": { + "properties": { + "driverLogLevels": { + "additionalProperties": { + "enum": [ + "LEVEL_UNSPECIFIED", + "ALL", + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR", + "FATAL", + "OFF" + ], + "type": "string" + }, + "description": "The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'", + "type": "object" + } + }, + "id": "LoggingConfig", + "description": "The runtime logging config of the job.", + "type": "object" + }, + "OrderedJob": { + "type": "object", + "properties": { + "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 workflow-step-id label, and in prerequisite_step_ids field from other steps.", + "type": "string" + }, + "pigJob": { + "$ref": "PigJob", + "description": "Job is a Pig job." + }, + "hadoopJob": { + "$ref": "HadoopJob", + "description": "Job is a Hadoop job." + }, + "hiveJob": { + "$ref": "HiveJob", + "description": "Job is a Hive job." + }, + "prerequisiteStepIds": { + "description": "Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.", + "type": "array", + "items": { + "type": "string" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \\p{Ll}\\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \\p{Ll}\\p{Lo}\\p{N}_-{0,63}No more than 64 labels can be associated with a given job.", + "type": "object" + }, + "sparkSqlJob": { + "$ref": "SparkSqlJob", + "description": "Job is a SparkSql job." + }, + "sparkJob": { + "description": "Job is a Spark job.", + "$ref": "SparkJob" + }, + "pysparkJob": { + "$ref": "PySparkJob", + "description": "Job is a Pyspark job." + }, + "scheduling": { + "$ref": "JobScheduling", + "description": "Optional. Job scheduling configuration." + } + }, + "id": "OrderedJob" + }, + "WorkflowNode": { + "description": "The workflow node.", + "type": "object", + "properties": { + "prerequisiteStepIds": { + "description": "Output only. Node's prerequisite nodes.", + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "enum": [ + "NODE_STATUS_UNSPECIFIED", + "BLOCKED", + "RUNNABLE", + "RUNNING", + "COMPLETED", + "FAILED" + ], + "description": "Output only. The node state.", + "type": "string", + "enumDescriptions": [ + "", + "The node is awaiting prerequisite node to finish.", + "The node is runnable but not running.", + "The node is running.", + "The node completed successfully.", + "The node failed. A node can be marked FAILED because its ancestor or peer failed." + ] + }, + "stepId": { + "description": "Output only. The name of the node.", + "type": "string" + }, + "error": { + "description": "Output only. The error detail.", + "type": "string" + }, + "jobId": { + "description": "Output only. The job id; populated after the node enters RUNNING state.", + "type": "string" + } + }, + "id": "WorkflowNode" + }, + "InstantiateWorkflowTemplateRequest": { + "description": "A request to instantiate a workflow template.", + "type": "object", + "properties": { + "version": { + "description": "Optional. The version of workflow template to instantiate. If specified, the workflow will be instantiated only if the current version of the workflow template has the supplied version.This option cannot be used to instantiate a previous version of workflow template.", + "format": "int32", + "type": "integer" + }, + "instanceId": { + "description": "Optional. A tag that prevents multiple concurrent workflow instances with the same tag from running. This mitigates risk of concurrent instances started due to retries.It is recommended to always set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The tag must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + } + }, + "id": "InstantiateWorkflowTemplateRequest" + }, + "SubmitJobRequest": { + "description": "A request to submit a job.", + "type": "object", + "properties": { + "job": { + "$ref": "Job", + "description": "Required. The job resource." + } + }, + "id": "SubmitJobRequest" + }, + "JobScheduling": { + "properties": { + "maxFailuresPerHour": { + "description": "Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating 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.", + "format": "int32", + "type": "integer" + } + }, + "id": "JobScheduling", + "description": "Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release.", + "type": "object" }, "Cluster": { - "description": "Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.", - "type": "object", "properties": { "labels": { "additionalProperties": { @@ -1226,34 +1602,36 @@ "$ref": "ClusterMetrics" }, "status": { - "$ref": "ClusterStatus", - "description": "Output-only. Cluster status." + "description": "Output-only. Cluster status.", + "$ref": "ClusterStatus" }, "statusHistory": { "description": "Output-only. The previous cluster status.", + "type": "array", "items": { "$ref": "ClusterStatus" - }, - "type": "array" + } }, "config": { - "description": "Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.", - "$ref": "ClusterConfig" - }, - "clusterUuid": { - "description": "Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.", - "type": "string" + "$ref": "ClusterConfig", + "description": "Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated." }, "clusterName": { "description": "Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.", "type": "string" }, + "clusterUuid": { + "description": "Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.", + "type": "string" + }, "projectId": { "description": "Required. The Google Cloud Platform project ID that the cluster belongs to.", "type": "string" } }, - "id": "Cluster" + "id": "Cluster", + "description": "Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.", + "type": "object" }, "TestIamPermissionsResponse": { "description": "Response message for TestIamPermissions method.", @@ -1261,10 +1639,10 @@ "properties": { "permissions": { "description": "A subset of TestPermissionsRequest.permissions that the caller is allowed.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, "id": "TestIamPermissionsResponse" @@ -1273,16 +1651,16 @@ "description": "Specifies the selection and config of software inside the cluster.", "type": "object", "properties": { - "properties": { - "description": "Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:\ncapacity-scheduler: capacity-scheduler.xml\ncore: core-site.xml\ndistcp: distcp-default.xml\nhdfs: hdfs-site.xml\nhive: hive-site.xml\nmapred: mapred-site.xml\npig: pig.properties\nspark: spark-defaults.conf\nyarn: yarn-site.xmlFor more information, see Cluster properties.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "imageVersion": { "description": "Optional. The version of software inside the cluster. It must match the regular expression [0-9]+\\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).", "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:\ncapacity-scheduler: capacity-scheduler.xml\ncore: core-site.xml\ndistcp: distcp-default.xml\nhdfs: hdfs-site.xml\nhive: hive-site.xml\nmapred: mapred-site.xml\npig: pig.properties\nspark: spark-defaults.conf\nyarn: yarn-site.xmlFor more information, see Cluster properties.", + "type": "object" } }, "id": "SoftwareConfig" @@ -1292,14 +1670,14 @@ "type": "object", "properties": { "zone": { - "description": "Required The cluster target zone.", + "description": "Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.", "type": "string" }, "clusterLabels": { "additionalProperties": { "type": "string" }, - "description": "Required The cluster labels. Cluster must have all labels to match.", + "description": "Required. The cluster labels. Cluster must have all labels to match.", "type": "object" } }, @@ -1311,37 +1689,23 @@ "properties": { "clusterSelector": { "$ref": "ClusterSelector", - "description": "Optional A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted." + "description": "Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted." }, "managedCluster": { "$ref": "ManagedCluster", - "description": "Optional A cluster that is managed by the workflow." + "description": "Optional. A cluster that is managed by the workflow." } }, "id": "WorkflowTemplatePlacement" }, - "ClusterOperation": { - "type": "object", - "properties": { - "error": { - "description": "Output-only Error, if operation failed.", - "type": "string" - }, - "operationId": { - "description": "Output-only The id of the cluster operation.", - "type": "string" - }, - "done": { - "description": "Output-only Indicates the operation is done.", - "type": "boolean" - } - }, - "id": "ClusterOperation" - }, "WorkflowMetadata": { "description": "A Cloud Dataproc workflow template resource.", "type": "object", "properties": { + "deleteCluster": { + "$ref": "ClusterOperation", + "description": "Output only. The delete cluster operation metadata." + }, "state": { "enumDescriptions": [ "Unused.", @@ -1355,55 +1719,63 @@ "RUNNING", "DONE" ], - "description": "Output-only The workflow state.", + "description": "Output only. The workflow state.", "type": "string" }, "clusterName": { - "description": "Output-only The name of the managed cluster.", + "description": "Output only. The name of the managed cluster.", "type": "string" }, "createCluster": { "$ref": "ClusterOperation", - "description": "Output-only The create cluster operation metadata." - }, - "graph": { - "description": "Output-only The workflow graph.", - "$ref": "WorkflowGraph" + "description": "Output only. The create cluster operation metadata." }, "version": { + "description": "Output only. The version of template at the time of workflow instantiation.", "format": "int32", - "description": "Output-only The version of template at the time of workflow instantiation.", "type": "integer" }, - "template": { - "description": "Output-only The \"resource name\" of the template.", - "type": "string" + "graph": { + "$ref": "WorkflowGraph", + "description": "Output only. The workflow graph." }, - "deleteCluster": { - "$ref": "ClusterOperation", - "description": "Output-only The delete cluster operation metadata." + "template": { + "description": "Output only. The \"resource name\" of the template.", + "type": "string" } }, "id": "WorkflowMetadata" }, - "SparkJob": { - "description": "A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN.", + "ClusterOperation": { "type": "object", "properties": { - "mainJarFileUri": { - "description": "The HCFS URI of the jar file that contains the main class.", + "operationId": { + "description": "Output only. The id of the cluster operation.", "type": "string" }, + "error": { + "description": "Output only. Error, if operation failed.", + "type": "string" + }, + "done": { + "description": "Output only. Indicates the operation is done.", + "type": "boolean" + } + }, + "id": "ClusterOperation" + }, + "SparkJob": { + "properties": { "jarFileUris": { "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "loggingConfig": { - "description": "Optional. The runtime log config for job execution.", - "$ref": "LoggingConfig" + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." }, "properties": { "additionalProperties": { @@ -1414,17 +1786,17 @@ }, "args": { "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "fileUris": { "description": "Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "mainClass": { "description": "The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.", @@ -1432,21 +1804,30 @@ }, "archiveUris": { "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } + }, + "mainJarFileUri": { + "description": "The HCFS URI of the jar file that contains the main class.", + "type": "string" } }, - "id": "SparkJob" + "id": "SparkJob", + "description": "A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN.", + "type": "object" }, "JobStatus": { "description": "Cloud Dataproc job status.", "type": "object", "properties": { + "stateStartTime": { + "description": "Output-only. The time when this state was entered.", + "format": "google-datetime", + "type": "string" + }, "substate": { - "description": "Output-only. Additional state information, which includes status reported by the agent.", - "type": "string", "enumDescriptions": [ "", "The Job is submitted to the agent.Applies to RUNNING state.", @@ -1458,20 +1839,11 @@ "SUBMITTED", "QUEUED", "STALE_STATUS" - ] - }, - "stateStartTime": { - "format": "google-datetime", - "description": "Output-only. The time when this state was entered.", - "type": "string" - }, - "details": { - "description": "Output-only. Optional job state details, such as an error description if the state is \u003ccode\u003eERROR\u003c/code\u003e.", + ], + "description": "Output-only. Additional state information, which includes status reported by the agent.", "type": "string" }, "state": { - "description": "Output-only. A state message specifying the overall job state.", - "type": "string", "enumDescriptions": [ "The job state is unknown.", "The job is pending; it has been submitted, but is not yet running.", @@ -1495,7 +1867,13 @@ "DONE", "ERROR", "ATTEMPT_FAILURE" - ] + ], + "description": "Output-only. A state message specifying the overall job state.", + "type": "string" + }, + "details": { + "description": "Output-only. Optional job state details, such as an error description if the state is \u003ccode\u003eERROR\u003c/code\u003e.", + "type": "string" } }, "id": "JobStatus" @@ -1507,52 +1885,24 @@ "id": "DiagnoseClusterRequest" }, "DiskConfig": { - "description": "Specifies the config of disk options for a group of VM instances.", - "type": "object", "properties": { - "numLocalSsds": { + "bootDiskSizeGb": { + "description": "Optional. Size in GB of the boot disk (default is 500GB).", "format": "int32", - "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.", "type": "integer" }, - "bootDiskSizeGb": { + "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.", "format": "int32", - "description": "Optional. Size in GB of the boot disk (default is 500GB).", "type": "integer" } }, - "id": "DiskConfig" + "id": "DiskConfig", + "description": "Specifies the config of disk options for a group of VM instances.", + "type": "object" }, "ClusterOperationMetadata": { - "description": "Metadata describing the operation.", - "type": "object", "properties": { - "labels": { - "description": "Output-only. Labels associated with the operation", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "status": { - "description": "Output-only. Current operation status.", - "$ref": "ClusterOperationStatus" - }, - "statusHistory": { - "description": "Output-only. The previous operation status.", - "items": { - "$ref": "ClusterOperationStatus" - }, - "type": "array" - }, - "clusterName": { - "description": "Output-only. Name of the cluster for the operation.", - "type": "string" - }, - "clusterUuid": { - "description": "Output-only. Cluster UUID for the operation.", - "type": "string" - }, "operationType": { "description": "Output-only. The operation type.", "type": "string" @@ -1563,32 +1913,52 @@ }, "warnings": { "description": "Output-only. Errors encountered during operation execution.", + "type": "array", "items": { "type": "string" + } + }, + "labels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Output-only. Labels associated with the operation", + "type": "object" + }, + "status": { + "$ref": "ClusterOperationStatus", + "description": "Output-only. Current operation status." + }, + "statusHistory": { + "description": "Output-only. The previous operation status.", + "type": "array", + "items": { + "$ref": "ClusterOperationStatus" + } + }, + "clusterUuid": { + "description": "Output-only. Cluster UUID for the operation.", + "type": "string" + }, + "clusterName": { + "description": "Output-only. Name of the cluster for the operation.", + "type": "string" } }, - "id": "ClusterOperationMetadata" + "id": "ClusterOperationMetadata", + "description": "Metadata describing the operation.", + "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", - "type": "object", "properties": {}, - "id": "Empty" + "id": "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", + "type": "object" }, "GceClusterConfig": { "description": "Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster.", "type": "object", "properties": { - "networkUri": { - "description": "Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks for more information).A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default\nprojects/[project_id]/regions/global/default\ndefault", - "type": "string" - }, - "zoneUri": { - "description": "Optional. The zone where the Google Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Cloud Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]\nprojects/[project_id]/zones/[zone]\nus-central1-f", - "type": "string" - }, "metadata": { "description": "The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).", "type": "object", @@ -1602,17 +1972,17 @@ }, "serviceAccountScopes": { "description": "Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:\nhttps://www.googleapis.com/auth/cloud.useraccounts.readonly\nhttps://www.googleapis.com/auth/devstorage.read_write\nhttps://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:\nhttps://www.googleapis.com/auth/bigquery\nhttps://www.googleapis.com/auth/bigtable.admin.table\nhttps://www.googleapis.com/auth/bigtable.data\nhttps://www.googleapis.com/auth/devstorage.full_control", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "tags": { "description": "The Google Compute Engine tags to add to all instances (see Tagging instances).", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "serviceAccount": { "description": "Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:\nroles/logging.logWriter\nroles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com", @@ -1621,50 +1991,46 @@ "subnetworkUri": { "description": "Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0\nprojects/[project_id]/regions/us-east1/sub0\nsub0", "type": "string" + }, + "networkUri": { + "description": "Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see Using Subnetworks for more information).A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default\nprojects/[project_id]/regions/global/default\ndefault", + "type": "string" + }, + "zoneUri": { + "description": "Optional. The zone where the Google Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Cloud Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]\nprojects/[project_id]/zones/[zone]\nus-central1-f", + "type": "string" } }, "id": "GceClusterConfig" }, "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.A Policy consists of a list of bindings. A Binding binds a list of members to a role, where the members can be user accounts, Google groups, Google domains, and service accounts. A role is a named list of permissions defined by IAM.Example\n{\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n}\nFor a description of IAM and its features, see the IAM developer's guide (https://cloud.google.com/iam).", - "type": "object", "properties": { "etag": { - "format": "byte", "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.If no etag is provided in the call to setIamPolicy, then the existing policy is overwritten blindly.", + "format": "byte", "type": "string" }, "version": { - "format": "int32", "description": "Version of the Policy. The default version is 0.", + "format": "int32", "type": "integer" }, "bindings": { "description": "Associates a list of members to a role. bindings with no members will result in an error.", + "type": "array", "items": { "$ref": "Binding" - }, - "type": "array" + } } }, - "id": "Policy" + "id": "Policy", + "description": "Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.A Policy consists of a list of bindings. A Binding binds a list of members to a role, where the members can be user accounts, Google groups, Google domains, and service accounts. A role is a named list of permissions defined by IAM.Example\n{\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n}\nFor a description of IAM and its features, see the IAM developer's guide (https://cloud.google.com/iam).", + "type": "object" }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "type": "object", "properties": { - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "metadata": { - "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", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, "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" @@ -1680,39 +2046,51 @@ "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 have the format of operations/some/unique/name.", "type": "string" + }, + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "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" } }, "id": "Operation" }, "ListWorkflowTemplatesResponse": { - "description": "A response to a request to list workflow templates in a project.", - "type": "object", "properties": { - "nextPageToken": { - "description": "Output-only This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListWorkflowTemplatesRequest\u003c/code\u003e.", - "type": "string" - }, "templates": { - "description": "Output-only WorkflowTemplates list.", + "description": "Output only. WorkflowTemplates list.", + "type": "array", "items": { "$ref": "WorkflowTemplate" - }, - "type": "array" + } + }, + "nextPageToken": { + "description": "Output only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListWorkflowTemplatesRequest\u003c/code\u003e.", + "type": "string" } }, - "id": "ListWorkflowTemplatesResponse" + "id": "ListWorkflowTemplatesResponse", + "description": "A response to a request to list workflow templates in a project.", + "type": "object" }, "JobReference": { "description": "Encapsulates the full scoping used to reference a job.", "type": "object", "properties": { - "jobId": { - "description": "Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.", - "type": "string" - }, "projectId": { "description": "Required. The ID of the Google Cloud Platform project that the job belongs to.", "type": "string" + }, + "jobId": { + "description": "Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.", + "type": "string" } }, "id": "JobReference" @@ -1721,54 +2099,66 @@ "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "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" - }, "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "type": "array", "items": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, "type": "object" - }, - "type": "array" + } + }, + "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. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" } }, "id": "Status" }, "Binding": { - "description": "Associates members with a role.", - "type": "object", "properties": { "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource. members can have the following values:\nallUsers: A special identifier that represents anyone who is on the internet; with or without a Google account.\nallAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account.\nuser:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.\nserviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.\ngroup:{emailid}: An email address that represents a Google group. For example, admins@example.com.\ndomain:{domain}: A Google Apps domain name that represents all the users of that domain. For example, google.com or example.com.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "role": { "description": "Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner. Required", "type": "string" } }, - "id": "Binding" + "id": "Binding", + "description": "Associates members with a role.", + "type": "object" }, "InstanceGroupConfig": { "description": "Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group.", "type": "object", "properties": { + "accelerators": { + "description": "Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "numInstances": { + "description": "Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.", + "format": "int32", + "type": "integer" + }, "diskConfig": { - "description": "Optional. Disk option config settings.", - "$ref": "DiskConfig" + "$ref": "DiskConfig", + "description": "Optional. Disk option config settings." }, "machineTypeUri": { "description": "Optional. The Google Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples:\nhttps://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nprojects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2\nn1-standard-2", @@ -1778,70 +2168,58 @@ "description": "Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.", "type": "string" }, - "managedGroupConfig": { - "description": "Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.", - "$ref": "ManagedGroupConfig" - }, "isPreemptible": { "description": "Optional. Specifies that this instance group contains preemptible instances.", "type": "boolean" }, + "managedGroupConfig": { + "description": "Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.", + "$ref": "ManagedGroupConfig" + }, "instanceNames": { "description": "Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - "accelerators": { - "description": "Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "numInstances": { - "format": "int32", - "description": "Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.", - "type": "integer" + } } }, "id": "InstanceGroupConfig" }, + "NodeInitializationAction": { + "properties": { + "executableFile": { + "description": "Required. Google Cloud Storage URI of executable file.", + "type": "string" + }, + "executionTimeout": { + "description": "Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.", + "format": "google-duration", + "type": "string" + } + }, + "id": "NodeInitializationAction", + "description": "Specifies an executable to run on a fully configured node and a timeout period for executable completion.", + "type": "object" + }, "ListJobsResponse": { "description": "A list of jobs in a project.", "type": "object", "properties": { - "jobs": { - "description": "Output-only. Jobs list.", - "items": { - "$ref": "Job" - }, - "type": "array" - }, "nextPageToken": { "description": "Optional. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListJobsRequest\u003c/code\u003e.", "type": "string" + }, + "jobs": { + "description": "Output-only. Jobs list.", + "type": "array", + "items": { + "$ref": "Job" + } } }, "id": "ListJobsResponse" }, - "NodeInitializationAction": { - "description": "Specifies an executable to run on a fully configured node and a timeout period for executable completion.", - "type": "object", - "properties": { - "executionTimeout": { - "format": "google-duration", - "description": "Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.", - "type": "string" - }, - "executableFile": { - "description": "Required. Google Cloud Storage URI of executable file.", - "type": "string" - } - }, - "id": "NodeInitializationAction" - }, "CancelJobRequest": { "description": "A request to cancel a job.", "type": "object", @@ -1853,18 +2231,18 @@ "type": "object", "properties": { "scriptVariables": { - "description": "Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=\"value\";).", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=\"value\";).", + "type": "object" }, "jarFileUris": { "description": "Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "loggingConfig": { "description": "Optional. The runtime log config for job execution.", @@ -1892,16 +2270,16 @@ "description": "The response message for Operations.ListOperations.", "type": "object", "properties": { - "operations": { - "description": "A list of operations that matches the specified filter in the request.", - "items": { - "$ref": "Operation" - }, - "type": "array" - }, "nextPageToken": { "description": "The standard List next-page token.", "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Operation" + } } }, "id": "ListOperationsResponse" @@ -1910,88 +2288,19 @@ "description": "Cloud Dataproc job config.", "type": "object", "properties": { - "clusterUuid": { - "description": "Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.", - "type": "string" - }, "clusterName": { "description": "Required. The name of the cluster where the job will be submitted.", "type": "string" + }, + "clusterUuid": { + "description": "Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.", + "type": "string" } }, "id": "JobPlacement" }, - "PigJob": { - "description": "A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN.", - "type": "object", - "properties": { - "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" - }, - "queryList": { - "$ref": "QueryList", - "description": "A list of queries." - }, - "queryFileUri": { - "description": "The HCFS URI of the script that contains the Pig queries.", - "type": "string" - }, - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scriptVariables": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).", - "type": "object" - }, - "loggingConfig": { - "description": "Optional. The runtime log config for job execution.", - "$ref": "LoggingConfig" - }, - "properties": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.", - "type": "object" - } - }, - "id": "PigJob" - }, "ClusterStatus": { - "description": "The status of a cluster and its instances.", - "type": "object", "properties": { - "substate": { - "description": "Output-only. Additional state information that includes status reported by the agent.", - "type": "string", - "enumDescriptions": [ - "", - "The cluster is known to be in an unhealthy state (for example, critical daemons are not running or HDFS capacity is exhausted).Applies to RUNNING state.", - "The agent-reported status is out of date (may occur if Cloud Dataproc loses communication with Agent).Applies to RUNNING state." - ], - "enum": [ - "UNSPECIFIED", - "UNHEALTHY", - "STALE_STATUS" - ] - }, - "stateStartTime": { - "format": "google-datetime", - "description": "Output-only. Time when this state was entered.", - "type": "string" - }, - "detail": { - "description": "Output-only. Optional details of cluster's state.", - "type": "string" - }, "state": { "enumDescriptions": [ "The cluster state is unknown.", @@ -2011,53 +2320,122 @@ ], "description": "Output-only. The cluster's state.", "type": "string" + }, + "stateStartTime": { + "description": "Output-only. Time when this state was entered.", + "format": "google-datetime", + "type": "string" + }, + "substate": { + "description": "Output-only. Additional state information that includes status reported by the agent.", + "type": "string", + "enumDescriptions": [ + "", + "The cluster is known to be in an unhealthy state (for example, critical daemons are not running or HDFS capacity is exhausted).Applies to RUNNING state.", + "The agent-reported status is out of date (may occur if Cloud Dataproc loses communication with Agent).Applies to RUNNING state." + ], + "enum": [ + "UNSPECIFIED", + "UNHEALTHY", + "STALE_STATUS" + ] + }, + "detail": { + "description": "Output-only. Optional details of cluster's state.", + "type": "string" } }, - "id": "ClusterStatus" + "id": "ClusterStatus", + "description": "The status of a cluster and its instances.", + "type": "object" + }, + "PigJob": { + "description": "A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN.", + "type": "object", + "properties": { + "jarFileUris": { + "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.", + "type": "array", + "items": { + "type": "string" + } + }, + "scriptVariables": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).", + "type": "object" + }, + "loggingConfig": { + "description": "Optional. The runtime log config for job execution.", + "$ref": "LoggingConfig" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.", + "type": "object" + }, + "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" + }, + "queryList": { + "description": "A list of queries.", + "$ref": "QueryList" + }, + "queryFileUri": { + "description": "The HCFS URI of the script that contains the Pig queries.", + "type": "string" + } + }, + "id": "PigJob" }, "WorkflowTemplate": { "description": "A Cloud Dataproc workflow template resource.", "type": "object", "properties": { - "id": { - "description": "Required The template id.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Optional Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.", - "type": "integer" - }, "jobs": { - "description": "Required The Directed Acyclic Graph of Jobs to submit.", + "description": "Required. The Directed Acyclic Graph of Jobs to submit.", + "type": "array", "items": { "$ref": "OrderedJob" - }, - "type": "array" - }, - "createTime": { - "format": "google-datetime", - "description": "Output-only The time template was created.", - "type": "string" + } }, "labels": { - "description": "Optional The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.", + "description": "Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.", "type": "object", "additionalProperties": { "type": "string" } }, + "createTime": { + "description": "Output only. The time template was created.", + "format": "google-datetime", + "type": "string" + }, "placement": { "$ref": "WorkflowTemplatePlacement", - "description": "Required WorkflowTemplate scheduling information." + "description": "Required. WorkflowTemplate scheduling information." }, "updateTime": { + "description": "Output only. The time template was last updated.", "format": "google-datetime", - "description": "Output-only The time template was last updated.", "type": "string" }, "name": { - "description": "Output-only The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "description": "Output only. The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + "type": "string" + }, + "version": { + "description": "Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "Required. The template id.", "type": "string" } }, @@ -2067,16 +2445,16 @@ "description": "The list of all clusters in a project.", "type": "object", "properties": { + "clusters": { + "description": "Output-only. The clusters in the project.", + "type": "array", + "items": { + "$ref": "Cluster" + } + }, "nextPageToken": { "description": "Output-only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent \u003ccode\u003eListClustersRequest\u003c/code\u003e.", "type": "string" - }, - "clusters": { - "description": "Output-only. The clusters in the project.", - "items": { - "$ref": "Cluster" - }, - "type": "array" } }, "id": "ListClustersResponse" @@ -2085,6 +2463,26 @@ "description": "A Cloud Dataproc job resource.", "type": "object", "properties": { + "hadoopJob": { + "description": "Job is a Hadoop job.", + "$ref": "HadoopJob" + }, + "placement": { + "$ref": "JobPlacement", + "description": "Required. Job information, including how, when, and where to run the job." + }, + "status": { + "description": "Output-only. The job status. Additional application-specific status information may be contained in the \u003ccode\u003etype_job\u003c/code\u003e and \u003ccode\u003eyarn_applications\u003c/code\u003e fields.", + "$ref": "JobStatus" + }, + "driverControlFilesUri": { + "description": "Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.", + "type": "string" + }, + "scheduling": { + "$ref": "JobScheduling", + "description": "Optional. Job scheduling configuration." + }, "pigJob": { "description": "Job is a Pig job.", "$ref": "PigJob" @@ -2104,6 +2502,13 @@ "description": "Output-only. A URI pointing to the location of the stdout of the job's driver program.", "type": "string" }, + "statusHistory": { + "description": "Output-only. The previous job status.", + "type": "array", + "items": { + "$ref": "JobStatus" + } + }, "sparkSqlJob": { "description": "Job is a SparkSql job.", "$ref": "SparkSqlJob" @@ -2112,51 +2517,46 @@ "description": "Job is a Spark job.", "$ref": "SparkJob" }, - "statusHistory": { - "description": "Output-only. The previous job status.", - "items": { - "$ref": "JobStatus" - }, - "type": "array" - }, "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.", + "type": "array", "items": { "$ref": "YarnApplication" - }, - "type": "array" + } }, "pysparkJob": { "$ref": "PySparkJob", "description": "Job is a Pyspark job." }, "reference": { - "$ref": "JobReference", - "description": "Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a \u003ccode\u003ejob_id\u003c/code\u003e." - }, - "hadoopJob": { - "$ref": "HadoopJob", - "description": "Job is a Hadoop job." - }, - "placement": { - "$ref": "JobPlacement", - "description": "Required. Job information, including how, when, and where to run the job." - }, - "status": { - "description": "Output-only. The job status. Additional application-specific status information may be contained in the \u003ccode\u003etype_job\u003c/code\u003e and \u003ccode\u003eyarn_applications\u003c/code\u003e fields.", - "$ref": "JobStatus" - }, - "driverControlFilesUri": { - "description": "Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.", - "type": "string" - }, - "scheduling": { - "$ref": "JobScheduling", - "description": "Optional. Job scheduling configuration." + "description": "Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a \u003ccode\u003ejob_id\u003c/code\u003e.", + "$ref": "JobReference" } }, "id": "Job" }, + "LifecycleConfig": { + "description": "Specifies the cluster auto delete related schedule configuration.", + "type": "object", + "properties": { + "autoDeleteTtl": { + "description": "Optional. The life duration of cluster, the cluster will be auto-deleted at the end of this duration.", + "format": "google-duration", + "type": "string" + }, + "autoDeleteTime": { + "description": "Optional. The time when cluster will be auto-deleted.", + "format": "google-datetime", + "type": "string" + }, + "idleDeleteTtl": { + "description": "Optional. The longest duration that cluster would keep alive while staying idle; passing this threshold will cause cluster to be auto-deleted.", + "format": "google-duration", + "type": "string" + } + }, + "id": "LifecycleConfig" + }, "ManagedGroupConfig": { "description": "Specifies the resources used to actively manage an instance group.", "type": "object", @@ -2172,36 +2572,10 @@ }, "id": "ManagedGroupConfig" }, - "LifecycleConfig": { - "description": "Specifies the cluster auto delete related schedule configuration.", - "type": "object", - "properties": { - "idleDeleteTtl": { - "format": "google-duration", - "description": "Optional. The longest duration that cluster would keep alive while staying idle; passing this threshold will cause cluster to be auto-deleted.", - "type": "string" - }, - "autoDeleteTtl": { - "format": "google-duration", - "description": "Optional. The life duration of cluster, the cluster will be auto-deleted at the end of this duration.", - "type": "string" - }, - "autoDeleteTime": { - "format": "google-datetime", - "description": "Optional. The time when cluster will be auto-deleted.", - "type": "string" - } - }, - "id": "LifecycleConfig" - }, "ClusterOperationStatus": { "description": "The status of the operation.", "type": "object", "properties": { - "details": { - "description": "Output-only.A message containing any operation metadata details.", - "type": "string" - }, "state": { "enumDescriptions": [ "Unused.", @@ -2218,13 +2592,17 @@ "description": "Output-only. A message containing the operation state.", "type": "string" }, + "details": { + "description": "Output-only.A message containing any operation metadata details.", + "type": "string" + }, "innerState": { "description": "Output-only. A message containing the detailed operation state.", "type": "string" }, "stateStartTime": { - "format": "google-datetime", "description": "Output-only. The time this state was entered.", + "format": "google-datetime", "type": "string" } }, @@ -2235,104 +2613,27 @@ "type": "object", "properties": { "labels": { - "description": "Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}\\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}\\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.", + "type": "object" }, "config": { - "description": "Required The cluster configuration.", + "description": "Required. The cluster configuration.", "$ref": "ClusterConfig" }, "clusterName": { - "description": "Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.", + "description": "Required. The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.", "type": "string" } }, "id": "ManagedCluster" }, - "HadoopJob": { - "description": "A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).", - "type": "object", - "properties": { - "mainJarFileUri": { - "description": "The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'", - "type": "string" - }, - "jarFileUris": { - "description": "Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "description": "Optional. The runtime log config for job execution.", - "$ref": "LoggingConfig" - }, - "properties": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", - "type": "object" - }, - "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fileUris": { - "description": "Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainClass": { - "description": "The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.", - "type": "string" - }, - "archiveUris": { - "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "HadoopJob" - }, - "QueryList": { - "description": "A list of queries to run on a cluster.", - "type": "object", - "properties": { - "queries": { - "description": "Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:\n\"hiveJob\": {\n \"queryList\": {\n \"queries\": [\n \"query1\",\n \"query2\",\n \"query3;query4\",\n ]\n }\n}\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "QueryList" - }, "YarnApplication": { "description": "A YARN application created by a job. Application information is a subset of \u003ccode\u003eorg.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto\u003c/code\u003e.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", "type": "object", "properties": { - "trackingUrl": { - "description": "Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.", - "type": "string" - }, - "progress": { - "format": "float", - "description": "Required. The numerical progress of the application, from 1 to 100.", - "type": "number" - }, "state": { "description": "Required. The application state.", "type": "string", @@ -2362,10 +2663,87 @@ "name": { "description": "Required. The application name.", "type": "string" + }, + "trackingUrl": { + "description": "Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.", + "type": "string" + }, + "progress": { + "description": "Required. The numerical progress of the application, from 1 to 100.", + "format": "float", + "type": "number" } }, "id": "YarnApplication" }, + "HadoopJob": { + "description": "A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).", + "type": "object", + "properties": { + "properties": { + "description": "Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "args": { + "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", + "type": "array", + "items": { + "type": "string" + } + }, + "fileUris": { + "description": "Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainClass": { + "description": "The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.", + "type": "string" + }, + "archiveUris": { + "description": "Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.", + "type": "array", + "items": { + "type": "string" + } + }, + "mainJarFileUri": { + "description": "The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'", + "type": "string" + }, + "jarFileUris": { + "description": "Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.", + "type": "array", + "items": { + "type": "string" + } + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + } + }, + "id": "HadoopJob" + }, + "QueryList": { + "description": "A list of queries to run on a cluster.", + "type": "object", + "properties": { + "queries": { + "description": "Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:\n\"hiveJob\": {\n \"queryList\": {\n \"queries\": [\n \"query1\",\n \"query2\",\n \"query3;query4\",\n ]\n }\n}\n", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "QueryList" + }, "SetIamPolicyRequest": { "description": "Request message for SetIamPolicy method.", "type": "object", @@ -2376,380 +2754,13 @@ } }, "id": "SetIamPolicyRequest" - }, - "HiveJob": { - "description": "A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN.", - "type": "object", - "properties": { - "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" - }, - "queryList": { - "description": "A list of queries.", - "$ref": "QueryList" - }, - "queryFileUri": { - "description": "The HCFS URI of the script that contains Hive queries.", - "type": "string" - }, - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scriptVariables": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=\"value\";).", - "type": "object" - }, - "properties": { - "description": "Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "id": "HiveJob" - }, - "DiagnoseClusterResults": { - "description": "The location of diagnostic output.", - "type": "object", - "properties": { - "outputUri": { - "description": "Output-only. The Google Cloud Storage URI of the diagnostic output. The output report is a plain text file with a summary of collected diagnostics.", - "type": "string" - } - }, - "id": "DiagnoseClusterResults" - }, - "WorkflowGraph": { - "description": "The workflow graph.", - "type": "object", - "properties": { - "nodes": { - "description": "Output-only The workflow nodes.", - "items": { - "$ref": "WorkflowNode" - }, - "type": "array" - } - }, - "id": "WorkflowGraph" - }, - "ClusterConfig": { - "description": "The cluster config.", - "type": "object", - "properties": { - "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 \u003ccode\u003erole\u003c/code\u003e metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):\nROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1beta2/instance/attributes/dataproc-role)\nif [[ \"${ROLE}\" == 'Master' ]]; then\n ... master specific actions ...\nelse\n ... worker specific actions ...\nfi\n", - "items": { - "$ref": "NodeInitializationAction" - }, - "type": "array" - }, - "lifecycleConfig": { - "description": "Optional. The config setting for auto delete cluster schedule.", - "$ref": "LifecycleConfig" - }, - "configBucket": { - "description": "Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.", - "type": "string" - }, - "workerConfig": { - "$ref": "InstanceGroupConfig", - "description": "Optional. The Google Compute Engine config settings for worker instances in a cluster." - }, - "gceClusterConfig": { - "description": "Required. The shared Google Compute Engine config settings for all instances in a cluster.", - "$ref": "GceClusterConfig" - }, - "softwareConfig": { - "description": "Optional. The config settings for software inside the cluster.", - "$ref": "SoftwareConfig" - }, - "masterConfig": { - "$ref": "InstanceGroupConfig", - "description": "Optional. The Google Compute Engine config settings for the master instance in a cluster." - }, - "secondaryWorkerConfig": { - "description": "Optional. The Google Compute Engine config settings for additional worker instances in a cluster.", - "$ref": "InstanceGroupConfig" - } - }, - "id": "ClusterConfig" - }, - "PySparkJob": { - "description": "A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN.", - "type": "object", - "properties": { - "jarFileUris": { - "description": "Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "loggingConfig": { - "$ref": "LoggingConfig", - "description": "Optional. The runtime log config for job execution." - }, - "properties": { - "description": "Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "args": { - "description": "Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fileUris": { - "description": "Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pythonFileUris": { - "description": "Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mainPythonFileUri": { - "description": "Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.", - "type": "string" - }, - "archiveUris": { - "description": "Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "PySparkJob" - }, - "ClusterMetrics": { - "description": "Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.", - "type": "object", - "properties": { - "hdfsMetrics": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "The HDFS metrics.", - "type": "object" - }, - "yarnMetrics": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "The YARN metrics.", - "type": "object" - } - }, - "id": "ClusterMetrics" - }, - "AcceleratorConfig": { - "description": "Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).", - "type": "object", - "properties": { - "acceleratorTypeUri": { - "description": "Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)Examples * https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80", - "type": "string" - }, - "acceleratorCount": { - "format": "int32", - "description": "The number of the accelerator cards of this type exposed to this instance.", - "type": "integer" - } - }, - "id": "AcceleratorConfig" - }, - "TestIamPermissionsRequest": { - "description": "Request message for TestIamPermissions method.", - "type": "object", - "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" - } - }, - "id": "TestIamPermissionsRequest" - }, - "LoggingConfig": { - "description": "The runtime logging config of the job.", - "type": "object", - "properties": { - "driverLogLevels": { - "description": "The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'", - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "LEVEL_UNSPECIFIED", - "ALL", - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "FATAL", - "OFF" - ] - } - } - }, - "id": "LoggingConfig" - }, - "OrderedJob": { - "type": "object", - "properties": { - "labels": { - "description": "Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \\p{Ll}\\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \\p{Ll}\\p{Lo}\\p{N}_-{0,63}No more than 64 labels can be associated with a given job.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sparkSqlJob": { - "description": "Job is a SparkSql job.", - "$ref": "SparkSqlJob" - }, - "sparkJob": { - "description": "Job is a Spark job.", - "$ref": "SparkJob" - }, - "pysparkJob": { - "description": "Job is a Pyspark job.", - "$ref": "PySparkJob" - }, - "scheduling": { - "description": "Optional Job scheduling configuration.", - "$ref": "JobScheduling" - }, - "pigJob": { - "description": "Job is a Pig job.", - "$ref": "PigJob" - }, - "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 workflow-step-id label, and in prerequisite_step_ids field from other steps.", - "type": "string" - }, - "hadoopJob": { - "$ref": "HadoopJob", - "description": "Job is a Hadoop job." - }, - "prerequisiteStepIds": { - "description": "Optional The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.", - "items": { - "type": "string" - }, - "type": "array" - }, - "hiveJob": { - "description": "Job is a Hive job.", - "$ref": "HiveJob" - } - }, - "id": "OrderedJob" - }, - "WorkflowNode": { - "description": "The workflow node.", - "type": "object", - "properties": { - "error": { - "description": "Output-only The error detail.", - "type": "string" - }, - "stepId": { - "description": "Output-only The name of the node.", - "type": "string" - }, - "jobId": { - "description": "Output-only The job id; populated after the node enters RUNNING state.", - "type": "string" - }, - "prerequisiteStepIds": { - "description": "Output-only Node's prerequisite nodes.", - "items": { - "type": "string" - }, - "type": "array" - }, - "state": { - "enumDescriptions": [ - "", - "The node is awaiting prerequisite node to finish.", - "The node is runnable but not running.", - "The node is running.", - "The node completed successfully.", - "The node failed. A node can be marked FAILED because its ancestor or peer failed." - ], - "enum": [ - "NODE_STATUS_UNSPECIFIED", - "BLOCKED", - "RUNNABLE", - "RUNNING", - "COMPLETED", - "FAILED" - ], - "description": "Output-only The node state.", - "type": "string" - } - }, - "id": "WorkflowNode" - }, - "InstantiateWorkflowTemplateRequest": { - "description": "A request to instantiate a workflow template.", - "type": "object", - "properties": { - "instanceId": { - "description": "Optional A tag that prevents multiple concurrent workflow instances with the same tag from running. This mitigates risk of concurrent instances started due to retries.It is recommended to always set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The tag must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Optional The version of workflow template to instantiate. If specified, the workflow will be instantiated only if the current version of the workflow template has the supplied version.This option cannot be used to instantiate a previous version of workflow template.", - "type": "integer" - } - }, - "id": "InstantiateWorkflowTemplateRequest" - }, - "SubmitJobRequest": { - "description": "A request to submit a job.", - "type": "object", - "properties": { - "job": { - "description": "Required. The job resource.", - "$ref": "Job" - } - }, - "id": "SubmitJobRequest" } }, - "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, + "protocol": "rest", "version": "v1beta2", "baseUrl": "https://dataproc.googleapis.com/", "auth": { @@ -2761,15 +2772,9 @@ } } }, - "servicePath": "", - "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", "kind": "discovery#restDescription", + "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", + "servicePath": "", "rootUrl": "https://dataproc.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "dataproc", - "batchPath": "batch", - "documentationLink": "https://cloud.google.com/dataproc/", - "id": "dataproc:v1beta2", - "revision": "20170926" + "basePath": "" } diff --git a/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-gen.go b/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-gen.go index 6266bb7e0..669959079 100644 --- a/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-gen.go +++ b/vendor/google.golang.org/api/dataproc/v1beta2/dataproc-gen.go @@ -433,13 +433,13 @@ func (s *ClusterMetrics) MarshalJSON() ([]byte, error) { } type ClusterOperation struct { - // Done: Output-only Indicates the operation is done. + // Done: Output only. Indicates the operation is done. Done bool `json:"done,omitempty"` - // Error: Output-only Error, if operation failed. + // Error: Output only. Error, if operation failed. Error string `json:"error,omitempty"` - // OperationId: Output-only The id of the cluster operation. + // OperationId: Output only. The id of the cluster operation. OperationId string `json:"operationId,omitempty"` // ForceSendFields is a list of field names (e.g. "Done") to @@ -562,11 +562,14 @@ func (s *ClusterOperationStatus) MarshalJSON() ([]byte, error) { // ClusterSelector: A selector that chooses target cluster for jobs // based on metadata. type ClusterSelector struct { - // ClusterLabels: Required The cluster labels. Cluster must have all + // ClusterLabels: Required. The cluster labels. Cluster must have all // labels to match. ClusterLabels map[string]string `json:"clusterLabels,omitempty"` - // Zone: Required The cluster target zone. + // Zone: Optional. The zone where workflow process executes. This + // parameter does not affect the selection of the cluster.If + // unspecified, the zone of the first cluster matching the selector is + // used. Zone string `json:"zone,omitempty"` // ForceSendFields is a list of field names (e.g. "ClusterLabels") to @@ -1051,17 +1054,17 @@ func (s *InstanceGroupConfig) MarshalJSON() ([]byte, error) { // InstantiateWorkflowTemplateRequest: A request to instantiate a // workflow template. type InstantiateWorkflowTemplateRequest struct { - // InstanceId: Optional A tag that prevents multiple concurrent workflow - // instances with the same tag from running. This mitigates risk of - // concurrent instances started due to retries.It is recommended to - // always set this value to a UUID + // InstanceId: Optional. A tag that prevents multiple concurrent + // workflow instances with the same tag from running. This mitigates + // risk of concurrent instances started due to retries.It is recommended + // to always set this value to a UUID // (https://en.wikipedia.org/wiki/Universally_unique_identifier).The tag // must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), // and hyphens (-). The maximum length is 40 characters. InstanceId string `json:"instanceId,omitempty"` - // Version: Optional The version of workflow template to instantiate. If - // specified, the workflow will be instantiated only if the current + // Version: Optional. The version of workflow template to instantiate. + // If specified, the workflow will be instantiated only if the current // version of the workflow template has the supplied version.This option // cannot be used to instantiate a previous version of workflow // template. @@ -1513,13 +1516,13 @@ func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) { // ListWorkflowTemplatesResponse: A response to a request to list // workflow templates in a project. type ListWorkflowTemplatesResponse struct { - // NextPageToken: Output-only This token is included in the response if + // NextPageToken: Output only. This token is included in the response if // there are more results to fetch. To fetch additional results, provide // this value as the page_token in a subsequent // ListWorkflowTemplatesRequest. NextPageToken string `json:"nextPageToken,omitempty"` - // Templates: Output-only WorkflowTemplates list. + // Templates: Output only. WorkflowTemplates list. Templates []*WorkflowTemplate `json:"templates,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -1582,16 +1585,16 @@ func (s *LoggingConfig) MarshalJSON() ([]byte, error) { // ManagedCluster: Cluster that is managed by the workflow. type ManagedCluster struct { - // ClusterName: Required The cluster name. Cluster names within a + // ClusterName: Required. The cluster name. Cluster names within a // project must be unique. Names from deleted clusters can be reused. ClusterName string `json:"clusterName,omitempty"` - // Config: Required The cluster configuration. + // Config: Required. The cluster configuration. Config *ClusterConfig `json:"config,omitempty"` - // Labels: Optional The labels to associate with this cluster.Label keys - // must be between 1 and 63 characters long, and must conform to the - // following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values + // Labels: Optional. The labels to associate with this cluster.Label + // keys must be between 1 and 63 characters long, and must conform to + // the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values // must be between 1 and 63 characters long, and must conform to the // following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more // than 64 labels can be associated with a given cluster. @@ -1762,7 +1765,7 @@ type OrderedJob struct { // HiveJob: Job is a Hive job. HiveJob *HiveJob `json:"hiveJob,omitempty"` - // Labels: Optional The labels to associate with this job.Label keys + // Labels: Optional. The labels to associate with this job.Label keys // must be between 1 and 63 characters long, and must conform to the // following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be // between 1 and 63 characters long, and must conform to the following @@ -1773,7 +1776,7 @@ type OrderedJob struct { // PigJob: Job is a Pig job. PigJob *PigJob `json:"pigJob,omitempty"` - // PrerequisiteStepIds: Optional The optional list of prerequisite job + // PrerequisiteStepIds: Optional. The optional list of prerequisite job // step_ids. If not specified, the job will start at the beginning of // workflow. PrerequisiteStepIds []string `json:"prerequisiteStepIds,omitempty"` @@ -1781,7 +1784,7 @@ type OrderedJob struct { // PysparkJob: Job is a Pyspark job. PysparkJob *PySparkJob `json:"pysparkJob,omitempty"` - // Scheduling: Optional Job scheduling configuration. + // Scheduling: Optional. Job scheduling configuration. Scheduling *JobScheduling `json:"scheduling,omitempty"` // SparkJob: Job is a Spark job. @@ -1790,7 +1793,7 @@ type OrderedJob struct { // SparkSqlJob: Job is a SparkSql job. SparkSqlJob *SparkSqlJob `json:"sparkSqlJob,omitempty"` - // StepId: Required The step id. The id must be unique among all jobs + // StepId: 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 // workflow-step-id label, and in prerequisite_step_ids field from other // steps. @@ -2412,7 +2415,7 @@ func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { // WorkflowGraph: The workflow graph. type WorkflowGraph struct { - // Nodes: Output-only The workflow nodes. + // Nodes: Output only. The workflow nodes. Nodes []*WorkflowNode `json:"nodes,omitempty"` // ForceSendFields is a list of field names (e.g. "Nodes") to @@ -2440,19 +2443,19 @@ func (s *WorkflowGraph) MarshalJSON() ([]byte, error) { // WorkflowMetadata: A Cloud Dataproc workflow template resource. type WorkflowMetadata struct { - // ClusterName: Output-only The name of the managed cluster. + // ClusterName: Output only. The name of the managed cluster. ClusterName string `json:"clusterName,omitempty"` - // CreateCluster: Output-only The create cluster operation metadata. + // CreateCluster: Output only. The create cluster operation metadata. CreateCluster *ClusterOperation `json:"createCluster,omitempty"` - // DeleteCluster: Output-only The delete cluster operation metadata. + // DeleteCluster: Output only. The delete cluster operation metadata. DeleteCluster *ClusterOperation `json:"deleteCluster,omitempty"` - // Graph: Output-only The workflow graph. + // Graph: Output only. The workflow graph. Graph *WorkflowGraph `json:"graph,omitempty"` - // State: Output-only The workflow state. + // State: Output only. The workflow state. // // Possible values: // "UNKNOWN" - Unused. @@ -2461,10 +2464,10 @@ type WorkflowMetadata struct { // "DONE" - The operation is done; either cancelled or completed. State string `json:"state,omitempty"` - // Template: Output-only The "resource name" of the template. + // Template: Output only. The "resource name" of the template. Template string `json:"template,omitempty"` - // Version: Output-only The version of template at the time of workflow + // Version: Output only. The version of template at the time of workflow // instantiation. Version int64 `json:"version,omitempty"` @@ -2493,17 +2496,17 @@ func (s *WorkflowMetadata) MarshalJSON() ([]byte, error) { // WorkflowNode: The workflow node. type WorkflowNode struct { - // Error: Output-only The error detail. + // Error: Output only. The error detail. Error string `json:"error,omitempty"` - // JobId: Output-only The job id; populated after the node enters + // JobId: Output only. The job id; populated after the node enters // RUNNING state. JobId string `json:"jobId,omitempty"` - // PrerequisiteStepIds: Output-only Node's prerequisite nodes. + // PrerequisiteStepIds: Output only. Node's prerequisite nodes. PrerequisiteStepIds []string `json:"prerequisiteStepIds,omitempty"` - // State: Output-only The node state. + // State: Output only. The node state. // // Possible values: // "NODE_STATUS_UNSPECIFIED" @@ -2515,7 +2518,7 @@ type WorkflowNode struct { // ancestor or peer failed. State string `json:"state,omitempty"` - // StepId: Output-only The name of the node. + // StepId: Output only. The name of the node. StepId string `json:"stepId,omitempty"` // ForceSendFields is a list of field names (e.g. "Error") to @@ -2543,16 +2546,16 @@ func (s *WorkflowNode) MarshalJSON() ([]byte, error) { // WorkflowTemplate: A Cloud Dataproc workflow template resource. type WorkflowTemplate struct { - // CreateTime: Output-only The time template was created. + // CreateTime: Output only. The time template was created. CreateTime string `json:"createTime,omitempty"` - // Id: Required The template id. + // Id: Required. The template id. Id string `json:"id,omitempty"` - // Jobs: Required The Directed Acyclic Graph of Jobs to submit. + // Jobs: Required. The Directed Acyclic Graph of Jobs to submit. Jobs []*OrderedJob `json:"jobs,omitempty"` - // Labels: Optional The labels to associate with this template. These + // Labels: Optional. The labels to associate with this template. These // labels will be propagated to all jobs and clusters created by the // workflow instance.Label keys must contain 1 to 63 characters, and // must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label @@ -2562,26 +2565,26 @@ type WorkflowTemplate struct { // associated with a template. Labels map[string]string `json:"labels,omitempty"` - // Name: Output-only The "resource name" of the template, as described + // Name: Output only. The "resource name" of the template, as described // in https://cloud.google.com/apis/design/resource_names of the form // projects/{project_id}/regions/{region}/workflowTemplates/{template_id} Name string `json:"name,omitempty"` - // Placement: Required WorkflowTemplate scheduling information. + // Placement: Required. WorkflowTemplate scheduling information. Placement *WorkflowTemplatePlacement `json:"placement,omitempty"` - // UpdateTime: Output-only The time template was last updated. + // UpdateTime: Output only. The time template was last updated. UpdateTime string `json:"updateTime,omitempty"` - // Version: Optional Used to perform a consistent read-modify-write.This - // field should be left blank for a CreateWorkflowTemplate request. It - // is required for an UpdateWorkflowTemplate request, and must match the - // current server version. A typical update template flow would fetch - // the current template with a GetWorkflowTemplate request, which will - // return the current template with the version field filled in with the - // current server version. The user updates other fields in the - // template, then returns it as part of the UpdateWorkflowTemplate - // request. + // Version: Optional. Used to perform a consistent + // read-modify-write.This field should be left blank for a + // CreateWorkflowTemplate request. It is required for an + // UpdateWorkflowTemplate request, and must match the current server + // version. A typical update template flow would fetch the current + // template with a GetWorkflowTemplate request, which will return the + // current template with the version field filled in with the current + // server version. The user updates other fields in the template, then + // returns it as part of the UpdateWorkflowTemplate request. Version int64 `json:"version,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -2614,12 +2617,12 @@ func (s *WorkflowTemplate) MarshalJSON() ([]byte, error) { // WorkflowTemplatePlacement: Specifies workflow execution target.Either // managed_cluster or cluster_selector is required. type WorkflowTemplatePlacement struct { - // ClusterSelector: Optional A selector that chooses target cluster for + // ClusterSelector: Optional. A selector that chooses target cluster for // jobs based on metadata.The selector is evaluated at the time each job // is submitted. ClusterSelector *ClusterSelector `json:"clusterSelector,omitempty"` - // ManagedCluster: Optional A cluster that is managed by the workflow. + // ManagedCluster: Optional. A cluster that is managed by the workflow. ManagedCluster *ManagedCluster `json:"managedCluster,omitempty"` // ForceSendFields is a list of field names (e.g. "ClusterSelector") to @@ -2830,7 +2833,7 @@ func (c *ProjectsLocationsWorkflowTemplatesCreateCall) Do(opts ...googleapi.Call // ], // "parameters": { // "parent": { - // "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + // "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+$", // "required": true, @@ -2869,8 +2872,8 @@ func (r *ProjectsLocationsWorkflowTemplatesService) Delete(name string) *Project return c } -// Version sets the optional parameter "version": Optional The version -// of workflow template to delete. If specified, will only delete the +// Version sets the optional parameter "version": The version of +// workflow template to delete. If specified, will only delete the // template if the current server version matches specified version. func (c *ProjectsLocationsWorkflowTemplatesDeleteCall) Version(version int64) *ProjectsLocationsWorkflowTemplatesDeleteCall { c.urlParams_.Set("version", fmt.Sprint(version)) @@ -2967,14 +2970,14 @@ func (c *ProjectsLocationsWorkflowTemplatesDeleteCall) Do(opts ...googleapi.Call // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", // "required": true, // "type": "string" // }, // "version": { - // "description": "Optional The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", + // "description": "Optional. The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", // "format": "int32", // "location": "query", // "type": "integer" @@ -3010,10 +3013,9 @@ func (r *ProjectsLocationsWorkflowTemplatesService) Get(name string) *ProjectsLo return c } -// Version sets the optional parameter "version": Optional The version -// of workflow template to retrieve. Only previously instatiated -// versions can be retrieved.If unspecified, retrieves the current -// version. +// Version sets the optional parameter "version": The version of +// workflow template to retrieve. Only previously instatiated versions +// can be retrieved.If unspecified, retrieves the current version. func (c *ProjectsLocationsWorkflowTemplatesGetCall) Version(version int64) *ProjectsLocationsWorkflowTemplatesGetCall { c.urlParams_.Set("version", fmt.Sprint(version)) return c @@ -3122,14 +3124,14 @@ func (c *ProjectsLocationsWorkflowTemplatesGetCall) Do(opts ...googleapi.CallOpt // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", // "required": true, // "type": "string" // }, // "version": { - // "description": "Optional The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", + // "description": "Optional. The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", // "format": "int32", // "location": "query", // "type": "integer" @@ -3269,7 +3271,7 @@ func (c *ProjectsLocationsWorkflowTemplatesInstantiateCall) Do(opts ...googleapi // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", // "required": true, @@ -3308,16 +3310,15 @@ func (r *ProjectsLocationsWorkflowTemplatesService) List(parent string) *Project return c } -// PageSize sets the optional parameter "pageSize": Optional The maximum -// number of results to return in each response. +// PageSize sets the optional parameter "pageSize": The maximum number +// of results to return in each response. func (c *ProjectsLocationsWorkflowTemplatesListCall) PageSize(pageSize int64) *ProjectsLocationsWorkflowTemplatesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } -// PageToken sets the optional parameter "pageToken": Optional The page -// token, returned by a previous call, to request the next page of -// results. +// PageToken sets the optional parameter "pageToken": The page token, +// returned by a previous call, to request the next page of results. func (c *ProjectsLocationsWorkflowTemplatesListCall) PageToken(pageToken string) *ProjectsLocationsWorkflowTemplatesListCall { c.urlParams_.Set("pageToken", pageToken) return c @@ -3426,18 +3427,18 @@ func (c *ProjectsLocationsWorkflowTemplatesListCall) Do(opts ...googleapi.CallOp // ], // "parameters": { // "pageSize": { - // "description": "Optional The maximum number of results to return in each response.", + // "description": "Optional. The maximum number of results to return in each response.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { - // "description": "Optional The page token, returned by a previous call, to request the next page of results.", + // "description": "Optional. The page token, returned by a previous call, to request the next page of results.", // "location": "query", // "type": "string" // }, // "parent": { - // "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + // "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+$", // "required": true, @@ -3591,7 +3592,7 @@ func (c *ProjectsLocationsWorkflowTemplatesUpdateCall) Do(opts ...googleapi.Call // ], // "parameters": { // "name": { - // "description": "Output-only The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Output only. The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/workflowTemplates/[^/]+$", // "required": true, @@ -3777,6 +3778,14 @@ func (r *ProjectsRegionsClustersService) Delete(projectId string, region string, return c } +// ClusterUuid sets the optional parameter "clusterUuid": Specifying the +// cluster_uuid means the RPC should fail (with error NOT_FOUND) if +// cluster with specified UUID does not exist. +func (c *ProjectsRegionsClustersDeleteCall) ClusterUuid(clusterUuid string) *ProjectsRegionsClustersDeleteCall { + c.urlParams_.Set("clusterUuid", clusterUuid) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -3876,6 +3885,11 @@ func (c *ProjectsRegionsClustersDeleteCall) Do(opts ...googleapi.CallOption) (*O // "required": true, // "type": "string" // }, + // "clusterUuid": { + // "description": "Optional. Specifying the cluster_uuid means the RPC should fail (with error NOT_FOUND) if cluster with specified UUID does not exist.", + // "location": "query", + // "type": "string" + // }, // "projectId": { // "description": "Required. The ID of the Google Cloud Platform project that the cluster belongs to.", // "location": "path", @@ -6807,7 +6821,7 @@ func (c *ProjectsRegionsWorkflowTemplatesCreateCall) Do(opts ...googleapi.CallOp // ], // "parameters": { // "parent": { - // "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + // "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+$", // "required": true, @@ -6846,8 +6860,8 @@ func (r *ProjectsRegionsWorkflowTemplatesService) Delete(name string) *ProjectsR return c } -// Version sets the optional parameter "version": Optional The version -// of workflow template to delete. If specified, will only delete the +// Version sets the optional parameter "version": The version of +// workflow template to delete. If specified, will only delete the // template if the current server version matches specified version. func (c *ProjectsRegionsWorkflowTemplatesDeleteCall) Version(version int64) *ProjectsRegionsWorkflowTemplatesDeleteCall { c.urlParams_.Set("version", fmt.Sprint(version)) @@ -6944,14 +6958,14 @@ func (c *ProjectsRegionsWorkflowTemplatesDeleteCall) Do(opts ...googleapi.CallOp // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", // "required": true, // "type": "string" // }, // "version": { - // "description": "Optional The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", + // "description": "Optional. The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.", // "format": "int32", // "location": "query", // "type": "integer" @@ -6987,10 +7001,9 @@ func (r *ProjectsRegionsWorkflowTemplatesService) Get(name string) *ProjectsRegi return c } -// Version sets the optional parameter "version": Optional The version -// of workflow template to retrieve. Only previously instatiated -// versions can be retrieved.If unspecified, retrieves the current -// version. +// Version sets the optional parameter "version": The version of +// workflow template to retrieve. Only previously instatiated versions +// can be retrieved.If unspecified, retrieves the current version. func (c *ProjectsRegionsWorkflowTemplatesGetCall) Version(version int64) *ProjectsRegionsWorkflowTemplatesGetCall { c.urlParams_.Set("version", fmt.Sprint(version)) return c @@ -7099,14 +7112,14 @@ func (c *ProjectsRegionsWorkflowTemplatesGetCall) Do(opts ...googleapi.CallOptio // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", // "required": true, // "type": "string" // }, // "version": { - // "description": "Optional The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", + // "description": "Optional. The version of workflow template to retrieve. Only previously instatiated versions can be retrieved.If unspecified, retrieves the current version.", // "format": "int32", // "location": "query", // "type": "integer" @@ -7246,7 +7259,7 @@ func (c *ProjectsRegionsWorkflowTemplatesInstantiateCall) Do(opts ...googleapi.C // ], // "parameters": { // "name": { - // "description": "Required The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Required. The \"resource name\" of the workflow template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", // "required": true, @@ -7285,16 +7298,15 @@ func (r *ProjectsRegionsWorkflowTemplatesService) List(parent string) *ProjectsR return c } -// PageSize sets the optional parameter "pageSize": Optional The maximum -// number of results to return in each response. +// PageSize sets the optional parameter "pageSize": The maximum number +// of results to return in each response. func (c *ProjectsRegionsWorkflowTemplatesListCall) PageSize(pageSize int64) *ProjectsRegionsWorkflowTemplatesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } -// PageToken sets the optional parameter "pageToken": Optional The page -// token, returned by a previous call, to request the next page of -// results. +// PageToken sets the optional parameter "pageToken": The page token, +// returned by a previous call, to request the next page of results. func (c *ProjectsRegionsWorkflowTemplatesListCall) PageToken(pageToken string) *ProjectsRegionsWorkflowTemplatesListCall { c.urlParams_.Set("pageToken", pageToken) return c @@ -7403,18 +7415,18 @@ func (c *ProjectsRegionsWorkflowTemplatesListCall) Do(opts ...googleapi.CallOpti // ], // "parameters": { // "pageSize": { - // "description": "Optional The maximum number of results to return in each response.", + // "description": "Optional. The maximum number of results to return in each response.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { - // "description": "Optional The page token, returned by a previous call, to request the next page of results.", + // "description": "Optional. The page token, returned by a previous call, to request the next page of results.", // "location": "query", // "type": "string" // }, // "parent": { - // "description": "Required The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", + // "description": "Required. The \"resource name\" of the region, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+$", // "required": true, @@ -7568,7 +7580,7 @@ func (c *ProjectsRegionsWorkflowTemplatesUpdateCall) Do(opts ...googleapi.CallOp // ], // "parameters": { // "name": { - // "description": "Output-only The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", + // "description": "Output only. The \"resource name\" of the template, as described in https://cloud.google.com/apis/design/resource_names of the form projects/{project_id}/regions/{region}/workflowTemplates/{template_id}", // "location": "path", // "pattern": "^projects/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", // "required": true, diff --git a/vendor/google.golang.org/api/datastore/v1/datastore-api.json b/vendor/google.golang.org/api/datastore/v1/datastore-api.json index 78a9b419b..89bd0cbbc 100644 --- a/vendor/google.golang.org/api/datastore/v1/datastore-api.json +++ b/vendor/google.golang.org/api/datastore/v1/datastore-api.json @@ -1,37 +1,46 @@ { + "discoveryVersion": "v1", + "ownerName": "Google", "version_module": true, "resources": { "projects": { "methods": { - "beginTransaction": { - "description": "Begins a new transaction.", - "request": { - "$ref": "BeginTransactionRequest" - }, - "response": { - "$ref": "BeginTransactionResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", + "allocateIds": { "parameters": { "projectId": { + "location": "path", "description": "The ID of the project against which to make the request.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" ], - "flatPath": "v1/projects/{projectId}:beginTransaction", - "id": "datastore.projects.beginTransaction", - "path": "v1/projects/{projectId}:beginTransaction" + "flatPath": "v1/projects/{projectId}:allocateIds", + "path": "v1/projects/{projectId}:allocateIds", + "id": "datastore.projects.allocateIds", + "description": "Allocates IDs for the given keys, which is useful for referencing an entity\nbefore it is inserted.", + "request": { + "$ref": "AllocateIdsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "AllocateIdsResponse" + } }, "commit": { + "flatPath": "v1/projects/{projectId}:commit", + "id": "datastore.projects.commit", + "path": "v1/projects/{projectId}:commit", + "description": "Commits a transaction, optionally creating, deleting or modifying some\nentities.", + "request": { + "$ref": "CommitRequest" + }, "response": { "$ref": "CommitResponse" }, @@ -39,6 +48,27 @@ "projectId" ], "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "beginTransaction": { + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "BeginTransactionResponse" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" @@ -51,15 +81,46 @@ "location": "path" } }, - "flatPath": "v1/projects/{projectId}:commit", - "id": "datastore.projects.commit", - "path": "v1/projects/{projectId}:commit", + "flatPath": "v1/projects/{projectId}:beginTransaction", + "path": "v1/projects/{projectId}:beginTransaction", + "id": "datastore.projects.beginTransaction", "request": { - "$ref": "CommitRequest" + "$ref": "BeginTransactionRequest" }, - "description": "Commits a transaction, optionally creating, deleting or modifying some\nentities." + "description": "Begins a new transaction." + }, + "reserveIds": { + "response": { + "$ref": "ReserveIdsResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1/projects/{projectId}:reserveIds", + "id": "datastore.projects.reserveIds", + "path": "v1/projects/{projectId}:reserveIds", + "description": "Prevents the supplied keys' IDs from being auto-allocated by Cloud\nDatastore.", + "request": { + "$ref": "ReserveIdsRequest" + } }, "runQuery": { + "flatPath": "v1/projects/{projectId}:runQuery", + "id": "datastore.projects.runQuery", + "path": "v1/projects/{projectId}:runQuery", "request": { "$ref": "RunQueryRequest" }, @@ -77,24 +138,14 @@ ], "parameters": { "projectId": { + "location": "path", "description": "The ID of the project against which to make the request.", "type": "string", - "required": true, - "location": "path" + "required": true } - }, - "flatPath": "v1/projects/{projectId}:runQuery", - "id": "datastore.projects.runQuery", - "path": "v1/projects/{projectId}:runQuery" + } }, "rollback": { - "flatPath": "v1/projects/{projectId}:rollback", - "id": "datastore.projects.rollback", - "path": "v1/projects/{projectId}:rollback", - "request": { - "$ref": "RollbackRequest" - }, - "description": "Rolls back a transaction.", "response": { "$ref": "RollbackResponse" }, @@ -113,20 +164,31 @@ "type": "string", "required": true } - } + }, + "flatPath": "v1/projects/{projectId}:rollback", + "id": "datastore.projects.rollback", + "path": "v1/projects/{projectId}:rollback", + "request": { + "$ref": "RollbackRequest" + }, + "description": "Rolls back a transaction." }, "lookup": { - "description": "Looks up entities by key.", "request": { "$ref": "LookupRequest" }, - "response": { - "$ref": "LookupResponse" - }, + "description": "Looks up entities by key.", + "httpMethod": "POST", "parameterOrder": [ "projectId" ], - "httpMethod": "POST", + "response": { + "$ref": "LookupResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], "parameters": { "projectId": { "location": "path", @@ -135,98 +197,14 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], "flatPath": "v1/projects/{projectId}:lookup", - "id": "datastore.projects.lookup", - "path": "v1/projects/{projectId}:lookup" - }, - "allocateIds": { - "id": "datastore.projects.allocateIds", - "path": "v1/projects/{projectId}:allocateIds", - "request": { - "$ref": "AllocateIdsRequest" - }, - "description": "Allocates IDs for the given keys, which is useful for referencing an entity\nbefore it is inserted.", - "response": { - "$ref": "AllocateIdsResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "parameters": { - "projectId": { - "description": "The ID of the project against which to make the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/projects/{projectId}:allocateIds" + "path": "v1/projects/{projectId}:lookup", + "id": "datastore.projects.lookup" } }, "resources": { "operations": { "methods": { - "cancel": { - "id": "datastore.projects.operations.cancel", - "path": "v1/{+name}:cancel", - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/operations/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/operations/{operationsId}:cancel" - }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/operations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "flatPath": "v1/projects/{projectsId}/operations/{operationsId}", - "path": "v1/{+name}", - "id": "datastore.projects.operations.delete" - }, "get": { "response": { "$ref": "GoogleLongrunningOperation" @@ -241,11 +219,11 @@ ], "parameters": { "name": { + "pattern": "^projects/[^/]+/operations/[^/]+$", + "location": "path", "description": "The name of the operation resource.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/operations/[^/]+$", - "location": "path" + "required": true } }, "flatPath": "v1/projects/{projectsId}/operations/{operationsId}", @@ -254,6 +232,7 @@ "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." }, "list": { + "flatPath": "v1/projects/{projectsId}/operations", "id": "datastore.projects.operations.list", "path": "v1/{+name}/operations", "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", @@ -266,21 +245,21 @@ "httpMethod": "GET", "parameters": { "filter": { - "location": "query", "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "description": "The standard list page token.", "type": "string", "location": "query" }, + "pageToken": { + "type": "string", + "location": "query", + "description": "The standard list page token." + }, "name": { + "location": "path", "description": "The name of the operation's parent resource.", "type": "string", "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+$" }, "pageSize": { "format": "int32", @@ -289,11 +268,62 @@ "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "cancel": { + "parameters": { + "name": { + "location": "path", + "description": "The name of the operation resource to be cancelled.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/operations/[^/]+$" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" ], - "flatPath": "v1/projects/{projectsId}/operations" + "flatPath": "v1/projects/{projectsId}/operations/{operationsId}:cancel", + "id": "datastore.projects.operations.cancel", + "path": "v1/{+name}:cancel", + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST" + }, + "delete": { + "id": "datastore.projects.operations.delete", + "path": "v1/{+name}", + "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource to be deleted.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/operations/{operationsId}" } } } @@ -301,52 +331,7 @@ } }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, "alt": { - "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", "description": "Data format for response.", "default": "json", "enum": [ @@ -354,17 +339,23 @@ "media", "proto" ], - "type": "string" + "type": "string", + "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" }, "key": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "access_token": { + "location": "query", "description": "OAuth access token.", - "type": "string", - "location": "query" + "type": "string" }, "quotaUser": { "location": "query", @@ -378,111 +369,460 @@ "location": "query" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string" + "type": "string", + "location": "query" }, "bearer_token": { "location": "query", "description": "OAuth bearer token.", "type": "string" + }, + "upload_protocol": { + "type": "string", + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format." } }, "schemas": { - "Mutation": { - "description": "A mutation to apply to an entity.", + "Entity": { "type": "object", "properties": { - "delete": { - "description": "The key of the entity to delete. The entity may or may not already exist.\nMust have a complete key path and must not be reserved/read-only.", + "key": { + "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example,\nan entity in `Value.entity_value` may have no key).\nAn entity's kind is its key path's last element's kind,\nor null if it has no key.", "$ref": "Key" }, - "baseVersion": { - "format": "int64", - "description": "The version of the entity that this mutation is being applied to. If this\ndoes not match the current version on the server, the mutation conflicts.", - "type": "string" - }, - "insert": { - "description": "The entity to insert. The entity must not already exist.\nThe entity key's final path element may be incomplete.", - "$ref": "Entity" - }, - "update": { - "$ref": "Entity", - "description": "The entity to update. The entity must already exist.\nMust have a complete key path." - }, - "upsert": { - "description": "The entity to upsert. The entity may or may not already exist.\nThe entity key's final path element may be incomplete.", - "$ref": "Entity" + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "Value" + }, + "description": "The entity's properties.\nThe map's keys are property names.\nA property name matching regex `__.*__` is reserved.\nA reserved property name is forbidden in certain documented contexts.\nThe name must not contain more than 500 characters.\nThe name cannot be `\"\"`." } }, - "id": "Mutation" + "id": "Entity", + "description": "A Datastore data object.\n\nAn entity is limited to 1 megabyte when stored. That _roughly_\ncorresponds to a limit of 1 megabyte for the serialized form of this\nmessage." }, - "ReadOptions": { - "description": "The options shared by read requests.", + "GoogleDatastoreAdminV1beta1Progress": { + "type": "object", + "properties": { + "workEstimated": { + "format": "int64", + "description": "An estimate of how much work needs to be performed. May be zero if the\nwork estimate is unavailable.", + "type": "string" + }, + "workCompleted": { + "format": "int64", + "description": "The amount of work that has been completed. Note that this may be greater\nthan work_estimated.", + "type": "string" + } + }, + "id": "GoogleDatastoreAdminV1beta1Progress", + "description": "Measures the progress of a particular metric." + }, + "QueryResultBatch": { + "id": "QueryResultBatch", + "description": "A batch of results produced by a query.", + "type": "object", + "properties": { + "entityResults": { + "description": "The results for this batch.", + "items": { + "$ref": "EntityResult" + }, + "type": "array" + }, + "endCursor": { + "format": "byte", + "description": "A cursor that points to the position after the last result in the batch.", + "type": "string" + }, + "moreResults": { + "description": "The state of the query after the current batch.", + "type": "string", + "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\ncursor.", + "The query is finished, and there are no more results." + ], + "enum": [ + "MORE_RESULTS_TYPE_UNSPECIFIED", + "NOT_FINISHED", + "MORE_RESULTS_AFTER_LIMIT", + "MORE_RESULTS_AFTER_CURSOR", + "NO_MORE_RESULTS" + ] + }, + "snapshotVersion": { + "type": "string", + "format": "int64", + "description": "The version number of the snapshot this batch was returned from.\nThis applies to the range of results from the query's `start_cursor` (or\nthe beginning of the query if no cursor was given) to this batch's\n`end_cursor` (not the query's `end_cursor`).\n\nIn a single transaction, subsequent query result batches for the same query\ncan have a greater snapshot version number. Each batch's snapshot version\nis valid for all preceding batches.\nThe value will be zero for eventually consistent queries." + }, + "skippedCursor": { + "format": "byte", + "description": "A cursor that points to the position after the last skipped result.\nWill be set when `skipped_results` != 0.", + "type": "string" + }, + "skippedResults": { + "format": "int32", + "description": "The number of results skipped, typically because of an offset.", + "type": "integer" + }, + "entityResultType": { + "description": "The result type for every entity in `entity_results`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value is never used.", + "The key and properties.", + "A projected subset of properties. The entity may have no key.", + "Only the key." + ], + "enum": [ + "RESULT_TYPE_UNSPECIFIED", + "FULL", + "PROJECTION", + "KEY_ONLY" + ] + } + } + }, + "PathElement": { + "properties": { + "name": { + "description": "The name of the entity.\nA name matching regex `__.*__` is reserved/read-only.\nA name must not be more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", + "type": "string" + }, + "kind": { + "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", + "type": "string" + }, + "id": { + "format": "int64", + "description": "The auto-allocated ID of the entity.\nNever equal to zero. Values less than zero are discouraged and may not\nbe supported in the future.", + "type": "string" + } + }, + "id": "PathElement", + "description": "A (kind, ID/name) pair used to construct a key path.\n\nIf either name or ID is set, the element is complete.\nIf neither is set, the element is incomplete.", + "type": "object" + }, + "GqlQueryParameter": { + "id": "GqlQueryParameter", + "description": "A binding parameter for a GQL query.", + "type": "object", + "properties": { + "cursor": { + "format": "byte", + "description": "A query cursor. Query cursors are returned in query\nresult batches.", + "type": "string" + }, + "value": { + "description": "A value parameter.", + "$ref": "Value" + } + } + }, + "GoogleLongrunningListOperationsResponse": { + "type": "object", + "properties": { + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "GoogleLongrunningOperation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "id": "GoogleLongrunningListOperationsResponse", + "description": "The response message for Operations.ListOperations." + }, + "BeginTransactionResponse": { + "description": "The response for Datastore.BeginTransaction.", "type": "object", "properties": { "transaction": { "format": "byte", - "description": "The identifier of the transaction in which to read. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", - "type": "string" - }, - "readConsistency": { - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Strong consistency.", - "Eventual consistency." - ], - "enum": [ - "READ_CONSISTENCY_UNSPECIFIED", - "STRONG", - "EVENTUAL" - ], - "description": "The non-transactional read consistency to use.\nCannot be set to `STRONG` for global queries.", + "description": "The transaction identifier (always present).", "type": "string" } }, - "id": "ReadOptions" + "id": "BeginTransactionResponse" + }, + "AllocateIdsRequest": { + "properties": { + "keys": { + "description": "A list of keys with incomplete key paths for which to allocate IDs.\nNo key may be reserved/read-only.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + }, + "id": "AllocateIdsRequest", + "description": "The request for Datastore.AllocateIds.", + "type": "object" + }, + "RunQueryResponse": { + "id": "RunQueryResponse", + "description": "The response for Datastore.RunQuery.", + "type": "object", + "properties": { + "query": { + "description": "The parsed form of the `GqlQuery` from the request, if it was set.", + "$ref": "Query" + }, + "batch": { + "$ref": "QueryResultBatch", + "description": "A batch of query results (always present)." + } + } + }, + "LookupResponse": { + "properties": { + "missing": { + "description": "Entities not found as `ResultType.KEY_ONLY` entities. The order of results\nin this field is undefined and has no relation to the order of the keys\nin the input.", + "items": { + "$ref": "EntityResult" + }, + "type": "array" + }, + "found": { + "description": "Entities found as `ResultType.FULL` entities. The order of results in this\nfield is undefined and has no relation to the order of the keys in the\ninput.", + "items": { + "$ref": "EntityResult" + }, + "type": "array" + }, + "deferred": { + "description": "A list of keys that were not looked up due to resource constraints. The\norder of results in this field is undefined and has no relation to the\norder of the keys in the input.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + }, + "id": "LookupResponse", + "description": "The response for Datastore.Lookup.", + "type": "object" + }, + "BeginTransactionRequest": { + "description": "The request for Datastore.BeginTransaction.", + "type": "object", + "properties": { + "transactionOptions": { + "$ref": "TransactionOptions", + "description": "Options for a new transaction." + } + }, + "id": "BeginTransactionRequest" + }, + "CommitRequest": { + "properties": { + "transaction": { + "format": "byte", + "description": "The identifier of the transaction associated with the commit. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", + "type": "string" + }, + "mode": { + "enum": [ + "MODE_UNSPECIFIED", + "TRANSACTIONAL", + "NON_TRANSACTIONAL" + ], + "description": "The type of commit to perform. Defaults to `TRANSACTIONAL`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Transactional: The mutations are either all applied, or none are applied.\nLearn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).", + "Non-transactional: The mutations may not apply as all or none." + ] + }, + "mutations": { + "description": "The mutations to perform.\n\nWhen mode is `TRANSACTIONAL`, mutations affecting a single entity are\napplied in order. The following sequences of mutations affecting a single\nentity are not permitted in a single `Commit` request:\n\n- `insert` followed by `insert`\n- `update` followed by `insert`\n- `upsert` followed by `insert`\n- `delete` followed by `update`\n\nWhen mode is `NON_TRANSACTIONAL`, no two mutations may affect a single\nentity.", + "items": { + "$ref": "Mutation" + }, + "type": "array" + } + }, + "id": "CommitRequest", + "description": "The request for Datastore.Commit.", + "type": "object" + }, + "KindExpression": { + "description": "A representation of a kind.", + "type": "object", + "properties": { + "name": { + "description": "The name of the kind.", + "type": "string" + } + }, + "id": "KindExpression" + }, + "LatLng": { + "id": "LatLng", + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "longitude": { + "format": "double", + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "type": "number" + }, + "latitude": { + "format": "double", + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "type": "number" + } + } + }, + "Key": { + "description": "A unique identifier for an entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts.", + "type": "object", + "properties": { + "partitionId": { + "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition.", + "$ref": "PartitionId" + }, + "path": { + "items": { + "$ref": "PathElement" + }, + "type": "array", + "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nAn entity path is always fully complete: *all* of the entity's ancestors\nare required to be in the path along with the entity identifier itself.\nThe only exception is that in some documented cases, the identifier in the\nlast path element (for the entity) itself may be omitted. For example,\nthe last path element of the key of `Mutation.insert` may have no\nidentifier.\n\nA path can never be empty, and a path can have at most 100 elements." + } + }, + "id": "Key" + }, + "GoogleDatastoreAdminV1beta1CommonMetadata": { + "description": "Metadata common to all Datastore Admin operations.", + "type": "object", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", + "type": "object" + }, + "endTime": { + "format": "google-datetime", + "description": "The time the operation ended, either successfully or otherwise.", + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "INITIALIZING", + "PROCESSING", + "CANCELLING", + "FINALIZING", + "SUCCESSFUL", + "FAILED", + "CANCELLED" + ], + "description": "The current state of the Operation.", + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "Request is being prepared for processing.", + "Request is actively being processed.", + "Request is in the process of being cancelled after user called\ngoogle.longrunning.Operations.CancelOperation on the operation.", + "Request has been processed and is in its finalization stage.", + "Request has completed successfully.", + "Request has finished being processed, but encountered an error.", + "Request has finished being cancelled after user called\ngoogle.longrunning.Operations.CancelOperation." + ] + }, + "operationType": { + "description": "The type of the operation. Can be used as a filter in\nListOperationsRequest.", + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "ExportEntities.", + "ImportEntities." + ], + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "EXPORT_ENTITIES", + "IMPORT_ENTITIES" + ] + }, + "startTime": { + "type": "string", + "format": "google-datetime", + "description": "The time that work began on the operation." + } + }, + "id": "GoogleDatastoreAdminV1beta1CommonMetadata" + }, + "ArrayValue": { + "type": "object", + "properties": { + "values": { + "description": "Values in the array.\nThe order of this array may not be preserved if it contains a mix of\nindexed and unindexed values.", + "items": { + "$ref": "Value" + }, + "type": "array" + } + }, + "id": "ArrayValue", + "description": "An array value." }, "GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { + "id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse", "description": "The response for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", "type": "object", "properties": { "outputUrl": { - "description": "Location of the output metadata file. This can be used to begin an import\ninto Cloud Datastore (this project or another project). See\ngoogle.datastore.admin.v1beta1.ImportEntitiesRequest.input_url.\nOnly present if the operation completed successfully.", - "type": "string" + "type": "string", + "description": "Location of the output metadata file. This can be used to begin an import\ninto Cloud Datastore (this project or another project). See\ngoogle.datastore.admin.v1beta1.ImportEntitiesRequest.input_url.\nOnly present if the operation completed successfully." } - }, - "id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse" - }, - "RollbackResponse": { - "description": "The response for Datastore.Rollback.\n(an empty message).", - "type": "object", - "properties": {}, - "id": "RollbackResponse" - }, - "MutationResult": { - "description": "The result of applying a mutation.", - "type": "object", - "properties": { - "version": { - "format": "int64", - "description": "The version of the entity on the server after processing the mutation. If\nthe mutation doesn't change anything on the server, then the version will\nbe the version of the current entity or, if no entity is present, a version\nthat is strictly greater than the version of any previous entity and less\nthan the version of any possible future entity.", - "type": "string" - }, - "conflictDetected": { - "description": "Whether a conflict was detected for this mutation. Always false when a\nconflict detection strategy field is not set in the mutation.", - "type": "boolean" - }, - "key": { - "description": "The automatically allocated key.\nSet only when the mutation allocated a key.", - "$ref": "Key" - } - }, - "id": "MutationResult" + } }, "GqlQuery": { - "description": "A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", - "type": "object", "properties": { "queryString": { "description": "A string of the format described\n[here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", @@ -496,36 +836,46 @@ "type": "array" }, "namedBindings": { + "type": "object", "additionalProperties": { "$ref": "GqlQueryParameter" }, - "description": "For each non-reserved named binding site in the query string, there must be\na named parameter with that name, but not necessarily the inverse.\n\nKey must match regex `A-Za-z_$*`, must not match regex\n`__.*__`, and must not be `\"\"`.", - "type": "object" + "description": "For each non-reserved named binding site in the query string, there must be\na named parameter with that name, but not necessarily the inverse.\n\nKey must match regex `A-Za-z_$*`, must not match regex\n`__.*__`, and must not be `\"\"`." }, "allowLiterals": { "description": "When false, the query string must not contain any literals and instead must\nbind all values. For example,\n`SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while\n`SELECT * FROM Kind WHERE a = @value` is.", "type": "boolean" } }, - "id": "GqlQuery" + "id": "GqlQuery", + "description": "A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", + "type": "object" }, "Filter": { + "id": "Filter", "description": "A holder for any type of filter.", "type": "object", "properties": { - "compositeFilter": { - "description": "A composite filter.", - "$ref": "CompositeFilter" - }, "propertyFilter": { - "$ref": "PropertyFilter", - "description": "A filter on a property." + "description": "A filter on a property.", + "$ref": "PropertyFilter" + }, + "compositeFilter": { + "$ref": "CompositeFilter", + "description": "A composite filter." } - }, - "id": "Filter" + } }, "RunQueryRequest": { "properties": { + "gqlQuery": { + "description": "The GQL query to run.", + "$ref": "GqlQuery" + }, + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, identified by a partition ID.\nQueries are scoped to a single partition.\nThis partition ID is normalized with the standard default context\npartition ID." + }, "readOptions": { "$ref": "ReadOptions", "description": "The options for this query." @@ -533,14 +883,6 @@ "query": { "description": "The query to run.", "$ref": "Query" - }, - "gqlQuery": { - "description": "The GQL query to run.", - "$ref": "GqlQuery" - }, - "partitionId": { - "description": "Entities are partitioned into subsets, identified by a partition ID.\nQueries are scoped to a single partition.\nThis partition ID is normalized with the standard default context\npartition ID.", - "$ref": "PartitionId" } }, "id": "RunQueryRequest", @@ -553,45 +895,6 @@ "properties": {}, "id": "Empty" }, - "RollbackRequest": { - "description": "The request for Datastore.Rollback.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The transaction identifier, returned by a call to\nDatastore.BeginTransaction.", - "type": "string" - } - }, - "id": "RollbackRequest" - }, - "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { - "description": "Metadata for ExportEntities operations.", - "type": "object", - "properties": { - "progressBytes": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of bytes processed." - }, - "outputUrlPrefix": { - "description": "Location for the export metadata and data files. This will be the same\nvalue as the\ngoogle.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix\nfield. The final output location is provided in\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", - "type": "string" - }, - "entityFilter": { - "description": "Description of which entities are being exported.", - "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" - }, - "progressEntities": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of entities processed." - }, - "common": { - "description": "Metadata common to all Datastore Admin operations.", - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" - } - }, - "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata" - }, "TransactionOptions": { "description": "Options for beginning a new transaction.\n\nTransactions can be created explicitly with calls to\nDatastore.BeginTransaction or implicitly by setting\nReadOptions.new_transaction in read requests.", "type": "object", @@ -601,45 +904,19 @@ "$ref": "ReadOnly" }, "readWrite": { - "description": "The transaction should allow both reads and writes.", - "$ref": "ReadWrite" + "$ref": "ReadWrite", + "description": "The transaction should allow both reads and writes." } }, "id": "TransactionOptions" }, - "CompositeFilter": { - "description": "A filter that merges multiple other filters using the given operator.", - "type": "object", - "properties": { - "filters": { - "description": "The list of filters to combine.\nMust contain at least one filter.", - "items": { - "$ref": "Filter" - }, - "type": "array" - }, - "op": { - "enum": [ - "OPERATOR_UNSPECIFIED", - "AND" - ], - "description": "The operator for combining multiple filters.", - "type": "string", - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." - ] - } - }, - "id": "CompositeFilter" - }, "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { "description": "Metadata for ImportEntities operations.", "type": "object", "properties": { "common": { - "description": "Metadata common to all Datastore Admin operations.", - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", + "description": "Metadata common to all Datastore Admin operations." }, "inputUrl": { "description": "The location of the import metadata file. This will be the same value as\nthe google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield.", @@ -650,34 +927,45 @@ "$ref": "GoogleDatastoreAdminV1beta1Progress" }, "entityFilter": { - "description": "Description of which entities are being imported.", - "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" + "$ref": "GoogleDatastoreAdminV1beta1EntityFilter", + "description": "Description of which entities are being imported." }, "progressEntities": { - "description": "An estimate of the number of entities processed.", - "$ref": "GoogleDatastoreAdminV1beta1Progress" + "$ref": "GoogleDatastoreAdminV1beta1Progress", + "description": "An estimate of the number of entities processed." } }, "id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata" }, - "AllocateIdsResponse": { - "description": "The response for Datastore.AllocateIds.", - "type": "object", - "properties": { - "keys": { - "description": "The keys specified in the request (in the same order), each with\nits key path completed with a newly allocated ID.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "AllocateIdsResponse" - }, "Query": { + "id": "Query", "description": "A query for entities.", "type": "object", "properties": { + "endCursor": { + "format": "byte", + "description": "An ending point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "type": "string" + }, + "filter": { + "$ref": "Filter", + "description": "The filter to apply." + }, + "limit": { + "format": "int32", + "description": "The maximum number of results to return. Applies after all other\nconstraints. Optional.\nUnspecified is interpreted as no limit.\nMust be \u003e= 0 if specified.", + "type": "integer" + }, + "startCursor": { + "format": "byte", + "description": "A starting point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "type": "string" + }, + "offset": { + "format": "int32", + "description": "The number of results to skip. Applies before limit, but after all other\nconstraints. Optional. Must be \u003e= 0 if specified.", + "type": "integer" + }, "kind": { "description": "The kinds to query (if empty, returns entities of all kinds).\nCurrently at most 1 kind may be specified.", "items": { @@ -705,49 +993,424 @@ "$ref": "Projection" }, "type": "array" - }, - "endCursor": { + } + } + }, + "ReadOnly": { + "id": "ReadOnly", + "description": "Options specific to read-only transactions.", + "type": "object", + "properties": {} + }, + "EntityResult": { + "id": "EntityResult", + "description": "The result of fetching an entity from Datastore.", + "type": "object", + "properties": { + "cursor": { "format": "byte", - "description": "An ending point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "description": "A cursor that points to the position after the result entity.\nSet only when the `EntityResult` is part of a `QueryResultBatch` message.", "type": "string" }, - "limit": { + "version": { + "format": "int64", + "description": "The version of the entity, a strictly positive number that monotonically\nincreases with changes to the entity.\n\nThis field is set for `FULL` entity\nresults.\n\nFor missing entities in `LookupResponse`, this\nis the version of the snapshot that was used to look up the entity, and it\nis always set except for eventually consistent reads.", + "type": "string" + }, + "entity": { + "$ref": "Entity", + "description": "The resulting entity." + } + } + }, + "Value": { + "description": "A message that can hold any of the supported value types and associated\nmetadata.", + "type": "object", + "properties": { + "meaning": { "format": "int32", - "description": "The maximum number of results to return. Applies after all other\nconstraints. Optional.\nUnspecified is interpreted as no limit.\nMust be \u003e= 0 if specified.", + "description": "The `meaning` field should only be populated for backwards compatibility.", "type": "integer" }, - "filter": { - "$ref": "Filter", - "description": "The filter to apply." + "arrayValue": { + "description": "An array value.\nCannot contain another array value.\nA `Value` instance that sets field `array_value` must not set fields\n`meaning` or `exclude_from_indexes`.", + "$ref": "ArrayValue" }, - "offset": { - "format": "int32", - "description": "The number of results to skip. Applies before limit, but after all other\nconstraints. Optional. Must be \u003e= 0 if specified.", - "type": "integer" + "entityValue": { + "$ref": "Entity", + "description": "An entity value.\n\n- May have no key.\n- May have a key with an incomplete key path.\n- May have a reserved/read-only key." }, - "startCursor": { + "geoPointValue": { + "$ref": "LatLng", + "description": "A geo point value representing a point on the surface of Earth." + }, + "integerValue": { + "format": "int64", + "description": "An integer value.", + "type": "string" + }, + "keyValue": { + "$ref": "Key", + "description": "A key value." + }, + "stringValue": { + "description": "A UTF-8 encoded string value.\nWhen `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.\nOtherwise, may be set to at least 1,000,000 bytes.", + "type": "string" + }, + "excludeFromIndexes": { + "description": "If the value should be excluded from all indexes including those defined\nexplicitly.", + "type": "boolean" + }, + "doubleValue": { + "format": "double", + "description": "A double value.", + "type": "number" + }, + "timestampValue": { + "format": "google-datetime", + "description": "A timestamp value.\nWhen stored in the Datastore, precise only to microseconds;\nany additional precision is rounded down.", + "type": "string" + }, + "booleanValue": { + "description": "A boolean value.", + "type": "boolean" + }, + "nullValue": { + "enum": [ + "NULL_VALUE" + ], + "description": "A null value.", + "type": "string", + "enumDescriptions": [ + "Null value." + ] + }, + "blobValue": { "format": "byte", - "description": "A starting point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "description": "A blob value.\nMay have at most 1,000,000 bytes.\nWhen `exclude_from_indexes` is false, may have at most 1500 bytes.\nIn JSON requests, must be base64-encoded.", "type": "string" } }, - "id": "Query" + "id": "Value" }, - "GoogleLongrunningOperation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "ReadWrite": { + "description": "Options specific to read / write transactions.", "type": "object", "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "previousTransaction": { + "format": "byte", + "description": "The transaction identifier of the transaction being retried.", + "type": "string" + } + }, + "id": "ReadWrite" + }, + "LookupRequest": { + "type": "object", + "properties": { + "keys": { + "description": "Keys of entities to look up.", + "items": { + "$ref": "Key" + }, + "type": "array" + }, + "readOptions": { + "description": "The options for this lookup request.", + "$ref": "ReadOptions" + } + }, + "id": "LookupRequest", + "description": "The request for Datastore.Lookup." + }, + "ReserveIdsRequest": { + "description": "The request for Datastore.ReserveIds.", + "type": "object", + "properties": { + "keys": { + "items": { + "$ref": "Key" + }, + "type": "array", + "description": "A list of keys with complete key paths whose numeric IDs should not be\nauto-allocated." + }, + "databaseId": { + "description": "If not empty, the ID of the database against which to make the request.", + "type": "string" + } + }, + "id": "ReserveIdsRequest" + }, + "Status": { + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "PropertyOrder": { + "description": "The desired order for a specific property.", + "type": "object", + "properties": { + "direction": { + "description": "The direction to order by. Defaults to `ASCENDING`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Ascending.", + "Descending." + ], + "enum": [ + "DIRECTION_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ] + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to order by." + } + }, + "id": "PropertyOrder" + }, + "ReserveIdsResponse": { + "description": "The response for Datastore.ReserveIds.", + "type": "object", + "properties": {}, + "id": "ReserveIdsResponse" + }, + "GoogleDatastoreAdminV1beta1EntityFilter": { + "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']", + "type": "object", + "properties": { + "kinds": { + "description": "If empty, then this represents all kinds.", + "items": { + "type": "string" + }, + "type": "array" + }, + "namespaceIds": { + "description": "An empty list represents all namespaces. This is the preferred\nusage for projects that don't use namespaces.\n\nAn empty string element represents the default namespace. This should be\nused if the project has data in non-default namespaces, but doesn't want to\ninclude them.\nEach namespace in this list must be unique.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "GoogleDatastoreAdminV1beta1EntityFilter" + }, + "PropertyReference": { + "description": "A reference to a property relative to the kind expressions.", + "type": "object", + "properties": { + "name": { + "description": "The name of the property.\nIf name includes \".\"s, it may be interpreted as a property name path.", + "type": "string" + } + }, + "id": "PropertyReference" + }, + "Projection": { + "description": "A representation of a property in a projection.", + "type": "object", + "properties": { + "property": { + "$ref": "PropertyReference", + "description": "The property to project." + } + }, + "id": "Projection" + }, + "Mutation": { + "id": "Mutation", + "description": "A mutation to apply to an entity.", + "type": "object", + "properties": { + "update": { + "$ref": "Entity", + "description": "The entity to update. The entity must already exist.\nMust have a complete key path." + }, + "upsert": { + "$ref": "Entity", + "description": "The entity to upsert. The entity may or may not already exist.\nThe entity key's final path element may be incomplete." + }, + "delete": { + "$ref": "Key", + "description": "The key of the entity to delete. The entity may or may not already exist.\nMust have a complete key path and must not be reserved/read-only." + }, + "baseVersion": { + "type": "string", + "format": "int64", + "description": "The version of the entity that this mutation is being applied to. If this\ndoes not match the current version on the server, the mutation conflicts." + }, + "insert": { + "description": "The entity to insert. The entity must not already exist.\nThe entity key's final path element may be incomplete.", + "$ref": "Entity" + } + } + }, + "ReadOptions": { + "description": "The options shared by read requests.", + "type": "object", + "properties": { + "transaction": { + "format": "byte", + "description": "The identifier of the transaction in which to read. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", + "type": "string" + }, + "readConsistency": { + "description": "The non-transactional read consistency to use.\nCannot be set to `STRONG` for global queries.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Strong consistency.", + "Eventual consistency." + ], + "enum": [ + "READ_CONSISTENCY_UNSPECIFIED", + "STRONG", + "EVENTUAL" + ] + } + }, + "id": "ReadOptions" + }, + "RollbackResponse": { + "description": "The response for Datastore.Rollback.\n(an empty message).", + "type": "object", + "properties": {}, + "id": "RollbackResponse" + }, + "MutationResult": { + "description": "The result of applying a mutation.", + "type": "object", + "properties": { + "conflictDetected": { + "description": "Whether a conflict was detected for this mutation. Always false when a\nconflict detection strategy field is not set in the mutation.", "type": "boolean" }, + "key": { + "description": "The automatically allocated key.\nSet only when the mutation allocated a key.", + "$ref": "Key" + }, + "version": { + "format": "int64", + "description": "The version of the entity on the server after processing the mutation. If\nthe mutation doesn't change anything on the server, then the version will\nbe the version of the current entity or, if no entity is present, a version\nthat is strictly greater than the version of any previous entity and less\nthan the version of any possible future entity.", + "type": "string" + } + }, + "id": "MutationResult" + }, + "RollbackRequest": { + "description": "The request for Datastore.Rollback.", + "type": "object", + "properties": { + "transaction": { + "format": "byte", + "description": "The transaction identifier, returned by a call to\nDatastore.BeginTransaction.", + "type": "string" + } + }, + "id": "RollbackRequest" + }, + "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { + "description": "Metadata for ExportEntities operations.", + "type": "object", + "properties": { + "progressBytes": { + "description": "An estimate of the number of bytes processed.", + "$ref": "GoogleDatastoreAdminV1beta1Progress" + }, + "outputUrlPrefix": { + "description": "Location for the export metadata and data files. This will be the same\nvalue as the\ngoogle.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix\nfield. The final output location is provided in\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", + "type": "string" + }, + "entityFilter": { + "$ref": "GoogleDatastoreAdminV1beta1EntityFilter", + "description": "Description of which entities are being exported." + }, + "progressEntities": { + "description": "An estimate of the number of entities processed.", + "$ref": "GoogleDatastoreAdminV1beta1Progress" + }, + "common": { + "description": "Metadata common to all Datastore Admin operations.", + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" + } + }, + "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata" + }, + "CompositeFilter": { + "description": "A filter that merges multiple other filters using the given operator.", + "type": "object", + "properties": { + "filters": { + "description": "The list of filters to combine.\nMust contain at least one filter.", + "items": { + "$ref": "Filter" + }, + "type": "array" + }, + "op": { + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "The results are required to satisfy each of the combined filters." + ], + "enum": [ + "OPERATOR_UNSPECIFIED", + "AND" + ], + "description": "The operator for combining multiple filters.", + "type": "string" + } + }, + "id": "CompositeFilter" + }, + "AllocateIdsResponse": { + "description": "The response for Datastore.AllocateIds.", + "type": "object", + "properties": { + "keys": { + "description": "The keys specified in the request (in the same order), each with\nits key path completed with a newly allocated ID.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + }, + "id": "AllocateIdsResponse" + }, + "GoogleLongrunningOperation": { + "type": "object", + "properties": { "response": { + "type": "object", "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`." }, "name": { "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", @@ -764,15 +1427,14 @@ }, "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" } }, - "id": "GoogleLongrunningOperation" - }, - "ReadOnly": { - "description": "Options specific to read-only transactions.", - "type": "object", - "properties": {}, - "id": "ReadOnly" + "id": "GoogleLongrunningOperation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." }, "PropertyFilter": { "description": "A filter on a specific property.", @@ -783,19 +1445,10 @@ "description": "The value to compare the property to." }, "property": { - "$ref": "PropertyReference", - "description": "The property to filter by." + "description": "The property to filter by.", + "$ref": "PropertyReference" }, "op": { - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Less than.", - "Less than or equal.", - "Greater than.", - "Greater than or equal.", - "Equal.", - "Has ancestor." - ], "enum": [ "OPERATOR_UNSPECIFIED", "LESS_THAN", @@ -806,102 +1459,20 @@ "HAS_ANCESTOR" ], "description": "The operator to filter by.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Less than.", + "Less than or equal.", + "Greater than.", + "Greater than or equal.", + "Equal.", + "Has ancestor." + ] } }, "id": "PropertyFilter" }, - "EntityResult": { - "description": "The result of fetching an entity from Datastore.", - "type": "object", - "properties": { - "cursor": { - "format": "byte", - "description": "A cursor that points to the position after the result entity.\nSet only when the `EntityResult` is part of a `QueryResultBatch` message.", - "type": "string" - }, - "version": { - "format": "int64", - "description": "The version of the entity, a strictly positive number that monotonically\nincreases with changes to the entity.\n\nThis field is set for `FULL` entity\nresults.\n\nFor missing entities in `LookupResponse`, this\nis the version of the snapshot that was used to look up the entity, and it\nis always set except for eventually consistent reads.", - "type": "string" - }, - "entity": { - "description": "The resulting entity.", - "$ref": "Entity" - } - }, - "id": "EntityResult" - }, - "Value": { - "description": "A message that can hold any of the supported value types and associated\nmetadata.", - "type": "object", - "properties": { - "excludeFromIndexes": { - "description": "If the value should be excluded from all indexes including those defined\nexplicitly.", - "type": "boolean" - }, - "doubleValue": { - "format": "double", - "description": "A double value.", - "type": "number" - }, - "timestampValue": { - "format": "google-datetime", - "description": "A timestamp value.\nWhen stored in the Datastore, precise only to microseconds;\nany additional precision is rounded down.", - "type": "string" - }, - "nullValue": { - "enum": [ - "NULL_VALUE" - ], - "description": "A null value.", - "type": "string", - "enumDescriptions": [ - "Null value." - ] - }, - "booleanValue": { - "description": "A boolean value.", - "type": "boolean" - }, - "blobValue": { - "format": "byte", - "description": "A blob value.\nMay have at most 1,000,000 bytes.\nWhen `exclude_from_indexes` is false, may have at most 1500 bytes.\nIn JSON requests, must be base64-encoded.", - "type": "string" - }, - "meaning": { - "format": "int32", - "description": "The `meaning` field should only be populated for backwards compatibility.", - "type": "integer" - }, - "arrayValue": { - "description": "An array value.\nCannot contain another array value.\nA `Value` instance that sets field `array_value` must not set fields\n`meaning` or `exclude_from_indexes`.", - "$ref": "ArrayValue" - }, - "entityValue": { - "description": "An entity value.\n\n- May have no key.\n- May have a key with an incomplete key path.\n- May have a reserved/read-only key.", - "$ref": "Entity" - }, - "geoPointValue": { - "description": "A geo point value representing a point on the surface of Earth.", - "$ref": "LatLng" - }, - "integerValue": { - "format": "int64", - "description": "An integer value.", - "type": "string" - }, - "keyValue": { - "description": "A key value.", - "$ref": "Key" - }, - "stringValue": { - "description": "A UTF-8 encoded string value.\nWhen `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.\nOtherwise, may be set to at least 1,000,000 bytes.", - "type": "string" - } - }, - "id": "Value" - }, "CommitResponse": { "description": "The response for Datastore.Commit.", "type": "object", @@ -935,547 +1506,30 @@ } }, "id": "PartitionId" - }, - "ReadWrite": { - "description": "Options specific to read / write transactions.", - "type": "object", - "properties": { - "previousTransaction": { - "format": "byte", - "description": "The transaction identifier of the transaction being retried.", - "type": "string" - } - }, - "id": "ReadWrite" - }, - "Entity": { - "properties": { - "key": { - "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example,\nan entity in `Value.entity_value` may have no key).\nAn entity's kind is its key path's last element's kind,\nor null if it has no key.", - "$ref": "Key" - }, - "properties": { - "additionalProperties": { - "$ref": "Value" - }, - "description": "The entity's properties.\nThe map's keys are property names.\nA property name matching regex `__.*__` is reserved.\nA reserved property name is forbidden in certain documented contexts.\nThe name must not contain more than 500 characters.\nThe name cannot be `\"\"`.", - "type": "object" - } - }, - "id": "Entity", - "description": "A Datastore data object.\n\nAn entity is limited to 1 megabyte when stored. That _roughly_\ncorresponds to a limit of 1 megabyte for the serialized form of this\nmessage.", - "type": "object" - }, - "GoogleDatastoreAdminV1beta1Progress": { - "description": "Measures the progress of a particular metric.", - "type": "object", - "properties": { - "workCompleted": { - "format": "int64", - "description": "The amount of work that has been completed. Note that this may be greater\nthan work_estimated.", - "type": "string" - }, - "workEstimated": { - "format": "int64", - "description": "An estimate of how much work needs to be performed. May be zero if the\nwork estimate is unavailable.", - "type": "string" - } - }, - "id": "GoogleDatastoreAdminV1beta1Progress" - }, - "QueryResultBatch": { - "description": "A batch of results produced by a query.", - "type": "object", - "properties": { - "snapshotVersion": { - "format": "int64", - "description": "The version number of the snapshot this batch was returned from.\nThis applies to the range of results from the query's `start_cursor` (or\nthe beginning of the query if no cursor was given) to this batch's\n`end_cursor` (not the query's `end_cursor`).\n\nIn a single transaction, subsequent query result batches for the same query\ncan have a greater snapshot version number. Each batch's snapshot version\nis valid for all preceding batches.\nThe value will be zero for eventually consistent queries.", - "type": "string" - }, - "skippedCursor": { - "format": "byte", - "description": "A cursor that points to the position after the last skipped result.\nWill be set when `skipped_results` != 0.", - "type": "string" - }, - "skippedResults": { - "format": "int32", - "description": "The number of results skipped, typically because of an offset.", - "type": "integer" - }, - "entityResultType": { - "enumDescriptions": [ - "Unspecified. This value is never used.", - "The key and properties.", - "A projected subset of properties. The entity may have no key.", - "Only the key." - ], - "enum": [ - "RESULT_TYPE_UNSPECIFIED", - "FULL", - "PROJECTION", - "KEY_ONLY" - ], - "description": "The result type for every entity in `entity_results`.", - "type": "string" - }, - "entityResults": { - "description": "The results for this batch.", - "items": { - "$ref": "EntityResult" - }, - "type": "array" - }, - "endCursor": { - "format": "byte", - "description": "A cursor that points to the position after the last result in the batch.", - "type": "string" - }, - "moreResults": { - "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\ncursor.", - "The query is finished, and there are no more results." - ], - "enum": [ - "MORE_RESULTS_TYPE_UNSPECIFIED", - "NOT_FINISHED", - "MORE_RESULTS_AFTER_LIMIT", - "MORE_RESULTS_AFTER_CURSOR", - "NO_MORE_RESULTS" - ], - "description": "The state of the query after the current batch.", - "type": "string" - } - }, - "id": "QueryResultBatch" - }, - "LookupRequest": { - "description": "The request for Datastore.Lookup.", - "type": "object", - "properties": { - "keys": { - "description": "Keys of entities to look up.", - "items": { - "$ref": "Key" - }, - "type": "array" - }, - "readOptions": { - "description": "The options for this lookup request.", - "$ref": "ReadOptions" - } - }, - "id": "LookupRequest" - }, - "PathElement": { - "description": "A (kind, ID/name) pair used to construct a key path.\n\nIf either name or ID is set, the element is complete.\nIf neither is set, the element is incomplete.", - "type": "object", - "properties": { - "name": { - "description": "The name of the entity.\nA name matching regex `__.*__` is reserved/read-only.\nA name must not be more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", - "type": "string" - }, - "kind": { - "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", - "type": "string" - }, - "id": { - "format": "int64", - "description": "The auto-allocated ID of the entity.\nNever equal to zero. Values less than zero are discouraged and may not\nbe supported in the future.", - "type": "string" - } - }, - "id": "PathElement" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status" - }, - "GqlQueryParameter": { - "properties": { - "cursor": { - "format": "byte", - "description": "A query cursor. Query cursors are returned in query\nresult batches.", - "type": "string" - }, - "value": { - "$ref": "Value", - "description": "A value parameter." - } - }, - "id": "GqlQueryParameter", - "description": "A binding parameter for a GQL query.", - "type": "object" - }, - "GoogleLongrunningListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, - "operations": { - "description": "A list of operations that matches the specified filter in the request.", - "items": { - "$ref": "GoogleLongrunningOperation" - }, - "type": "array" - } - }, - "id": "GoogleLongrunningListOperationsResponse" - }, - "BeginTransactionResponse": { - "description": "The response for Datastore.BeginTransaction.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The transaction identifier (always present).", - "type": "string" - } - }, - "id": "BeginTransactionResponse" - }, - "LookupResponse": { - "description": "The response for Datastore.Lookup.", - "type": "object", - "properties": { - "missing": { - "description": "Entities not found as `ResultType.KEY_ONLY` entities. The order of results\nin this field is undefined and has no relation to the order of the keys\nin the input.", - "items": { - "$ref": "EntityResult" - }, - "type": "array" - }, - "found": { - "description": "Entities found as `ResultType.FULL` entities. The order of results in this\nfield is undefined and has no relation to the order of the keys in the\ninput.", - "items": { - "$ref": "EntityResult" - }, - "type": "array" - }, - "deferred": { - "description": "A list of keys that were not looked up due to resource constraints. The\norder of results in this field is undefined and has no relation to the\norder of the keys in the input.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "LookupResponse" - }, - "RunQueryResponse": { - "description": "The response for Datastore.RunQuery.", - "type": "object", - "properties": { - "query": { - "$ref": "Query", - "description": "The parsed form of the `GqlQuery` from the request, if it was set." - }, - "batch": { - "description": "A batch of query results (always present).", - "$ref": "QueryResultBatch" - } - }, - "id": "RunQueryResponse" - }, - "AllocateIdsRequest": { - "description": "The request for Datastore.AllocateIds.", - "type": "object", - "properties": { - "keys": { - "description": "A list of keys with incomplete key paths for which to allocate IDs.\nNo key may be reserved/read-only.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "AllocateIdsRequest" - }, - "PropertyOrder": { - "description": "The desired order for a specific property.", - "type": "object", - "properties": { - "direction": { - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Ascending.", - "Descending." - ], - "enum": [ - "DIRECTION_UNSPECIFIED", - "ASCENDING", - "DESCENDING" - ], - "description": "The direction to order by. Defaults to `ASCENDING`.", - "type": "string" - }, - "property": { - "description": "The property to order by.", - "$ref": "PropertyReference" - } - }, - "id": "PropertyOrder" - }, - "BeginTransactionRequest": { - "description": "The request for Datastore.BeginTransaction.", - "type": "object", - "properties": { - "transactionOptions": { - "description": "Options for a new transaction.", - "$ref": "TransactionOptions" - } - }, - "id": "BeginTransactionRequest" - }, - "CommitRequest": { - "description": "The request for Datastore.Commit.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The identifier of the transaction associated with the commit. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", - "type": "string" - }, - "mode": { - "enum": [ - "MODE_UNSPECIFIED", - "TRANSACTIONAL", - "NON_TRANSACTIONAL" - ], - "description": "The type of commit to perform. Defaults to `TRANSACTIONAL`.", - "type": "string", - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Transactional: The mutations are either all applied, or none are applied.\nLearn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).", - "Non-transactional: The mutations may not apply as all or none." - ] - }, - "mutations": { - "description": "The mutations to perform.\n\nWhen mode is `TRANSACTIONAL`, mutations affecting a single entity are\napplied in order. The following sequences of mutations affecting a single\nentity are not permitted in a single `Commit` request:\n\n- `insert` followed by `insert`\n- `update` followed by `insert`\n- `upsert` followed by `insert`\n- `delete` followed by `update`\n\nWhen mode is `NON_TRANSACTIONAL`, no two mutations may affect a single\nentity.", - "items": { - "$ref": "Mutation" - }, - "type": "array" - } - }, - "id": "CommitRequest" - }, - "KindExpression": { - "description": "A representation of a kind.", - "type": "object", - "properties": { - "name": { - "description": "The name of the kind.", - "type": "string" - } - }, - "id": "KindExpression" - }, - "LatLng": { - "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", - "type": "object", - "properties": { - "latitude": { - "format": "double", - "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", - "type": "number" - }, - "longitude": { - "format": "double", - "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", - "type": "number" - } - }, - "id": "LatLng" - }, - "Key": { - "description": "A unique identifier for an entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts.", - "type": "object", - "properties": { - "path": { - "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nAn entity path is always fully complete: *all* of the entity's ancestors\nare required to be in the path along with the entity identifier itself.\nThe only exception is that in some documented cases, the identifier in the\nlast path element (for the entity) itself may be omitted. For example,\nthe last path element of the key of `Mutation.insert` may have no\nidentifier.\n\nA path can never be empty, and a path can have at most 100 elements.", - "items": { - "$ref": "PathElement" - }, - "type": "array" - }, - "partitionId": { - "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition.", - "$ref": "PartitionId" - } - }, - "id": "Key" - }, - "GoogleDatastoreAdminV1beta1EntityFilter": { - "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']", - "type": "object", - "properties": { - "kinds": { - "description": "If empty, then this represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceIds": { - "description": "An empty list represents all namespaces. This is the preferred\nusage for projects that don't use namespaces.\n\nAn empty string element represents the default namespace. This should be\nused if the project has data in non-default namespaces, but doesn't want to\ninclude them.\nEach namespace in this list must be unique.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "GoogleDatastoreAdminV1beta1EntityFilter" - }, - "PropertyReference": { - "description": "A reference to a property relative to the kind expressions.", - "type": "object", - "properties": { - "name": { - "description": "The name of the property.\nIf name includes \".\"s, it may be interpreted as a property name path.", - "type": "string" - } - }, - "id": "PropertyReference" - }, - "GoogleDatastoreAdminV1beta1CommonMetadata": { - "description": "Metadata common to all Datastore Admin operations.", - "type": "object", - "properties": { - "state": { - "enum": [ - "STATE_UNSPECIFIED", - "INITIALIZING", - "PROCESSING", - "CANCELLING", - "FINALIZING", - "SUCCESSFUL", - "FAILED", - "CANCELLED" - ], - "description": "The current state of the Operation.", - "type": "string", - "enumDescriptions": [ - "Unspecified.", - "Request is being prepared for processing.", - "Request is actively being processed.", - "Request is in the process of being cancelled after user called\ngoogle.longrunning.Operations.CancelOperation on the operation.", - "Request has been processed and is in its finalization stage.", - "Request has completed successfully.", - "Request has finished being processed, but encountered an error.", - "Request has finished being cancelled after user called\ngoogle.longrunning.Operations.CancelOperation." - ] - }, - "operationType": { - "enumDescriptions": [ - "Unspecified.", - "ExportEntities.", - "ImportEntities." - ], - "enum": [ - "OPERATION_TYPE_UNSPECIFIED", - "EXPORT_ENTITIES", - "IMPORT_ENTITIES" - ], - "description": "The type of the operation. Can be used as a filter in\nListOperationsRequest.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The time that work began on the operation.", - "type": "string" - }, - "labels": { - "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "endTime": { - "format": "google-datetime", - "description": "The time the operation ended, either successfully or otherwise.", - "type": "string" - } - }, - "id": "GoogleDatastoreAdminV1beta1CommonMetadata" - }, - "Projection": { - "properties": { - "property": { - "$ref": "PropertyReference", - "description": "The property to project." - } - }, - "id": "Projection", - "description": "A representation of a property in a projection.", - "type": "object" - }, - "ArrayValue": { - "properties": { - "values": { - "description": "Values in the array.\nThe order of this array may not be preserved if it contains a mix of\nindexed and unindexed values.", - "items": { - "$ref": "Value" - }, - "type": "array" - } - }, - "id": "ArrayValue", - "description": "An array value.", - "type": "object" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "version": "v1", "baseUrl": "https://datastore.googleapis.com/", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/datastore": { "description": "View and manage your Google Cloud Datastore data" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } }, - "servicePath": "", - "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.\n", "kind": "discovery#restDescription", + "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.\n", + "servicePath": "", "rootUrl": "https://datastore.googleapis.com/", "basePath": "", "ownerDomain": "google.com", @@ -1483,8 +1537,6 @@ "batchPath": "batch", "id": "datastore:v1", "documentationLink": "https://cloud.google.com/datastore/", - "revision": "20170912", - "title": "Google Cloud Datastore API", - "ownerName": "Google", - "discoveryVersion": "v1" + "revision": "20171010", + "title": "Google Cloud Datastore API" } diff --git a/vendor/google.golang.org/api/datastore/v1/datastore-gen.go b/vendor/google.golang.org/api/datastore/v1/datastore-gen.go index 76d3c750f..3a7f5319b 100644 --- a/vendor/google.golang.org/api/datastore/v1/datastore-gen.go +++ b/vendor/google.golang.org/api/datastore/v1/datastore-gen.go @@ -1871,6 +1871,47 @@ func (s *ReadWrite) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ReserveIdsRequest: The request for Datastore.ReserveIds. +type ReserveIdsRequest struct { + // DatabaseId: If not empty, the ID of the database against which to + // make the request. + DatabaseId string `json:"databaseId,omitempty"` + + // Keys: A list of keys with complete key paths whose numeric IDs should + // not be + // auto-allocated. + Keys []*Key `json:"keys,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DatabaseId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DatabaseId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ReserveIdsRequest) MarshalJSON() ([]byte, error) { + type noMethod ReserveIdsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ReserveIdsResponse: The response for Datastore.ReserveIds. +type ReserveIdsResponse struct { + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` +} + // RollbackRequest: The request for Datastore.Rollback. type RollbackRequest struct { // Transaction: The transaction identifier, returned by a call @@ -2791,6 +2832,143 @@ func (c *ProjectsLookupCall) Do(opts ...googleapi.CallOption) (*LookupResponse, } +// method id "datastore.projects.reserveIds": + +type ProjectsReserveIdsCall struct { + s *Service + projectId string + reserveidsrequest *ReserveIdsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ReserveIds: Prevents the supplied keys' IDs from being auto-allocated +// by Cloud +// Datastore. +func (r *ProjectsService) ReserveIds(projectId string, reserveidsrequest *ReserveIdsRequest) *ProjectsReserveIdsCall { + c := &ProjectsReserveIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.reserveidsrequest = reserveidsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsReserveIdsCall) Fields(s ...googleapi.Field) *ProjectsReserveIdsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsReserveIdsCall) Context(ctx context.Context) *ProjectsReserveIdsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsReserveIdsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsReserveIdsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.reserveidsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}:reserveIds") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "datastore.projects.reserveIds" call. +// Exactly one of *ReserveIdsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ReserveIdsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsReserveIdsCall) Do(opts ...googleapi.CallOption) (*ReserveIdsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ReserveIdsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Prevents the supplied keys' IDs from being auto-allocated by Cloud\nDatastore.", + // "flatPath": "v1/projects/{projectId}:reserveIds", + // "httpMethod": "POST", + // "id": "datastore.projects.reserveIds", + // "parameterOrder": [ + // "projectId" + // ], + // "parameters": { + // "projectId": { + // "description": "The ID of the project against which to make the request.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/projects/{projectId}:reserveIds", + // "request": { + // "$ref": "ReserveIdsRequest" + // }, + // "response": { + // "$ref": "ReserveIdsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + // method id "datastore.projects.rollback": type ProjectsRollbackCall struct { diff --git a/vendor/google.golang.org/api/datastore/v1beta1/datastore-api.json b/vendor/google.golang.org/api/datastore/v1beta1/datastore-api.json index b1b8fe695..a245774b9 100644 --- a/vendor/google.golang.org/api/datastore/v1beta1/datastore-api.json +++ b/vendor/google.golang.org/api/datastore/v1beta1/datastore-api.json @@ -1,8 +1,8 @@ { "batchPath": "batch", + "revision": "20171010", "id": "datastore:v1beta1", "documentationLink": "https://cloud.google.com/datastore/", - "revision": "20170912", "title": "Google Cloud Datastore API", "discoveryVersion": "v1", "ownerName": "Google", @@ -11,10 +11,10 @@ "projects": { "methods": { "export": { - "description": "Exports a copy of all or a subset of entities from Google Cloud Datastore\nto another storage system, such as Google Cloud Storage. Recent updates to\nentities may not be reflected in the export. The export occurs in the\nbackground and its progress can be monitored and managed via the\nOperation resource that is created. The output of an export may only be\nused once the associated operation is done. If an export operation is\ncancelled before completion it may leave partial data behind in Google\nCloud Storage.", "request": { "$ref": "GoogleDatastoreAdminV1beta1ExportEntitiesRequest" }, + "description": "Exports a copy of all or a subset of entities from Google Cloud Datastore\nto another storage system, such as Google Cloud Storage. Recent updates to\nentities may not be reflected in the export. The export occurs in the\nbackground and its progress can be monitored and managed via the\nOperation resource that is created. The output of an export may only be\nused once the associated operation is done. If an export operation is\ncancelled before completion it may leave partial data behind in Google\nCloud Storage.", "response": { "$ref": "GoogleLongrunningOperation" }, @@ -22,6 +22,10 @@ "projectId" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], "parameters": { "projectId": { "location": "path", @@ -30,115 +34,56 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], "flatPath": "v1beta1/projects/{projectId}:export", "id": "datastore.projects.export", "path": "v1beta1/projects/{projectId}:export" }, "import": { - "request": { - "$ref": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest" - }, - "description": "Imports entities into Google Cloud Datastore. Existing entities with the\nsame key are overwritten. The import occurs in the background and its\nprogress can be monitored and managed via the Operation resource that is\ncreated. If an ImportEntities operation is cancelled, it is possible\nthat a subset of the data has already been imported to Cloud Datastore.", - "response": { - "$ref": "GoogleLongrunningOperation" - }, + "httpMethod": "POST", "parameterOrder": [ "projectId" ], - "httpMethod": "POST", + "response": { + "$ref": "GoogleLongrunningOperation" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" ], "parameters": { "projectId": { - "description": "Project ID against which to make the request.", "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "Project ID against which to make the request." } }, "flatPath": "v1beta1/projects/{projectId}:import", + "path": "v1beta1/projects/{projectId}:import", "id": "datastore.projects.import", - "path": "v1beta1/projects/{projectId}:import" + "request": { + "$ref": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest" + }, + "description": "Imports entities into Google Cloud Datastore. Existing entities with the\nsame key are overwritten. The import occurs in the background and its\nprogress can be monitored and managed via the Operation resource that is\ncreated. If an ImportEntities operation is cancelled, it is possible\nthat a subset of the data has already been imported to Cloud Datastore." } } } }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { + "key": { "location": "query", - "description": "Selector specifying which fields to include in a partial response.", + "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.", "type": "string" }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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", - "description": "Data format for response.", - "default": "json" - }, "access_token": { "location": "query", "description": "OAuth access token.", "type": "string" }, - "key": { - "location": "query", - "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.", - "type": "string" - }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { "location": "query", @@ -155,21 +100,93 @@ "location": "query", "description": "OAuth 2.0 token for the current user.", "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "type": "string", + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ] } }, "schemas": { - "GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { - "description": "The response for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", - "type": "object", + "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { "properties": { - "outputUrl": { - "description": "Location of the output metadata file. This can be used to begin an import\ninto Cloud Datastore (this project or another project). See\ngoogle.datastore.admin.v1beta1.ImportEntitiesRequest.input_url.\nOnly present if the operation completed successfully.", + "common": { + "description": "Metadata common to all Datastore Admin operations.", + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" + }, + "inputUrl": { + "description": "The location of the import metadata file. This will be the same value as\nthe google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield.", "type": "string" + }, + "progressBytes": { + "description": "An estimate of the number of bytes processed.", + "$ref": "GoogleDatastoreAdminV1beta1Progress" + }, + "entityFilter": { + "description": "Description of which entities are being imported.", + "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" + }, + "progressEntities": { + "$ref": "GoogleDatastoreAdminV1beta1Progress", + "description": "An estimate of the number of entities processed." } }, - "id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse" + "id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata", + "description": "Metadata for ImportEntities operations.", + "type": "object" }, "GoogleDatastoreAdminV1beta1ImportEntitiesRequest": { + "id": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest", "description": "The request for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities.", "type": "object", "properties": { @@ -188,35 +205,7 @@ "description": "Optionally specify which kinds/namespaces are to be imported. If provided,\nthe list must be a subset of the EntityFilter used in creating the export,\notherwise a FAILED_PRECONDITION error will be returned. If no filter is\nspecified then all entities from the export are imported.", "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" } - }, - "id": "GoogleDatastoreAdminV1beta1ImportEntitiesRequest" - }, - "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { - "description": "Metadata for ImportEntities operations.", - "type": "object", - "properties": { - "common": { - "description": "Metadata common to all Datastore Admin operations.", - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" - }, - "inputUrl": { - "description": "The location of the import metadata file. This will be the same value as\nthe google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield.", - "type": "string" - }, - "progressBytes": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of bytes processed." - }, - "entityFilter": { - "description": "Description of which entities are being imported.", - "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" - }, - "progressEntities": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of entities processed." - } - }, - "id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata" + } }, "GoogleDatastoreAdminV1beta1Progress": { "description": "Measures the progress of a particular metric.", @@ -235,44 +224,7 @@ }, "id": "GoogleDatastoreAdminV1beta1Progress" }, - "GoogleLongrunningOperation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "Status" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" - } - }, - "id": "GoogleLongrunningOperation" - }, "GoogleDatastoreAdminV1beta1EntityFilter": { - "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']", - "type": "object", "properties": { "kinds": { "description": "If empty, then this represents all kinds.", @@ -289,19 +241,49 @@ "type": "array" } }, - "id": "GoogleDatastoreAdminV1beta1EntityFilter" + "id": "GoogleDatastoreAdminV1beta1EntityFilter", + "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']", + "type": "object" + }, + "GoogleLongrunningOperation": { + "type": "object", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "response": { + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + } + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "id": "GoogleLongrunningOperation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." }, "GoogleDatastoreAdminV1beta1CommonMetadata": { "description": "Metadata common to all Datastore Admin operations.", "type": "object", "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", - "type": "object" - }, "endTime": { "format": "google-datetime", "description": "The time the operation ended, either successfully or otherwise.", @@ -332,28 +314,36 @@ "type": "string" }, "operationType": { - "enumDescriptions": [ - "Unspecified.", - "ExportEntities.", - "ImportEntities." - ], "enum": [ "OPERATION_TYPE_UNSPECIFIED", "EXPORT_ENTITIES", "IMPORT_ENTITIES" ], "description": "The type of the operation. Can be used as a filter in\nListOperationsRequest.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "ExportEntities.", + "ImportEntities." + ] }, "startTime": { "format": "google-datetime", "description": "The time that work began on the operation.", "type": "string" + }, + "labels": { + "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", + "type": "object", + "additionalProperties": { + "type": "string" + } } }, "id": "GoogleDatastoreAdminV1beta1CommonMetadata" }, "Status": { + "type": "object", "properties": { "code": { "format": "int32", @@ -377,23 +367,49 @@ } }, "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object" + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { + "type": "object", + "properties": { + "common": { + "description": "Metadata common to all Datastore Admin operations.", + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" + }, + "progressBytes": { + "description": "An estimate of the number of bytes processed.", + "$ref": "GoogleDatastoreAdminV1beta1Progress" + }, + "outputUrlPrefix": { + "description": "Location for the export metadata and data files. This will be the same\nvalue as the\ngoogle.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix\nfield. The final output location is provided in\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", + "type": "string" + }, + "entityFilter": { + "$ref": "GoogleDatastoreAdminV1beta1EntityFilter", + "description": "Description of which entities are being exported." + }, + "progressEntities": { + "$ref": "GoogleDatastoreAdminV1beta1Progress", + "description": "An estimate of the number of entities processed." + } + }, + "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata", + "description": "Metadata for ExportEntities operations." }, "GoogleDatastoreAdminV1beta1ExportEntitiesRequest": { "description": "The request for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", "type": "object", "properties": { "labels": { + "description": "Client-assigned labels.", + "type": "object", "additionalProperties": { "type": "string" - }, - "description": "Client-assigned labels.", - "type": "object" + } }, "outputUrlPrefix": { - "description": "Location for the export metadata and data files.\n\nThe full resource URL of the external storage location. Currently, only\nGoogle Cloud Storage is supported. So output_url_prefix should be of the\nform: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the\nname of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud\nStorage namespace path (this is not a Cloud Datastore namespace). For more\ninformation about Cloud Storage namespace paths, see\n[Object name\nconsiderations](https://cloud.google.com/storage/docs/naming#object-considerations).\n\nThe resulting files will be nested deeper than the specified URL prefix.\nThe final output URL will be provided in the\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield. That value should be used for subsequent ImportEntities operations.\n\nBy nesting the data files deeper, the same Cloud Storage bucket can be used\nin multiple ExportEntities operations without conflict.", - "type": "string" + "type": "string", + "description": "Location for the export metadata and data files.\n\nThe full resource URL of the external storage location. Currently, only\nGoogle Cloud Storage is supported. So output_url_prefix should be of the\nform: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the\nname of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud\nStorage namespace path (this is not a Cloud Datastore namespace). For more\ninformation about Cloud Storage namespace paths, see\n[Object name\nconsiderations](https://cloud.google.com/storage/docs/naming#object-considerations).\n\nThe resulting files will be nested deeper than the specified URL prefix.\nThe final output URL will be provided in the\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield. That value should be used for subsequent ImportEntities operations.\n\nBy nesting the data files deeper, the same Cloud Storage bucket can be used\nin multiple ExportEntities operations without conflict." }, "entityFilter": { "description": "Description of what data from the project is included in the export.", @@ -402,39 +418,23 @@ }, "id": "GoogleDatastoreAdminV1beta1ExportEntitiesRequest" }, - "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { - "description": "Metadata for ExportEntities operations.", + "GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { + "description": "The response for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", "type": "object", "properties": { - "progressBytes": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of bytes processed." - }, - "outputUrlPrefix": { - "description": "Location for the export metadata and data files. This will be the same\nvalue as the\ngoogle.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix\nfield. The final output location is provided in\ngoogle.datastore.admin.v1beta1.ExportEntitiesResponse.output_url.", + "outputUrl": { + "description": "Location of the output metadata file. This can be used to begin an import\ninto Cloud Datastore (this project or another project). See\ngoogle.datastore.admin.v1beta1.ImportEntitiesRequest.input_url.\nOnly present if the operation completed successfully.", "type": "string" - }, - "entityFilter": { - "description": "Description of which entities are being exported.", - "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" - }, - "progressEntities": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of entities processed." - }, - "common": { - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", - "description": "Metadata common to all Datastore Admin operations." } }, - "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata" + "id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse" } }, - "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, "protocol": "rest", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, "version": "v1beta1", "baseUrl": "https://datastore.googleapis.com/", "auth": { @@ -449,9 +449,9 @@ } } }, - "servicePath": "", - "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.\n", "kind": "discovery#restDescription", + "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.\n", + "servicePath": "", "rootUrl": "https://datastore.googleapis.com/", "basePath": "", "ownerDomain": "google.com", diff --git a/vendor/google.golang.org/api/datastore/v1beta3/datastore-api.json b/vendor/google.golang.org/api/datastore/v1beta3/datastore-api.json index 9d1e24173..0ef19a1e3 100644 --- a/vendor/google.golang.org/api/datastore/v1beta3/datastore-api.json +++ b/vendor/google.golang.org/api/datastore/v1beta3/datastore-api.json @@ -1,94 +1,11 @@ { - "discoveryVersion": "v1", + "title": "Google Cloud Datastore API", "ownerName": "Google", + "discoveryVersion": "v1", "version_module": true, "resources": { "projects": { "methods": { - "runQuery": { - "response": { - "$ref": "RunQueryResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "The ID of the project against which to make the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "flatPath": "v1beta3/projects/{projectId}:runQuery", - "id": "datastore.projects.runQuery", - "path": "v1beta3/projects/{projectId}:runQuery", - "description": "Queries for entities.", - "request": { - "$ref": "RunQueryRequest" - } - }, - "rollback": { - "response": { - "$ref": "RollbackResponse" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "The ID of the project against which to make the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "flatPath": "v1beta3/projects/{projectId}:rollback", - "id": "datastore.projects.rollback", - "path": "v1beta3/projects/{projectId}:rollback", - "description": "Rolls back a transaction.", - "request": { - "$ref": "RollbackRequest" - } - }, - "lookup": { - "path": "v1beta3/projects/{projectId}:lookup", - "id": "datastore.projects.lookup", - "description": "Looks up entities by key.", - "request": { - "$ref": "LookupRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "projectId" - ], - "response": { - "$ref": "LookupResponse" - }, - "parameters": { - "projectId": { - "description": "The ID of the project against which to make the request.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/datastore" - ], - "flatPath": "v1beta3/projects/{projectId}:lookup" - }, "allocateIds": { "flatPath": "v1beta3/projects/{projectId}:allocateIds", "path": "v1beta3/projects/{projectId}:allocateIds", @@ -106,10 +23,10 @@ }, "parameters": { "projectId": { + "location": "path", "description": "The ID of the project against which to make the request.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ @@ -117,16 +34,69 @@ "https://www.googleapis.com/auth/datastore" ] }, + "beginTransaction": { + "request": { + "$ref": "BeginTransactionRequest" + }, + "description": "Begins a new transaction.", + "response": { + "$ref": "BeginTransactionResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta3/projects/{projectId}:beginTransaction", + "id": "datastore.projects.beginTransaction", + "path": "v1beta3/projects/{projectId}:beginTransaction" + }, "commit": { + "response": { + "$ref": "CommitResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + }, "flatPath": "v1beta3/projects/{projectId}:commit", "id": "datastore.projects.commit", "path": "v1beta3/projects/{projectId}:commit", - "description": "Commits a transaction, optionally creating, deleting or modifying some\nentities.", "request": { "$ref": "CommitRequest" }, + "description": "Commits a transaction, optionally creating, deleting or modifying some\nentities." + }, + "reserveIds": { + "description": "Prevents the supplied keys' IDs from being auto-allocated by Cloud\nDatastore.", + "request": { + "$ref": "ReserveIdsRequest" + }, "response": { - "$ref": "CommitResponse" + "$ref": "ReserveIdsResponse" }, "parameterOrder": [ "projectId" @@ -143,22 +113,50 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" - ] + ], + "flatPath": "v1beta3/projects/{projectId}:reserveIds", + "id": "datastore.projects.reserveIds", + "path": "v1beta3/projects/{projectId}:reserveIds" }, - "beginTransaction": { - "flatPath": "v1beta3/projects/{projectId}:beginTransaction", - "path": "v1beta3/projects/{projectId}:beginTransaction", - "id": "datastore.projects.beginTransaction", - "description": "Begins a new transaction.", + "rollback": { + "description": "Rolls back a transaction.", "request": { - "$ref": "BeginTransactionRequest" + "$ref": "RollbackRequest" }, "httpMethod": "POST", "parameterOrder": [ "projectId" ], "response": { - "$ref": "BeginTransactionResponse" + "$ref": "RollbackResponse" + }, + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta3/projects/{projectId}:rollback", + "path": "v1beta3/projects/{projectId}:rollback", + "id": "datastore.projects.rollback" + }, + "runQuery": { + "description": "Queries for entities.", + "request": { + "$ref": "RunQueryRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "RunQueryResponse" }, "parameters": { "projectId": { @@ -171,33 +169,111 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/datastore" - ] + ], + "flatPath": "v1beta3/projects/{projectId}:runQuery", + "path": "v1beta3/projects/{projectId}:runQuery", + "id": "datastore.projects.runQuery" + }, + "lookup": { + "flatPath": "v1beta3/projects/{projectId}:lookup", + "id": "datastore.projects.lookup", + "path": "v1beta3/projects/{projectId}:lookup", + "request": { + "$ref": "LookupRequest" + }, + "description": "Looks up entities by key.", + "response": { + "$ref": "LookupResponse" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "projectId": { + "location": "path", + "description": "The ID of the project against which to make the request.", + "type": "string", + "required": true + } + } } } } }, "parameters": { + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "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.", + "type": "string", + "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "type": "string", + "location": "query", + "description": "OAuth 2.0 token for the current user." + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" - }, - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." + "type": "boolean", + "location": "query" }, "fields": { "location": "query", "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, "$.xgafv": { "description": "V1 error format.", "type": "string", @@ -215,739 +291,25 @@ "location": "query", "description": "JSONP", "type": "string" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "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.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" } }, "schemas": { - "CompositeFilter": { - "description": "A filter that merges multiple other filters using the given operator.", - "type": "object", - "properties": { - "filters": { - "description": "The list of filters to combine.\nMust contain at least one filter.", - "items": { - "$ref": "Filter" - }, - "type": "array" - }, - "op": { - "enum": [ - "OPERATOR_UNSPECIFIED", - "AND" - ], - "description": "The operator for combining multiple filters.", - "type": "string", - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." - ] - } - }, - "id": "CompositeFilter" - }, - "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { - "properties": { - "entityFilter": { - "$ref": "GoogleDatastoreAdminV1beta1EntityFilter", - "description": "Description of which entities are being imported." - }, - "progressEntities": { - "$ref": "GoogleDatastoreAdminV1beta1Progress", - "description": "An estimate of the number of entities processed." - }, - "common": { - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", - "description": "Metadata common to all Datastore Admin operations." - }, - "inputUrl": { - "description": "The location of the import metadata file. This will be the same value as\nthe google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield.", - "type": "string" - }, - "progressBytes": { - "description": "An estimate of the number of bytes processed.", - "$ref": "GoogleDatastoreAdminV1beta1Progress" - } - }, - "id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata", - "description": "Metadata for ImportEntities operations.", - "type": "object" - }, - "AllocateIdsResponse": { - "description": "The response for Datastore.AllocateIds.", - "type": "object", - "properties": { - "keys": { - "description": "The keys specified in the request (in the same order), each with\nits key path completed with a newly allocated ID.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "AllocateIdsResponse" - }, - "Query": { - "description": "A query for entities.", - "type": "object", - "properties": { - "limit": { - "format": "int32", - "description": "The maximum number of results to return. Applies after all other\nconstraints. Optional.\nUnspecified is interpreted as no limit.\nMust be \u003e= 0 if specified.", - "type": "integer" - }, - "filter": { - "$ref": "Filter", - "description": "The filter to apply." - }, - "offset": { - "format": "int32", - "description": "The number of results to skip. Applies before limit, but after all other\nconstraints. Optional. Must be \u003e= 0 if specified.", - "type": "integer" - }, - "startCursor": { - "format": "byte", - "description": "A starting point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", - "type": "string" - }, - "kind": { - "description": "The kinds to query (if empty, returns entities of all kinds).\nCurrently at most 1 kind may be specified.", - "items": { - "$ref": "KindExpression" - }, - "type": "array" - }, - "distinctOn": { - "description": "The properties to make distinct. The query results will contain the first\nresult for each distinct combination of values for the given properties\n(if empty, all results are returned).", - "items": { - "$ref": "PropertyReference" - }, - "type": "array" - }, - "order": { - "description": "The order to apply to the query results (if empty, order is unspecified).", - "items": { - "$ref": "PropertyOrder" - }, - "type": "array" - }, - "projection": { - "description": "The projection to return. Defaults to returning all properties.", - "items": { - "$ref": "Projection" - }, - "type": "array" - }, - "endCursor": { - "format": "byte", - "description": "An ending point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", - "type": "string" - } - }, - "id": "Query" - }, - "ReadOnly": { - "description": "Options specific to read-only transactions.", - "type": "object", - "properties": {}, - "id": "ReadOnly" - }, - "PropertyFilter": { - "description": "A filter on a specific property.", - "type": "object", - "properties": { - "value": { - "$ref": "Value", - "description": "The value to compare the property to." - }, - "property": { - "$ref": "PropertyReference", - "description": "The property to filter by." - }, - "op": { - "description": "The operator to filter by.", - "type": "string", - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Less than.", - "Less than or equal.", - "Greater than.", - "Greater than or equal.", - "Equal.", - "Has ancestor." - ], - "enum": [ - "OPERATOR_UNSPECIFIED", - "LESS_THAN", - "LESS_THAN_OR_EQUAL", - "GREATER_THAN", - "GREATER_THAN_OR_EQUAL", - "EQUAL", - "HAS_ANCESTOR" - ] - } - }, - "id": "PropertyFilter" - }, - "EntityResult": { - "type": "object", - "properties": { - "cursor": { - "format": "byte", - "description": "A cursor that points to the position after the result entity.\nSet only when the `EntityResult` is part of a `QueryResultBatch` message.", - "type": "string" - }, - "version": { - "format": "int64", - "description": "The version of the entity, a strictly positive number that monotonically\nincreases with changes to the entity.\n\nThis field is set for `FULL` entity\nresults.\n\nFor missing entities in `LookupResponse`, this\nis the version of the snapshot that was used to look up the entity, and it\nis always set except for eventually consistent reads.", - "type": "string" - }, - "entity": { - "description": "The resulting entity.", - "$ref": "Entity" - } - }, - "id": "EntityResult", - "description": "The result of fetching an entity from Datastore." - }, - "Value": { - "description": "A message that can hold any of the supported value types and associated\nmetadata.", - "type": "object", - "properties": { - "stringValue": { - "description": "A UTF-8 encoded string value.\nWhen `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.\nOtherwise, may be set to at least 1,000,000 bytes.", - "type": "string" - }, - "excludeFromIndexes": { - "description": "If the value should be excluded from all indexes including those defined\nexplicitly.", - "type": "boolean" - }, - "doubleValue": { - "format": "double", - "description": "A double value.", - "type": "number" - }, - "timestampValue": { - "format": "google-datetime", - "description": "A timestamp value.\nWhen stored in the Datastore, precise only to microseconds;\nany additional precision is rounded down.", - "type": "string" - }, - "booleanValue": { - "description": "A boolean value.", - "type": "boolean" - }, - "nullValue": { - "type": "string", - "enumDescriptions": [ - "Null value." - ], - "enum": [ - "NULL_VALUE" - ], - "description": "A null value." - }, - "blobValue": { - "format": "byte", - "description": "A blob value.\nMay have at most 1,000,000 bytes.\nWhen `exclude_from_indexes` is false, may have at most 1500 bytes.\nIn JSON requests, must be base64-encoded.", - "type": "string" - }, - "meaning": { - "format": "int32", - "description": "The `meaning` field should only be populated for backwards compatibility.", - "type": "integer" - }, - "arrayValue": { - "description": "An array value.\nCannot contain another array value.\nA `Value` instance that sets field `array_value` must not set fields\n`meaning` or `exclude_from_indexes`.", - "$ref": "ArrayValue" - }, - "entityValue": { - "$ref": "Entity", - "description": "An entity value.\n\n- May have no key.\n- May have a key with an incomplete key path.\n- May have a reserved/read-only key." - }, - "geoPointValue": { - "$ref": "LatLng", - "description": "A geo point value representing a point on the surface of Earth." - }, - "integerValue": { - "format": "int64", - "description": "An integer value.", - "type": "string" - }, - "keyValue": { - "$ref": "Key", - "description": "A key value." - } - }, - "id": "Value" - }, - "CommitResponse": { - "id": "CommitResponse", - "description": "The response for Datastore.Commit.", - "type": "object", - "properties": { - "mutationResults": { - "description": "The result of performing the mutations.\nThe i-th mutation result corresponds to the i-th mutation in the request.", - "items": { - "$ref": "MutationResult" - }, - "type": "array" - }, - "indexUpdates": { - "format": "int32", - "description": "The number of index entries updated during the commit, or zero if none were\nupdated.", - "type": "integer" - } - } - }, - "PartitionId": { - "description": "A partition ID identifies a grouping of entities. The grouping is always\nby project and namespace, however the namespace ID may be empty.\n\nA partition ID contains several dimensions:\nproject ID and namespace ID.\n\nPartition dimensions:\n\n- May be `\"\"`.\n- Must be valid UTF-8 bytes.\n- Must have values that match regex `[A-Za-z\\d\\.\\-_]{1,100}`\nIf the value of any dimension matches regex `__.*__`, the partition is\nreserved/read-only.\nA reserved/read-only partition ID is forbidden in certain documented\ncontexts.\n\nForeign partition IDs (in which the project ID does\nnot match the context project ID ) are discouraged.\nReads and writes of foreign partition IDs may fail if the project is not in an active state.", - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "The ID of the project to which the entities belong." - }, - "namespaceId": { - "description": "If not empty, the ID of the namespace to which the entities belong.", - "type": "string" - } - }, - "id": "PartitionId" - }, - "ReadWrite": { - "description": "Options specific to read / write transactions.", - "type": "object", - "properties": { - "previousTransaction": { - "format": "byte", - "description": "The transaction identifier of the transaction being retried.", - "type": "string" - } - }, - "id": "ReadWrite" - }, - "Entity": { - "id": "Entity", - "description": "A Datastore data object.\n\nAn entity is limited to 1 megabyte when stored. That _roughly_\ncorresponds to a limit of 1 megabyte for the serialized form of this\nmessage.", - "type": "object", - "properties": { - "properties": { - "description": "The entity's properties.\nThe map's keys are property names.\nA property name matching regex `__.*__` is reserved.\nA reserved property name is forbidden in certain documented contexts.\nThe name must not contain more than 500 characters.\nThe name cannot be `\"\"`.", - "type": "object", - "additionalProperties": { - "$ref": "Value" - } - }, - "key": { - "$ref": "Key", - "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example,\nan entity in `Value.entity_value` may have no key).\nAn entity's kind is its key path's last element's kind,\nor null if it has no key." - } - } - }, - "LookupRequest": { - "description": "The request for Datastore.Lookup.", - "type": "object", - "properties": { - "readOptions": { - "description": "The options for this lookup request.", - "$ref": "ReadOptions" - }, - "keys": { - "description": "Keys of entities to look up.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "LookupRequest" - }, - "GoogleDatastoreAdminV1beta1Progress": { - "description": "Measures the progress of a particular metric.", - "type": "object", - "properties": { - "workEstimated": { - "format": "int64", - "description": "An estimate of how much work needs to be performed. May be zero if the\nwork estimate is unavailable.", - "type": "string" - }, - "workCompleted": { - "format": "int64", - "description": "The amount of work that has been completed. Note that this may be greater\nthan work_estimated.", - "type": "string" - } - }, - "id": "GoogleDatastoreAdminV1beta1Progress" - }, - "QueryResultBatch": { - "type": "object", - "properties": { - "skippedCursor": { - "format": "byte", - "description": "A cursor that points to the position after the last skipped result.\nWill be set when `skipped_results` != 0.", - "type": "string" - }, - "skippedResults": { - "format": "int32", - "description": "The number of results skipped, typically because of an offset.", - "type": "integer" - }, - "entityResultType": { - "enumDescriptions": [ - "Unspecified. This value is never used.", - "The key and properties.", - "A projected subset of properties. The entity may have no key.", - "Only the key." - ], - "enum": [ - "RESULT_TYPE_UNSPECIFIED", - "FULL", - "PROJECTION", - "KEY_ONLY" - ], - "description": "The result type for every entity in `entity_results`.", - "type": "string" - }, - "entityResults": { - "items": { - "$ref": "EntityResult" - }, - "type": "array", - "description": "The results for this batch." - }, - "endCursor": { - "format": "byte", - "description": "A cursor that points to the position after the last result in the batch.", - "type": "string" - }, - "moreResults": { - "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\ncursor.", - "The query is finished, and there are no more results." - ], - "enum": [ - "MORE_RESULTS_TYPE_UNSPECIFIED", - "NOT_FINISHED", - "MORE_RESULTS_AFTER_LIMIT", - "MORE_RESULTS_AFTER_CURSOR", - "NO_MORE_RESULTS" - ], - "description": "The state of the query after the current batch.", - "type": "string" - }, - "snapshotVersion": { - "format": "int64", - "description": "The version number of the snapshot this batch was returned from.\nThis applies to the range of results from the query's `start_cursor` (or\nthe beginning of the query if no cursor was given) to this batch's\n`end_cursor` (not the query's `end_cursor`).\n\nIn a single transaction, subsequent query result batches for the same query\ncan have a greater snapshot version number. Each batch's snapshot version\nis valid for all preceding batches.\nThe value will be zero for eventually consistent queries.", - "type": "string" - } - }, - "id": "QueryResultBatch", - "description": "A batch of results produced by a query." - }, - "PathElement": { - "description": "A (kind, ID/name) pair used to construct a key path.\n\nIf either name or ID is set, the element is complete.\nIf neither is set, the element is incomplete.", - "type": "object", - "properties": { - "id": { - "format": "int64", - "description": "The auto-allocated ID of the entity.\nNever equal to zero. Values less than zero are discouraged and may not\nbe supported in the future.", - "type": "string" - }, - "name": { - "description": "The name of the entity.\nA name matching regex `__.*__` is reserved/read-only.\nA name must not be more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", - "type": "string" - }, - "kind": { - "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", - "type": "string" - } - }, - "id": "PathElement" - }, - "GqlQueryParameter": { - "type": "object", - "properties": { - "cursor": { - "format": "byte", - "description": "A query cursor. Query cursors are returned in query\nresult batches.", - "type": "string" - }, - "value": { - "$ref": "Value", - "description": "A value parameter." - } - }, - "id": "GqlQueryParameter", - "description": "A binding parameter for a GQL query." - }, - "BeginTransactionResponse": { - "description": "The response for Datastore.BeginTransaction.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The transaction identifier (always present).", - "type": "string" - } - }, - "id": "BeginTransactionResponse" - }, - "AllocateIdsRequest": { - "description": "The request for Datastore.AllocateIds.", - "type": "object", - "properties": { - "keys": { - "description": "A list of keys with incomplete key paths for which to allocate IDs.\nNo key may be reserved/read-only.", - "items": { - "$ref": "Key" - }, - "type": "array" - } - }, - "id": "AllocateIdsRequest" - }, - "LookupResponse": { - "description": "The response for Datastore.Lookup.", - "type": "object", - "properties": { - "deferred": { - "description": "A list of keys that were not looked up due to resource constraints. The\norder of results in this field is undefined and has no relation to the\norder of the keys in the input.", - "items": { - "$ref": "Key" - }, - "type": "array" - }, - "missing": { - "description": "Entities not found as `ResultType.KEY_ONLY` entities. The order of results\nin this field is undefined and has no relation to the order of the keys\nin the input.", - "items": { - "$ref": "EntityResult" - }, - "type": "array" - }, - "found": { - "description": "Entities found as `ResultType.FULL` entities. The order of results in this\nfield is undefined and has no relation to the order of the keys in the\ninput.", - "items": { - "$ref": "EntityResult" - }, - "type": "array" - } - }, - "id": "LookupResponse" - }, - "RunQueryResponse": { - "description": "The response for Datastore.RunQuery.", - "type": "object", - "properties": { - "query": { - "$ref": "Query", - "description": "The parsed form of the `GqlQuery` from the request, if it was set." - }, - "batch": { - "description": "A batch of query results (always present).", - "$ref": "QueryResultBatch" - } - }, - "id": "RunQueryResponse" - }, - "CommitRequest": { - "description": "The request for Datastore.Commit.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The identifier of the transaction associated with the commit. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", - "type": "string" - }, - "mode": { - "type": "string", - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Transactional: The mutations are either all applied, or none are applied.\nLearn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).", - "Non-transactional: The mutations may not apply as all or none." - ], - "enum": [ - "MODE_UNSPECIFIED", - "TRANSACTIONAL", - "NON_TRANSACTIONAL" - ], - "description": "The type of commit to perform. Defaults to `TRANSACTIONAL`." - }, - "mutations": { - "items": { - "$ref": "Mutation" - }, - "type": "array", - "description": "The mutations to perform.\n\nWhen mode is `TRANSACTIONAL`, mutations affecting a single entity are\napplied in order. The following sequences of mutations affecting a single\nentity are not permitted in a single `Commit` request:\n\n- `insert` followed by `insert`\n- `update` followed by `insert`\n- `upsert` followed by `insert`\n- `delete` followed by `update`\n\nWhen mode is `NON_TRANSACTIONAL`, no two mutations may affect a single\nentity." - } - }, - "id": "CommitRequest" - }, - "BeginTransactionRequest": { - "description": "The request for Datastore.BeginTransaction.", - "type": "object", - "properties": { - "transactionOptions": { - "$ref": "TransactionOptions", - "description": "Options for a new transaction." - } - }, - "id": "BeginTransactionRequest" - }, - "PropertyOrder": { - "id": "PropertyOrder", - "description": "The desired order for a specific property.", - "type": "object", - "properties": { - "direction": { - "enumDescriptions": [ - "Unspecified. This value must not be used.", - "Ascending.", - "Descending." - ], - "enum": [ - "DIRECTION_UNSPECIFIED", - "ASCENDING", - "DESCENDING" - ], - "description": "The direction to order by. Defaults to `ASCENDING`.", - "type": "string" - }, - "property": { - "description": "The property to order by.", - "$ref": "PropertyReference" - } - } - }, - "KindExpression": { - "description": "A representation of a kind.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the kind." - } - }, - "id": "KindExpression" - }, - "Key": { - "properties": { - "partitionId": { - "$ref": "PartitionId", - "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition." - }, - "path": { - "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nAn entity path is always fully complete: *all* of the entity's ancestors\nare required to be in the path along with the entity identifier itself.\nThe only exception is that in some documented cases, the identifier in the\nlast path element (for the entity) itself may be omitted. For example,\nthe last path element of the key of `Mutation.insert` may have no\nidentifier.\n\nA path can never be empty, and a path can have at most 100 elements.", - "items": { - "$ref": "PathElement" - }, - "type": "array" - } - }, - "id": "Key", - "description": "A unique identifier for an entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts.", - "type": "object" - }, - "LatLng": { - "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", - "type": "object", - "properties": { - "latitude": { - "type": "number", - "format": "double", - "description": "The latitude in degrees. It must be in the range [-90.0, +90.0]." - }, - "longitude": { - "format": "double", - "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", - "type": "number" - } - }, - "id": "LatLng" - }, - "GoogleDatastoreAdminV1beta1EntityFilter": { - "type": "object", - "properties": { - "namespaceIds": { - "description": "An empty list represents all namespaces. This is the preferred\nusage for projects that don't use namespaces.\n\nAn empty string element represents the default namespace. This should be\nused if the project has data in non-default namespaces, but doesn't want to\ninclude them.\nEach namespace in this list must be unique.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kinds": { - "description": "If empty, then this represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "GoogleDatastoreAdminV1beta1EntityFilter", - "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']" - }, - "PropertyReference": { - "description": "A reference to a property relative to the kind expressions.", - "type": "object", - "properties": { - "name": { - "description": "The name of the property.\nIf name includes \".\"s, it may be interpreted as a property name path.", - "type": "string" - } - }, - "id": "PropertyReference" - }, "GoogleDatastoreAdminV1beta1CommonMetadata": { "description": "Metadata common to all Datastore Admin operations.", "type": "object", "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", + "type": "object" + }, + "endTime": { + "format": "google-datetime", + "description": "The time the operation ended, either successfully or otherwise.", + "type": "string" + }, "state": { "enum": [ "STATE_UNSPECIFIED", @@ -990,46 +352,34 @@ "format": "google-datetime", "description": "The time that work began on the operation.", "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The client-assigned labels which were provided when the operation was\ncreated. May also include additional labels.", - "type": "object" - }, - "endTime": { - "format": "google-datetime", - "description": "The time the operation ended, either successfully or otherwise.", - "type": "string" } }, "id": "GoogleDatastoreAdminV1beta1CommonMetadata" }, + "Projection": { + "description": "A representation of a property in a projection.", + "type": "object", + "properties": { + "property": { + "description": "The property to project.", + "$ref": "PropertyReference" + } + }, + "id": "Projection" + }, "ArrayValue": { - "id": "ArrayValue", "description": "An array value.", "type": "object", "properties": { "values": { + "description": "Values in the array.\nThe order of this array may not be preserved if it contains a mix of\nindexed and unindexed values.", "items": { "$ref": "Value" }, - "type": "array", - "description": "Values in the array.\nThe order of this array may not be preserved if it contains a mix of\nindexed and unindexed values." - } - } - }, - "Projection": { - "properties": { - "property": { - "$ref": "PropertyReference", - "description": "The property to project." + "type": "array" } }, - "id": "Projection", - "description": "A representation of a property in a projection.", - "type": "object" + "id": "ArrayValue" }, "Mutation": { "description": "A mutation to apply to an entity.", @@ -1040,13 +390,13 @@ "description": "The key of the entity to delete. The entity may or may not already exist.\nMust have a complete key path and must not be reserved/read-only." }, "baseVersion": { - "type": "string", "format": "int64", - "description": "The version of the entity that this mutation is being applied to. If this\ndoes not match the current version on the server, the mutation conflicts." + "description": "The version of the entity that this mutation is being applied to. If this\ndoes not match the current version on the server, the mutation conflicts.", + "type": "string" }, "insert": { - "$ref": "Entity", - "description": "The entity to insert. The entity must not already exist.\nThe entity key's final path element may be incomplete." + "description": "The entity to insert. The entity must not already exist.\nThe entity key's final path element may be incomplete.", + "$ref": "Entity" }, "update": { "$ref": "Entity", @@ -1060,6 +410,8 @@ "id": "Mutation" }, "ReadOptions": { + "id": "ReadOptions", + "description": "The options shared by read requests.", "type": "object", "properties": { "transaction": { @@ -1081,9 +433,13 @@ "description": "The non-transactional read consistency to use.\nCannot be set to `STRONG` for global queries.", "type": "string" } - }, - "id": "ReadOptions", - "description": "The options shared by read requests." + } + }, + "RollbackResponse": { + "id": "RollbackResponse", + "description": "The response for Datastore.Rollback.\n(an empty message).", + "type": "object", + "properties": {} }, "GoogleDatastoreAdminV1beta1ExportEntitiesResponse": { "description": "The response for\ngoogle.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.", @@ -1096,12 +452,6 @@ }, "id": "GoogleDatastoreAdminV1beta1ExportEntitiesResponse" }, - "RollbackResponse": { - "description": "The response for Datastore.Rollback.\n(an empty message).", - "type": "object", - "properties": {}, - "id": "RollbackResponse" - }, "MutationResult": { "description": "The result of applying a mutation.", "type": "object", @@ -1115,25 +465,27 @@ "$ref": "Key" }, "version": { + "type": "string", "format": "int64", - "description": "The version of the entity on the server after processing the mutation. If\nthe mutation doesn't change anything on the server, then the version will\nbe the version of the current entity or, if no entity is present, a version\nthat is strictly greater than the version of any previous entity and less\nthan the version of any possible future entity.", - "type": "string" + "description": "The version of the entity on the server after processing the mutation. If\nthe mutation doesn't change anything on the server, then the version will\nbe the version of the current entity or, if no entity is present, a version\nthat is strictly greater than the version of any previous entity and less\nthan the version of any possible future entity." } }, "id": "MutationResult" }, "GqlQuery": { + "description": "A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", + "type": "object", "properties": { "queryString": { "description": "A string of the format described\n[here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", "type": "string" }, "positionalBindings": { + "description": "Numbered binding site @1 references the first numbered parameter,\neffectively using 1-based indexing, rather than the usual 0.\n\nFor each binding site numbered i in `query_string`, there must be an i-th\nnumbered parameter. The inverse must also be true.", "items": { "$ref": "GqlQueryParameter" }, - "type": "array", - "description": "Numbered binding site @1 references the first numbered parameter,\neffectively using 1-based indexing, rather than the usual 0.\n\nFor each binding site numbered i in `query_string`, there must be an i-th\nnumbered parameter. The inverse must also be true." + "type": "array" }, "namedBindings": { "additionalProperties": { @@ -1147,34 +499,20 @@ "type": "boolean" } }, - "id": "GqlQuery", - "description": "A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).", - "type": "object" + "id": "GqlQuery" }, "Filter": { + "id": "Filter", "description": "A holder for any type of filter.", "type": "object", "properties": { + "compositeFilter": { + "description": "A composite filter.", + "$ref": "CompositeFilter" + }, "propertyFilter": { "$ref": "PropertyFilter", "description": "A filter on a property." - }, - "compositeFilter": { - "$ref": "CompositeFilter", - "description": "A composite filter." - } - }, - "id": "Filter" - }, - "RollbackRequest": { - "id": "RollbackRequest", - "description": "The request for Datastore.Rollback.", - "type": "object", - "properties": { - "transaction": { - "format": "byte", - "description": "The transaction identifier, returned by a call to\nDatastore.BeginTransaction.", - "type": "string" } } }, @@ -1187,12 +525,12 @@ "description": "The options for this query." }, "query": { - "description": "The query to run.", - "$ref": "Query" + "$ref": "Query", + "description": "The query to run." }, "gqlQuery": { - "$ref": "GqlQuery", - "description": "The GQL query to run." + "description": "The GQL query to run.", + "$ref": "GqlQuery" }, "partitionId": { "$ref": "PartitionId", @@ -1201,11 +539,25 @@ }, "id": "RunQueryRequest" }, + "RollbackRequest": { + "properties": { + "transaction": { + "format": "byte", + "description": "The transaction identifier, returned by a call to\nDatastore.BeginTransaction.", + "type": "string" + } + }, + "id": "RollbackRequest", + "description": "The request for Datastore.Rollback.", + "type": "object" + }, "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata": { - "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata", - "description": "Metadata for ExportEntities operations.", "type": "object", "properties": { + "common": { + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", + "description": "Metadata common to all Datastore Admin operations." + }, "progressBytes": { "description": "An estimate of the number of bytes processed.", "$ref": "GoogleDatastoreAdminV1beta1Progress" @@ -1221,44 +573,745 @@ "progressEntities": { "$ref": "GoogleDatastoreAdminV1beta1Progress", "description": "An estimate of the number of entities processed." + } + }, + "id": "GoogleDatastoreAdminV1beta1ExportEntitiesMetadata", + "description": "Metadata for ExportEntities operations." + }, + "TransactionOptions": { + "id": "TransactionOptions", + "description": "Options for beginning a new transaction.\n\nTransactions can be created explicitly with calls to\nDatastore.BeginTransaction or implicitly by setting\nReadOptions.new_transaction in read requests.", + "type": "object", + "properties": { + "readOnly": { + "description": "The transaction should only allow reads.", + "$ref": "ReadOnly" }, - "common": { - "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata", - "description": "Metadata common to all Datastore Admin operations." + "readWrite": { + "description": "The transaction should allow both reads and writes.", + "$ref": "ReadWrite" } } }, - "TransactionOptions": { + "CompositeFilter": { + "description": "A filter that merges multiple other filters using the given operator.", + "type": "object", "properties": { - "readOnly": { - "$ref": "ReadOnly", - "description": "The transaction should only allow reads." + "op": { + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "The results are required to satisfy each of the combined filters." + ], + "enum": [ + "OPERATOR_UNSPECIFIED", + "AND" + ], + "description": "The operator for combining multiple filters.", + "type": "string" }, - "readWrite": { - "$ref": "ReadWrite", - "description": "The transaction should allow both reads and writes." + "filters": { + "description": "The list of filters to combine.\nMust contain at least one filter.", + "items": { + "$ref": "Filter" + }, + "type": "array" } }, - "id": "TransactionOptions", - "description": "Options for beginning a new transaction.\n\nTransactions can be created explicitly with calls to\nDatastore.BeginTransaction or implicitly by setting\nReadOptions.new_transaction in read requests.", + "id": "CompositeFilter" + }, + "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata": { + "id": "GoogleDatastoreAdminV1beta1ImportEntitiesMetadata", + "description": "Metadata for ImportEntities operations.", + "type": "object", + "properties": { + "common": { + "description": "Metadata common to all Datastore Admin operations.", + "$ref": "GoogleDatastoreAdminV1beta1CommonMetadata" + }, + "inputUrl": { + "description": "The location of the import metadata file. This will be the same value as\nthe google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url\nfield.", + "type": "string" + }, + "progressBytes": { + "$ref": "GoogleDatastoreAdminV1beta1Progress", + "description": "An estimate of the number of bytes processed." + }, + "entityFilter": { + "description": "Description of which entities are being imported.", + "$ref": "GoogleDatastoreAdminV1beta1EntityFilter" + }, + "progressEntities": { + "$ref": "GoogleDatastoreAdminV1beta1Progress", + "description": "An estimate of the number of entities processed." + } + } + }, + "AllocateIdsResponse": { + "id": "AllocateIdsResponse", + "description": "The response for Datastore.AllocateIds.", + "type": "object", + "properties": { + "keys": { + "description": "The keys specified in the request (in the same order), each with\nits key path completed with a newly allocated ID.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + } + }, + "Query": { + "description": "A query for entities.", + "type": "object", + "properties": { + "order": { + "description": "The order to apply to the query results (if empty, order is unspecified).", + "items": { + "$ref": "PropertyOrder" + }, + "type": "array" + }, + "projection": { + "description": "The projection to return. Defaults to returning all properties.", + "items": { + "$ref": "Projection" + }, + "type": "array" + }, + "endCursor": { + "format": "byte", + "description": "An ending point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "type": "string" + }, + "limit": { + "format": "int32", + "description": "The maximum number of results to return. Applies after all other\nconstraints. Optional.\nUnspecified is interpreted as no limit.\nMust be \u003e= 0 if specified.", + "type": "integer" + }, + "filter": { + "$ref": "Filter", + "description": "The filter to apply." + }, + "offset": { + "format": "int32", + "description": "The number of results to skip. Applies before limit, but after all other\nconstraints. Optional. Must be \u003e= 0 if specified.", + "type": "integer" + }, + "startCursor": { + "format": "byte", + "description": "A starting point for the query results. Query cursors are\nreturned in query result batches and\n[can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).", + "type": "string" + }, + "kind": { + "description": "The kinds to query (if empty, returns entities of all kinds).\nCurrently at most 1 kind may be specified.", + "items": { + "$ref": "KindExpression" + }, + "type": "array" + }, + "distinctOn": { + "description": "The properties to make distinct. The query results will contain the first\nresult for each distinct combination of values for the given properties\n(if empty, all results are returned).", + "items": { + "$ref": "PropertyReference" + }, + "type": "array" + } + }, + "id": "Query" + }, + "ReadOnly": { + "type": "object", + "properties": {}, + "id": "ReadOnly", + "description": "Options specific to read-only transactions." + }, + "PropertyFilter": { + "description": "A filter on a specific property.", + "type": "object", + "properties": { + "value": { + "description": "The value to compare the property to.", + "$ref": "Value" + }, + "property": { + "description": "The property to filter by.", + "$ref": "PropertyReference" + }, + "op": { + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Less than.", + "Less than or equal.", + "Greater than.", + "Greater than or equal.", + "Equal.", + "Has ancestor." + ], + "enum": [ + "OPERATOR_UNSPECIFIED", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL", + "EQUAL", + "HAS_ANCESTOR" + ], + "description": "The operator to filter by.", + "type": "string" + } + }, + "id": "PropertyFilter" + }, + "EntityResult": { + "id": "EntityResult", + "description": "The result of fetching an entity from Datastore.", + "type": "object", + "properties": { + "cursor": { + "format": "byte", + "description": "A cursor that points to the position after the result entity.\nSet only when the `EntityResult` is part of a `QueryResultBatch` message.", + "type": "string" + }, + "version": { + "format": "int64", + "description": "The version of the entity, a strictly positive number that monotonically\nincreases with changes to the entity.\n\nThis field is set for `FULL` entity\nresults.\n\nFor missing entities in `LookupResponse`, this\nis the version of the snapshot that was used to look up the entity, and it\nis always set except for eventually consistent reads.", + "type": "string" + }, + "entity": { + "description": "The resulting entity.", + "$ref": "Entity" + } + } + }, + "Value": { + "description": "A message that can hold any of the supported value types and associated\nmetadata.", + "type": "object", + "properties": { + "entityValue": { + "$ref": "Entity", + "description": "An entity value.\n\n- May have no key.\n- May have a key with an incomplete key path.\n- May have a reserved/read-only key." + }, + "geoPointValue": { + "$ref": "LatLng", + "description": "A geo point value representing a point on the surface of Earth." + }, + "integerValue": { + "format": "int64", + "description": "An integer value.", + "type": "string" + }, + "keyValue": { + "description": "A key value.", + "$ref": "Key" + }, + "stringValue": { + "description": "A UTF-8 encoded string value.\nWhen `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.\nOtherwise, may be set to at least 1,000,000 bytes.", + "type": "string" + }, + "excludeFromIndexes": { + "description": "If the value should be excluded from all indexes including those defined\nexplicitly.", + "type": "boolean" + }, + "doubleValue": { + "format": "double", + "description": "A double value.", + "type": "number" + }, + "timestampValue": { + "format": "google-datetime", + "description": "A timestamp value.\nWhen stored in the Datastore, precise only to microseconds;\nany additional precision is rounded down.", + "type": "string" + }, + "booleanValue": { + "description": "A boolean value.", + "type": "boolean" + }, + "nullValue": { + "description": "A null value.", + "type": "string", + "enumDescriptions": [ + "Null value." + ], + "enum": [ + "NULL_VALUE" + ] + }, + "blobValue": { + "format": "byte", + "description": "A blob value.\nMay have at most 1,000,000 bytes.\nWhen `exclude_from_indexes` is false, may have at most 1500 bytes.\nIn JSON requests, must be base64-encoded.", + "type": "string" + }, + "meaning": { + "format": "int32", + "description": "The `meaning` field should only be populated for backwards compatibility.", + "type": "integer" + }, + "arrayValue": { + "description": "An array value.\nCannot contain another array value.\nA `Value` instance that sets field `array_value` must not set fields\n`meaning` or `exclude_from_indexes`.", + "$ref": "ArrayValue" + } + }, + "id": "Value" + }, + "CommitResponse": { + "description": "The response for Datastore.Commit.", + "type": "object", + "properties": { + "indexUpdates": { + "format": "int32", + "description": "The number of index entries updated during the commit, or zero if none were\nupdated.", + "type": "integer" + }, + "mutationResults": { + "items": { + "$ref": "MutationResult" + }, + "type": "array", + "description": "The result of performing the mutations.\nThe i-th mutation result corresponds to the i-th mutation in the request." + } + }, + "id": "CommitResponse" + }, + "PartitionId": { + "description": "A partition ID identifies a grouping of entities. The grouping is always\nby project and namespace, however the namespace ID may be empty.\n\nA partition ID contains several dimensions:\nproject ID and namespace ID.\n\nPartition dimensions:\n\n- May be `\"\"`.\n- Must be valid UTF-8 bytes.\n- Must have values that match regex `[A-Za-z\\d\\.\\-_]{1,100}`\nIf the value of any dimension matches regex `__.*__`, the partition is\nreserved/read-only.\nA reserved/read-only partition ID is forbidden in certain documented\ncontexts.\n\nForeign partition IDs (in which the project ID does\nnot match the context project ID ) are discouraged.\nReads and writes of foreign partition IDs may fail if the project is not in an active state.", + "type": "object", + "properties": { + "namespaceId": { + "type": "string", + "description": "If not empty, the ID of the namespace to which the entities belong." + }, + "projectId": { + "description": "The ID of the project to which the entities belong.", + "type": "string" + } + }, + "id": "PartitionId" + }, + "Entity": { + "description": "A Datastore data object.\n\nAn entity is limited to 1 megabyte when stored. That _roughly_\ncorresponds to a limit of 1 megabyte for the serialized form of this\nmessage.", + "type": "object", + "properties": { + "properties": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The entity's properties.\nThe map's keys are property names.\nA property name matching regex `__.*__` is reserved.\nA reserved property name is forbidden in certain documented contexts.\nThe name must not contain more than 500 characters.\nThe name cannot be `\"\"`.", + "type": "object" + }, + "key": { + "$ref": "Key", + "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example,\nan entity in `Value.entity_value` may have no key).\nAn entity's kind is its key path's last element's kind,\nor null if it has no key." + } + }, + "id": "Entity" + }, + "ReadWrite": { + "properties": { + "previousTransaction": { + "format": "byte", + "description": "The transaction identifier of the transaction being retried.", + "type": "string" + } + }, + "id": "ReadWrite", + "description": "Options specific to read / write transactions.", "type": "object" + }, + "LookupRequest": { + "description": "The request for Datastore.Lookup.", + "type": "object", + "properties": { + "keys": { + "description": "Keys of entities to look up.", + "items": { + "$ref": "Key" + }, + "type": "array" + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "The options for this lookup request." + } + }, + "id": "LookupRequest" + }, + "QueryResultBatch": { + "description": "A batch of results produced by a query.", + "type": "object", + "properties": { + "entityResultType": { + "description": "The result type for every entity in `entity_results`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value is never used.", + "The key and properties.", + "A projected subset of properties. The entity may have no key.", + "Only the key." + ], + "enum": [ + "RESULT_TYPE_UNSPECIFIED", + "FULL", + "PROJECTION", + "KEY_ONLY" + ] + }, + "entityResults": { + "description": "The results for this batch.", + "items": { + "$ref": "EntityResult" + }, + "type": "array" + }, + "moreResults": { + "type": "string", + "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\ncursor.", + "The query is finished, and there are no more results." + ], + "enum": [ + "MORE_RESULTS_TYPE_UNSPECIFIED", + "NOT_FINISHED", + "MORE_RESULTS_AFTER_LIMIT", + "MORE_RESULTS_AFTER_CURSOR", + "NO_MORE_RESULTS" + ], + "description": "The state of the query after the current batch." + }, + "endCursor": { + "format": "byte", + "description": "A cursor that points to the position after the last result in the batch.", + "type": "string" + }, + "snapshotVersion": { + "format": "int64", + "description": "The version number of the snapshot this batch was returned from.\nThis applies to the range of results from the query's `start_cursor` (or\nthe beginning of the query if no cursor was given) to this batch's\n`end_cursor` (not the query's `end_cursor`).\n\nIn a single transaction, subsequent query result batches for the same query\ncan have a greater snapshot version number. Each batch's snapshot version\nis valid for all preceding batches.\nThe value will be zero for eventually consistent queries.", + "type": "string" + }, + "skippedCursor": { + "format": "byte", + "description": "A cursor that points to the position after the last skipped result.\nWill be set when `skipped_results` != 0.", + "type": "string" + }, + "skippedResults": { + "format": "int32", + "description": "The number of results skipped, typically because of an offset.", + "type": "integer" + } + }, + "id": "QueryResultBatch" + }, + "GoogleDatastoreAdminV1beta1Progress": { + "description": "Measures the progress of a particular metric.", + "type": "object", + "properties": { + "workEstimated": { + "format": "int64", + "description": "An estimate of how much work needs to be performed. May be zero if the\nwork estimate is unavailable.", + "type": "string" + }, + "workCompleted": { + "type": "string", + "format": "int64", + "description": "The amount of work that has been completed. Note that this may be greater\nthan work_estimated." + } + }, + "id": "GoogleDatastoreAdminV1beta1Progress" + }, + "ReserveIdsRequest": { + "description": "The request for Datastore.ReserveIds.", + "type": "object", + "properties": { + "databaseId": { + "description": "If not empty, the ID of the database against which to make the request.", + "type": "string" + }, + "keys": { + "description": "A list of keys with complete key paths whose numeric IDs should not be\nauto-allocated.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + }, + "id": "ReserveIdsRequest" + }, + "PathElement": { + "description": "A (kind, ID/name) pair used to construct a key path.\n\nIf either name or ID is set, the element is complete.\nIf neither is set, the element is incomplete.", + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "int64", + "description": "The auto-allocated ID of the entity.\nNever equal to zero. Values less than zero are discouraged and may not\nbe supported in the future." + }, + "name": { + "description": "The name of the entity.\nA name matching regex `__.*__` is reserved/read-only.\nA name must not be more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", + "type": "string" + }, + "kind": { + "type": "string", + "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`." + } + }, + "id": "PathElement" + }, + "GqlQueryParameter": { + "description": "A binding parameter for a GQL query.", + "type": "object", + "properties": { + "value": { + "$ref": "Value", + "description": "A value parameter." + }, + "cursor": { + "format": "byte", + "description": "A query cursor. Query cursors are returned in query\nresult batches.", + "type": "string" + } + }, + "id": "GqlQueryParameter" + }, + "BeginTransactionResponse": { + "description": "The response for Datastore.BeginTransaction.", + "type": "object", + "properties": { + "transaction": { + "type": "string", + "format": "byte", + "description": "The transaction identifier (always present)." + } + }, + "id": "BeginTransactionResponse" + }, + "LookupResponse": { + "description": "The response for Datastore.Lookup.", + "type": "object", + "properties": { + "deferred": { + "description": "A list of keys that were not looked up due to resource constraints. The\norder of results in this field is undefined and has no relation to the\norder of the keys in the input.", + "items": { + "$ref": "Key" + }, + "type": "array" + }, + "missing": { + "description": "Entities not found as `ResultType.KEY_ONLY` entities. The order of results\nin this field is undefined and has no relation to the order of the keys\nin the input.", + "items": { + "$ref": "EntityResult" + }, + "type": "array" + }, + "found": { + "items": { + "$ref": "EntityResult" + }, + "type": "array", + "description": "Entities found as `ResultType.FULL` entities. The order of results in this\nfield is undefined and has no relation to the order of the keys in the\ninput." + } + }, + "id": "LookupResponse" + }, + "AllocateIdsRequest": { + "description": "The request for Datastore.AllocateIds.", + "type": "object", + "properties": { + "keys": { + "description": "A list of keys with incomplete key paths for which to allocate IDs.\nNo key may be reserved/read-only.", + "items": { + "$ref": "Key" + }, + "type": "array" + } + }, + "id": "AllocateIdsRequest" + }, + "RunQueryResponse": { + "id": "RunQueryResponse", + "description": "The response for Datastore.RunQuery.", + "type": "object", + "properties": { + "query": { + "$ref": "Query", + "description": "The parsed form of the `GqlQuery` from the request, if it was set." + }, + "batch": { + "description": "A batch of query results (always present).", + "$ref": "QueryResultBatch" + } + } + }, + "CommitRequest": { + "type": "object", + "properties": { + "mutations": { + "description": "The mutations to perform.\n\nWhen mode is `TRANSACTIONAL`, mutations affecting a single entity are\napplied in order. The following sequences of mutations affecting a single\nentity are not permitted in a single `Commit` request:\n\n- `insert` followed by `insert`\n- `update` followed by `insert`\n- `upsert` followed by `insert`\n- `delete` followed by `update`\n\nWhen mode is `NON_TRANSACTIONAL`, no two mutations may affect a single\nentity.", + "items": { + "$ref": "Mutation" + }, + "type": "array" + }, + "transaction": { + "format": "byte", + "description": "The identifier of the transaction associated with the commit. A\ntransaction identifier is returned by a call to\nDatastore.BeginTransaction.", + "type": "string" + }, + "mode": { + "description": "The type of commit to perform. Defaults to `TRANSACTIONAL`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Transactional: The mutations are either all applied, or none are applied.\nLearn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).", + "Non-transactional: The mutations may not apply as all or none." + ], + "enum": [ + "MODE_UNSPECIFIED", + "TRANSACTIONAL", + "NON_TRANSACTIONAL" + ] + } + }, + "id": "CommitRequest", + "description": "The request for Datastore.Commit." + }, + "BeginTransactionRequest": { + "type": "object", + "properties": { + "transactionOptions": { + "$ref": "TransactionOptions", + "description": "Options for a new transaction." + } + }, + "id": "BeginTransactionRequest", + "description": "The request for Datastore.BeginTransaction." + }, + "PropertyOrder": { + "properties": { + "direction": { + "description": "The direction to order by. Defaults to `ASCENDING`.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Ascending.", + "Descending." + ], + "enum": [ + "DIRECTION_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ] + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to order by." + } + }, + "id": "PropertyOrder", + "description": "The desired order for a specific property.", + "type": "object" + }, + "KindExpression": { + "description": "A representation of a kind.", + "type": "object", + "properties": { + "name": { + "description": "The name of the kind.", + "type": "string" + } + }, + "id": "KindExpression" + }, + "Key": { + "type": "object", + "properties": { + "partitionId": { + "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition.", + "$ref": "PartitionId" + }, + "path": { + "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nAn entity path is always fully complete: *all* of the entity's ancestors\nare required to be in the path along with the entity identifier itself.\nThe only exception is that in some documented cases, the identifier in the\nlast path element (for the entity) itself may be omitted. For example,\nthe last path element of the key of `Mutation.insert` may have no\nidentifier.\n\nA path can never be empty, and a path can have at most 100 elements.", + "items": { + "$ref": "PathElement" + }, + "type": "array" + } + }, + "id": "Key", + "description": "A unique identifier for an entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts." + }, + "LatLng": { + "id": "LatLng", + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "longitude": { + "format": "double", + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "type": "number" + }, + "latitude": { + "type": "number", + "format": "double", + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0]." + } + } + }, + "ReserveIdsResponse": { + "type": "object", + "properties": {}, + "id": "ReserveIdsResponse", + "description": "The response for Datastore.ReserveIds." + }, + "PropertyReference": { + "id": "PropertyReference", + "description": "A reference to a property relative to the kind expressions.", + "type": "object", + "properties": { + "name": { + "description": "The name of the property.\nIf name includes \".\"s, it may be interpreted as a property name path.", + "type": "string" + } + } + }, + "GoogleDatastoreAdminV1beta1EntityFilter": { + "id": "GoogleDatastoreAdminV1beta1EntityFilter", + "description": "Identifies a subset of entities in a project. This is specified as\ncombinations of kinds and namespaces (either or both of which may be all, as\ndescribed in the following examples).\nExample usage:\n\nEntire project:\n kinds=[], namespace_ids=[]\n\nKinds Foo and Bar in all namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=[]\n\nKinds Foo and Bar only in the default namespace:\n kinds=['Foo', 'Bar'], namespace_ids=['']\n\nKinds Foo and Bar in both the default and Baz namespaces:\n kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']\n\nThe entire Baz namespace:\n kinds=[], namespace_ids=['Baz']", + "type": "object", + "properties": { + "kinds": { + "description": "If empty, then this represents all kinds.", + "items": { + "type": "string" + }, + "type": "array" + }, + "namespaceIds": { + "description": "An empty list represents all namespaces. This is the preferred\nusage for projects that don't use namespaces.\n\nAn empty string element represents the default namespace. This should be\nused if the project has data in non-default namespaces, but doesn't want to\ninclude them.\nEach namespace in this list must be unique.", + "items": { + "type": "string" + }, + "type": "array" + } + } } }, - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - }, "protocol": "rest", + "icons": { + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" + }, "version": "v1beta3", "baseUrl": "https://datastore.googleapis.com/", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/datastore": { "description": "View and manage your Google Cloud Datastore data" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } @@ -1271,8 +1324,7 @@ "ownerDomain": "google.com", "name": "datastore", "batchPath": "batch", - "revision": "20170912", + "revision": "20171010", "documentationLink": "https://cloud.google.com/datastore/", - "id": "datastore:v1beta3", - "title": "Google Cloud Datastore API" + "id": "datastore:v1beta3" } diff --git a/vendor/google.golang.org/api/datastore/v1beta3/datastore-gen.go b/vendor/google.golang.org/api/datastore/v1beta3/datastore-gen.go index efb1b3215..d21a463b7 100644 --- a/vendor/google.golang.org/api/datastore/v1beta3/datastore-gen.go +++ b/vendor/google.golang.org/api/datastore/v1beta3/datastore-gen.go @@ -1729,6 +1729,47 @@ func (s *ReadWrite) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ReserveIdsRequest: The request for Datastore.ReserveIds. +type ReserveIdsRequest struct { + // DatabaseId: If not empty, the ID of the database against which to + // make the request. + DatabaseId string `json:"databaseId,omitempty"` + + // Keys: A list of keys with complete key paths whose numeric IDs should + // not be + // auto-allocated. + Keys []*Key `json:"keys,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DatabaseId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DatabaseId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ReserveIdsRequest) MarshalJSON() ([]byte, error) { + type noMethod ReserveIdsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ReserveIdsResponse: The response for Datastore.ReserveIds. +type ReserveIdsResponse struct { + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` +} + // RollbackRequest: The request for Datastore.Rollback. type RollbackRequest struct { // Transaction: The transaction identifier, returned by a call @@ -2532,6 +2573,143 @@ func (c *ProjectsLookupCall) Do(opts ...googleapi.CallOption) (*LookupResponse, } +// method id "datastore.projects.reserveIds": + +type ProjectsReserveIdsCall struct { + s *Service + projectId string + reserveidsrequest *ReserveIdsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ReserveIds: Prevents the supplied keys' IDs from being auto-allocated +// by Cloud +// Datastore. +func (r *ProjectsService) ReserveIds(projectId string, reserveidsrequest *ReserveIdsRequest) *ProjectsReserveIdsCall { + c := &ProjectsReserveIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.reserveidsrequest = reserveidsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsReserveIdsCall) Fields(s ...googleapi.Field) *ProjectsReserveIdsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsReserveIdsCall) Context(ctx context.Context) *ProjectsReserveIdsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsReserveIdsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsReserveIdsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.reserveidsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta3/projects/{projectId}:reserveIds") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "datastore.projects.reserveIds" call. +// Exactly one of *ReserveIdsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ReserveIdsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsReserveIdsCall) Do(opts ...googleapi.CallOption) (*ReserveIdsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ReserveIdsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Prevents the supplied keys' IDs from being auto-allocated by Cloud\nDatastore.", + // "flatPath": "v1beta3/projects/{projectId}:reserveIds", + // "httpMethod": "POST", + // "id": "datastore.projects.reserveIds", + // "parameterOrder": [ + // "projectId" + // ], + // "parameters": { + // "projectId": { + // "description": "The ID of the project against which to make the request.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta3/projects/{projectId}:reserveIds", + // "request": { + // "$ref": "ReserveIdsRequest" + // }, + // "response": { + // "$ref": "ReserveIdsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + // method id "datastore.projects.rollback": type ProjectsRollbackCall struct { diff --git a/vendor/google.golang.org/api/dlp/v2beta1/dlp-api.json b/vendor/google.golang.org/api/dlp/v2beta1/dlp-api.json index 540d62fc4..c4ac08960 100644 --- a/vendor/google.golang.org/api/dlp/v2beta1/dlp-api.json +++ b/vendor/google.golang.org/api/dlp/v2beta1/dlp-api.json @@ -1,14 +1,318 @@ { + "basePath": "", + "revision": "20171017", + "documentationLink": "https://cloud.google.com/dlp/docs/", + "id": "dlp:v2beta1", + "discoveryVersion": "v1", "version_module": true, "schemas": { + "GooglePrivacyDlpV2beta1InspectConfig": { + "description": "Configuration description of the scanning process.\nWhen used with redactContent only info_types and min_likelihood are currently\nused.", + "type": "object", + "properties": { + "infoTypeLimits": { + "description": "Configuration of findings limit given for specified info types.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1InfoTypeLimit" + } + }, + "maxFindings": { + "description": "Limits the number of findings per content item or long running operation.", + "format": "int32", + "type": "integer" + }, + "infoTypes": { + "description": "Restricts what info_types to look for. The values must correspond to\nInfoType values returned by ListInfoTypes or found in documentation.\nEmpty info_types runs all enabled detectors.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1InfoType" + } + }, + "includeQuote": { + "description": "When true, a contextual quote from the data that triggered a finding is\nincluded in the response; see Finding.quote.", + "type": "boolean" + }, + "customInfoTypes": { + "description": "Custom info types provided by the user.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1CustomInfoType" + } + }, + "excludeTypes": { + "description": "When true, excludes type information of the findings.", + "type": "boolean" + }, + "minLikelihood": { + "enumDescriptions": [ + "Default value; information with all likelihoods is included.", + "Few matching elements.", + "", + "Some matching elements.", + "", + "Many matching elements." + ], + "enum": [ + "LIKELIHOOD_UNSPECIFIED", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Only returns findings equal or above this threshold.", + "type": "string" + } + }, + "id": "GooglePrivacyDlpV2beta1InspectConfig" + }, + "GooglePrivacyDlpV2beta1Projection": { + "properties": { + "property": { + "$ref": "GooglePrivacyDlpV2beta1PropertyReference", + "description": "The property to project." + } + }, + "id": "GooglePrivacyDlpV2beta1Projection", + "description": "A representation of a Datastore property in a projection.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1RedactConfig": { + "properties": {}, + "id": "GooglePrivacyDlpV2beta1RedactConfig", + "description": "Redact a given value. For example, if used with an `InfoTypeTransformation`\ntransforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the\noutput would be 'My phone number is '.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1CryptoHashConfig": { + "properties": { + "cryptoKey": { + "description": "The key used by the hash function.", + "$ref": "GooglePrivacyDlpV2beta1CryptoKey" + } + }, + "id": "GooglePrivacyDlpV2beta1CryptoHashConfig", + "description": "Pseudonymization method that generates surrogates via cryptographic hashing.\nUses SHA-256.\nOutputs a 32 byte digest as an uppercase hex string\n(for example, 41D1567F7F99F1DC2A5FAB886DEE5BEE).\nCurrently, only string and integer values can be hashed.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1Key": { + "description": "A unique identifier for a Datastore entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts.", + "type": "object", + "properties": { + "path": { + "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nA path can never be empty, and a path can have at most 100 elements.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1PathElement" + } + }, + "partitionId": { + "$ref": "GooglePrivacyDlpV2beta1PartitionId", + "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition." + } + }, + "id": "GooglePrivacyDlpV2beta1Key" + }, + "GooglePrivacyDlpV2beta1InspectContentRequest": { + "description": "Request to search for potentially sensitive info in a list of items.", + "type": "object", + "properties": { + "inspectConfig": { + "description": "Configuration for the inspector.", + "$ref": "GooglePrivacyDlpV2beta1InspectConfig" + }, + "items": { + "description": "The list of items to inspect. Items in a single request are\nconsidered \"related\" unless inspect_config.independent_inputs is true.\nUp to 100 are allowed per request.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1ContentItem" + } + } + }, + "id": "GooglePrivacyDlpV2beta1InspectContentRequest" + }, + "GoogleTypeDate": { + "properties": { + "year": { + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "format": "int32", + "type": "integer" + }, + "day": { + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of year. Must be from 1 to 12.", + "format": "int32", + "type": "integer" + } + }, + "id": "GoogleTypeDate", + "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1ImageRedactionConfig": { + "properties": { + "redactAllText": { + "description": "If true, all text found in the image, regardless whether it matches an\ninfo_type, is redacted.", + "type": "boolean" + }, + "infoType": { + "description": "Only one per info_type should be provided per request. If not\nspecified, and redact_all_text is false, the DLP API will redact all\ntext that it matches against all info_types that are found, but not\nspecified in another ImageRedactionConfig.", + "$ref": "GooglePrivacyDlpV2beta1InfoType" + }, + "redactionColor": { + "description": "The color to use when redacting content from an image. If not specified,\nthe default is black.", + "$ref": "GooglePrivacyDlpV2beta1Color" + } + }, + "id": "GooglePrivacyDlpV2beta1ImageRedactionConfig", + "description": "Configuration for determining how redaction of images should occur.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1ReplaceWithInfoTypeConfig": { + "description": "Replace each matching finding with the name of the info_type.", + "type": "object", + "properties": {}, + "id": "GooglePrivacyDlpV2beta1ReplaceWithInfoTypeConfig" + }, + "GooglePrivacyDlpV2beta1Location": { + "description": "Specifies the location of a finding within its source item.", + "type": "object", + "properties": { + "tableLocation": { + "description": "Location within a `ContentItem.Table`.", + "$ref": "GooglePrivacyDlpV2beta1TableLocation" + }, + "codepointRange": { + "$ref": "GooglePrivacyDlpV2beta1Range", + "description": "Character offsets within a content item, included when content type\nis a text. Default charset assumed to be UTF-8." + }, + "fieldId": { + "$ref": "GooglePrivacyDlpV2beta1FieldId", + "description": "Field id of the field containing the finding." + }, + "imageBoxes": { + "description": "Location within an image's pixels.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1ImageLocation" + } + }, + "byteRange": { + "description": "Zero-based byte offsets within a content item.", + "$ref": "GooglePrivacyDlpV2beta1Range" + }, + "recordKey": { + "description": "Key of the finding.", + "$ref": "GooglePrivacyDlpV2beta1RecordKey" + } + }, + "id": "GooglePrivacyDlpV2beta1Location" + }, + "GooglePrivacyDlpV2beta1RecordSuppression": { + "description": "Configuration to suppress records whose suppression conditions evaluate to\ntrue.", + "type": "object", + "properties": { + "condition": { + "$ref": "GooglePrivacyDlpV2beta1RecordCondition" + } + }, + "id": "GooglePrivacyDlpV2beta1RecordSuppression" + }, + "GooglePrivacyDlpV2beta1CustomInfoType": { + "description": "Custom information type provided by the user. Used to find domain-specific\nsensitive information configurable to the data in question.", + "type": "object", + "properties": { + "infoType": { + "description": "Info type configuration. All custom info types must have configurations\nthat do not conflict with built-in info types or other custom info types.", + "$ref": "GooglePrivacyDlpV2beta1InfoType" + }, + "dictionary": { + "description": "Dictionary-based custom info type.", + "$ref": "GooglePrivacyDlpV2beta1Dictionary" + } + }, + "id": "GooglePrivacyDlpV2beta1CustomInfoType" + }, + "GooglePrivacyDlpV2beta1UnwrappedCryptoKey": { + "properties": { + "key": { + "description": "The AES 128/192/256 bit key. [required]", + "format": "byte", + "type": "string" + } + }, + "id": "GooglePrivacyDlpV2beta1UnwrappedCryptoKey", + "description": "Using raw keys is prone to security risks due to accidentally\nleaking the key. Choose another type of key if possible.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1EntityId": { + "description": "An entity in a dataset is a field or set of fields that correspond to a\nsingle person. For example, in medical records the `EntityId` might be\na patient identifier, or for financial records it might be an account\nidentifier. This message is used when generalizations or analysis must be\nconsistent across multiple rows pertaining to the same entity.", + "type": "object", + "properties": { + "field": { + "description": "Composite key indicating which field contains the entity identifier.", + "$ref": "GooglePrivacyDlpV2beta1FieldId" + } + }, + "id": "GooglePrivacyDlpV2beta1EntityId" + }, + "GooglePrivacyDlpV2beta1InfoTypeDescription": { + "properties": { + "categories": { + "description": "List of categories this infoType belongs to.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1CategoryDescription" + } + }, + "name": { + "description": "Internal name of the infoType.", + "type": "string" + }, + "displayName": { + "description": "Human readable form of the infoType name.", + "type": "string" + } + }, + "id": "GooglePrivacyDlpV2beta1InfoTypeDescription", + "description": "Description of the information type (infoType).", + "type": "object" + }, + "GoogleRpcStatus": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + } + }, + "id": "GoogleRpcStatus" + }, "GooglePrivacyDlpV2beta1PathElement": { "description": "A (kind, ID/name) pair used to construct a key path.\n\nIf either name or ID is set, the element is complete.\nIf neither is set, the element is incomplete.", "type": "object", "properties": { - "kind": { - "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", - "type": "string" - }, "id": { "description": "The auto-allocated ID of the entity.\nNever equal to zero. Values less than zero are discouraged and may not\nbe supported in the future.", "format": "int64", @@ -17,16 +321,46 @@ "name": { "description": "The name of the entity.\nA name matching regex `__.*__` is reserved/read-only.\nA name must not be more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", "type": "string" + }, + "kind": { + "description": "The kind of the entity.\nA kind matching regex `__.*__` is reserved/read-only.\nA kind must not contain more than 1500 bytes when UTF-8 encoded.\nCannot be `\"\"`.", + "type": "string" } }, "id": "GooglePrivacyDlpV2beta1PathElement" }, + "GooglePrivacyDlpV2beta1BigQueryTable": { + "properties": { + "datasetId": { + "description": "Dataset ID of the table.", + "type": "string" + }, + "tableId": { + "description": "Name of the table.", + "type": "string" + }, + "projectId": { + "description": "The Google Cloud Platform project ID of the project containing the table.\nIf omitted, project ID is inferred from the API call.", + "type": "string" + } + }, + "id": "GooglePrivacyDlpV2beta1BigQueryTable", + "description": "Message defining the location of a BigQuery table. A table is uniquely\nidentified by its project_id, dataset_id, and table_name. Within a query\na table is often referenced with a string in the format of:\n`\u003cproject_id\u003e:\u003cdataset_id\u003e.\u003ctable_id\u003e` or\n`\u003cproject_id\u003e.\u003cdataset_id\u003e.\u003ctable_id\u003e`.", + "type": "object" + }, "GooglePrivacyDlpV2beta1SummaryResult": { "description": "A collection that informs the user the number of times a particular\n`TransformationResultCode` and error details occurred.", "type": "object", "properties": { + "details": { + "description": "A place for warnings or errors to show up if a transformation didn't\nwork as expected.", + "type": "string" + }, + "count": { + "format": "int64", + "type": "string" + }, "code": { - "type": "string", "enumDescriptions": [ "", "", @@ -36,41 +370,13 @@ "TRANSFORMATION_RESULT_CODE_UNSPECIFIED", "SUCCESS", "ERROR" - ] - }, - "details": { - "description": "A place for warnings or errors to show up if a transformation didn't\nwork as expected.", - "type": "string" - }, - "count": { - "format": "int64", + ], "type": "string" } }, "id": "GooglePrivacyDlpV2beta1SummaryResult" }, - "GooglePrivacyDlpV2beta1BigQueryTable": { - "description": "Message defining the location of a BigQuery table. A table is uniquely\nidentified by its project_id, dataset_id, and table_name. Within a query\na table is often referenced with a string in the format of:\n`\u003cproject_id\u003e:\u003cdataset_id\u003e.\u003ctable_id\u003e` or\n`\u003cproject_id\u003e.\u003cdataset_id\u003e.\u003ctable_id\u003e`.", - "type": "object", - "properties": { - "tableId": { - "description": "Name of the table.", - "type": "string" - }, - "projectId": { - "description": "The Google Cloud Platform project ID of the project containing the table.\nIf omitted, project ID is inferred from the API call.", - "type": "string" - }, - "datasetId": { - "description": "Dataset ID of the table.", - "type": "string" - } - }, - "id": "GooglePrivacyDlpV2beta1BigQueryTable" - }, "GooglePrivacyDlpV2beta1ListRootCategoriesResponse": { - "description": "Response for ListRootCategories request.", - "type": "object", "properties": { "categories": { "description": "List of all into type categories supported by the API.", @@ -80,11 +386,11 @@ } } }, - "id": "GooglePrivacyDlpV2beta1ListRootCategoriesResponse" + "id": "GooglePrivacyDlpV2beta1ListRootCategoriesResponse", + "description": "Response for ListRootCategories request.", + "type": "object" }, "GooglePrivacyDlpV2beta1InfoTypeTransformations": { - "description": "A type of transformation that will scan unstructured text and\napply various `PrimitiveTransformation`s to each finding, where the\ntransformation is applied to only values that were identified as a specific\ninfo_type.", - "type": "object", "properties": { "transformations": { "description": "Transformation for each info type. Cannot specify more than one\nfor a given info type. [required]", @@ -94,7 +400,9 @@ } } }, - "id": "GooglePrivacyDlpV2beta1InfoTypeTransformations" + "id": "GooglePrivacyDlpV2beta1InfoTypeTransformations", + "description": "A type of transformation that will scan unstructured text and\napply various `PrimitiveTransformation`s to each finding, where the\ntransformation is applied to only values that were identified as a specific\ninfo_type.", + "type": "object" }, "GooglePrivacyDlpV2beta1KindExpression": { "description": "A representation of a Datastore kind.", @@ -108,38 +416,36 @@ "id": "GooglePrivacyDlpV2beta1KindExpression" }, "GooglePrivacyDlpV2beta1FileSet": { - "description": "Set of files to scan.", - "type": "object", "properties": { "url": { "description": "The url, in the format `gs://\u003cbucket\u003e/\u003cpath\u003e`. Trailing wildcard in the\npath is allowed.", "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1FileSet" + "id": "GooglePrivacyDlpV2beta1FileSet", + "description": "Set of files to scan.", + "type": "object" }, "GooglePrivacyDlpV2beta1AnalyzeDataSourceRiskRequest": { - "description": "Request for creating a risk analysis operation.", - "type": "object", "properties": { "privacyMetric": { - "description": "Privacy metric to compute.", - "$ref": "GooglePrivacyDlpV2beta1PrivacyMetric" + "$ref": "GooglePrivacyDlpV2beta1PrivacyMetric", + "description": "Privacy metric to compute." }, "sourceTable": { "description": "Input dataset to compute metrics over.", "$ref": "GooglePrivacyDlpV2beta1BigQueryTable" } }, - "id": "GooglePrivacyDlpV2beta1AnalyzeDataSourceRiskRequest" + "id": "GooglePrivacyDlpV2beta1AnalyzeDataSourceRiskRequest", + "description": "Request for creating a risk analysis operation.", + "type": "object" }, "GooglePrivacyDlpV2beta1InfoTypeTransformation": { - "description": "A transformation to apply to text that is identified as a specific\ninfo_type.", - "type": "object", "properties": { "primitiveTransformation": { - "description": "Primitive transformation to apply to the info type. [required]", - "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation" + "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation", + "description": "Primitive transformation to apply to the info type. [required]" }, "infoTypes": { "description": "Info types to apply the transformation to. Empty list will match all\navailable info types for this transformation.", @@ -149,21 +455,9 @@ } } }, - "id": "GooglePrivacyDlpV2beta1InfoTypeTransformation" - }, - "GooglePrivacyDlpV2beta1KAnonymityResult": { - "description": "Result of the k-anonymity computation.", - "type": "object", - "properties": { - "equivalenceClassHistogramBuckets": { - "description": "Histogram of k-anonymity equivalence classes.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1KAnonymityHistogramBucket" - } - } - }, - "id": "GooglePrivacyDlpV2beta1KAnonymityResult" + "id": "GooglePrivacyDlpV2beta1InfoTypeTransformation", + "description": "A transformation to apply to text that is identified as a specific\ninfo_type.", + "type": "object" }, "GooglePrivacyDlpV2beta1Bucket": { "description": "Buckets represented as ranges, along with replacement values. Ranges must\nbe non-overlapping.", @@ -174,8 +468,8 @@ "$ref": "GooglePrivacyDlpV2beta1Value" }, "max": { - "description": "Upper bound of the range, exclusive; type must match min.", - "$ref": "GooglePrivacyDlpV2beta1Value" + "$ref": "GooglePrivacyDlpV2beta1Value", + "description": "Upper bound of the range, exclusive; type must match min." }, "replacementValue": { "$ref": "GooglePrivacyDlpV2beta1Value", @@ -184,15 +478,22 @@ }, "id": "GooglePrivacyDlpV2beta1Bucket" }, - "GooglePrivacyDlpV2beta1CategoricalStatsHistogramBucket": { - "description": "Histogram bucket of value frequencies in the column.", - "type": "object", + "GooglePrivacyDlpV2beta1KAnonymityResult": { + "properties": { + "equivalenceClassHistogramBuckets": { + "description": "Histogram of k-anonymity equivalence classes.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1KAnonymityHistogramBucket" + } + } + }, + "id": "GooglePrivacyDlpV2beta1KAnonymityResult", + "description": "Result of the k-anonymity computation.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1CategoricalStatsHistogramBucket": { "properties": { - "bucketSize": { - "description": "Total number of records in this bucket.", - "format": "int64", - "type": "string" - }, "valueFrequencyUpperBound": { "description": "Upper bound on the value frequency of the values in this bucket.", "format": "int64", @@ -209,13 +510,18 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1ValueFrequency" } + }, + "bucketSize": { + "description": "Total number of records in this bucket.", + "format": "int64", + "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1CategoricalStatsHistogramBucket" + "id": "GooglePrivacyDlpV2beta1CategoricalStatsHistogramBucket", + "description": "Histogram bucket of value frequencies in the column.", + "type": "object" }, "GooglePrivacyDlpV2beta1TableLocation": { - "description": "Location of a finding within a `ContentItem.Table`.", - "type": "object", "properties": { "rowIndex": { "description": "The zero-based index of the row where the finding is located.", @@ -223,36 +529,38 @@ "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1TableLocation" - }, - "GooglePrivacyDlpV2beta1DatastoreKey": { - "description": "Record key for a finding in Cloud Datastore.", - "type": "object", - "properties": { - "entityKey": { - "description": "Datastore entity key.", - "$ref": "GooglePrivacyDlpV2beta1Key" - } - }, - "id": "GooglePrivacyDlpV2beta1DatastoreKey" + "id": "GooglePrivacyDlpV2beta1TableLocation", + "description": "Location of a finding within a `ContentItem.Table`.", + "type": "object" }, "GooglePrivacyDlpV2beta1KAnonymityConfig": { - "description": "k-anonymity metric, used for analysis of reidentification risk.", - "type": "object", "properties": { + "entityId": { + "description": "Optional message indicating that each distinct `EntityId` should not\ncontribute to the k-anonymity count more than once per equivalence class.", + "$ref": "GooglePrivacyDlpV2beta1EntityId" + }, "quasiIds": { "description": "Set of fields to compute k-anonymity over. When multiple fields are\nspecified, they are considered a single composite key. Structs and\nrepeated data types are not supported; however, nested fields are\nsupported so long as they are not structs themselves or nested within\na repeated field.", "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1FieldId" } - }, - "entityId": { - "description": "Optional message indicating that each distinct `EntityId` should not\ncontribute to the k-anonymity count more than once per equivalence class.", - "$ref": "GooglePrivacyDlpV2beta1EntityId" } }, - "id": "GooglePrivacyDlpV2beta1KAnonymityConfig" + "id": "GooglePrivacyDlpV2beta1KAnonymityConfig", + "description": "k-anonymity metric, used for analysis of reidentification risk.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1DatastoreKey": { + "description": "Record key for a finding in Cloud Datastore.", + "type": "object", + "properties": { + "entityKey": { + "$ref": "GooglePrivacyDlpV2beta1Key", + "description": "Datastore entity key." + } + }, + "id": "GooglePrivacyDlpV2beta1DatastoreKey" }, "GooglePrivacyDlpV2beta1RecordKey": { "description": "Message for a unique key indicating a record that contains a finding.", @@ -271,20 +579,20 @@ "description": "Request to de-identify a list of items.", "type": "object", "properties": { + "deidentifyConfig": { + "$ref": "GooglePrivacyDlpV2beta1DeidentifyConfig", + "description": "Configuration for the de-identification of the list of content items." + }, + "inspectConfig": { + "description": "Configuration for the inspector.", + "$ref": "GooglePrivacyDlpV2beta1InspectConfig" + }, "items": { "description": "The list of items to inspect. Up to 100 are allowed per request.\nAll items will be treated as text/*.", "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1ContentItem" } - }, - "deidentifyConfig": { - "description": "Configuration for the de-identification of the list of content items.", - "$ref": "GooglePrivacyDlpV2beta1DeidentifyConfig" - }, - "inspectConfig": { - "$ref": "GooglePrivacyDlpV2beta1InspectConfig", - "description": "Configuration for the inspector." } }, "id": "GooglePrivacyDlpV2beta1DeidentifyContentRequest" @@ -293,24 +601,27 @@ "description": "All the findings for a single scanned item.", "type": "object", "properties": { - "findingsTruncated": { - "description": "If true, then this item might have more findings than were returned,\nand the findings returned are an arbitrary subset of all findings.\nThe findings list might be truncated because the input items were too\nlarge, or because the server reached the maximum amount of resources\nallowed for a single API call. For best results, divide the input into\nsmaller batches.", - "type": "boolean" - }, "findings": { "description": "List of findings for an item.", "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1Finding" } + }, + "findingsTruncated": { + "description": "If true, then this item might have more findings than were returned,\nand the findings returned are an arbitrary subset of all findings.\nThe findings list might be truncated because the input items were too\nlarge, or because the server reached the maximum amount of resources\nallowed for a single API call. For best results, divide the input into\nsmaller batches.", + "type": "boolean" } }, "id": "GooglePrivacyDlpV2beta1InspectResult" }, "GooglePrivacyDlpV2beta1ImageLocation": { - "description": "Bounding box encompassing detected text within an image.", - "type": "object", "properties": { + "height": { + "description": "Height of the bounding box in pixels.", + "format": "int32", + "type": "integer" + }, "top": { "description": "Top coordinate of the bounding box. (0,0) is upper left.", "format": "int32", @@ -325,14 +636,11 @@ "description": "Width of the bounding box in pixels.", "format": "int32", "type": "integer" - }, - "height": { - "description": "Height of the bounding box in pixels.", - "format": "int32", - "type": "integer" } }, - "id": "GooglePrivacyDlpV2beta1ImageLocation" + "id": "GooglePrivacyDlpV2beta1ImageLocation", + "description": "Bounding box encompassing detected text within an image.", + "type": "object" }, "GooglePrivacyDlpV2beta1ReplaceValueConfig": { "description": "Replace each input value with a given `Value`.", @@ -346,13 +654,7 @@ "id": "GooglePrivacyDlpV2beta1ReplaceValueConfig" }, "GooglePrivacyDlpV2beta1ContentItem": { - "description": "Container structure for the content to inspect.", - "type": "object", "properties": { - "type": { - "description": "Type of the content, as defined in Content-Type HTTP header.\nSupported types are: all \"text\" types, octet streams, PNG images,\nJPEG images.", - "type": "string" - }, "value": { "description": "String data to inspect or redact.", "type": "string" @@ -365,14 +667,24 @@ "description": "Content data to inspect or redact.", "format": "byte", "type": "string" + }, + "type": { + "description": "Type of the content, as defined in Content-Type HTTP header.\nSupported types are: all \"text\" types, octet streams, PNG images,\nJPEG images.", + "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1ContentItem" + "id": "GooglePrivacyDlpV2beta1ContentItem", + "description": "Container structure for the content to inspect.", + "type": "object" }, "GooglePrivacyDlpV2beta1CryptoReplaceFfxFpeConfig": { "description": "Replaces an identifier with an surrogate using FPE with the FFX\nmode of operation.\nThe identifier must be representable by the US-ASCII character set.\nFor a given crypto key and context, the same identifier will be\nreplaced with the same surrogate.\nNote that a given identifier must be either the empty string or be at\nleast two characters long.", "type": "object", "properties": { + "context": { + "description": "A context may be used for higher security since the same\nidentifier in two different contexts likely will be given a distinct\nsurrogate. The principle is that the likeliness is inversely related\nto the ratio of the number of distinct identifiers per context over the\nnumber of possible surrogates: As long as this ratio is small, the\nlikehood is large.\n\nIf the context is not set, a default tweak will be used.\nIf the context is set but:\n\n1. there is no record present when transforming a given value or\n1. the field is not present when transforming a given value,\n\na default tweak will be used.\n\nNote that case (1) is expected when an `InfoTypeTransformation` is\napplied to both structured and non-structured `ContentItem`s.\nCurrently, the referenced field may be of value type integer or string.\n\nThe tweak is constructed as a sequence of bytes in big endian byte order\nsuch that:\n\n- a 64 bit integer is encoded followed by a single byte of value 1\n- a string is encoded in UTF-8 format followed by a single byte of value 2\n\nThis is also known as the 'tweak', as in tweakable encryption.", + "$ref": "GooglePrivacyDlpV2beta1FieldId" + }, "customAlphabet": { "description": "This is supported by mapping these to the alphanumeric characters\nthat the FFX mode natively supports. This happens before/after\nencryption/decryption.\nEach character listed must appear only once.\nNumber of characters must be in the range [2, 62].\nThis must be encoded as ASCII.\nThe order of characters does not matter.", "type": "string" @@ -382,13 +694,6 @@ "description": "The key used by the encryption algorithm. [required]" }, "commonAlphabet": { - "enumDescriptions": [ - "", - "[0-9] (radix of 10)", - "[0-9A-F] (radix of 16)", - "[0-9A-Z] (radix of 36)", - "[0-9A-Za-z] (radix of 62)" - ], "enum": [ "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED", "NUMERIC", @@ -396,16 +701,19 @@ "UPPER_CASE_ALPHA_NUMERIC", "ALPHA_NUMERIC" ], - "type": "string" + "type": "string", + "enumDescriptions": [ + "", + "[0-9] (radix of 10)", + "[0-9A-F] (radix of 16)", + "[0-9A-Z] (radix of 36)", + "[0-9A-Za-z] (radix of 62)" + ] }, "radix": { "description": "The native way to select the alphabet. Must be in the range [2, 62].", "format": "int32", "type": "integer" - }, - "context": { - "description": "A context may be used for higher security since the same\nidentifier in two different contexts likely will be given a distinct\nsurrogate. The principle is that the likeliness is inversely related\nto the ratio of the number of distinct identifiers per context over the\nnumber of possible surrogates: As long as this ratio is small, the\nlikehood is large.\n\nIf the context is not set, a default tweak will be used.\nIf the context is set but:\n\n1. there is no record present when transforming a given value or\n1. the field is not present when transforming a given value,\n\na default tweak will be used.\n\nNote that case (1) is expected when an `InfoTypeTransformation` is\napplied to both structured and non-structured `ContentItem`s.\nCurrently, the referenced field may be of value type integer or string.\n\nThe tweak is constructed as a sequence of bytes in big endian byte order\nsuch that:\n\n- a 64 bit integer is encoded followed by a single byte of value 1\n- a string is encoded in UTF-8 format followed by a single byte of value 2\n\nThis is also known as the 'tweak', as in tweakable encryption.", - "$ref": "GooglePrivacyDlpV2beta1FieldId" } }, "id": "GooglePrivacyDlpV2beta1CryptoReplaceFfxFpeConfig" @@ -414,6 +722,11 @@ "description": "Represents a color in the RGB color space.", "type": "object", "properties": { + "red": { + "description": "The amount of red 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", @@ -423,78 +736,73 @@ "description": "The amount of blue 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" } }, "id": "GooglePrivacyDlpV2beta1Color" }, "GooglePrivacyDlpV2beta1Table": { - "description": "Structured content to inspect. Up to 50,000 `Value`s per request allowed.", - "type": "object", "properties": { - "rows": { - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1Row" - } - }, "headers": { "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1FieldId" } + }, + "rows": { + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1Row" + } } }, - "id": "GooglePrivacyDlpV2beta1Table" + "id": "GooglePrivacyDlpV2beta1Table", + "description": "Structured content to inspect. Up to 50,000 `Value`s per request allowed.", + "type": "object" }, "GooglePrivacyDlpV2beta1ValueFrequency": { "description": "A value of a field, including its frequency.", "type": "object", "properties": { - "value": { - "description": "A value contained in the field in question.", - "$ref": "GooglePrivacyDlpV2beta1Value" - }, "count": { "description": "How many times the value is contained in the field.", "format": "int64", "type": "string" + }, + "value": { + "description": "A value contained in the field in question.", + "$ref": "GooglePrivacyDlpV2beta1Value" } }, "id": "GooglePrivacyDlpV2beta1ValueFrequency" }, "GooglePrivacyDlpV2beta1InfoTypeLimit": { - "description": "Max findings configuration per info type, per content item or long running\noperation.", - "type": "object", "properties": { - "infoType": { - "$ref": "GooglePrivacyDlpV2beta1InfoType", - "description": "Type of information the findings limit applies to. Only one limit per\ninfo_type should be provided. If InfoTypeLimit does not have an\ninfo_type, the DLP API applies the limit against all info_types that are\nfound but not specified in another InfoTypeLimit." - }, "maxFindings": { "description": "Max findings limit for the given infoType.", "format": "int32", "type": "integer" + }, + "infoType": { + "description": "Type of information the findings limit applies to. Only one limit per\ninfo_type should be provided. If InfoTypeLimit does not have an\ninfo_type, the DLP API applies the limit against all info_types that are\nfound but not specified in another InfoTypeLimit.", + "$ref": "GooglePrivacyDlpV2beta1InfoType" } }, - "id": "GooglePrivacyDlpV2beta1InfoTypeLimit" + "id": "GooglePrivacyDlpV2beta1InfoTypeLimit", + "description": "Max findings configuration per info type, per content item or long running\noperation.", + "type": "object" }, "GooglePrivacyDlpV2beta1CryptoKey": { "description": "This is a data encryption key (DEK) (as opposed to\na key encryption key (KEK) stored by KMS).\nWhen using KMS to wrap/unwrap DEKs, be sure to set an appropriate\nIAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot\nunwrap the data crypto key.", "type": "object", "properties": { + "unwrapped": { + "$ref": "GooglePrivacyDlpV2beta1UnwrappedCryptoKey" + }, "transient": { "$ref": "GooglePrivacyDlpV2beta1TransientCryptoKey" }, "kmsWrapped": { "$ref": "GooglePrivacyDlpV2beta1KmsWrappedCryptoKey" - }, - "unwrapped": { - "$ref": "GooglePrivacyDlpV2beta1UnwrappedCryptoKey" } }, "id": "GooglePrivacyDlpV2beta1CryptoKey" @@ -503,11 +811,6 @@ "description": "Histogram bucket of sensitive value frequencies in the table.", "type": "object", "properties": { - "bucketSize": { - "description": "Total number of records in this bucket.", - "format": "int64", - "type": "string" - }, "sensitiveValueFrequencyUpperBound": { "description": "Upper bound on the sensitive value frequencies of the equivalence\nclasses in this bucket.", "format": "int64", @@ -524,13 +827,16 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1LDiversityEquivalenceClass" } + }, + "bucketSize": { + "description": "Total number of records in this bucket.", + "format": "int64", + "type": "string" } }, "id": "GooglePrivacyDlpV2beta1LDiversityHistogramBucket" }, "GooglePrivacyDlpV2beta1Value": { - "description": "Set of primitive values supported by the system.", - "type": "object", "properties": { "timeValue": { "$ref": "GoogleTypeTimeOfDay" @@ -557,17 +863,23 @@ "type": "number" } }, - "id": "GooglePrivacyDlpV2beta1Value" + "id": "GooglePrivacyDlpV2beta1Value", + "description": "Set of primitive values supported by the system.", + "type": "object" }, "GooglePrivacyDlpV2beta1Condition": { - "description": "The field type of `value` and `field` do not need to match to be\nconsidered equal, but not all comparisons are possible.\n\nA `value` of type:\n\n- `string` can be compared against all other types\n- `boolean` can only be compared against other booleans\n- `integer` can be compared against doubles or a string if the string value\ncan be parsed as an integer.\n- `double` can be compared against integers or a string if the string can\nbe parsed as a double.\n- `Timestamp` can be compared against strings in RFC 3339 date string\nformat.\n- `TimeOfDay` can be compared against timestamps and strings in the format\nof 'HH:mm:ss'.\n\nIf we fail to compare do to type mismatch, a warning will be given and\nthe condition will evaluate to false.", - "type": "object", "properties": { - "field": { - "description": "Field within the record this condition is evaluated against. [required]", - "$ref": "GooglePrivacyDlpV2beta1FieldId" - }, "operator": { + "enum": [ + "RELATIONAL_OPERATOR_UNSPECIFIED", + "EQUAL_TO", + "NOT_EQUAL_TO", + "GREATER_THAN", + "LESS_THAN", + "GREATER_THAN_OR_EQUALS", + "LESS_THAN_OR_EQUALS", + "EXISTS" + ], "description": "Operator used to compare the field or info type to the value. [required]", "type": "string", "enumDescriptions": [ @@ -579,24 +891,20 @@ "Greater than or equals.", "Less than or equals.", "Exists" - ], - "enum": [ - "RELATIONAL_OPERATOR_UNSPECIFIED", - "EQUAL_TO", - "NOT_EQUAL_TO", - "GREATER_THAN", - "LESS_THAN", - "GREATER_THAN_OR_EQUALS", - "LESS_THAN_OR_EQUALS", - "EXISTS" ] }, "value": { "description": "Value to compare against. [Required, except for `EXISTS` tests.]", "$ref": "GooglePrivacyDlpV2beta1Value" + }, + "field": { + "$ref": "GooglePrivacyDlpV2beta1FieldId", + "description": "Field within the record this condition is evaluated against. [required]" } }, - "id": "GooglePrivacyDlpV2beta1Condition" + "id": "GooglePrivacyDlpV2beta1Condition", + "description": "The field type of `value` and `field` do not need to match to be\nconsidered equal, but not all comparisons are possible.\n\nA `value` of type:\n\n- `string` can be compared against all other types\n- `boolean` can only be compared against other booleans\n- `integer` can be compared against doubles or a string if the string value\ncan be parsed as an integer.\n- `double` can be compared against integers or a string if the string can\nbe parsed as a double.\n- `Timestamp` can be compared against strings in RFC 3339 date string\nformat.\n- `TimeOfDay` can be compared against timestamps and strings in the format\nof 'HH:mm:ss'.\n\nIf we fail to compare do to type mismatch, a warning will be given and\nthe condition will evaluate to false.", + "type": "object" }, "GooglePrivacyDlpV2beta1PartitionId": { "description": "Datastore partition ID.\nA partition ID identifies a grouping of entities. The grouping is always\nby project and namespace, however the namespace ID may be empty.\n\nA partition ID contains several dimensions:\nproject ID and namespace ID.", @@ -631,10 +939,6 @@ "description": "Request to search for potentially sensitive info in a list of items\nand replace it with a default or provided content.", "type": "object", "properties": { - "inspectConfig": { - "$ref": "GooglePrivacyDlpV2beta1InspectConfig", - "description": "Configuration for the inspector." - }, "items": { "description": "The list of items to inspect. Up to 100 are allowed per request.", "type": "array", @@ -655,36 +959,56 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1ImageRedactionConfig" } + }, + "inspectConfig": { + "$ref": "GooglePrivacyDlpV2beta1InspectConfig", + "description": "Configuration for the inspector." } }, "id": "GooglePrivacyDlpV2beta1RedactContentRequest" }, - "GooglePrivacyDlpV2beta1FieldId": { - "description": "General identifier of a data field in a storage service.", + "GooglePrivacyDlpV2beta1WordList": { + "description": "Message defining a list of words or phrases to search for in the data.", "type": "object", + "properties": { + "words": { + "description": "Words or phrases defining the dictionary. The dictionary must contain\nat least one phrase and every phrase must contain at least 2 characters\nthat are letters or digits. [required]", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "GooglePrivacyDlpV2beta1WordList" + }, + "GooglePrivacyDlpV2beta1FieldId": { "properties": { "columnName": { "description": "Name describing the field.", "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1FieldId" + "id": "GooglePrivacyDlpV2beta1FieldId", + "description": "General identifier of a data field in a storage service.", + "type": "object" }, "GooglePrivacyDlpV2beta1TransformationSummary": { - "description": "Summary of a single tranformation.", - "type": "object", "properties": { "recordSuppress": { - "description": "The specific suppression option these stats apply to.", - "$ref": "GooglePrivacyDlpV2beta1RecordSuppression" + "$ref": "GooglePrivacyDlpV2beta1RecordSuppression", + "description": "The specific suppression option these stats apply to." }, "infoType": { - "description": "Set if the transformation was limited to a specific info_type.", - "$ref": "GooglePrivacyDlpV2beta1InfoType" + "$ref": "GooglePrivacyDlpV2beta1InfoType", + "description": "Set if the transformation was limited to a specific info_type." }, "transformation": { - "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation", - "description": "The specific transformation these stats apply to." + "description": "The specific transformation these stats apply to.", + "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation" + }, + "field": { + "$ref": "GooglePrivacyDlpV2beta1FieldId", + "description": "Set if the transformation was limited to a specific FieldId." }, "results": { "type": "array", @@ -692,10 +1016,6 @@ "$ref": "GooglePrivacyDlpV2beta1SummaryResult" } }, - "field": { - "$ref": "GooglePrivacyDlpV2beta1FieldId", - "description": "Set if the transformation was limited to a specific FieldId." - }, "fieldTransformations": { "description": "The field transformation that was applied. This list will contain\nmultiple only in the case of errors.", "type": "array", @@ -704,7 +1024,9 @@ } } }, - "id": "GooglePrivacyDlpV2beta1TransformationSummary" + "id": "GooglePrivacyDlpV2beta1TransformationSummary", + "description": "Summary of a single tranformation.", + "type": "object" }, "GoogleLongrunningCancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", @@ -716,14 +1038,6 @@ "description": "Partially mask a string by replacing a given number of characters with a\nfixed character. Masking can start from the beginning or end of the string.\nThis can be used on data of any type (numbers, longs, and so on) and when\nde-identifying structured data we'll attempt to preserve the original data's\ntype. (This allows you to take a long like 123 and modify it to a string like\n**3.", "type": "object", "properties": { - "maskingCharacter": { - "description": "Character to mask the sensitive values—for example, \"*\" for an\nalphabetic string such as name, or \"0\" for a numeric string such as ZIP\ncode or credit card number. String must have length 1. If not supplied, we\nwill default to \"*\" for strings, 0 for digits.", - "type": "string" - }, - "reverseOrder": { - "description": "Mask characters in reverse order. For example, if `masking_character` is\n'0', number_to_mask is 14, and `reverse_order` is false, then\n1234-5678-9012-3456 -\u003e 00000000000000-3456\nIf `masking_character` is '*', `number_to_mask` is 3, and `reverse_order`\nis true, then 12345 -\u003e 12***", - "type": "boolean" - }, "numberToMask": { "description": "Number of characters to mask. If not set, all matching chars will be\nmasked. Skipped characters do not count towards this tally.", "format": "int32", @@ -735,63 +1049,53 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1CharsToIgnore" } + }, + "maskingCharacter": { + "description": "Character to mask the sensitive values—for example, \"*\" for an\nalphabetic string such as name, or \"0\" for a numeric string such as ZIP\ncode or credit card number. String must have length 1. If not supplied, we\nwill default to \"*\" for strings, 0 for digits.", + "type": "string" + }, + "reverseOrder": { + "description": "Mask characters in reverse order. For example, if `masking_character` is\n'0', number_to_mask is 14, and `reverse_order` is false, then\n1234-5678-9012-3456 -\u003e 00000000000000-3456\nIf `masking_character` is '*', `number_to_mask` is 3, and `reverse_order`\nis true, then 12345 -\u003e 12***", + "type": "boolean" } }, "id": "GooglePrivacyDlpV2beta1CharacterMaskConfig" }, "GooglePrivacyDlpV2beta1TransientCryptoKey": { - "description": "Use this to have a random data crypto key generated.\nIt will be discarded after the operation/request finishes.", - "type": "object", "properties": { "name": { "description": "Name of the key. [required]\nThis is an arbitrary string used to differentiate different keys.\nA unique key is generated per name: two separate `TransientCryptoKey`\nprotos share the same generated key if their names are the same.\nWhen the data crypto key is generated, this name is not used in any way\n(repeating the api call will result in a different key being generated).", "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1TransientCryptoKey" + "id": "GooglePrivacyDlpV2beta1TransientCryptoKey", + "description": "Use this to have a random data crypto key generated.\nIt will be discarded after the operation/request finishes.", + "type": "object" }, "GooglePrivacyDlpV2beta1CreateInspectOperationRequest": { - "description": "Request for scheduling a scan of a data subset from a Google Platform data\nrepository.", - "type": "object", "properties": { - "inspectConfig": { - "$ref": "GooglePrivacyDlpV2beta1InspectConfig", - "description": "Configuration for the inspector." - }, "storageConfig": { - "description": "Specification of the data set to process.", - "$ref": "GooglePrivacyDlpV2beta1StorageConfig" + "$ref": "GooglePrivacyDlpV2beta1StorageConfig", + "description": "Specification of the data set to process." }, "outputConfig": { "$ref": "GooglePrivacyDlpV2beta1OutputStorageConfig", "description": "Optional location to store findings." }, "operationConfig": { - "$ref": "GooglePrivacyDlpV2beta1OperationConfig", - "description": "Additional configuration settings for long running operations." - } - }, - "id": "GooglePrivacyDlpV2beta1CreateInspectOperationRequest" - }, - "GooglePrivacyDlpV2beta1InfoTypeStatistics": { - "description": "Statistics regarding a specific InfoType.", - "type": "object", - "properties": { - "infoType": { - "description": "The type of finding this stat is for.", - "$ref": "GooglePrivacyDlpV2beta1InfoType" + "description": "Additional configuration settings for long running operations.", + "$ref": "GooglePrivacyDlpV2beta1OperationConfig" }, - "count": { - "description": "Number of findings for this info type.", - "format": "int64", - "type": "string" + "inspectConfig": { + "description": "Configuration for the inspector.", + "$ref": "GooglePrivacyDlpV2beta1InspectConfig" } }, - "id": "GooglePrivacyDlpV2beta1InfoTypeStatistics" + "id": "GooglePrivacyDlpV2beta1CreateInspectOperationRequest", + "description": "Request for scheduling a scan of a data subset from a Google Platform data\nrepository.", + "type": "object" }, "GooglePrivacyDlpV2beta1RedactContentResponse": { - "description": "Results of redacting a list of items.", - "type": "object", "properties": { "items": { "description": "The redacted content.", @@ -801,7 +1105,25 @@ } } }, - "id": "GooglePrivacyDlpV2beta1RedactContentResponse" + "id": "GooglePrivacyDlpV2beta1RedactContentResponse", + "description": "Results of redacting a list of items.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1InfoTypeStatistics": { + "properties": { + "count": { + "description": "Number of findings for this info type.", + "format": "int64", + "type": "string" + }, + "infoType": { + "description": "The type of finding this stat is for.", + "$ref": "GooglePrivacyDlpV2beta1InfoType" + } + }, + "id": "GooglePrivacyDlpV2beta1InfoTypeStatistics", + "description": "Statistics regarding a specific InfoType.", + "type": "object" }, "GooglePrivacyDlpV2beta1PropertyReference": { "description": "A reference to a property relative to the Datastore kind expressions.", @@ -814,33 +1136,10 @@ }, "id": "GooglePrivacyDlpV2beta1PropertyReference" }, - "GooglePrivacyDlpV2beta1OutputStorageConfig": { - "description": "Cloud repository for storing output.", - "type": "object", - "properties": { - "table": { - "description": "Store findings in a new table in the dataset.", - "$ref": "GooglePrivacyDlpV2beta1BigQueryTable" - }, - "storagePath": { - "$ref": "GooglePrivacyDlpV2beta1CloudStoragePath", - "description": "The path to a Google Cloud Storage location to store output.\nThe bucket must already exist and\nthe Google APIs service account for DLP must have write permission to\nwrite to the given bucket.\nResults are split over multiple csv files with each file name matching\nthe pattern \"[operation_id]_[count].csv\", for example\n`3094877188788974909_1.csv`. The `operation_id` matches the\nidentifier for the Operation, and the `count` is a counter used for\ntracking the number of files written.\n\nThe CSV file(s) contain the following columns regardless of storage type\nscanned:\n- id\n- info_type\n- likelihood\n- byte size of finding\n- quote\n- timestamp\n\nFor Cloud Storage the next columns are:\n\n- file_path\n- start_offset\n\nFor Cloud Datastore the next columns are:\n\n- project_id\n- namespace_id\n- path\n- column_name\n- offset\n\nFor BigQuery the next columns are:\n\n- row_number\n- project_id\n- dataset_id\n- table_id" - } - }, - "id": "GooglePrivacyDlpV2beta1OutputStorageConfig" - }, "GooglePrivacyDlpV2beta1FieldTransformation": { "description": "The transformation to apply to the field.", "type": "object", "properties": { - "condition": { - "description": "Only apply the transformation if the condition evaluates to true for the\ngiven `RecordCondition`. The conditions are allowed to reference fields\nthat are not used in the actual transformation. [optional]\n\nExample Use Cases:\n\n- Apply a different bucket transformation to an age column if the zip code\ncolumn for the same record is within a specific range.\n- Redact a field if the date of birth field is greater than 85.", - "$ref": "GooglePrivacyDlpV2beta1RecordCondition" - }, - "infoTypeTransformations": { - "description": "Treat the contents of the field as free text, and selectively\ntransform content that matches an `InfoType`.", - "$ref": "GooglePrivacyDlpV2beta1InfoTypeTransformations" - }, "fields": { "description": "Input field(s) to apply the transformation to. [required]", "type": "array", @@ -849,12 +1148,35 @@ } }, "primitiveTransformation": { - "description": "Apply the transformation to the entire field.", - "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation" + "$ref": "GooglePrivacyDlpV2beta1PrimitiveTransformation", + "description": "Apply the transformation to the entire field." + }, + "condition": { + "description": "Only apply the transformation if the condition evaluates to true for the\ngiven `RecordCondition`. The conditions are allowed to reference fields\nthat are not used in the actual transformation. [optional]\n\nExample Use Cases:\n\n- Apply a different bucket transformation to an age column if the zip code\ncolumn for the same record is within a specific range.\n- Redact a field if the date of birth field is greater than 85.", + "$ref": "GooglePrivacyDlpV2beta1RecordCondition" + }, + "infoTypeTransformations": { + "description": "Treat the contents of the field as free text, and selectively\ntransform content that matches an `InfoType`.", + "$ref": "GooglePrivacyDlpV2beta1InfoTypeTransformations" } }, "id": "GooglePrivacyDlpV2beta1FieldTransformation" }, + "GooglePrivacyDlpV2beta1OutputStorageConfig": { + "description": "Cloud repository for storing output.", + "type": "object", + "properties": { + "storagePath": { + "description": "The path to a Google Cloud Storage location to store output.\nThe bucket must already exist and\nthe Google APIs service account for DLP must have write permission to\nwrite to the given bucket.\nResults are split over multiple csv files with each file name matching\nthe pattern \"[operation_id]_[count].csv\", for example\n`3094877188788974909_1.csv`. The `operation_id` matches the\nidentifier for the Operation, and the `count` is a counter used for\ntracking the number of files written.\n\nThe CSV file(s) contain the following columns regardless of storage type\nscanned:\n- id\n- info_type\n- likelihood\n- byte size of finding\n- quote\n- timestamp\n\nFor Cloud Storage the next columns are:\n\n- file_path\n- start_offset\n\nFor Cloud Datastore the next columns are:\n\n- project_id\n- namespace_id\n- path\n- column_name\n- offset\n\nFor BigQuery the next columns are:\n\n- row_number\n- project_id\n- dataset_id\n- table_id", + "$ref": "GooglePrivacyDlpV2beta1CloudStoragePath" + }, + "table": { + "$ref": "GooglePrivacyDlpV2beta1BigQueryTable", + "description": "Store findings in a new table in the dataset." + } + }, + "id": "GooglePrivacyDlpV2beta1OutputStorageConfig" + }, "GooglePrivacyDlpV2beta1BucketingConfig": { "description": "Generalization function that buckets values based on ranges. The ranges and\nreplacement values are dynamically provided by the user for custom behavior,\nsuch as 1-30 -\u003e LOW 31-65 -\u003e MEDIUM 66-100 -\u003e HIGH\nThis can be used on\ndata of type: number, long, string, timestamp.\nIf the bound `Value` type differs from the type of data being transformed, we\nwill first attempt converting the type of the data to be transformed to match\nthe type of the bound before comparing.", "type": "object", @@ -872,18 +1194,18 @@ "description": "Results of de-identifying a list of items.", "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1ContentItem" - } - }, "summaries": { "description": "A review of the transformations that took place for each item.", "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1DeidentificationSummary" } + }, + "items": { + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1ContentItem" + } } }, "id": "GooglePrivacyDlpV2beta1DeidentifyContentResponse" @@ -908,21 +1230,7 @@ "id": "GooglePrivacyDlpV2beta1KAnonymityEquivalenceClass" }, "GoogleLongrunningOperation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", "properties": { - "error": { - "$ref": "GoogleRpcStatus", - "description": "The error result of the operation in case of failure or cancellation." - }, - "metadata": { - "description": "This field will contain an InspectOperationMetadata object for `inspect.operations.create` or a RiskAnalysisOperationMetadata object for `dataSource.analyze`. This will always be returned with the Operation.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", "type": "boolean" @@ -938,13 +1246,25 @@ "name": { "description": "The server-assigned name. The `name` should have the format of `inspect/operations/\u003cidentifier\u003e`.", "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "This field will contain an InspectOperationMetadata object for `inspect.operations.create` or a RiskAnalysisOperationMetadata object for `dataSource.analyze`. This will always be returned with the Operation.", + "type": "object" } }, - "id": "GoogleLongrunningOperation" + "id": "GoogleLongrunningOperation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object" }, "GooglePrivacyDlpV2beta1KmsWrappedCryptoKey": { - "description": "Include to use an existing data crypto key wrapped by KMS.\nAuthorization requires the following IAM permissions when sending a request\nto perform a crypto transformation using a kms-wrapped crypto key:\ndlp.kms.encrypt", - "type": "object", "properties": { "wrappedKey": { "description": "The wrapped data crypto key. [required]", @@ -956,12 +1276,21 @@ "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1KmsWrappedCryptoKey" + "id": "GooglePrivacyDlpV2beta1KmsWrappedCryptoKey", + "description": "Include to use an existing data crypto key wrapped by KMS.\nAuthorization requires the following IAM permissions when sending a request\nto perform a crypto transformation using a kms-wrapped crypto key:\ndlp.kms.encrypt", + "type": "object" }, "GooglePrivacyDlpV2beta1InspectOperationMetadata": { - "description": "Metadata returned within GetOperation for an inspect request.", - "type": "object", "properties": { + "requestStorageConfig": { + "$ref": "GooglePrivacyDlpV2beta1StorageConfig", + "description": "The storage config used to create the Operation." + }, + "processedBytes": { + "description": "Total size in bytes that were processed.", + "format": "int64", + "type": "string" + }, "totalEstimatedBytes": { "description": "Estimate of the number of bytes to process.", "format": "int64", @@ -978,25 +1307,18 @@ "description": "The inspect config used to create the Operation." }, "requestOutputConfig": { - "description": "Optional location to store findings.", - "$ref": "GooglePrivacyDlpV2beta1OutputStorageConfig" + "$ref": "GooglePrivacyDlpV2beta1OutputStorageConfig", + "description": "Optional location to store findings." }, "createTime": { "description": "The time which this request was started.", "format": "google-datetime", "type": "string" - }, - "requestStorageConfig": { - "description": "The storage config used to create the Operation.", - "$ref": "GooglePrivacyDlpV2beta1StorageConfig" - }, - "processedBytes": { - "description": "Total size in bytes that were processed.", - "format": "int64", - "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1InspectOperationMetadata" + "id": "GooglePrivacyDlpV2beta1InspectOperationMetadata", + "description": "Metadata returned within GetOperation for an inspect request.", + "type": "object" }, "GooglePrivacyDlpV2beta1InfoType": { "description": "Type of information detected by the API.", @@ -1010,13 +1332,19 @@ "id": "GooglePrivacyDlpV2beta1InfoType" }, "GooglePrivacyDlpV2beta1CharsToIgnore": { - "description": "Characters to skip when doing deidentification of a value. These will be left\nalone and skipped.", - "type": "object", "properties": { "charactersToSkip": { "type": "string" }, "commonCharactersToIgnore": { + "enum": [ + "CHARACTER_GROUP_UNSPECIFIED", + "NUMERIC", + "ALPHA_UPPER_CASE", + "ALPHA_LOWER_CASE", + "PUNCTUATION", + "WHITESPACE" + ], "type": "string", "enumDescriptions": [ "", @@ -1025,30 +1353,22 @@ "a-z", "US Punctuation, one of !\"#$%&'()*+,-./:;\u003c=\u003e?@[\\]^_`{|}~", "Whitespace character, one of [ \\t\\n\\x0B\\f\\r]" - ], - "enum": [ - "CHARACTER_GROUP_UNSPECIFIED", - "NUMERIC", - "ALPHA_UPPER_CASE", - "ALPHA_LOWER_CASE", - "PUNCTUATION", - "WHITESPACE" ] } }, - "id": "GooglePrivacyDlpV2beta1CharsToIgnore" + "id": "GooglePrivacyDlpV2beta1CharsToIgnore", + "description": "Characters to skip when doing deidentification of a value. These will be left\nalone and skipped.", + "type": "object" }, "GooglePrivacyDlpV2beta1FixedSizeBucketingConfig": { - "description": "Buckets values based on fixed size ranges. The\nBucketing transformation can provide all of this functionality,\nbut requires more configuration. This message is provided as a convenience to\nthe user for simple bucketing strategies.\nThe resulting value will be a hyphenated string of\nlower_bound-upper_bound.\nThis can be used on data of type: double, long.\nIf the bound Value type differs from the type of data\nbeing transformed, we will first attempt converting the type of the data to\nbe transformed to match the type of the bound before comparing.", - "type": "object", "properties": { "upperBound": { "$ref": "GooglePrivacyDlpV2beta1Value", "description": "Upper bound value of buckets. All values greater than upper_bound are\ngrouped together into a single bucket; for example if `upper_bound` = 89,\nthen all values greater than 89 are replaced with the value “89+”.\n[Required]." }, "lowerBound": { - "$ref": "GooglePrivacyDlpV2beta1Value", - "description": "Lower bound value of buckets. All values less than `lower_bound` are\ngrouped together into a single bucket; for example if `lower_bound` = 10,\nthen all values less than 10 are replaced with the value “-10”. [Required]." + "description": "Lower bound value of buckets. All values less than `lower_bound` are\ngrouped together into a single bucket; for example if `lower_bound` = 10,\nthen all values less than 10 are replaced with the value “-10”. [Required].", + "$ref": "GooglePrivacyDlpV2beta1Value" }, "bucketSize": { "description": "Size of each bucket (except for minimum and maximum buckets). So if\n`lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the\nfollowing buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,\n60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. [Required].", @@ -1056,12 +1376,15 @@ "type": "number" } }, - "id": "GooglePrivacyDlpV2beta1FixedSizeBucketingConfig" + "id": "GooglePrivacyDlpV2beta1FixedSizeBucketingConfig", + "description": "Buckets values based on fixed size ranges. The\nBucketing transformation can provide all of this functionality,\nbut requires more configuration. This message is provided as a convenience to\nthe user for simple bucketing strategies.\nThe resulting value will be a hyphenated string of\nlower_bound-upper_bound.\nThis can be used on data of type: double, long.\nIf the bound Value type differs from the type of data\nbeing transformed, we will first attempt converting the type of the data to\nbe transformed to match the type of the bound before comparing.", + "type": "object" }, "GooglePrivacyDlpV2beta1RiskAnalysisOperationResult": { - "description": "Result of a risk analysis\n[`Operation`](/dlp/docs/reference/rest/v2beta1/inspect.operations)\nrequest.", - "type": "object", "properties": { + "kAnonymityResult": { + "$ref": "GooglePrivacyDlpV2beta1KAnonymityResult" + }, "lDiversityResult": { "$ref": "GooglePrivacyDlpV2beta1LDiversityResult" }, @@ -1070,12 +1393,11 @@ }, "numericalStatsResult": { "$ref": "GooglePrivacyDlpV2beta1NumericalStatsResult" - }, - "kAnonymityResult": { - "$ref": "GooglePrivacyDlpV2beta1KAnonymityResult" } }, - "id": "GooglePrivacyDlpV2beta1RiskAnalysisOperationResult" + "id": "GooglePrivacyDlpV2beta1RiskAnalysisOperationResult", + "description": "Result of a risk analysis\n[`Operation`](/dlp/docs/reference/rest/v2beta1/inspect.operations)\nrequest.", + "type": "object" }, "GooglePrivacyDlpV2beta1Conditions": { "type": "object", @@ -1090,23 +1412,21 @@ "id": "GooglePrivacyDlpV2beta1Conditions" }, "GooglePrivacyDlpV2beta1CategoryDescription": { - "description": "Info Type Category description.", - "type": "object", "properties": { - "displayName": { - "description": "Human readable form of the category name.", - "type": "string" - }, "name": { "description": "Internal name of the category.", "type": "string" + }, + "displayName": { + "description": "Human readable form of the category name.", + "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1CategoryDescription" + "id": "GooglePrivacyDlpV2beta1CategoryDescription", + "description": "Info Type Category description.", + "type": "object" }, "GooglePrivacyDlpV2beta1PrimitiveTransformation": { - "description": "A rule for transforming a value.", - "type": "object", "properties": { "replaceConfig": { "$ref": "GooglePrivacyDlpV2beta1ReplaceValueConfig" @@ -1136,40 +1456,25 @@ "$ref": "GooglePrivacyDlpV2beta1CryptoReplaceFfxFpeConfig" } }, - "id": "GooglePrivacyDlpV2beta1PrimitiveTransformation" + "id": "GooglePrivacyDlpV2beta1PrimitiveTransformation", + "description": "A rule for transforming a value.", + "type": "object" }, "GooglePrivacyDlpV2beta1CategoricalStatsConfig": { - "description": "Compute numerical stats over an individual column, including\nnumber of distinct values and value count distribution.", - "type": "object", "properties": { "field": { "description": "Field to compute categorical stats on. All column types are\nsupported except for arrays and structs. However, it may be more\ninformative to use NumericalStats when the field type is supported,\ndepending on the data.", "$ref": "GooglePrivacyDlpV2beta1FieldId" } }, - "id": "GooglePrivacyDlpV2beta1CategoricalStatsConfig" + "id": "GooglePrivacyDlpV2beta1CategoricalStatsConfig", + "description": "Compute numerical stats over an individual column, including\nnumber of distinct values and value count distribution.", + "type": "object" }, "GooglePrivacyDlpV2beta1Finding": { "description": "Container structure describing a single finding within a string or image.", "type": "object", "properties": { - "infoType": { - "$ref": "GooglePrivacyDlpV2beta1InfoType", - "description": "The specific type of info the string might be." - }, - "createTime": { - "description": "Timestamp when finding was detected.", - "format": "google-datetime", - "type": "string" - }, - "quote": { - "description": "The specific string that may be potentially sensitive info.", - "type": "string" - }, - "location": { - "description": "Location of the info found.", - "$ref": "GooglePrivacyDlpV2beta1Location" - }, "likelihood": { "enumDescriptions": [ "Default value; information with all likelihoods is included.", @@ -1189,13 +1494,28 @@ ], "description": "Estimate of how likely it is that the info_type is correct.", "type": "string" + }, + "infoType": { + "description": "The specific type of info the string might be.", + "$ref": "GooglePrivacyDlpV2beta1InfoType" + }, + "createTime": { + "description": "Timestamp when finding was detected.", + "format": "google-datetime", + "type": "string" + }, + "quote": { + "description": "The specific string that may be potentially sensitive info.", + "type": "string" + }, + "location": { + "description": "Location of the info found.", + "$ref": "GooglePrivacyDlpV2beta1Location" } }, "id": "GooglePrivacyDlpV2beta1Finding" }, "GooglePrivacyDlpV2beta1RiskAnalysisOperationMetadata": { - "description": "Metadata returned within the\n[`riskAnalysis.operations.get`](/dlp/docs/reference/rest/v2beta1/riskAnalysis.operations/get)\nfor risk analysis.", - "type": "object", "properties": { "createTime": { "description": "The time which this request was started.", @@ -1203,19 +1523,19 @@ "type": "string" }, "requestedSourceTable": { - "$ref": "GooglePrivacyDlpV2beta1BigQueryTable", - "description": "Input dataset to compute metrics over." + "description": "Input dataset to compute metrics over.", + "$ref": "GooglePrivacyDlpV2beta1BigQueryTable" }, "requestedPrivacyMetric": { - "$ref": "GooglePrivacyDlpV2beta1PrivacyMetric", - "description": "Privacy metric to compute." + "description": "Privacy metric to compute.", + "$ref": "GooglePrivacyDlpV2beta1PrivacyMetric" } }, - "id": "GooglePrivacyDlpV2beta1RiskAnalysisOperationMetadata" + "id": "GooglePrivacyDlpV2beta1RiskAnalysisOperationMetadata", + "description": "Metadata returned within the\n[`riskAnalysis.operations.get`](/dlp/docs/reference/rest/v2beta1/riskAnalysis.operations/get)\nfor risk analysis.", + "type": "object" }, "GoogleLongrunningListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", "properties": { "nextPageToken": { "description": "The standard List next-page token.", @@ -1229,10 +1549,11 @@ } } }, - "id": "GoogleLongrunningListOperationsResponse" + "id": "GoogleLongrunningListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" }, "GooglePrivacyDlpV2beta1Row": { - "type": "object", "properties": { "values": { "type": "array", @@ -1241,36 +1562,33 @@ } } }, - "id": "GooglePrivacyDlpV2beta1Row" + "id": "GooglePrivacyDlpV2beta1Row", + "type": "object" }, "GoogleProtobufEmpty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", "properties": {}, - "id": "GoogleProtobufEmpty" + "id": "GoogleProtobufEmpty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" }, "GooglePrivacyDlpV2beta1ListInspectFindingsResponse": { - "description": "Response to the ListInspectFindings request.", - "type": "object", "properties": { "nextPageToken": { "description": "If not empty, indicates that there may be more results that match the\nrequest; this value should be passed in a new `ListInspectFindingsRequest`.", "type": "string" }, "result": { - "$ref": "GooglePrivacyDlpV2beta1InspectResult", - "description": "The results." + "description": "The results.", + "$ref": "GooglePrivacyDlpV2beta1InspectResult" } }, - "id": "GooglePrivacyDlpV2beta1ListInspectFindingsResponse" + "id": "GooglePrivacyDlpV2beta1ListInspectFindingsResponse", + "description": "Response to the ListInspectFindings request.", + "type": "object" }, "GooglePrivacyDlpV2beta1Expressions": { - "description": "A collection of expressions", - "type": "object", "properties": { "logicalOperator": { - "description": "The operator to apply to the result of conditions. Default and currently\nonly supported value is `AND`.", - "type": "string", "enumDescriptions": [ "", "" @@ -1278,13 +1596,17 @@ "enum": [ "LOGICAL_OPERATOR_UNSPECIFIED", "AND" - ] + ], + "description": "The operator to apply to the result of conditions. Default and currently\nonly supported value is `AND`.", + "type": "string" }, "conditions": { "$ref": "GooglePrivacyDlpV2beta1Conditions" } }, - "id": "GooglePrivacyDlpV2beta1Expressions" + "id": "GooglePrivacyDlpV2beta1Expressions", + "description": "A collection of expressions", + "type": "object" }, "GooglePrivacyDlpV2beta1CloudStorageOptions": { "description": "Options defining a file or a set of files (path ending with *) within\na Google Cloud Storage bucket.", @@ -1297,15 +1619,15 @@ "id": "GooglePrivacyDlpV2beta1CloudStorageOptions" }, "GooglePrivacyDlpV2beta1CloudStoragePath": { - "description": "A location in Cloud Storage.", - "type": "object", "properties": { "path": { "description": "The url, in the format of `gs://bucket/\u003cpath\u003e`.", "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1CloudStoragePath" + "id": "GooglePrivacyDlpV2beta1CloudStoragePath", + "description": "A location in Cloud Storage.", + "type": "object" }, "GooglePrivacyDlpV2beta1KAnonymityHistogramBucket": { "description": "Histogram bucket of equivalence class sizes in the table.", @@ -1348,8 +1670,6 @@ "id": "GooglePrivacyDlpV2beta1InspectOperationResult" }, "GooglePrivacyDlpV2beta1LDiversityResult": { - "description": "Result of the l-diversity computation.", - "type": "object", "properties": { "sensitiveValueFrequencyHistogramBuckets": { "description": "Histogram of l-diversity equivalence class sensitive value frequencies.", @@ -1359,7 +1679,9 @@ } } }, - "id": "GooglePrivacyDlpV2beta1LDiversityResult" + "id": "GooglePrivacyDlpV2beta1LDiversityResult", + "description": "Result of the l-diversity computation.", + "type": "object" }, "GooglePrivacyDlpV2beta1CategoricalStatsResult": { "description": "Result of the categorical stats computation.", @@ -1376,8 +1698,6 @@ "id": "GooglePrivacyDlpV2beta1CategoricalStatsResult" }, "GooglePrivacyDlpV2beta1Range": { - "description": "Generic half-open interval [start, end)", - "type": "object", "properties": { "start": { "description": "Index of the first character of the range (inclusive).", @@ -1390,22 +1710,14 @@ "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1Range" + "id": "GooglePrivacyDlpV2beta1Range", + "description": "Generic half-open interval [start, end)", + "type": "object" }, "GoogleTypeTimeOfDay": { "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.", "type": "object", "properties": { - "nanos": { - "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", - "format": "int32", - "type": "integer" - }, - "seconds": { - "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.", - "format": "int32", - "type": "integer" - }, "minutes": { "description": "Minutes of hour of day. Must be from 0 to 59.", "format": "int32", @@ -1415,6 +1727,16 @@ "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.", "format": "int32", "type": "integer" + }, + "nanos": { + "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" } }, "id": "GoogleTypeTimeOfDay" @@ -1424,19 +1746,17 @@ "type": "object", "properties": { "recordTransformations": { - "description": "Treat the dataset as structured. Transformations can be applied to\nspecific locations within structured datasets, such as transforming\na column within a table.", - "$ref": "GooglePrivacyDlpV2beta1RecordTransformations" + "$ref": "GooglePrivacyDlpV2beta1RecordTransformations", + "description": "Treat the dataset as structured. Transformations can be applied to\nspecific locations within structured datasets, such as transforming\na column within a table." }, "infoTypeTransformations": { - "description": "Treat the dataset as free-form text and apply the same free text\ntransformation everywhere.", - "$ref": "GooglePrivacyDlpV2beta1InfoTypeTransformations" + "$ref": "GooglePrivacyDlpV2beta1InfoTypeTransformations", + "description": "Treat the dataset as free-form text and apply the same free text\ntransformation everywhere." } }, "id": "GooglePrivacyDlpV2beta1DeidentifyConfig" }, "GooglePrivacyDlpV2beta1LDiversityConfig": { - "description": "l-diversity metric, used for analysis of reidentification risk.", - "type": "object", "properties": { "sensitiveAttribute": { "$ref": "GooglePrivacyDlpV2beta1FieldId", @@ -1450,30 +1770,42 @@ } } }, - "id": "GooglePrivacyDlpV2beta1LDiversityConfig" + "id": "GooglePrivacyDlpV2beta1LDiversityConfig", + "description": "l-diversity metric, used for analysis of reidentification risk.", + "type": "object" }, "GooglePrivacyDlpV2beta1StorageConfig": { "description": "Shared message indicating Cloud storage type.", "type": "object", "properties": { - "cloudStorageOptions": { - "$ref": "GooglePrivacyDlpV2beta1CloudStorageOptions", - "description": "Google Cloud Storage options specification." - }, "datastoreOptions": { "$ref": "GooglePrivacyDlpV2beta1DatastoreOptions", "description": "Google Cloud Datastore options specification." }, "bigQueryOptions": { - "description": "BigQuery options specification.", - "$ref": "GooglePrivacyDlpV2beta1BigQueryOptions" + "$ref": "GooglePrivacyDlpV2beta1BigQueryOptions", + "description": "BigQuery options specification." + }, + "cloudStorageOptions": { + "$ref": "GooglePrivacyDlpV2beta1CloudStorageOptions", + "description": "Google Cloud Storage options specification." } }, "id": "GooglePrivacyDlpV2beta1StorageConfig" }, + "GooglePrivacyDlpV2beta1OperationConfig": { + "properties": { + "maxItemFindings": { + "description": "Max number of findings per file, Datastore entity, or database row.", + "format": "int64", + "type": "string" + } + }, + "id": "GooglePrivacyDlpV2beta1OperationConfig", + "description": "Additional configuration for inspect long running operations.", + "type": "object" + }, "GooglePrivacyDlpV2beta1BigQueryOptions": { - "description": "Options defining BigQuery table and row identifiers.", - "type": "object", "properties": { "identifyingFields": { "description": "References to fields uniquely identifying rows within the table.\nNested fields in the format, like `person.birthdate.year`, are allowed.", @@ -1483,27 +1815,15 @@ } }, "tableReference": { - "description": "Complete BigQuery table reference.", - "$ref": "GooglePrivacyDlpV2beta1BigQueryTable" + "$ref": "GooglePrivacyDlpV2beta1BigQueryTable", + "description": "Complete BigQuery table reference." } }, - "id": "GooglePrivacyDlpV2beta1BigQueryOptions" - }, - "GooglePrivacyDlpV2beta1OperationConfig": { - "description": "Additional configuration for inspect long running operations.", - "type": "object", - "properties": { - "maxItemFindings": { - "description": "Max number of findings per file, Datastore entity, or database row.", - "format": "int64", - "type": "string" - } - }, - "id": "GooglePrivacyDlpV2beta1OperationConfig" + "id": "GooglePrivacyDlpV2beta1BigQueryOptions", + "description": "Options defining BigQuery table and row identifiers.", + "type": "object" }, "GooglePrivacyDlpV2beta1PrivacyMetric": { - "description": "Privacy metric to compute for reidentification risk analysis.", - "type": "object", "properties": { "lDiversityConfig": { "$ref": "GooglePrivacyDlpV2beta1LDiversityConfig" @@ -1518,14 +1838,16 @@ "$ref": "GooglePrivacyDlpV2beta1CategoricalStatsConfig" } }, - "id": "GooglePrivacyDlpV2beta1PrivacyMetric" + "id": "GooglePrivacyDlpV2beta1PrivacyMetric", + "description": "Privacy metric to compute for reidentification risk analysis.", + "type": "object" }, "GooglePrivacyDlpV2beta1ReplaceConfig": { "type": "object", "properties": { "infoType": { - "description": "Type of information to replace. Only one ReplaceConfig per info_type\nshould be provided. If ReplaceConfig does not have an info_type, the DLP\nAPI matches it against all info_types that are found but not specified in\nanother ReplaceConfig.", - "$ref": "GooglePrivacyDlpV2beta1InfoType" + "$ref": "GooglePrivacyDlpV2beta1InfoType", + "description": "Type of information to replace. Only one ReplaceConfig per info_type\nshould be provided. If ReplaceConfig does not have an info_type, the DLP\nAPI matches it against all info_types that are found but not specified in\nanother ReplaceConfig." }, "replaceWith": { "description": "Content replacing sensitive information of given type. Max 256 chars.", @@ -1534,15 +1856,19 @@ }, "id": "GooglePrivacyDlpV2beta1ReplaceConfig" }, - "GooglePrivacyDlpV2beta1LDiversityEquivalenceClass": { - "description": "The set of columns' values that share the same l-diversity value.", + "GooglePrivacyDlpV2beta1NumericalStatsConfig": { + "description": "Compute numerical stats over an individual column, including\nmin, max, and quantiles.", "type": "object", "properties": { - "equivalenceClassSize": { - "description": "Size of the k-anonymity equivalence class.", - "format": "int64", - "type": "string" - }, + "field": { + "$ref": "GooglePrivacyDlpV2beta1FieldId", + "description": "Field to compute numerical stats on. Supported types are\ninteger, float, date, datetime, timestamp, time." + } + }, + "id": "GooglePrivacyDlpV2beta1NumericalStatsConfig" + }, + "GooglePrivacyDlpV2beta1LDiversityEquivalenceClass": { + "properties": { "quasiIdsValues": { "description": "Quasi-identifier values defining the k-anonymity equivalence\nclass. The order is always the same as the original request.", "type": "array", @@ -1561,35 +1887,49 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1ValueFrequency" } + }, + "equivalenceClassSize": { + "description": "Size of the k-anonymity equivalence class.", + "format": "int64", + "type": "string" } }, - "id": "GooglePrivacyDlpV2beta1LDiversityEquivalenceClass" + "id": "GooglePrivacyDlpV2beta1LDiversityEquivalenceClass", + "description": "The set of columns' values that share the same l-diversity value.", + "type": "object" }, - "GooglePrivacyDlpV2beta1NumericalStatsConfig": { - "description": "Compute numerical stats over an individual column, including\nmin, max, and quantiles.", - "type": "object", + "GooglePrivacyDlpV2beta1DeidentificationSummary": { "properties": { - "field": { - "description": "Field to compute numerical stats on. Supported types are\ninteger, float, date, datetime, timestamp, time.", - "$ref": "GooglePrivacyDlpV2beta1FieldId" + "transformedBytes": { + "description": "Total size in bytes that were transformed in some way.", + "format": "int64", + "type": "string" + }, + "transformationSummaries": { + "description": "Transformations applied to the dataset.", + "type": "array", + "items": { + "$ref": "GooglePrivacyDlpV2beta1TransformationSummary" + } } }, - "id": "GooglePrivacyDlpV2beta1NumericalStatsConfig" + "id": "GooglePrivacyDlpV2beta1DeidentificationSummary", + "description": "High level summary of deidentification.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1RecordCondition": { + "properties": { + "expressions": { + "$ref": "GooglePrivacyDlpV2beta1Expressions" + } + }, + "id": "GooglePrivacyDlpV2beta1RecordCondition", + "description": "A condition for determining whether a transformation should be applied to\na field.", + "type": "object" }, "GooglePrivacyDlpV2beta1TimePartConfig": { - "description": "For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a\nportion of the value.", - "type": "object", "properties": { "partToExtract": { - "enumDescriptions": [ - "", - "[000-9999]", - "[1-12]", - "[1-31]", - "[1-7]", - "[1-52]", - "[0-24]" - ], "enum": [ "TIME_PART_UNSPECIFIED", "YEAR", @@ -1599,39 +1939,21 @@ "WEEK_OF_YEAR", "HOUR_OF_DAY" ], - "type": "string" + "type": "string", + "enumDescriptions": [ + "", + "[000-9999]", + "[1-12]", + "[1-31]", + "[1-7]", + "[1-52]", + "[0-24]" + ] } }, - "id": "GooglePrivacyDlpV2beta1TimePartConfig" - }, - "GooglePrivacyDlpV2beta1RecordCondition": { - "description": "A condition for determing whether a transformation should be applied to\na field.", - "type": "object", - "properties": { - "expressions": { - "$ref": "GooglePrivacyDlpV2beta1Expressions" - } - }, - "id": "GooglePrivacyDlpV2beta1RecordCondition" - }, - "GooglePrivacyDlpV2beta1DeidentificationSummary": { - "description": "High level summary of deidentification.", - "type": "object", - "properties": { - "transformationSummaries": { - "description": "Transformations applied to the dataset.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1TransformationSummary" - } - }, - "transformedBytes": { - "description": "Total size in bytes that were transformed in some way.", - "format": "int64", - "type": "string" - } - }, - "id": "GooglePrivacyDlpV2beta1DeidentificationSummary" + "id": "GooglePrivacyDlpV2beta1TimePartConfig", + "description": "For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a\nportion of the value.", + "type": "object" }, "GooglePrivacyDlpV2beta1ListInfoTypesResponse": { "description": "Response to the ListInfoTypes request.", @@ -1664,9 +1986,11 @@ "id": "GooglePrivacyDlpV2beta1CloudStorageKey" }, "GooglePrivacyDlpV2beta1NumericalStatsResult": { - "description": "Result of the numerical stats computation.", - "type": "object", "properties": { + "minValue": { + "$ref": "GooglePrivacyDlpV2beta1Value", + "description": "Minimum value appearing in the column." + }, "maxValue": { "description": "Maximum value appearing in the column.", "$ref": "GooglePrivacyDlpV2beta1Value" @@ -1677,22 +2001,25 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1Value" } - }, - "minValue": { - "$ref": "GooglePrivacyDlpV2beta1Value", - "description": "Minimum value appearing in the column." } }, - "id": "GooglePrivacyDlpV2beta1NumericalStatsResult" + "id": "GooglePrivacyDlpV2beta1NumericalStatsResult", + "description": "Result of the numerical stats computation.", + "type": "object" + }, + "GooglePrivacyDlpV2beta1Dictionary": { + "properties": { + "wordList": { + "description": "List of words or phrases to search for.", + "$ref": "GooglePrivacyDlpV2beta1WordList" + } + }, + "id": "GooglePrivacyDlpV2beta1Dictionary", + "description": "Custom information type based on a dictionary of words or phrases. This can\nbe used to match sensitive information specific to the data, such as a list\nof employee IDs or job titles.\n\nDictionary words are case-insensitive and all characters other than letters\nand digits in the unicode [Basic Multilingual\nPlane](https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane)\nwill be replaced with whitespace when scanning for matches, so the\ndictionary phrase \"Sam Johnson\" will match all three phrases \"sam johnson\",\n\"Sam, Johnson\", and \"Sam (Johnson)\". Additionally, the characters\nsurrounding any match must be of a different type than the adjacent\ncharacters within the word, so letters must be next to non-letters and\ndigits next to non-digits. For example, the dictionary word \"jen\" will\nmatch the first three letters of the text \"jen123\" but will return no\nmatches for \"jennifer\".\n\nDictionary words containing a large number of characters that are not\nletters or digits may result in unexpected findings because such characters\nare treated as whitespace.", + "type": "object" }, "GooglePrivacyDlpV2beta1DatastoreOptions": { - "description": "Options defining a data set within Google Cloud Datastore.", - "type": "object", "properties": { - "partitionId": { - "$ref": "GooglePrivacyDlpV2beta1PartitionId", - "description": "A partition ID identifies a grouping of entities. The grouping is always\nby project and namespace, however the namespace ID may be empty." - }, "kind": { "$ref": "GooglePrivacyDlpV2beta1KindExpression", "description": "The kind to process." @@ -1703,311 +2030,36 @@ "items": { "$ref": "GooglePrivacyDlpV2beta1Projection" } + }, + "partitionId": { + "description": "A partition ID identifies a grouping of entities. The grouping is always\nby project and namespace, however the namespace ID may be empty.", + "$ref": "GooglePrivacyDlpV2beta1PartitionId" } }, - "id": "GooglePrivacyDlpV2beta1DatastoreOptions" + "id": "GooglePrivacyDlpV2beta1DatastoreOptions", + "description": "Options defining a data set within Google Cloud Datastore.", + "type": "object" }, "GooglePrivacyDlpV2beta1RecordTransformations": { - "description": "A type of transformation that is applied over structured data such as a\ntable.", - "type": "object", "properties": { - "fieldTransformations": { - "description": "Transform the record by applying various field transformations.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1FieldTransformation" - } - }, "recordSuppressions": { "description": "Configuration defining which records get suppressed entirely. Records that\nmatch any suppression rule are omitted from the output [optional].", "type": "array", "items": { "$ref": "GooglePrivacyDlpV2beta1RecordSuppression" } - } - }, - "id": "GooglePrivacyDlpV2beta1RecordTransformations" - }, - "GooglePrivacyDlpV2beta1InspectConfig": { - "description": "Configuration description of the scanning process.\nWhen used with redactContent only info_types and min_likelihood are currently\nused.", - "type": "object", - "properties": { - "excludeTypes": { - "description": "When true, excludes type information of the findings.", - "type": "boolean" }, - "minLikelihood": { - "description": "Only returns findings equal or above this threshold.", - "type": "string", - "enumDescriptions": [ - "Default value; information with all likelihoods is included.", - "Few matching elements.", - "", - "Some matching elements.", - "", - "Many matching elements." - ], - "enum": [ - "LIKELIHOOD_UNSPECIFIED", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ] - }, - "infoTypeLimits": { - "description": "Configuration of findings limit given for specified info types.", + "fieldTransformations": { + "description": "Transform the record by applying various field transformations.", "type": "array", "items": { - "$ref": "GooglePrivacyDlpV2beta1InfoTypeLimit" - } - }, - "maxFindings": { - "description": "Limits the number of findings per content item or long running operation.", - "format": "int32", - "type": "integer" - }, - "infoTypes": { - "description": "Restricts what info_types to look for. The values must correspond to\nInfoType values returned by ListInfoTypes or found in documentation.\nEmpty info_types runs all enabled detectors.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1InfoType" - } - }, - "includeQuote": { - "description": "When true, a contextual quote from the data that triggered a finding is\nincluded in the response; see Finding.quote.", - "type": "boolean" - } - }, - "id": "GooglePrivacyDlpV2beta1InspectConfig" - }, - "GooglePrivacyDlpV2beta1Projection": { - "description": "A representation of a Datastore property in a projection.", - "type": "object", - "properties": { - "property": { - "description": "The property to project.", - "$ref": "GooglePrivacyDlpV2beta1PropertyReference" - } - }, - "id": "GooglePrivacyDlpV2beta1Projection" - }, - "GooglePrivacyDlpV2beta1RedactConfig": { - "description": "Redact a given value. For example, if used with an `InfoTypeTransformation`\ntransforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the\noutput would be 'My phone number is '.", - "type": "object", - "properties": {}, - "id": "GooglePrivacyDlpV2beta1RedactConfig" - }, - "GooglePrivacyDlpV2beta1CryptoHashConfig": { - "description": "Pseudonymization method that generates surrogates via cryptographic hashing.\nUses SHA-256.\nOutputs a 32 byte digest as an uppercase hex string\n(for example, 41D1567F7F99F1DC2A5FAB886DEE5BEE).\nCurrently, only string and integer values can be hashed.", - "type": "object", - "properties": { - "cryptoKey": { - "description": "The key used by the hash function.", - "$ref": "GooglePrivacyDlpV2beta1CryptoKey" - } - }, - "id": "GooglePrivacyDlpV2beta1CryptoHashConfig" - }, - "GooglePrivacyDlpV2beta1Key": { - "description": "A unique identifier for a Datastore entity.\nIf a key's partition ID or any of its path kinds or names are\nreserved/read-only, the key is reserved/read-only.\nA reserved/read-only key is forbidden in certain documented contexts.", - "type": "object", - "properties": { - "partitionId": { - "description": "Entities are partitioned into subsets, currently identified by a project\nID and namespace ID.\nQueries are scoped to a single partition.", - "$ref": "GooglePrivacyDlpV2beta1PartitionId" - }, - "path": { - "description": "The entity path.\nAn entity path consists of one or more elements composed of a kind and a\nstring or numerical identifier, which identify entities. The first\nelement identifies a _root entity_, the second element identifies\na _child_ of the root entity, the third element identifies a child of the\nsecond entity, and so forth. The entities identified by all prefixes of\nthe path are called the element's _ancestors_.\n\nA path can never be empty, and a path can have at most 100 elements.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1PathElement" + "$ref": "GooglePrivacyDlpV2beta1FieldTransformation" } } }, - "id": "GooglePrivacyDlpV2beta1Key" - }, - "GooglePrivacyDlpV2beta1InspectContentRequest": { - "description": "Request to search for potentially sensitive info in a list of items.", - "type": "object", - "properties": { - "items": { - "description": "The list of items to inspect. Items in a single request are\nconsidered \"related\" unless inspect_config.independent_inputs is true.\nUp to 100 are allowed per request.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1ContentItem" - } - }, - "inspectConfig": { - "$ref": "GooglePrivacyDlpV2beta1InspectConfig", - "description": "Configuration for the inspector." - } - }, - "id": "GooglePrivacyDlpV2beta1InspectContentRequest" - }, - "GoogleTypeDate": { - "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", - "type": "object", - "properties": { - "year": { - "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", - "format": "int32", - "type": "integer" - }, - "day": { - "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", - "format": "int32", - "type": "integer" - }, - "month": { - "description": "Month of year. Must be from 1 to 12.", - "format": "int32", - "type": "integer" - } - }, - "id": "GoogleTypeDate" - }, - "GooglePrivacyDlpV2beta1ReplaceWithInfoTypeConfig": { - "description": "Replace each matching finding with the name of the info_type.", - "type": "object", - "properties": {}, - "id": "GooglePrivacyDlpV2beta1ReplaceWithInfoTypeConfig" - }, - "GooglePrivacyDlpV2beta1ImageRedactionConfig": { - "description": "Configuration for determing how redaction of images should occur.", - "type": "object", - "properties": { - "redactionColor": { - "description": "The color to use when redacting content from an image. If not specified,\nthe default is black.", - "$ref": "GooglePrivacyDlpV2beta1Color" - }, - "redactAllText": { - "description": "If true, all text found in the image, regardless whether it matches an\ninfo_type, is redacted.", - "type": "boolean" - }, - "infoType": { - "description": "Only one per info_type should be provided per request. If not\nspecified, and redact_all_text is false, the DLP API will redact all\ntext that it matches against all info_types that are found, but not\nspecified in another ImageRedactionConfig.", - "$ref": "GooglePrivacyDlpV2beta1InfoType" - } - }, - "id": "GooglePrivacyDlpV2beta1ImageRedactionConfig" - }, - "GooglePrivacyDlpV2beta1Location": { - "description": "Specifies the location of a finding within its source item.", - "type": "object", - "properties": { - "tableLocation": { - "$ref": "GooglePrivacyDlpV2beta1TableLocation", - "description": "Location within a `ContentItem.Table`." - }, - "codepointRange": { - "$ref": "GooglePrivacyDlpV2beta1Range", - "description": "Character offsets within a content item, included when content type\nis a text. Default charset assumed to be UTF-8." - }, - "fieldId": { - "description": "Field id of the field containing the finding.", - "$ref": "GooglePrivacyDlpV2beta1FieldId" - }, - "imageBoxes": { - "description": "Location within an image's pixels.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1ImageLocation" - } - }, - "byteRange": { - "$ref": "GooglePrivacyDlpV2beta1Range", - "description": "Zero-based byte offsets within a content item." - }, - "recordKey": { - "$ref": "GooglePrivacyDlpV2beta1RecordKey", - "description": "Key of the finding." - } - }, - "id": "GooglePrivacyDlpV2beta1Location" - }, - "GooglePrivacyDlpV2beta1RecordSuppression": { - "description": "Configuration to suppress records whose suppression conditions evaluate to\ntrue.", - "type": "object", - "properties": { - "condition": { - "$ref": "GooglePrivacyDlpV2beta1RecordCondition" - } - }, - "id": "GooglePrivacyDlpV2beta1RecordSuppression" - }, - "GooglePrivacyDlpV2beta1InfoTypeDescription": { - "description": "Description of the information type (infoType).", - "type": "object", - "properties": { - "categories": { - "description": "List of categories this infoType belongs to.", - "type": "array", - "items": { - "$ref": "GooglePrivacyDlpV2beta1CategoryDescription" - } - }, - "name": { - "description": "Internal name of the infoType.", - "type": "string" - }, - "displayName": { - "description": "Human readable form of the infoType name.", - "type": "string" - } - }, - "id": "GooglePrivacyDlpV2beta1InfoTypeDescription" - }, - "GooglePrivacyDlpV2beta1EntityId": { - "description": "An entity in a dataset is a field or set of fields that correspond to a\nsingle person. For example, in medical records the `EntityId` might be\na patient identifier, or for financial records it might be an account\nidentifier. This message is used when generalizations or analysis must be\nconsistent across multiple rows pertaining to the same entity.", - "type": "object", - "properties": { - "field": { - "description": "Composite key indicating which field contains the entity identifier.", - "$ref": "GooglePrivacyDlpV2beta1FieldId" - } - }, - "id": "GooglePrivacyDlpV2beta1EntityId" - }, - "GooglePrivacyDlpV2beta1UnwrappedCryptoKey": { - "description": "Using raw keys is prone to security risks due to accidentally\nleaking the key. Choose another type of key if possible.", - "type": "object", - "properties": { - "key": { - "description": "The AES 128/192/256 bit key. [required]", - "format": "byte", - "type": "string" - } - }, - "id": "GooglePrivacyDlpV2beta1UnwrappedCryptoKey" - }, - "GoogleRpcStatus": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - }, - "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "GoogleRpcStatus" + "id": "GooglePrivacyDlpV2beta1RecordTransformations", + "description": "A type of transformation that is applied over structured data such as a\ntable.", + "type": "object" } }, "icons": { @@ -2047,21 +2099,18 @@ "name" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "filter": { - "location": "query", "description": "Restricts findings to items that match. Supports info_type and likelihood.\n\nExamples:\n\n- info_type=EMAIL_ADDRESS\n- info_type=PHONE_NUMBER,EMAIL_ADDRESS\n- likelihood=VERY_LIKELY\n- likelihood=VERY_LIKELY,LIKELY\n- info_type=EMAIL_ADDRESS,likelihood=VERY_LIKELY,LIKELY", - "type": "string" + "type": "string", + "location": "query" }, "name": { + "pattern": "^inspect/results/[^/]+$", "location": "path", "description": "Identifier of the results set returned as metadata of\nthe longrunning operation created by a call to InspectDataSource.\nShould be in the format of `inspect/results/{id}`.", "required": true, - "type": "string", - "pattern": "^inspect/results/[^/]+$" + "type": "string" }, "pageToken": { "description": "The value returned by the last `ListInspectFindingsResponse`; indicates\nthat this is a continuation of a prior `ListInspectFindings` call, and that\nthe system should return the next page of data.", @@ -2075,6 +2124,9 @@ "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v2beta1/inspect/results/{resultsId}/findings", "path": "v2beta1/{+name}/findings", "id": "dlp.inspect.results.findings.list" @@ -2085,92 +2137,7 @@ }, "operations": { "methods": { - "list": { - "flatPath": "v2beta1/inspect/operations", - "path": "v2beta1/{+name}", - "id": "dlp.inspect.operations.list", - "description": "Fetches the list of long running operations.", - "response": { - "$ref": "GoogleLongrunningListOperationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "description": "The list page size. The maximum allowed value is 256 and the default is 100.", - "format": "int32", - "type": "integer" - }, - "filter": { - "location": "query", - "description": "Filters by `done`. That is, `done=true` or `done=false`.", - "type": "string" - }, - "name": { - "description": "The name of the operation's parent resource.", - "required": true, - "type": "string", - "pattern": "^inspect/operations$", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "flatPath": "v2beta1/inspect/operations/{operationsId}", - "path": "v2beta1/{+name}", - "id": "dlp.inspect.operations.get", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "response": { - "$ref": "GoogleLongrunningOperation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "required": true, - "type": "string", - "pattern": "^inspect/operations/[^/]+$", - "location": "path" - } - } - }, - "create": { - "response": { - "$ref": "GoogleLongrunningOperation" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v2beta1/inspect/operations", - "path": "v2beta1/inspect/operations", - "id": "dlp.inspect.operations.create", - "description": "Schedules a job scanning content in a Google Cloud Platform data\nrepository.", - "request": { - "$ref": "GooglePrivacyDlpV2beta1CreateInspectOperationRequest" - } - }, "cancel": { - "flatPath": "v2beta1/inspect/operations/{operationsId}:cancel", "path": "v2beta1/{+name}:cancel", "id": "dlp.inspect.operations.cancel", "description": "Cancels an operation. Use the `inspect.operations.get` to check whether the cancellation succeeded or the operation completed despite cancellation.", @@ -2189,29 +2156,24 @@ ], "parameters": { "name": { + "pattern": "^inspect/operations/[^/]+$", "location": "path", "description": "The name of the operation resource to be cancelled.", "required": true, - "type": "string", - "pattern": "^inspect/operations/[^/]+$" + "type": "string" } - } + }, + "flatPath": "v2beta1/inspect/operations/{operationsId}:cancel" }, "delete": { - "flatPath": "v2beta1/inspect/operations/{operationsId}", - "path": "v2beta1/{+name}", - "id": "dlp.inspect.operations.delete", "description": "This method is not supported and the server returns `UNIMPLEMENTED`.", + "httpMethod": "DELETE", "response": { "$ref": "GoogleProtobufEmpty" }, "parameterOrder": [ "name" ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "name": { "description": "The name of the operation resource to be deleted.", @@ -2220,7 +2182,97 @@ "pattern": "^inspect/operations/[^/]+$", "location": "path" } - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/inspect/operations/{operationsId}", + "id": "dlp.inspect.operations.delete", + "path": "v2beta1/{+name}" + }, + "list": { + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^inspect/operations$", + "location": "path", + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The list page size. The maximum allowed value is 256 and the default is 100.", + "format": "int32", + "type": "integer" + }, + "filter": { + "description": "Filters by `done`. That is, `done=true` or `done=false`.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2beta1/inspect/operations", + "path": "v2beta1/{+name}", + "id": "dlp.inspect.operations.list", + "description": "Fetches the list of long running operations." + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^inspect/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource.", + "required": true, + "type": "string" + } + }, + "flatPath": "v2beta1/inspect/operations/{operationsId}", + "path": "v2beta1/{+name}", + "id": "dlp.inspect.operations.get" + }, + "create": { + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/inspect/operations", + "path": "v2beta1/inspect/operations", + "id": "dlp.inspect.operations.create", + "request": { + "$ref": "GooglePrivacyDlpV2beta1CreateInspectOperationRequest" + }, + "description": "Schedules a job scanning content in a Google Cloud Platform data\nrepository." } } } @@ -2228,6 +2280,24 @@ }, "content": { "methods": { + "deidentify": { + "response": { + "$ref": "GooglePrivacyDlpV2beta1DeidentifyContentResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v2beta1/content:deidentify", + "path": "v2beta1/content:deidentify", + "id": "dlp.content.deidentify", + "request": { + "$ref": "GooglePrivacyDlpV2beta1DeidentifyContentRequest" + }, + "description": "De-identifies potentially sensitive info from a list of strings.\nThis method has limits on input size and output size." + }, "inspect": { "request": { "$ref": "GooglePrivacyDlpV2beta1InspectContentRequest" @@ -2247,6 +2317,8 @@ "id": "dlp.content.inspect" }, "redact": { + "path": "v2beta1/content:redact", + "id": "dlp.content.redact", "request": { "$ref": "GooglePrivacyDlpV2beta1RedactContentRequest" }, @@ -2260,34 +2332,13 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v2beta1/content:redact", - "path": "v2beta1/content:redact", - "id": "dlp.content.redact" - }, - "deidentify": { - "request": { - "$ref": "GooglePrivacyDlpV2beta1DeidentifyContentRequest" - }, - "description": "De-identifies potentially sensitive info from a list of strings.\nThis method has limits on input size and output size.", - "response": { - "$ref": "GooglePrivacyDlpV2beta1DeidentifyContentResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v2beta1/content:deidentify", - "path": "v2beta1/content:deidentify", - "id": "dlp.content.deidentify" + "flatPath": "v2beta1/content:redact" } } }, "rootCategories": { "methods": { "list": { - "flatPath": "v2beta1/rootCategories", "path": "v2beta1/rootCategories", "id": "dlp.rootCategories.list", "description": "Returns the list of root categories of sensitive information.", @@ -2296,26 +2347,23 @@ }, "parameterOrder": [], "httpMethod": "GET", + "parameters": { + "languageCode": { + "description": "Optional language code for localized friendly category names.\nIf omitted or if localized strings are not available,\nen-US strings will be returned.", + "type": "string", + "location": "query" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "parameters": { - "languageCode": { - "location": "query", - "description": "Optional language code for localized friendly category names.\nIf omitted or if localized strings are not available,\nen-US strings will be returned.", - "type": "string" - } - } + "flatPath": "v2beta1/rootCategories" } }, "resources": { "infoTypes": { "methods": { "list": { - "flatPath": "v2beta1/rootCategories/{rootCategoriesId}/infoTypes", - "path": "v2beta1/rootCategories/{+category}/infoTypes", - "id": "dlp.rootCategories.infoTypes.list", - "description": "Returns sensitive information types for given category.", "response": { "$ref": "GooglePrivacyDlpV2beta1ListInfoTypesResponse" }, @@ -2339,7 +2387,11 @@ "description": "Optional BCP-47 language code for localized info type friendly\nnames. If omitted, or if localized strings are not available,\nen-US strings will be returned.", "type": "string" } - } + }, + "flatPath": "v2beta1/rootCategories/{rootCategoriesId}/infoTypes", + "path": "v2beta1/rootCategories/{+category}/infoTypes", + "id": "dlp.rootCategories.infoTypes.list", + "description": "Returns sensitive information types for given category." } } } @@ -2350,6 +2402,12 @@ "operations": { "methods": { "cancel": { + "id": "dlp.riskAnalysis.operations.cancel", + "path": "v2beta1/{+name}:cancel", + "request": { + "$ref": "GoogleLongrunningCancelOperationRequest" + }, + "description": "Cancels an operation. Use the `inspect.operations.get` to check whether the cancellation succeeded or the operation completed despite cancellation.", "httpMethod": "POST", "parameterOrder": [ "name" @@ -2359,54 +2417,44 @@ }, "parameters": { "name": { - "location": "path", "description": "The name of the operation resource to be cancelled.", "required": true, "type": "string", - "pattern": "^riskAnalysis/operations/[^/]+$" + "pattern": "^riskAnalysis/operations/[^/]+$", + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v2beta1/riskAnalysis/operations/{operationsId}:cancel", - "id": "dlp.riskAnalysis.operations.cancel", - "path": "v2beta1/{+name}:cancel", - "request": { - "$ref": "GoogleLongrunningCancelOperationRequest" - }, - "description": "Cancels an operation. Use the `inspect.operations.get` to check whether the cancellation succeeded or the operation completed despite cancellation." + "flatPath": "v2beta1/riskAnalysis/operations/{operationsId}:cancel" }, "delete": { - "description": "This method is not supported and the server returns `UNIMPLEMENTED`.", - "httpMethod": "DELETE", "response": { "$ref": "GoogleProtobufEmpty" }, "parameterOrder": [ "name" ], + "httpMethod": "DELETE", "parameters": { "name": { + "pattern": "^riskAnalysis/operations/[^/]+$", "location": "path", "description": "The name of the operation resource to be deleted.", "required": true, - "type": "string", - "pattern": "^riskAnalysis/operations/[^/]+$" + "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "flatPath": "v2beta1/riskAnalysis/operations/{operationsId}", + "path": "v2beta1/{+name}", "id": "dlp.riskAnalysis.operations.delete", - "path": "v2beta1/{+name}" + "description": "This method is not supported and the server returns `UNIMPLEMENTED`." }, "list": { - "flatPath": "v2beta1/riskAnalysis/operations", - "path": "v2beta1/{+name}", - "id": "dlp.riskAnalysis.operations.list", - "description": "Fetches the list of long running operations.", "response": { "$ref": "GoogleLongrunningListOperationsResponse" }, @@ -2414,9 +2462,6 @@ "name" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "filter": { "description": "Filters by `done`. That is, `done=true` or `done=false`.", @@ -2424,11 +2469,11 @@ "location": "query" }, "name": { + "pattern": "^riskAnalysis/operations$", + "location": "path", "description": "The name of the operation's parent resource.", "required": true, - "type": "string", - "pattern": "^riskAnalysis/operations$", - "location": "path" + "type": "string" }, "pageToken": { "location": "query", @@ -2441,31 +2486,38 @@ "type": "integer", "location": "query" } - } - }, - "get": { - "response": { - "$ref": "GoogleLongrunningOperation" }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], + "flatPath": "v2beta1/riskAnalysis/operations", + "path": "v2beta1/{+name}", + "id": "dlp.riskAnalysis.operations.list", + "description": "Fetches the list of long running operations." + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "GoogleLongrunningOperation" + }, "parameters": { "name": { + "pattern": "^riskAnalysis/operations/[^/]+$", + "location": "path", "description": "The name of the operation resource.", "required": true, - "type": "string", - "pattern": "^riskAnalysis/operations/[^/]+$", - "location": "path" + "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v2beta1/riskAnalysis/operations/{operationsId}", - "path": "v2beta1/{+name}", "id": "dlp.riskAnalysis.operations.get", + "path": "v2beta1/{+name}", "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." } } @@ -2475,27 +2527,32 @@ "dataSource": { "methods": { "analyze": { - "description": "Schedules a job to compute risk analysis metrics over content in a Google\nCloud Platform repository.", - "request": { - "$ref": "GooglePrivacyDlpV2beta1AnalyzeDataSourceRiskRequest" - }, "response": { "$ref": "GoogleLongrunningOperation" }, "parameterOrder": [], "httpMethod": "POST", + "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "parameters": {}, "flatPath": "v2beta1/dataSource:analyze", "path": "v2beta1/dataSource:analyze", - "id": "dlp.dataSource.analyze" + "id": "dlp.dataSource.analyze", + "request": { + "$ref": "GooglePrivacyDlpV2beta1AnalyzeDataSourceRiskRequest" + }, + "description": "Schedules a job to compute risk analysis metrics over content in a Google\nCloud Platform repository." } } } }, "parameters": { + "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.", + "type": "string", + "location": "query" + }, "pp": { "location": "query", "description": "Pretty-print response.", @@ -2508,14 +2565,14 @@ "type": "string" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" }, "upload_protocol": { + "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "prettyPrint": { "location": "query", @@ -2523,33 +2580,33 @@ "type": "boolean", "default": "true" }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, "fields": { "location": "query", "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, "$.xgafv": { + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query", - "enum": [ - "1", - "2" - ] + "location": "query" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "alt": { "description": "Data format for response.", @@ -2567,18 +2624,13 @@ ], "location": "query" }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, "key": { "location": "query", "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.", "type": "string" }, - "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.", + "access_token": { + "description": "OAuth access token.", "type": "string", "location": "query" } @@ -2587,10 +2639,5 @@ "baseUrl": "https://dlp.googleapis.com/", "servicePath": "", "description": "The Google Data Loss Prevention API provides methods for detection of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories.", - "kind": "discovery#restDescription", - "basePath": "", - "id": "dlp:v2beta1", - "documentationLink": "https://cloud.google.com/dlp/docs/", - "revision": "20170928", - "discoveryVersion": "v1" + "kind": "discovery#restDescription" } diff --git a/vendor/google.golang.org/api/dlp/v2beta1/dlp-gen.go b/vendor/google.golang.org/api/dlp/v2beta1/dlp-gen.go index 05891a57c..b2894c47d 100644 --- a/vendor/google.golang.org/api/dlp/v2beta1/dlp-gen.go +++ b/vendor/google.golang.org/api/dlp/v2beta1/dlp-gen.go @@ -1224,6 +1224,42 @@ func (s *GooglePrivacyDlpV2beta1CryptoReplaceFfxFpeConfig) MarshalJSON() ([]byte return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GooglePrivacyDlpV2beta1CustomInfoType: Custom information type +// provided by the user. Used to find domain-specific +// sensitive information configurable to the data in question. +type GooglePrivacyDlpV2beta1CustomInfoType struct { + // Dictionary: Dictionary-based custom info type. + Dictionary *GooglePrivacyDlpV2beta1Dictionary `json:"dictionary,omitempty"` + + // InfoType: Info type configuration. All custom info types must have + // configurations + // that do not conflict with built-in info types or other custom info + // types. + InfoType *GooglePrivacyDlpV2beta1InfoType `json:"infoType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Dictionary") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Dictionary") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GooglePrivacyDlpV2beta1CustomInfoType) MarshalJSON() ([]byte, error) { + type noMethod GooglePrivacyDlpV2beta1CustomInfoType + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GooglePrivacyDlpV2beta1DatastoreKey: Record key for a finding in // Cloud Datastore. type GooglePrivacyDlpV2beta1DatastoreKey struct { @@ -1441,6 +1477,66 @@ func (s *GooglePrivacyDlpV2beta1DeidentifyContentResponse) MarshalJSON() ([]byte return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GooglePrivacyDlpV2beta1Dictionary: Custom information type based on a +// dictionary of words or phrases. This can +// be used to match sensitive information specific to the data, such as +// a list +// of employee IDs or job titles. +// +// Dictionary words are case-insensitive and all characters other than +// letters +// and digits in the unicode [Basic +// Multilingual +// Plane](https://en.wikipedia.org/wiki/Plane_(Unicode)#Basi +// c_Multilingual_Plane) +// will be replaced with whitespace when scanning for matches, so +// the +// dictionary phrase "Sam Johnson" will match all three phrases "sam +// johnson", +// "Sam, Johnson", and "Sam (Johnson)". Additionally, the +// characters +// surrounding any match must be of a different type than the +// adjacent +// characters within the word, so letters must be next to non-letters +// and +// digits next to non-digits. For example, the dictionary word "jen" +// will +// match the first three letters of the text "jen123" but will return +// no +// matches for "jennifer". +// +// Dictionary words containing a large number of characters that are +// not +// letters or digits may result in unexpected findings because such +// characters +// are treated as whitespace. +type GooglePrivacyDlpV2beta1Dictionary struct { + // WordList: List of words or phrases to search for. + WordList *GooglePrivacyDlpV2beta1WordList `json:"wordList,omitempty"` + + // ForceSendFields is a list of field names (e.g. "WordList") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "WordList") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GooglePrivacyDlpV2beta1Dictionary) MarshalJSON() ([]byte, error) { + type noMethod GooglePrivacyDlpV2beta1Dictionary + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GooglePrivacyDlpV2beta1EntityId: An entity in a dataset is a field or // set of fields that correspond to a // single person. For example, in medical records the `EntityId` might @@ -1794,7 +1890,7 @@ func (s *GooglePrivacyDlpV2beta1ImageLocation) MarshalJSON() ([]byte, error) { } // GooglePrivacyDlpV2beta1ImageRedactionConfig: Configuration for -// determing how redaction of images should occur. +// determining how redaction of images should occur. type GooglePrivacyDlpV2beta1ImageRedactionConfig struct { // InfoType: Only one per info_type should be provided per request. If // not @@ -2052,6 +2148,9 @@ func (s *GooglePrivacyDlpV2beta1InfoTypeTransformations) MarshalJSON() ([]byte, // currently // used. type GooglePrivacyDlpV2beta1InspectConfig struct { + // CustomInfoTypes: Custom info types provided by the user. + CustomInfoTypes []*GooglePrivacyDlpV2beta1CustomInfoType `json:"customInfoTypes,omitempty"` + // ExcludeTypes: When true, excludes type information of the findings. ExcludeTypes bool `json:"excludeTypes,omitempty"` @@ -2087,7 +2186,7 @@ type GooglePrivacyDlpV2beta1InspectConfig struct { // "VERY_LIKELY" - Many matching elements. MinLikelihood string `json:"minLikelihood,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExcludeTypes") to + // ForceSendFields is a list of field names (e.g. "CustomInfoTypes") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -2095,12 +2194,13 @@ type GooglePrivacyDlpV2beta1InspectConfig struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExcludeTypes") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "CustomInfoTypes") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } @@ -3317,7 +3417,7 @@ func (s *GooglePrivacyDlpV2beta1Range) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// GooglePrivacyDlpV2beta1RecordCondition: A condition for determing +// GooglePrivacyDlpV2beta1RecordCondition: A condition for determining // whether a transformation should be applied to // a field. type GooglePrivacyDlpV2beta1RecordCondition struct { @@ -4078,6 +4178,39 @@ func (s *GooglePrivacyDlpV2beta1ValueFrequency) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GooglePrivacyDlpV2beta1WordList: Message defining a list of words or +// phrases to search for in the data. +type GooglePrivacyDlpV2beta1WordList struct { + // Words: Words or phrases defining the dictionary. The dictionary must + // contain + // at least one phrase and every phrase must contain at least 2 + // characters + // that are letters or digits. [required] + Words []string `json:"words,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Words") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Words") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GooglePrivacyDlpV2beta1WordList) MarshalJSON() ([]byte, error) { + type noMethod GooglePrivacyDlpV2beta1WordList + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleProtobufEmpty: A generic empty message that you can re-use to // avoid defining duplicated // empty messages in your APIs. A typical example is to use it as the diff --git a/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json index bc6fd9066..c1a3582df 100644 --- a/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json +++ b/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json @@ -1,262 +1,18 @@ { - "name": "firebasedynamiclinks", - "batchPath": "batch", - "title": "Firebase Dynamic Links API", - "ownerName": "Google", - "resources": { - "shortLinks": { - "methods": { - "create": { - "request": { - "$ref": "CreateShortDynamicLinkRequest" - }, - "description": "Creates a short Dynamic Link given either a valid long Dynamic Link or\ndetails such as Dynamic Link domain, Android and iOS app information.\nThe created short Dynamic Link will not expire.\n\nRepeated calls with the same long Dynamic Link or Dynamic Link information\nwill produce the same short Dynamic Link.\n\nThe Dynamic Link domain in the request must be owned by requester's\nFirebase project.", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "CreateShortDynamicLinkResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/firebase" - ], - "flatPath": "v1/shortLinks", - "id": "firebasedynamiclinks.shortLinks.create", - "path": "v1/shortLinks" - } - } - }, - "v1": { - "methods": { - "installAttribution": { - "response": { - "$ref": "GetIosPostInstallAttributionResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/firebase" - ], - "parameters": {}, - "flatPath": "v1/installAttribution", - "path": "v1/installAttribution", - "id": "firebasedynamiclinks.installAttribution", - "description": "Get iOS strong/weak-match info for post-install attribution.", - "request": { - "$ref": "GetIosPostInstallAttributionRequest" - } - }, - "getLinkStats": { - "path": "v1/{dynamicLink}/linkStats", - "id": "firebasedynamiclinks.getLinkStats", - "description": "Fetches analytics stats of a short Dynamic Link for a given\nduration. Metrics include number of clicks, redirects, installs,\napp first opens, and app reopens.", - "response": { - "$ref": "DynamicLinkStats" - }, - "parameterOrder": [ - "dynamicLink" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/firebase" - ], - "parameters": { - "durationDays": { - "location": "query", - "description": "The span of time requested in days.", - "format": "int64", - "type": "string" - }, - "dynamicLink": { - "description": "Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz", - "required": true, - "type": "string", - "location": "path" - } - }, - "flatPath": "v1/{dynamicLink}/linkStats" - } - } - } - }, - "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "type": "boolean", - "default": "true", - "location": "query" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ] - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "type": "boolean", - "default": "true", - "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - } - }, - "version": "v1", - "baseUrl": "https://firebasedynamiclinks-ipv6.googleapis.com/", - "servicePath": "", - "description": "Programmatically creates and manages Firebase Dynamic Links.", - "kind": "discovery#restDescription", - "basePath": "", - "id": "firebasedynamiclinks:v1", + "revision": "20171016", "documentationLink": "https://firebase.google.com/docs/dynamic-links/", - "revision": "20170926", + "id": "firebasedynamiclinks:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { - "CreateShortDynamicLinkResponse": { - "id": "CreateShortDynamicLinkResponse", - "description": "Response to create a short Dynamic Link.", - "type": "object", - "properties": { - "shortLink": { - "description": "Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz", - "type": "string" - }, - "previewLink": { - "description": "Preivew link to show the link flow chart.", - "type": "string" - }, - "warning": { - "description": "Information about potential warnings on link creation.", - "type": "array", - "items": { - "$ref": "DynamicLinkWarning" - } - } - } - }, - "Suffix": { - "description": "Short Dynamic Link suffix.", - "type": "object", - "properties": { - "option": { - "description": "Suffix option.", - "type": "string", - "enumDescriptions": [ - "The suffix option is not specified, performs as NOT_GUESSABLE .", - "Short Dynamic Link suffix is a base62 [0-9A-Za-z] encoded string of\na random generated 96 bit random number, which has a length of 17 chars.\nFor example, \"nlAR8U4SlKRZw1cb2\".\nIt prevents other people from guessing and crawling short Dynamic Links\nthat contain personal identifiable information.", - "Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a\nlength of 4 chars. the length will increase when all the space is\noccupied." - ], - "enum": [ - "OPTION_UNSPECIFIED", - "UNGUESSABLE", - "SHORT" - ] - } - }, - "id": "Suffix" - }, - "GooglePlayAnalytics": { - "description": "Parameters for Google Play Campaign Measurements.\n[Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)", - "type": "object", - "properties": { - "utmContent": { - "description": "Campaign content; used for A/B testing and content-targeted ads to\ndifferentiate ads or links that point to the same URL.", - "type": "string" - }, - "utmMedium": { - "description": "Campaign medium; used to identify a medium such as email or cost-per-click.", - "type": "string" - }, - "utmTerm": { - "description": "Campaign term; used with paid search to supply the keywords for ads.", - "type": "string" - }, - "utmSource": { - "description": "Campaign source; used to identify a search engine, newsletter, or other\nsource.", - "type": "string" - }, - "gclid": { - "description": "[AdWords autotagging parameter](https://support.google.com/analytics/answer/1033981?hl=en);\nused to measure Google AdWords ads. This value is generated dynamically\nand should never be modified.", - "type": "string" - }, - "utmCampaign": { - "type": "string", - "description": "Campaign name; used for keyword analysis to identify a specific product\npromotion or strategic campaign." - } - }, - "id": "GooglePlayAnalytics" - }, "DynamicLinkInfo": { "description": "Information about a Dynamic Link.", "type": "object", "properties": { + "androidInfo": { + "$ref": "AndroidInfo", + "description": "Android related information. See Android related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." + }, "navigationInfo": { "$ref": "NavigationInfo", "description": "Information of navigation behavior of a Firebase Dynamic Links." @@ -269,26 +25,28 @@ "description": "Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl\n[Learn more](https://firebase.google.com/docs/dynamic-links/android/receive)\non how to set up Dynamic Link domain associated with your Firebase project.\n\nRequired.", "type": "string" }, + "desktopInfo": { + "description": "Desktop related information. See desktop related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually).", + "$ref": "DesktopInfo" + }, "link": { "description": "The link your app will open, You can specify any URL your app can handle.\nThis link must be a well-formatted URL, be properly URL-encoded, and use\nthe HTTP or HTTPS scheme. See 'link' parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually).\n\nRequired.", "type": "string" }, "iosInfo": { - "$ref": "IosInfo", - "description": "iOS related information. See iOS related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." + "description": "iOS related information. See iOS related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually).", + "$ref": "IosInfo" }, "socialMetaTagInfo": { "$ref": "SocialMetaTagInfo", "description": "Parameters for social meta tag params.\nUsed to set meta tag data for link previews on social sites." - }, - "androidInfo": { - "$ref": "AndroidInfo", - "description": "Android related information. See Android related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)." } }, "id": "DynamicLinkInfo" }, "ITunesConnectAnalytics": { + "description": "Parameters for iTunes Connect App Analytics.", + "type": "object", "properties": { "at": { "description": "Affiliate token used to create affiliate-coded links.", @@ -307,9 +65,7 @@ "type": "string" } }, - "id": "ITunesConnectAnalytics", - "description": "Parameters for iTunes Connect App Analytics.", - "type": "object" + "id": "ITunesConnectAnalytics" }, "DeviceInfo": { "description": "Signals associated with the device making the request.", @@ -341,18 +97,38 @@ "id": "DeviceInfo" }, "GetIosPostInstallAttributionResponse": { - "description": "Response for iSDK to execute strong match flow for post-install attribution.", - "type": "object", "properties": { - "deepLink": { - "description": "The deep-link attributed post-install via one of several techniques\n(fingerprint, copy unique).", + "utmMedium": { + "description": "Scion medium value to be propagated by iSDK to Scion at post-install.", + "type": "string" + }, + "utmSource": { + "description": "Scion source value to be propagated by iSDK to Scion at post-install.", + "type": "string" + }, + "isStrongMatchExecutable": { + "description": "Instruction for iSDK to attemmpt to perform strong match. For instance,\nif browser does not support/allow cookie or outside of support browsers,\nthis will be false.", + "type": "boolean" + }, + "appMinimumVersion": { + "description": "The minimum version for app, specified by dev through ?imv= parameter.\nReturn to iSDK to allow app to evaluate if current version meets this.", "type": "string" }, "invitationId": { "description": "Invitation ID attributed post-install via one of several techniques\n(fingerprint, copy unique).", "type": "string" }, + "deepLink": { + "description": "The deep-link attributed post-install via one of several techniques\n(fingerprint, copy unique).", + "type": "string" + }, "attributionConfidence": { + "enumDescriptions": [ + "Unset.", + "Weak confidence, more than one matching link found or link suspected to\nbe false positive", + "Default confidence, match based on fingerprint", + "Unique confidence, match based on \"unique match link to check\" or other\nmeans" + ], "enum": [ "UNKNOWN_ATTRIBUTION_CONFIDENCE", "WEAK", @@ -360,13 +136,7 @@ "UNIQUE" ], "description": "The confidence of the returned attribution.", - "type": "string", - "enumDescriptions": [ - "Unset.", - "Weak confidence, more than one matching link found or link suspected to\nbe false positive", - "Default confidence, match based on fingerprint", - "Unique confidence, match based on \"unique match link to check\" or other\nmeans" - ] + "type": "string" }, "externalBrowserDestinationLink": { "description": "User-agent specific custom-scheme URIs for iSDK to open. This will be set\naccording to the user-agent tha the click was originally made in. There is\nno Safari-equivalent custom-scheme open URLs.\nie: googlechrome://www.example.com\nie: firefox://open-url?url=http://www.example.com\nie: opera-http://example.com", @@ -391,25 +161,11 @@ "requestedLink": { "description": "Entire FDL (short or long) attributed post-install via one of several\ntechniques (fingerprint, copy unique).", "type": "string" - }, - "utmMedium": { - "description": "Scion medium value to be propagated by iSDK to Scion at post-install.", - "type": "string" - }, - "utmSource": { - "description": "Scion source value to be propagated by iSDK to Scion at post-install.", - "type": "string" - }, - "isStrongMatchExecutable": { - "description": "Instruction for iSDK to attemmpt to perform strong match. For instance,\nif browser does not support/allow cookie or outside of support browsers,\nthis will be false.", - "type": "boolean" - }, - "appMinimumVersion": { - "description": "The minimum version for app, specified by dev through ?imv= parameter.\nReturn to iSDK to allow app to evaluate if current version meets this.", - "type": "string" } }, - "id": "GetIosPostInstallAttributionResponse" + "id": "GetIosPostInstallAttributionResponse", + "description": "Response for iSDK to execute strong match flow for post-install attribution.", + "type": "object" }, "SocialMetaTagInfo": { "description": "Parameters for social meta tag params.\nUsed to set meta tag data for link previews on social sites.", @@ -448,7 +204,46 @@ "description": "Dynamic Links warning messages.", "type": "object", "properties": { + "warningMessage": { + "description": "The warning message to help developers improve their requests.", + "type": "string" + }, + "warningDocumentLink": { + "description": "The document describing the warning, and helps resolve.", + "type": "string" + }, "warningCode": { + "enum": [ + "CODE_UNSPECIFIED", + "NOT_IN_PROJECT_ANDROID_PACKAGE_NAME", + "NOT_INTEGER_ANDROID_PACKAGE_MIN_VERSION", + "UNNECESSARY_ANDROID_PACKAGE_MIN_VERSION", + "NOT_URI_ANDROID_LINK", + "UNNECESSARY_ANDROID_LINK", + "NOT_URI_ANDROID_FALLBACK_LINK", + "BAD_URI_SCHEME_ANDROID_FALLBACK_LINK", + "NOT_IN_PROJECT_IOS_BUNDLE_ID", + "NOT_IN_PROJECT_IPAD_BUNDLE_ID", + "UNNECESSARY_IOS_URL_SCHEME", + "NOT_NUMERIC_IOS_APP_STORE_ID", + "UNNECESSARY_IOS_APP_STORE_ID", + "NOT_URI_IOS_FALLBACK_LINK", + "BAD_URI_SCHEME_IOS_FALLBACK_LINK", + "NOT_URI_IPAD_FALLBACK_LINK", + "BAD_URI_SCHEME_IPAD_FALLBACK_LINK", + "BAD_DEBUG_PARAM", + "BAD_AD_PARAM", + "DEPRECATED_PARAM", + "UNRECOGNIZED_PARAM", + "TOO_LONG_PARAM", + "NOT_URI_SOCIAL_IMAGE_LINK", + "BAD_URI_SCHEME_SOCIAL_IMAGE_LINK", + "NOT_URI_SOCIAL_URL", + "BAD_URI_SCHEME_SOCIAL_URL", + "LINK_LENGTH_TOO_LONG", + "LINK_WITH_FRAGMENTS", + "NOT_MATCHING_IOS_BUNDLE_ID_AND_STORE_ID" + ], "description": "The warning code.", "type": "string", "enumDescriptions": [ @@ -481,59 +276,15 @@ "Dynamic Link URL length is too long.", "Dynamic Link URL contains fragments.", "The iOS bundle ID does not match with the given iOS store ID." - ], - "enum": [ - "CODE_UNSPECIFIED", - "NOT_IN_PROJECT_ANDROID_PACKAGE_NAME", - "NOT_INTEGER_ANDROID_PACKAGE_MIN_VERSION", - "UNNECESSARY_ANDROID_PACKAGE_MIN_VERSION", - "NOT_URI_ANDROID_LINK", - "UNNECESSARY_ANDROID_LINK", - "NOT_URI_ANDROID_FALLBACK_LINK", - "BAD_URI_SCHEME_ANDROID_FALLBACK_LINK", - "NOT_IN_PROJECT_IOS_BUNDLE_ID", - "NOT_IN_PROJECT_IPAD_BUNDLE_ID", - "UNNECESSARY_IOS_URL_SCHEME", - "NOT_NUMERIC_IOS_APP_STORE_ID", - "UNNECESSARY_IOS_APP_STORE_ID", - "NOT_URI_IOS_FALLBACK_LINK", - "BAD_URI_SCHEME_IOS_FALLBACK_LINK", - "NOT_URI_IPAD_FALLBACK_LINK", - "BAD_URI_SCHEME_IPAD_FALLBACK_LINK", - "BAD_DEBUG_PARAM", - "BAD_AD_PARAM", - "DEPRECATED_PARAM", - "UNRECOGNIZED_PARAM", - "TOO_LONG_PARAM", - "NOT_URI_SOCIAL_IMAGE_LINK", - "BAD_URI_SCHEME_SOCIAL_IMAGE_LINK", - "NOT_URI_SOCIAL_URL", - "BAD_URI_SCHEME_SOCIAL_URL", - "LINK_LENGTH_TOO_LONG", - "LINK_WITH_FRAGMENTS", - "NOT_MATCHING_IOS_BUNDLE_ID_AND_STORE_ID" ] - }, - "warningMessage": { - "description": "The warning message to help developers improve their requests.", - "type": "string" - }, - "warningDocumentLink": { - "description": "The document describing the warning, and helps resolve.", - "type": "string" } }, "id": "DynamicLinkWarning" }, "AndroidInfo": { - "id": "AndroidInfo", "description": "Android related attributes to the Dynamic Link.", "type": "object", "properties": { - "androidFallbackLink": { - "description": "Link to open on Android if the app is not installed.", - "type": "string" - }, "androidPackageName": { "description": "Android package name of the app.", "type": "string" @@ -545,23 +296,26 @@ "androidLink": { "description": "If specified, this overrides the ‘link’ parameter on Android.", "type": "string" + }, + "androidFallbackLink": { + "description": "Link to open on Android if the app is not installed.", + "type": "string" } - } + }, + "id": "AndroidInfo" }, "NavigationInfo": { - "description": "Information of navigation behavior.", - "type": "object", "properties": { "enableForcedRedirect": { "description": "If this option is on, FDL click will be forced to redirect rather than\nshow an interstitial page.", "type": "boolean" } }, - "id": "NavigationInfo" + "id": "NavigationInfo", + "description": "Information of navigation behavior.", + "type": "object" }, "IosInfo": { - "description": "iOS related attributes to the Dynamic Link..", - "type": "object", "properties": { "iosFallbackLink": { "description": "Link to open on iOS if the app is not installed.", @@ -584,11 +338,13 @@ "type": "string" }, "iosBundleId": { - "type": "string", - "description": "iOS bundle ID of the app." + "description": "iOS bundle ID of the app.", + "type": "string" } }, - "id": "IosInfo" + "id": "IosInfo", + "description": "iOS related attributes to the Dynamic Link..", + "type": "object" }, "AnalyticsInfo": { "description": "Tracking parameters supported by Dynamic Link.", @@ -599,8 +355,8 @@ "description": "iTunes Connect App Analytics." }, "googlePlayAnalytics": { - "$ref": "GooglePlayAnalytics", - "description": "Google Play Campaign Measurements." + "description": "Google Play Campaign Measurements.", + "$ref": "GooglePlayAnalytics" } }, "id": "AnalyticsInfo" @@ -624,14 +380,23 @@ }, "id": "CreateShortDynamicLinkRequest" }, - "DynamicLinkEventStat": { - "description": "Dynamic Link event stat.", + "DesktopInfo": { + "description": "Desktop related attributes to the Dynamic Link.", "type": "object", + "properties": { + "desktopFallbackLink": { + "description": "Link to open on desktop.", + "type": "string" + } + }, + "id": "DesktopInfo" + }, + "DynamicLinkEventStat": { "properties": { "count": { - "type": "string", "description": "The number of times this event occurred.", - "format": "int64" + "format": "int64", + "type": "string" }, "event": { "description": "Link event.", @@ -654,6 +419,8 @@ ] }, "platform": { + "description": "Requested platform.", + "type": "string", "enumDescriptions": [ "Unspecified platform.", "Represents Android platform.\nAll apps and browsers on Android are classfied in this category.", @@ -665,30 +432,35 @@ "ANDROID", "IOS", "DESKTOP" - ], - "description": "Requested platform.", - "type": "string" + ] } }, - "id": "DynamicLinkEventStat" + "id": "DynamicLinkEventStat", + "description": "Dynamic Link event stat.", + "type": "object" }, "GetIosPostInstallAttributionRequest": { "description": "Request for iSDK to execute strong match flow for post-install attribution.\nThis is meant for iOS requests only. Requests from other platforms will\nnot be honored.", "type": "object", "properties": { - "uniqueMatchLinkToCheck": { - "description": "Possible unique matched link that server need to check before performing\nfingerprint match. If passed link is short server need to expand the link.\nIf link is long server need to vslidate the link.", - "type": "string" - }, - "appInstallationTime": { - "description": "App installation epoch time (https://en.wikipedia.org/wiki/Unix_time).\nThis is a client signal for a more accurate weak match.", - "format": "int64", - "type": "string" - }, "iosVersion": { "description": "iOS version, ie: 9.3.5.\nConsider adding \"build\".", "type": "string" }, + "visualStyle": { + "description": "Strong match page information. Disambiguates between default UI and\ncustom page to present when strong match succeeds/fails to find cookie.", + "type": "string", + "enumDescriptions": [ + "Unknown style.", + "Default style.", + "Custom style." + ], + "enum": [ + "UNKNOWN_VISUAL_STYLE", + "DEFAULT_STYLE", + "CUSTOM_STYLE" + ] + }, "retrievalMethod": { "enumDescriptions": [ "Unknown method.", @@ -705,20 +477,6 @@ "description": "App post install attribution retrieval information. Disambiguates\nmechanism (iSDK or developer invoked) to retrieve payload from\nclicked link.", "type": "string" }, - "visualStyle": { - "enumDescriptions": [ - "Unknown style.", - "Default style.", - "Custom style." - ], - "enum": [ - "UNKNOWN_VISUAL_STYLE", - "DEFAULT_STYLE", - "CUSTOM_STYLE" - ], - "description": "Strong match page information. Disambiguates between default UI and\ncustom page to present when strong match succeeds/fails to find cookie.", - "type": "string" - }, "sdkVersion": { "description": "Google SDK version.", "type": "string" @@ -730,14 +488,97 @@ "device": { "description": "Device information.", "$ref": "DeviceInfo" + }, + "uniqueMatchLinkToCheck": { + "description": "Possible unique matched link that server need to check before performing\nfingerprint match. If passed link is short server need to expand the link.\nIf link is long server need to vslidate the link.", + "type": "string" + }, + "appInstallationTime": { + "description": "App installation epoch time (https://en.wikipedia.org/wiki/Unix_time).\nThis is a client signal for a more accurate weak match.", + "format": "int64", + "type": "string" } }, "id": "GetIosPostInstallAttributionRequest" + }, + "CreateShortDynamicLinkResponse": { + "description": "Response to create a short Dynamic Link.", + "type": "object", + "properties": { + "warning": { + "description": "Information about potential warnings on link creation.", + "type": "array", + "items": { + "$ref": "DynamicLinkWarning" + } + }, + "shortLink": { + "description": "Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz", + "type": "string" + }, + "previewLink": { + "description": "Preivew link to show the link flow chart.", + "type": "string" + } + }, + "id": "CreateShortDynamicLinkResponse" + }, + "Suffix": { + "description": "Short Dynamic Link suffix.", + "type": "object", + "properties": { + "option": { + "description": "Suffix option.", + "type": "string", + "enumDescriptions": [ + "The suffix option is not specified, performs as NOT_GUESSABLE .", + "Short Dynamic Link suffix is a base62 [0-9A-Za-z] encoded string of\na random generated 96 bit random number, which has a length of 17 chars.\nFor example, \"nlAR8U4SlKRZw1cb2\".\nIt prevents other people from guessing and crawling short Dynamic Links\nthat contain personal identifiable information.", + "Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a\nlength of 4 chars. the length will increase when all the space is\noccupied." + ], + "enum": [ + "OPTION_UNSPECIFIED", + "UNGUESSABLE", + "SHORT" + ] + } + }, + "id": "Suffix" + }, + "GooglePlayAnalytics": { + "description": "Parameters for Google Play Campaign Measurements.\n[Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)", + "type": "object", + "properties": { + "utmMedium": { + "description": "Campaign medium; used to identify a medium such as email or cost-per-click.", + "type": "string" + }, + "utmTerm": { + "description": "Campaign term; used with paid search to supply the keywords for ads.", + "type": "string" + }, + "utmSource": { + "description": "Campaign source; used to identify a search engine, newsletter, or other\nsource.", + "type": "string" + }, + "gclid": { + "description": "[AdWords autotagging parameter](https://support.google.com/analytics/answer/1033981?hl=en);\nused to measure Google AdWords ads. This value is generated dynamically\nand should never be modified.", + "type": "string" + }, + "utmCampaign": { + "description": "Campaign name; used for keyword analysis to identify a specific product\npromotion or strategic campaign.", + "type": "string" + }, + "utmContent": { + "description": "Campaign content; used for A/B testing and content-targeted ads to\ndifferentiate ads or links that point to the same URL.", + "type": "string" + } + }, + "id": "GooglePlayAnalytics" } }, "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "protocol": "rest", "canonicalName": "Firebase Dynamic Links", @@ -751,5 +592,179 @@ } }, "rootUrl": "https://firebasedynamiclinks-ipv6.googleapis.com/", - "ownerDomain": "google.com" + "ownerDomain": "google.com", + "name": "firebasedynamiclinks", + "batchPath": "batch", + "title": "Firebase Dynamic Links API", + "ownerName": "Google", + "resources": { + "v1": { + "methods": { + "installAttribution": { + "path": "v1/installAttribution", + "id": "firebasedynamiclinks.installAttribution", + "request": { + "$ref": "GetIosPostInstallAttributionRequest" + }, + "description": "Get iOS strong/weak-match info for post-install attribution.", + "response": { + "$ref": "GetIosPostInstallAttributionResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/firebase" + ], + "flatPath": "v1/installAttribution" + }, + "getLinkStats": { + "response": { + "$ref": "DynamicLinkStats" + }, + "parameterOrder": [ + "dynamicLink" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/firebase" + ], + "parameters": { + "durationDays": { + "location": "query", + "description": "The span of time requested in days.", + "format": "int64", + "type": "string" + }, + "dynamicLink": { + "description": "Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/{dynamicLink}/linkStats", + "path": "v1/{dynamicLink}/linkStats", + "id": "firebasedynamiclinks.getLinkStats", + "description": "Fetches analytics stats of a short Dynamic Link for a given\nduration. Metrics include number of clicks, redirects, installs,\napp first opens, and app reopens." + } + } + }, + "shortLinks": { + "methods": { + "create": { + "path": "v1/shortLinks", + "id": "firebasedynamiclinks.shortLinks.create", + "description": "Creates a short Dynamic Link given either a valid long Dynamic Link or\ndetails such as Dynamic Link domain, Android and iOS app information.\nThe created short Dynamic Link will not expire.\n\nRepeated calls with the same long Dynamic Link or Dynamic Link information\nwill produce the same short Dynamic Link.\n\nThe Dynamic Link domain in the request must be owned by requester's\nFirebase project.", + "request": { + "$ref": "CreateShortDynamicLinkRequest" + }, + "response": { + "$ref": "CreateShortDynamicLinkResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/firebase" + ], + "parameters": {}, + "flatPath": "v1/shortLinks" + } + } + } + }, + "parameters": { + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "type": "string", + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ] + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + } + }, + "version": "v1", + "baseUrl": "https://firebasedynamiclinks-ipv6.googleapis.com/", + "servicePath": "", + "description": "Programmatically creates and manages Firebase Dynamic Links.", + "kind": "discovery#restDescription", + "basePath": "" } diff --git a/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go b/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go index 2e197e7ae..40f7ef436 100644 --- a/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go +++ b/vendor/google.golang.org/api/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go @@ -258,6 +258,35 @@ func (s *CreateShortDynamicLinkResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DesktopInfo: Desktop related attributes to the Dynamic Link. +type DesktopInfo struct { + // DesktopFallbackLink: Link to open on desktop. + DesktopFallbackLink string `json:"desktopFallbackLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DesktopFallbackLink") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DesktopFallbackLink") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DesktopInfo) MarshalJSON() ([]byte, error) { + type noMethod DesktopInfo + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DeviceInfo: Signals associated with the device making the request. type DeviceInfo struct { // DeviceModelName: Device model name. @@ -374,6 +403,13 @@ type DynamicLinkInfo struct { // ate-manually). AndroidInfo *AndroidInfo `json:"androidInfo,omitempty"` + // DesktopInfo: Desktop related information. See desktop related + // parameters in + // the + // [documentation](https://firebase.google.com/docs/dynamic-links/cre + // ate-manually). + DesktopInfo *DesktopInfo `json:"desktopInfo,omitempty"` + // DynamicLinkDomain: Dynamic Links domain that the project owns, e.g. // abcd.app.goo.gl // [Learn diff --git a/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-api.json b/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-api.json index c6c38bbf4..092955044 100644 --- a/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-api.json +++ b/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-api.json @@ -1,37 +1,237 @@ { + "resources": { + "projects": { + "methods": { + "updateRemoteConfig": { + "flatPath": "v1/projects/{projectsId}/remoteConfig", + "path": "v1/{+project}/remoteConfig", + "id": "firebaseremoteconfig.projects.updateRemoteConfig", + "description": "Update a RemoteConfig. We treat this as an always-existing\nresource (when it is not found in our data store, we treat it as version\n0, a template with zero conditions and zero parameters). Hence there are\nno Create or Delete operations. Returns the updated template when\nsuccessful (and the updated eTag as a response header), or an error if\nthings go wrong.\nPossible error messages:\n* VALIDATION_ERROR (HTTP status 400) with additional details if the\ntemplate being passed in can not be validated.\n* AUTHENTICATION_ERROR (HTTP status 401) if the request can not be\nauthenticate (e.g. no access token, or invalid access token).\n* AUTHORIZATION_ERROR (HTTP status 403) if the request can not be\nauthorized (e.g. the user has no access to the specified project id).\n* VERSION_MISMATCH (HTTP status 412) when trying to update when the\nexpected eTag (passed in via the \"If-match\" header) is not specified, or\nis specified but does does not match the current eTag.\n* Internal error (HTTP status 500) for Database problems or other internal\nerrors.", + "request": { + "$ref": "RemoteConfig" + }, + "httpMethod": "PUT", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "RemoteConfig" + }, + "parameters": { + "validateOnly": { + "location": "query", + "description": "Optional. Defaults to \u003ccode\u003efalse\u003c/code\u003e (UpdateRemoteConfig call should\nupdate the backend if there are no validation/interal errors). May be set\nto \u003ccode\u003etrue\u003c/code\u003e to indicate that, should no validation errors occur,\nthe call should return a \"200 OK\" instead of performing the update. Note\nthat other error messages (500 Internal Error, 412 Version Mismatch, etc)\nmay still result after flipping to \u003ccode\u003efalse\u003c/code\u003e, even if getting a\n\"200 OK\" when calling with \u003ccode\u003etrue\u003c/code\u003e.", + "type": "boolean" + }, + "project": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "The GMP project identifier. Required.\nSee note at the beginning of this file regarding project ids." + } + } + }, + "getRemoteConfig": { + "httpMethod": "GET", + "response": { + "$ref": "RemoteConfig" + }, + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "location": "path", + "description": "The GMP project identifier. Required.\nSee note at the beginning of this file regarding project ids.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/remoteConfig", + "path": "v1/{+project}/remoteConfig", + "id": "firebaseremoteconfig.projects.getRemoteConfig", + "description": "Get the latest version Remote Configuration for a project.\nReturns the RemoteConfig as the payload, and also the eTag as a\nresponse header." + } + } + } + }, + "parameters": { + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "type": "boolean", + "location": "query", + "description": "Returns response with indentations and line breaks." + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "type": "string", + "location": "query", + "description": "Selector specifying which fields to include in a partial response." + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response." + }, + "access_token": { + "type": "string", + "location": "query", + "description": "OAuth access token." + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "type": "string", + "location": "query", + "description": "OAuth 2.0 token for the current user." + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." + } + }, + "version": "v1", + "baseUrl": "https://firebaseremoteconfig.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Firebase Remote Config API allows the 3P clients to manage Remote Config conditions and parameters for Firebase applications.", + "servicePath": "", + "basePath": "", + "revision": "20171016", + "documentationLink": "https://firebase.google.com/docs/remote-config/", + "id": "firebaseremoteconfig:v1", + "discoveryVersion": "v1", "version_module": true, "schemas": { + "RemoteConfigParameterValue": { + "description": "A RemoteConfigParameter's \"value\" (either the default value, or the value\nassociated with a condition name) is either a string, or the\n\"use_in_app_default\" indicator (which means to leave out the parameter from\nthe returned \u003ckey, value\u003e map that is the output of the parameter fetch).\nWe represent the \"use_in_app_default\" as a bool, but (when using the boolean\ninstead of the string) it should always be \u003ccode\u003etrue\u003c/code\u003e.", + "type": "object", + "properties": { + "useInAppDefault": { + "type": "boolean", + "description": "if true, omit the parameter from the map of fetched parameter values" + }, + "value": { + "type": "string", + "description": "the string to set the parameter to" + } + }, + "id": "RemoteConfigParameterValue" + }, + "RemoteConfig": { + "description": "*\nThe RemoteConfig consists of a list of conditions (which can be\nthought of as named \"if\" statements) and a map of parameters (parameter key\nto a structure containing an optional default value, as well as a optional\nsubmap of (condition name to value when that condition is true).", + "type": "object", + "properties": { + "conditions": { + "description": "The list of named conditions. The order *does* affect the semantics.\nThe condition_name values of these entries must be unique.\n\nThe resolved value of a config parameter P is determined as follow:\n* Let Y be the set of values from the submap of P that refer to conditions\n that evaluate to \u003ccode\u003etrue\u003c/code\u003e.\n* If Y is non empty, the value is taken from the specific submap in Y whose\n condition_name is the earliest in this condition list.\n* Else, if P has a default value option (condition_name is empty) then\n the value is taken from that option.\n* Else, parameter P has no value and is omitted from the config result.\n\nExample: parameter key \"p1\", default value \"v1\", submap specified as\n{\"c1\": v2, \"c2\": v3} where \"c1\" and \"c2\" are names of conditions in the\ncondition list (where \"c1\" in this example appears before \"c2\"). The\nvalue of p1 would be v2 as long as c1 is true. Otherwise, if c2 is true,\np1 would evaluate to v3, and if c1 and c2 are both false, p1 would evaluate\nto v1. If no default value was specified, and c1 and c2 were both false,\nno value for p1 would be generated.", + "items": { + "$ref": "RemoteConfigCondition" + }, + "type": "array" + }, + "parameters": { + "additionalProperties": { + "$ref": "RemoteConfigParameter" + }, + "description": "Map of parameter keys to their optional default values and optional submap\nof (condition name : value). Order doesn't affect semantics, and so is\nsorted by the server. The 'key' values of the params must be unique.", + "type": "object" + } + }, + "id": "RemoteConfig" + }, "RemoteConfigParameter": { "description": "While default_value and conditional_values are each optional, at least one of\nthe two is required - otherwise, the parameter is meaningless (and an\nexception will be thrown by the validation logic).", "type": "object", "properties": { + "defaultValue": { + "$ref": "RemoteConfigParameterValue", + "description": "Optional - value to set the parameter to, when none of the named conditions\nevaluate to \u003ccode\u003etrue\u003c/code\u003e." + }, + "description": { + "type": "string", + "description": "Optional.\nA description for this Parameter. Length must be less than or equal to\n100 characters (or more precisely, unicode code points, which is defined in\njava/com/google/wireless/android/config/ConstsExporter.java).\nA description may contain any Unicode characters" + }, "conditionalValues": { + "type": "object", "additionalProperties": { "$ref": "RemoteConfigParameterValue" }, - "description": "Optional - a map of (condition_name, value). The condition_name of the\nhighest priority (the one listed first in the conditions array) determines\nthe value of this parameter.", - "type": "object" - }, - "defaultValue": { - "description": "Optional - value to set the parameter to, when none of the named conditions\nevaluate to \u003ccode\u003etrue\u003c/code\u003e.", - "$ref": "RemoteConfigParameterValue" + "description": "Optional - a map of (condition_name, value). The condition_name of the\nhighest priority (the one listed first in the conditions array) determines\nthe value of this parameter." } }, "id": "RemoteConfigParameter" }, "RemoteConfigCondition": { - "description": "A single RemoteConfig Condition. A list of these (because order matters) are\npart of a single RemoteConfig template.", "type": "object", "properties": { "name": { "description": "Required.\nA non empty and unique name of this condition.", "type": "string" }, + "description": { + "type": "string", + "description": "Optional.\nA description for this Condition. Length must be less than or equal to\n100 characters (or more precisely, unicode code points, which is defined in\njava/com/google/wireless/android/config/ConstsExporter.java).\nA description may contain any Unicode characters" + }, "expression": { "description": "Required.", "type": "string" }, "tagColor": { + "type": "string", "enumDescriptions": [ "", "Blue", @@ -60,47 +260,11 @@ "PURPLE", "TEAL" ], - "description": "Optional.\nThe display (tag) color of this condition. This serves as part of a tag\n(in the future, we may add tag text as well as tag color, but that is not\nyet implemented in the UI).\nThis value has no affect on the semantics of the delivered config and it\nis ignored by the backend, except for passing it through write/read\nrequests.\nNot having this value or having the \"CONDITION_DISPLAY_COLOR_UNSPECIFIED\"\nvalue (0) have the same meaning: Let the UI choose any valid color when\ndisplaying the condition.", - "type": "string" + "description": "Optional.\nThe display (tag) color of this condition. This serves as part of a tag\n(in the future, we may add tag text as well as tag color, but that is not\nyet implemented in the UI).\nThis value has no affect on the semantics of the delivered config and it\nis ignored by the backend, except for passing it through write/read\nrequests.\nNot having this value or having the \"CONDITION_DISPLAY_COLOR_UNSPECIFIED\"\nvalue (0) have the same meaning: Let the UI choose any valid color when\ndisplaying the condition." } }, - "id": "RemoteConfigCondition" - }, - "RemoteConfigParameterValue": { - "description": "A RemoteConfigParameter's \"value\" (either the default value, or the value\nassociated with a condition name) is either a string, or the\n\"use_in_app_default\" indicator (which means to leave out the parameter from\nthe returned \u003ckey, value\u003e map that is the output of the parameter fetch).\nWe represent the \"use_in_app_default\" as a bool, but (when using the boolean\ninstead of the string) it should always be \u003ccode\u003etrue\u003c/code\u003e.", - "type": "object", - "properties": { - "useInAppDefault": { - "type": "boolean", - "description": "if true, omit the parameter from the map of fetched parameter values" - }, - "value": { - "type": "string", - "description": "the string to set the parameter to" - } - }, - "id": "RemoteConfigParameterValue" - }, - "RemoteConfig": { - "description": "*\nThe RemoteConfig consists of a list of conditions (which can be\nthought of as named \"if\" statements) and a map of parameters (parameter key\nto a stucture containing an optional default value, as well as a optional\nsubmap of (condition name to value when that condition is true).", - "type": "object", - "properties": { - "parameters": { - "additionalProperties": { - "$ref": "RemoteConfigParameter" - }, - "description": "Map of parameter keys to their optional default values and optional submap\nof (condition name : value). Order doesn't affect semantics, and so is\nsorted by the server. The 'key' values of the params must be unique.", - "type": "object" - }, - "conditions": { - "items": { - "$ref": "RemoteConfigCondition" - }, - "type": "array", - "description": "The list of named conditions. The order *does* affect the semantics.\nThe condition_name values of these entries must be unique.\n\nThe resolved value of a config parameter P is determined as follow:\n* Let Y be the set of values from the submap of P that refer to conditions\n that evaluate to \u003ccode\u003etrue\u003c/code\u003e.\n* If Y is non empty, the value is taken from the specific submap in Y whose\n condition_name is the earliest in this condition list.\n* Else, if P has a default value option (condition_name is empty) then\n the value is taken from that option.\n* Else, parameter P has no value and is omitted from the config result.\n\nExample: parameter key \"p1\", default value \"v1\", submap specified as\n{\"c1\": v2, \"c2\": v3} where \"c1\" and \"c2\" are names of conditions in the\ncondition list (where \"c1\" in this example appears before \"c2\"). The\nvalue of p1 would be v2 as long as c1 is true. Otherwise, if c2 is true,\np1 would evaluate to v3, and if c1 and c2 are both false, p1 would evaluate\nto v1. If no default value was specified, and c1 and c2 were both false,\nno value for p1 would be generated." - } - }, - "id": "RemoteConfig" + "id": "RemoteConfigCondition", + "description": "A single RemoteConfig Condition. A list of these (because order matters) are\npart of a single RemoteConfig template." } }, "icons": { @@ -115,161 +279,5 @@ "batchPath": "batch", "fullyEncodeReservedExpansion": true, "title": "Firebase Remote Config API", - "ownerName": "Google", - "resources": { - "projects": { - "methods": { - "updateRemoteConfig": { - "flatPath": "v1/projects/{projectsId}/remoteConfig", - "id": "firebaseremoteconfig.projects.updateRemoteConfig", - "path": "v1/{+project}/remoteConfig", - "description": "Update a RemoteConfig. We treat this as an always-existing\nresource (when it is not found in our data store, we treat it as version\n0, a template with zero conditions and zero parameters). Hence there are\nno Create or Delete operations. Returns the updated template when\nsuccessful (and the updated eTag as a response header), or an error if\nthings go wrong.\nPossible error messages:\n* VALIDATION_ERROR (HTTP status 400) with additional details if the\ntemplate being passed in can not be validated.\n* AUTHENTICATION_ERROR (HTTP status 401) if the request can not be\nauthenticate (e.g. no access token, or invalid access token).\n* AUTHORIZATION_ERROR (HTTP status 403) if the request can not be\nauthorized (e.g. the user has no access to the specified project id).\n* VERSION_MISMATCH (HTTP status 412) when trying to update when the\nexpected eTag (passed in via the \"If-match\" header) is not specified, or\nis specified but does does not match the current eTag.\n* Internal error (HTTP status 500) for Database problems or other internal\nerrors.", - "request": { - "$ref": "RemoteConfig" - }, - "response": { - "$ref": "RemoteConfig" - }, - "parameterOrder": [ - "project" - ], - "httpMethod": "PUT", - "parameters": { - "project": { - "description": "The GMP project identifier. Required.\nSee note at the beginning of this file regarding project ids.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - }, - "validateOnly": { - "location": "query", - "description": "Optional. Defaults to \u003ccode\u003efalse\u003c/code\u003e (UpdateRemoteConfig call should\nupdate the backend if there are no validation/interal errors). May be set\nto \u003ccode\u003etrue\u003c/code\u003e to indicate that, should no validation errors occur,\nthe call should return a \"200 OK\" instead of performing the update. Note\nthat other error messages (500 Internal Error, 412 Version Mismatch, etc)\nmay still result after flipping to \u003ccode\u003efalse\u003c/code\u003e, even if getting a\n\"200 OK\" when calling with \u003ccode\u003etrue\u003c/code\u003e.", - "type": "boolean" - } - } - }, - "getRemoteConfig": { - "response": { - "$ref": "RemoteConfig" - }, - "parameterOrder": [ - "project" - ], - "httpMethod": "GET", - "parameters": { - "project": { - "description": "The GMP project identifier. Required.\nSee note at the beginning of this file regarding project ids.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/remoteConfig", - "id": "firebaseremoteconfig.projects.getRemoteConfig", - "path": "v1/{+project}/remoteConfig", - "description": "Get the latest version Remote Configuration for a project.\nReturns the RemoteConfig as the payload, and also the eTag as a\nresponse header." - } - } - } - }, - "parameters": { - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - } - }, - "version": "v1", - "baseUrl": "https://firebaseremoteconfig.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Firebase Remote Config API allows the 3P clients to manage Remote Config conditions and parameters for Firebase applications.", - "servicePath": "", - "basePath": "", - "revision": "20170912", - "documentationLink": "https://firebase.google.com/docs/remote-config/", - "id": "firebaseremoteconfig:v1", - "discoveryVersion": "v1" + "ownerName": "Google" } diff --git a/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-gen.go b/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-gen.go index 1bacecb95..2d7cbf546 100644 --- a/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-gen.go +++ b/vendor/google.golang.org/api/firebaseremoteconfig/v1/firebaseremoteconfig-gen.go @@ -83,7 +83,7 @@ type ProjectsService struct { // be // thought of as named "if" statements) and a map of parameters // (parameter key -// to a stucture containing an optional default value, as well as a +// to a structure containing an optional default value, as well as a // optional // submap of (condition name to value when that condition is true). type RemoteConfig struct { @@ -157,6 +157,16 @@ func (s *RemoteConfig) MarshalJSON() ([]byte, error) { // these (because order matters) are // part of a single RemoteConfig template. type RemoteConfigCondition struct { + // Description: Optional. + // A description for this Condition. Length must be less than or equal + // to + // 100 characters (or more precisely, unicode code points, which is + // defined + // in + // java/com/google/wireless/android/config/ConstsExporter.java). + // A description may contain any Unicode characters + Description string `json:"description,omitempty"` + // Expression: Required. Expression string `json:"expression,omitempty"` @@ -197,7 +207,7 @@ type RemoteConfigCondition struct { // "TEAL" - Teal TagColor string `json:"tagColor,omitempty"` - // ForceSendFields is a list of field names (e.g. "Expression") to + // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -205,10 +215,10 @@ type RemoteConfigCondition struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Expression") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -238,6 +248,16 @@ type RemoteConfigParameter struct { // evaluate to true. DefaultValue *RemoteConfigParameterValue `json:"defaultValue,omitempty"` + // Description: Optional. + // A description for this Parameter. Length must be less than or equal + // to + // 100 characters (or more precisely, unicode code points, which is + // defined + // in + // java/com/google/wireless/android/config/ConstsExporter.java). + // A description may contain any Unicode characters + Description string `json:"description,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConditionalValues") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, diff --git a/vendor/google.golang.org/api/firebaserules/v1/firebaserules-api.json b/vendor/google.golang.org/api/firebaserules/v1/firebaserules-api.json index 12a624ab9..5775ce14d 100644 --- a/vendor/google.golang.org/api/firebaserules/v1/firebaserules-api.json +++ b/vendor/google.golang.org/api/firebaserules/v1/firebaserules-api.json @@ -1,214 +1,517 @@ { + "canonicalName": "Firebase Rules", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/firebase.readonly": { + "description": "View all your Firebase data and settings" + }, + "https://www.googleapis.com/auth/firebase": { + "description": "View and administer all your Firebase data and settings" + } + } + } + }, + "rootUrl": "https://firebaserules.googleapis.com/", + "ownerDomain": "google.com", + "name": "firebaserules", + "batchPath": "batch", + "title": "Firebase Rules API", + "ownerName": "Google", + "resources": { + "projects": { + "methods": { + "test": { + "id": "firebaserules.projects.test", + "path": "v1/{+name}:test", + "description": "Test `Source` for syntactic and semantic correctness. Issues present, if\nany, will be returned to the caller with a description, severity, and\nsource location.\n\nThe test method may be executed with `Source` or a `Ruleset` name.\nPassing `Source` is useful for unit testing new rules. Passing a `Ruleset`\nname is useful for regression testing an existing rule.\n\nThe following is an example of `Source` that permits users to upload images\nto a bucket bearing their user id and matching the correct metadata:\n\n_*Example*_\n\n // Users are allowed to subscribe and unsubscribe to the blog.\n service firebase.storage {\n match /users/{userId}/images/{imageName} {\n allow write: if userId == request.auth.uid\n && (imageName.matches('*.png$')\n || imageName.matches('*.jpg$'))\n && resource.mimeType.matches('^image/')\n }\n }", + "request": { + "$ref": "TestRulesetRequest" + }, + "response": { + "$ref": "TestRulesetResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "Tests may either provide `source` or a `Ruleset` resource name.\n\nFor tests against `source`, the resource name must refer to the project:\nFormat: `projects/{project_id}`\n\nFor tests against a `Ruleset`, this must be the `Ruleset` resource name:\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`", + "type": "string", + "required": true, + "pattern": "^projects/.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ], + "flatPath": "v1/projects/{projectsId}:test" + } + }, + "resources": { + "rulesets": { + "methods": { + "delete": { + "id": "firebaserules.projects.rulesets.delete", + "path": "v1/{+name}", + "description": "Delete a `Ruleset` by resource name.\n\nIf the `Ruleset` is referenced by a `Release` the operation will fail.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "description": "Resource name for the ruleset to delete.\n\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/rulesets/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}" + }, + "list": { + "description": "List `Ruleset` metadata only and optionally filter the results by `Ruleset`\nname.\n\nThe full `Source` contents of a `Ruleset` may be retrieved with\nGetRuleset.", + "response": { + "$ref": "ListRulesetsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "filter": { + "location": "query", + "description": "`Ruleset` filter. The list method supports filters with restrictions on\n`Ruleset.name`.\n\nFilters on `Ruleset.create_time` should use the `date` function which\nparses strings that conform to the RFC 3339 date/time specifications.\n\nExample: `create_time \u003e date(\"2017-01-01\") AND name=UUID-*`", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "Next page token for loading the next batch of `Ruleset` instances.", + "type": "string" + }, + "name": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Resource name for the project.\n\nFormat: `projects/{project_id}`", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Page size to load. Maximum of 100. Defaults to 10.\nNote: `page_size` is just a hint and the service may choose to load less\nthan `page_size` due to the size of the output. To traverse all of the\nreleases, caller should iterate until the `page_token` is empty.", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ], + "flatPath": "v1/projects/{projectsId}/rulesets", + "id": "firebaserules.projects.rulesets.list", + "path": "v1/{+name}/rulesets" + }, + "get": { + "flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}", + "path": "v1/{+name}", + "id": "firebaserules.projects.rulesets.get", + "description": "Get a `Ruleset` by name including the full `Source` contents.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Ruleset" + }, + "parameters": { + "name": { + "description": "Resource name for the ruleset to get.\n\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/rulesets/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ] + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Ruleset" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Resource name for Project which owns this `Ruleset`.\n\nFormat: `projects/{project_id}`" + } + }, + "flatPath": "v1/projects/{projectsId}/rulesets", + "path": "v1/{+name}/rulesets", + "id": "firebaserules.projects.rulesets.create", + "request": { + "$ref": "Ruleset" + }, + "description": "Create a `Ruleset` from `Source`.\n\nThe `Ruleset` is given a unique generated name which is returned to the\ncaller. `Source` containing syntactic or semantics errors will result in an\nerror response indicating the first error encountered. For a detailed view\nof `Source` issues, use TestRuleset." + } + } + }, + "releases": { + "methods": { + "getExecutable": { + "response": { + "$ref": "GetReleaseExecutableResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ], + "parameters": { + "name": { + "description": "Resource name of the `Release`.\n\nFormat: `projects/{project_id}/releases/{release_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/releases/.+$", + "location": "path" + }, + "executableVersion": { + "location": "query", + "enum": [ + "RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", + "FIREBASE_RULES_EXECUTABLE_V1", + "FIREBASE_RULES_EXECUTABLE_V2" + ], + "description": "The requested runtime executable version.\nDefaults to FIREBASE_RULES_EXECUTABLE_V1", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/releases/{releasesId}:getExecutable", + "id": "firebaserules.projects.releases.getExecutable", + "path": "v1/{+name}:getExecutable", + "description": "Get the `Release` executable to use when enforcing rules." + }, + "delete": { + "description": "Delete a `Release` by resource name.", + "response": { + "$ref": "Empty" + }, + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "parameters": { + "name": { + "location": "path", + "description": "Resource name for the `Release` to delete.\n\nFormat: `projects/{project_id}/releases/{release_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/releases/.+$" + } + }, + "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", + "id": "firebaserules.projects.releases.delete", + "path": "v1/{+name}" + }, + "list": { + "response": { + "$ref": "ListReleasesResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Next page token for the next batch of `Release` instances.", + "type": "string" + }, + "name": { + "description": "Resource name for the project.\n\nFormat: `projects/{project_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Page size to load. Maximum of 100. Defaults to 10.\nNote: `page_size` is just a hint and the service may choose to load fewer\nthan `page_size` results due to the size of the output. To traverse all of\nthe releases, the caller should iterate until the `page_token` on the\nresponse is empty.", + "type": "integer" + }, + "filter": { + "description": "`Release` filter. The list method supports filters with restrictions on the\n`Release.name`, `Release.ruleset_name`, and `Release.test_suite_name`.\n\nExample 1: A filter of 'name=prod*' might return `Release`s with names\nwithin 'projects/foo' prefixed with 'prod':\n\nName | Ruleset Name\n------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/uuid1234\nprojects/foo/releases/prod/v1 | projects/foo/rulesets/uuid1234\nprojects/foo/releases/prod/v2 | projects/foo/rulesets/uuid8888\n\nExample 2: A filter of `name=prod* ruleset_name=uuid1234` would return only\n`Release` instances for 'projects/foo' with names prefixed with 'prod'\nreferring to the same `Ruleset` name of 'uuid1234':\n\nName | Ruleset Name\n------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/1234\nprojects/foo/releases/prod/v1 | projects/foo/rulesets/1234\n\nIn the examples, the filter parameters refer to the search filters are\nrelative to the project. Fully qualified prefixed may also be used. e.g.\n`test_suite_name=projects/foo/testsuites/uuid1`", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/projects/{projectsId}/releases", + "id": "firebaserules.projects.releases.list", + "path": "v1/{+name}/releases", + "description": "List the `Release` values for a project. This list may optionally be\nfiltered by `Release` name, `Ruleset` name, `TestSuite` name, or any\ncombination thereof." + }, + "create": { + "description": "Create a `Release`.\n\nRelease names should reflect the developer's deployment practices. For\nexample, the release name may include the environment name, application\nname, application version, or any other name meaningful to the developer.\nOnce a `Release` refers to a `Ruleset`, the rules can be enforced by\nFirebase Rules-enabled services.\n\nMore than one `Release` may be 'live' concurrently. Consider the following\nthree `Release` names for `projects/foo` and the `Ruleset` to which they\nrefer.\n\nRelease Name | Ruleset Name\n--------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/uuid123\nprojects/foo/releases/prod/beta | projects/foo/rulesets/uuid123\nprojects/foo/releases/prod/v23 | projects/foo/rulesets/uuid456\n\nThe table reflects the `Ruleset` rollout in progress. The `prod` and\n`prod/beta` releases refer to the same `Ruleset`. However, `prod/v23`\nrefers to a new `Ruleset`. The `Ruleset` reference for a `Release` may be\nupdated using the UpdateRelease method.", + "request": { + "$ref": "Release" + }, + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Release" + }, + "parameters": { + "name": { + "location": "path", + "description": "Resource name for the project which owns this `Release`.\n\nFormat: `projects/{project_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "flatPath": "v1/projects/{projectsId}/releases", + "path": "v1/{+name}/releases", + "id": "firebaserules.projects.releases.create" + }, + "get": { + "description": "Get a `Release` by name.", + "response": { + "$ref": "Release" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase", + "https://www.googleapis.com/auth/firebase.readonly" + ], + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/releases/.+$", + "location": "path", + "description": "Resource name of the `Release`.\n\nFormat: `projects/{project_id}/releases/{release_id}`" + } + }, + "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", + "id": "firebaserules.projects.releases.get", + "path": "v1/{+name}" + }, + "patch": { + "request": { + "$ref": "UpdateReleaseRequest" + }, + "description": "Update a `Release` via PATCH.\n\nOnly updates to the `ruleset_name` and `test_suite_name` fields will be\nhonored. `Release` rename is not supported. To create a `Release` use the\nCreateRelease method.", + "response": { + "$ref": "Release" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/releases/.+$", + "location": "path", + "description": "Resource name for the project which owns this `Release`.\n\nFormat: `projects/{project_id}`", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", + "id": "firebaserules.projects.releases.patch", + "path": "v1/{+name}" + }, + "update": { + "request": { + "$ref": "Release" + }, + "description": "Update a `Release`.\n\nOnly updates to the `ruleset_name` and `test_suite_name` fields will be\nhonored. `Release` rename is not supported. To create a `Release` use the\nCreateRelease method.", + "response": { + "$ref": "Release" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/releases/.+$", + "location": "path", + "description": "Resource name for the `Release`.\n\n`Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`\nwhich affords developers a great deal of flexibility in mapping the name\nto the style that best fits their existing development practices. For\nexample, a name could refer to an environment, an app, a version, or some\ncombination of three.\n\nIn the table below, for the project name `projects/foo`, the following\nrelative release paths show how flat and structured names might be chosen\nto match a desired development / deployment strategy.\n\nUse Case | Flat Name | Structured Name\n-------------|---------------------|----------------\nEnvironments | releases/qa | releases/qa\nApps | releases/app1_qa | releases/app1/qa\nVersions | releases/app1_v2_qa | releases/app1/v2/qa\n\nThe delimiter between the release name path elements can be almost anything\nand it should work equally well with the release name list filter, but in\nmany ways the structured paths provide a clearer picture of the\nrelationship between `Release` instances.\n\nFormat: `projects/{project_id}/releases/{release_id}`", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", + "id": "firebaserules.projects.releases.update", + "path": "v1/{+name}" + } + } + } + } + } + }, + "parameters": { + "access_token": { + "location": "query", + "description": "OAuth access token.", + "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.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "uploadType": { + "type": "string", + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string" + } + }, + "version": "v1", + "baseUrl": "https://firebaserules.googleapis.com/", + "servicePath": "", + "description": "Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request.\n", + "kind": "discovery#restDescription", "basePath": "", - "id": "firebaserules:v1", - "revision": "20170925", + "revision": "20171018", "documentationLink": "https://firebase.google.com/docs/storage/security", + "id": "firebaserules:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { - "FunctionMock": { - "properties": { - "function": { - "description": "The name of the function.\n\nThe function name must match one provided by a service declaration.", - "type": "string" - }, - "result": { - "$ref": "Result", - "description": "The mock result of the function call." - }, - "args": { - "description": "The list of `Arg` values to match. The order in which the arguments are\nprovided is the order in which they must appear in the function\ninvocation.", - "items": { - "$ref": "Arg" - }, - "type": "array" - } - }, - "id": "FunctionMock", - "description": "Mock function definition.\n\nMocks must refer to a function declared by the target service. The type of\nthe function args and result will be inferred at test time. If either the\narg or result values are not compatible with function type declaration, the\nrequest will be considered invalid.\n\nMore than one `FunctionMock` may be provided for a given function name so\nlong as the `Arg` matchers are distinct. There may be only one function\nfor a given overload where all `Arg` values are `Arg.any_value`.", - "type": "object" - }, - "GetReleaseExecutableResponse": { - "id": "GetReleaseExecutableResponse", - "description": "The response for FirebaseRulesService.GetReleaseExecutable", - "type": "object", - "properties": { - "rulesetName": { - "description": "`Ruleset` name associated with the `Release` executable.", - "type": "string" - }, - "language": { - "type": "string", - "enumDescriptions": [ - "Language unspecified. Defaults to FIREBASE_RULES.", - "Firebase Rules language.", - "Event Flow triggers." - ], - "enum": [ - "LANGUAGE_UNSPECIFIED", - "FIREBASE_RULES", - "EVENT_FLOW_TRIGGERS" - ], - "description": "`Language` used to generate the executable bytes." - }, - "executableVersion": { - "enumDescriptions": [ - "Executable format unspecified.\nDefaults to FIREBASE_RULES_EXECUTABLE_V1", - "Firebase Rules syntax 'rules2' executable versions:\nCustom AST for use with Java clients.", - "CEL-based executable for use with C++ clients." - ], - "enum": [ - "RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", - "FIREBASE_RULES_EXECUTABLE_V1", - "FIREBASE_RULES_EXECUTABLE_V2" - ], - "description": "The Rules runtime version of the executable.", - "type": "string" - }, - "executable": { - "type": "string", - "format": "byte", - "description": "Executable view of the `Ruleset` referenced by the `Release`." - }, - "updateTime": { - "format": "google-datetime", - "description": "Timestamp for the most recent `Release.update_time`.", - "type": "string" - } - } - }, - "Source": { - "description": "`Source` is one or more `File` messages comprising a logical set of rules.", - "type": "object", - "properties": { - "files": { - "items": { - "$ref": "File" - }, - "type": "array", - "description": "`File` set constituting the `Source` bundle." - } - }, - "id": "Source" - }, - "Result": { - "id": "Result", - "description": "Possible result values from the function mock invocation.", - "type": "object", - "properties": { - "undefined": { - "$ref": "Empty", - "description": "The result is undefined, meaning the result could not be computed." - }, - "value": { - "description": "The result is an actual value. The type of the value must match that\nof the type declared by the service.", - "type": "any" - } - } - }, - "SourcePosition": { - "description": "Position in the `Source` content including its line, column number, and an\nindex of the `File` in the `Source` message. Used for debug purposes.", - "type": "object", - "properties": { - "line": { - "format": "int32", - "description": "Line number of the source fragment. 1-based.", - "type": "integer" - }, - "column": { - "type": "integer", - "format": "int32", - "description": "First column on the source line associated with the source fragment." - }, - "fileName": { - "description": "Name of the `File`.", - "type": "string" - } - }, - "id": "SourcePosition" - }, - "TestCase": { - "description": "`TestCase` messages provide the request context and an expectation as to\nwhether the given context will be allowed or denied. Test cases may specify\nthe `request`, `resource`, and `function_mocks` to mock a function call to\na service-provided function.\n\nThe `request` object represents context present at request-time.\n\nThe `resource` is the value of the target resource as it appears in\npersistent storage before the request is executed.", - "type": "object", - "properties": { - "request": { - "description": "Request context.\n\nThe exact format of the request context is service-dependent. See the\nappropriate service documentation for information about the supported\nfields and types on the request. Minimally, all services support the\nfollowing fields and types:\n\nRequest field | Type\n---------------|-----------------\nauth.uid | `string`\nauth.token | `map\u003cstring, string\u003e`\nheaders | `map\u003cstring, string\u003e`\nmethod | `string`\nparams | `map\u003cstring, string\u003e`\npath | `string`\ntime | `google.protobuf.Timestamp`\n\nIf the request value is not well-formed for the service, the request will\nbe rejected as an invalid argument.", - "type": "any" - }, - "functionMocks": { - "description": "Optional function mocks for service-defined functions. If not set, any\nservice defined function is expected to return an error, which may or may\nnot influence the test outcome.", - "items": { - "$ref": "FunctionMock" - }, - "type": "array" - }, - "resource": { - "description": "Optional resource value as it appears in persistent storage before the\nrequest is fulfilled.\n\nThe resource type depends on the `request.path` value.", - "type": "any" - }, - "expectation": { - "type": "string", - "enumDescriptions": [ - "Unspecified expectation.", - "Expect an allowed result.", - "Expect a denied result." - ], - "enum": [ - "EXPECTATION_UNSPECIFIED", - "ALLOW", - "DENY" - ], - "description": "Test expectation." - } - }, - "id": "TestCase" - }, - "Issue": { - "id": "Issue", - "description": "Issues include warnings, errors, and deprecation notices.", - "type": "object", - "properties": { - "sourcePosition": { - "$ref": "SourcePosition", - "description": "Position of the issue in the `Source`." - }, - "severity": { - "enum": [ - "SEVERITY_UNSPECIFIED", - "DEPRECATION", - "WARNING", - "ERROR" - ], - "description": "The severity of the issue.", - "type": "string", - "enumDescriptions": [ - "An unspecified severity.", - "Deprecation issue for statements and method that may no longer be\nsupported or maintained.", - "Warnings such as: unused variables.", - "Errors such as: unmatched curly braces or variable redefinition." - ] - }, - "description": { - "type": "string", - "description": "Short error description." - } - } - }, - "TestRulesetRequest": { - "description": "The request for FirebaseRulesService.TestRuleset.", - "type": "object", - "properties": { - "testSuite": { - "$ref": "TestSuite", - "description": "Inline `TestSuite` to run." - }, - "source": { - "$ref": "Source", - "description": "Optional `Source` to be checked for correctness.\n\nThis field must not be set when the resource name refers to a `Ruleset`." - } - }, - "id": "TestRulesetRequest" - }, "Ruleset": { "description": "`Ruleset` is an immutable copy of `Source` with a globally unique identifier\nand a creation time.", "type": "object", @@ -219,16 +522,100 @@ "type": "string" }, "name": { - "description": "Name of the `Ruleset`. The ruleset_id is auto generated by the service.\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`\nOutput only.", - "type": "string" + "type": "string", + "description": "Name of the `Ruleset`. The ruleset_id is auto generated by the service.\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`\nOutput only." }, "source": { - "description": "`Source` for the `Ruleset`.", - "$ref": "Source" + "$ref": "Source", + "description": "`Source` for the `Ruleset`." } }, "id": "Ruleset" }, + "TestRulesetRequest": { + "description": "The request for FirebaseRulesService.TestRuleset.", + "type": "object", + "properties": { + "testSuite": { + "description": "Inline `TestSuite` to run.", + "$ref": "TestSuite" + }, + "source": { + "$ref": "Source", + "description": "Optional `Source` to be checked for correctness.\n\nThis field must not be set when the resource name refers to a `Ruleset`." + } + }, + "id": "TestRulesetRequest" + }, + "Issue": { + "properties": { + "sourcePosition": { + "$ref": "SourcePosition", + "description": "Position of the issue in the `Source`." + }, + "severity": { + "enumDescriptions": [ + "An unspecified severity.", + "Deprecation issue for statements and method that may no longer be\nsupported or maintained.", + "Warnings such as: unused variables.", + "Errors such as: unmatched curly braces or variable redefinition." + ], + "enum": [ + "SEVERITY_UNSPECIFIED", + "DEPRECATION", + "WARNING", + "ERROR" + ], + "description": "The severity of the issue.", + "type": "string" + }, + "description": { + "description": "Short error description.", + "type": "string" + } + }, + "id": "Issue", + "description": "Issues include warnings, errors, and deprecation notices.", + "type": "object" + }, + "File": { + "properties": { + "fingerprint": { + "format": "byte", + "description": "Fingerprint (e.g. github sha) associated with the `File`.", + "type": "string" + }, + "name": { + "description": "File name.", + "type": "string" + }, + "content": { + "description": "Textual Content.", + "type": "string" + } + }, + "id": "File", + "description": "`File` containing source content.", + "type": "object" + }, + "FunctionCall": { + "id": "FunctionCall", + "description": "Represents a service-defined function call that was invoked during test\nexecution.", + "type": "object", + "properties": { + "args": { + "description": "The arguments that were provided to the function.", + "items": { + "type": "any" + }, + "type": "array" + }, + "function": { + "description": "Name of the function invoked.", + "type": "string" + } + } + }, "ListReleasesResponse": { "description": "The response for FirebaseRulesService.ListReleases.", "type": "object", @@ -247,46 +634,7 @@ }, "id": "ListReleasesResponse" }, - "File": { - "description": "`File` containing source content.", - "type": "object", - "properties": { - "fingerprint": { - "format": "byte", - "description": "Fingerprint (e.g. github sha) associated with the `File`.", - "type": "string" - }, - "name": { - "description": "File name.", - "type": "string" - }, - "content": { - "description": "Textual Content.", - "type": "string" - } - }, - "id": "File" - }, - "FunctionCall": { - "type": "object", - "properties": { - "function": { - "description": "Name of the function invoked.", - "type": "string" - }, - "args": { - "description": "The arguments that were provided to the function.", - "items": { - "type": "any" - }, - "type": "array" - } - }, - "id": "FunctionCall", - "description": "Represents a service-defined function call that was invoked during test\nexecution." - }, "Release": { - "id": "Release", "description": "`Release` is a named reference to a `Ruleset`. Once a `Release` refers to a\n`Ruleset`, rules-enabled services will be able to enforce the `Ruleset`.", "type": "object", "properties": { @@ -300,19 +648,18 @@ "type": "string" }, "name": { - "type": "string", - "description": "Resource name for the `Release`.\n\n`Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`\nwhich affords developers a great deal of flexibility in mapping the name\nto the style that best fits their existing development practices. For\nexample, a name could refer to an environment, an app, a version, or some\ncombination of three.\n\nIn the table below, for the project name `projects/foo`, the following\nrelative release paths show how flat and structured names might be chosen\nto match a desired development / deployment strategy.\n\nUse Case | Flat Name | Structured Name\n-------------|---------------------|----------------\nEnvironments | releases/qa | releases/qa\nApps | releases/app1_qa | releases/app1/qa\nVersions | releases/app1_v2_qa | releases/app1/v2/qa\n\nThe delimiter between the release name path elements can be almost anything\nand it should work equally well with the release name list filter, but in\nmany ways the structured paths provide a clearer picture of the\nrelationship between `Release` instances.\n\nFormat: `projects/{project_id}/releases/{release_id}`" + "description": "Resource name for the `Release`.\n\n`Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`\nwhich affords developers a great deal of flexibility in mapping the name\nto the style that best fits their existing development practices. For\nexample, a name could refer to an environment, an app, a version, or some\ncombination of three.\n\nIn the table below, for the project name `projects/foo`, the following\nrelative release paths show how flat and structured names might be chosen\nto match a desired development / deployment strategy.\n\nUse Case | Flat Name | Structured Name\n-------------|---------------------|----------------\nEnvironments | releases/qa | releases/qa\nApps | releases/app1_qa | releases/app1/qa\nVersions | releases/app1_v2_qa | releases/app1/v2/qa\n\nThe delimiter between the release name path elements can be almost anything\nand it should work equally well with the release name list filter, but in\nmany ways the structured paths provide a clearer picture of the\nrelationship between `Release` instances.\n\nFormat: `projects/{project_id}/releases/{release_id}`", + "type": "string" }, "createTime": { "format": "google-datetime", "description": "Time the release was created.\nOutput only.", "type": "string" } - } + }, + "id": "Release" }, "TestRulesetResponse": { - "id": "TestRulesetResponse", - "description": "The response for FirebaseRulesService.TestRuleset.", "type": "object", "properties": { "testResults": { @@ -323,13 +670,33 @@ "type": "array" }, "issues": { - "description": "Syntactic and semantic `Source` issues of varying severity. Issues of\n`ERROR` severity will prevent tests from executing.", "items": { "$ref": "Issue" }, - "type": "array" + "type": "array", + "description": "Syntactic and semantic `Source` issues of varying severity. Issues of\n`ERROR` severity will prevent tests from executing." } - } + }, + "id": "TestRulesetResponse", + "description": "The response for FirebaseRulesService.TestRuleset." + }, + "ListRulesetsResponse": { + "properties": { + "rulesets": { + "description": "List of `Ruleset` instances.", + "items": { + "$ref": "Ruleset" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The pagination token to retrieve the next page of results. If the value is\nempty, no further results remain.", + "type": "string" + } + }, + "id": "ListRulesetsResponse", + "description": "The response for FirebaseRulesService.ListRulesets.", + "type": "object" }, "TestResult": { "properties": { @@ -370,39 +737,37 @@ "description": "Test result message containing the state of the test as well as a\ndescription and source position for test failures.", "type": "object" }, - "ListRulesetsResponse": { - "description": "The response for FirebaseRulesService.ListRulesets.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "The pagination token to retrieve the next page of results. If the value is\nempty, no further results remain.", - "type": "string" - }, - "rulesets": { - "description": "List of `Ruleset` instances.", - "items": { - "$ref": "Ruleset" - }, - "type": "array" - } - }, - "id": "ListRulesetsResponse" - }, "Arg": { "description": "Arg matchers for the mock function.", "type": "object", "properties": { "anyValue": { - "$ref": "Empty", - "description": "Argument matches any value provided." + "description": "Argument matches any value provided.", + "$ref": "Empty" }, "exactValue": { - "type": "any", - "description": "Argument exactly matches value provided." + "description": "Argument exactly matches value provided.", + "type": "any" } }, "id": "Arg" }, + "UpdateReleaseRequest": { + "id": "UpdateReleaseRequest", + "description": "The request for FirebaseRulesService.UpdateReleasePatch.", + "type": "object", + "properties": { + "release": { + "description": "`Release` to update.", + "$ref": "Release" + }, + "updateMask": { + "type": "string", + "format": "google-fieldmask", + "description": "Specifies which fields to update." + } + } + }, "TestSuite": { "description": "`TestSuite` is a collection of `TestCase` instances that validate the logical\ncorrectness of a `Ruleset`. The `TestSuite` may be referenced in-line within\na `TestRuleset` invocation or as part of a `Release` object as a pre-release\ncheck.", "type": "object", @@ -422,488 +787,168 @@ "id": "Empty", "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object" + }, + "FunctionMock": { + "type": "object", + "properties": { + "result": { + "description": "The mock result of the function call.", + "$ref": "Result" + }, + "args": { + "description": "The list of `Arg` values to match. The order in which the arguments are\nprovided is the order in which they must appear in the function\ninvocation.", + "items": { + "$ref": "Arg" + }, + "type": "array" + }, + "function": { + "description": "The name of the function.\n\nThe function name must match one provided by a service declaration.", + "type": "string" + } + }, + "id": "FunctionMock", + "description": "Mock function definition.\n\nMocks must refer to a function declared by the target service. The type of\nthe function args and result will be inferred at test time. If either the\narg or result values are not compatible with function type declaration, the\nrequest will be considered invalid.\n\nMore than one `FunctionMock` may be provided for a given function name so\nlong as the `Arg` matchers are distinct. There may be only one function\nfor a given overload where all `Arg` values are `Arg.any_value`." + }, + "GetReleaseExecutableResponse": { + "id": "GetReleaseExecutableResponse", + "description": "The response for FirebaseRulesService.GetReleaseExecutable", + "type": "object", + "properties": { + "rulesetName": { + "type": "string", + "description": "`Ruleset` name associated with the `Release` executable." + }, + "language": { + "enumDescriptions": [ + "Language unspecified. Defaults to FIREBASE_RULES.", + "Firebase Rules language.", + "Event Flow triggers." + ], + "enum": [ + "LANGUAGE_UNSPECIFIED", + "FIREBASE_RULES", + "EVENT_FLOW_TRIGGERS" + ], + "description": "`Language` used to generate the executable bytes.", + "type": "string" + }, + "executableVersion": { + "description": "The Rules runtime version of the executable.", + "type": "string", + "enumDescriptions": [ + "Executable format unspecified.\nDefaults to FIREBASE_RULES_EXECUTABLE_V1", + "Firebase Rules syntax 'rules2' executable versions:\nCustom AST for use with Java clients.", + "CEL-based executable for use with C++ clients." + ], + "enum": [ + "RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", + "FIREBASE_RULES_EXECUTABLE_V1", + "FIREBASE_RULES_EXECUTABLE_V2" + ] + }, + "executable": { + "format": "byte", + "description": "Executable view of the `Ruleset` referenced by the `Release`.", + "type": "string" + }, + "updateTime": { + "format": "google-datetime", + "description": "Timestamp for the most recent `Release.update_time`.", + "type": "string" + } + } + }, + "Source": { + "description": "`Source` is one or more `File` messages comprising a logical set of rules.", + "type": "object", + "properties": { + "files": { + "items": { + "$ref": "File" + }, + "type": "array", + "description": "`File` set constituting the `Source` bundle." + } + }, + "id": "Source" + }, + "Result": { + "description": "Possible result values from the function mock invocation.", + "type": "object", + "properties": { + "undefined": { + "$ref": "Empty", + "description": "The result is undefined, meaning the result could not be computed." + }, + "value": { + "description": "The result is an actual value. The type of the value must match that\nof the type declared by the service.", + "type": "any" + } + }, + "id": "Result" + }, + "SourcePosition": { + "properties": { + "line": { + "format": "int32", + "description": "Line number of the source fragment. 1-based.", + "type": "integer" + }, + "column": { + "format": "int32", + "description": "First column on the source line associated with the source fragment.", + "type": "integer" + }, + "fileName": { + "description": "Name of the `File`.", + "type": "string" + } + }, + "id": "SourcePosition", + "description": "Position in the `Source` content including its line, column number, and an\nindex of the `File` in the `Source` message. Used for debug purposes.", + "type": "object" + }, + "TestCase": { + "description": "`TestCase` messages provide the request context and an expectation as to\nwhether the given context will be allowed or denied. Test cases may specify\nthe `request`, `resource`, and `function_mocks` to mock a function call to\na service-provided function.\n\nThe `request` object represents context present at request-time.\n\nThe `resource` is the value of the target resource as it appears in\npersistent storage before the request is executed.", + "type": "object", + "properties": { + "functionMocks": { + "description": "Optional function mocks for service-defined functions. If not set, any\nservice defined function is expected to return an error, which may or may\nnot influence the test outcome.", + "items": { + "$ref": "FunctionMock" + }, + "type": "array" + }, + "resource": { + "description": "Optional resource value as it appears in persistent storage before the\nrequest is fulfilled.\n\nThe resource type depends on the `request.path` value.", + "type": "any" + }, + "expectation": { + "enumDescriptions": [ + "Unspecified expectation.", + "Expect an allowed result.", + "Expect a denied result." + ], + "enum": [ + "EXPECTATION_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "description": "Test expectation.", + "type": "string" + }, + "request": { + "description": "Request context.\n\nThe exact format of the request context is service-dependent. See the\nappropriate service documentation for information about the supported\nfields and types on the request. Minimally, all services support the\nfollowing fields and types:\n\nRequest field | Type\n---------------|-----------------\nauth.uid | `string`\nauth.token | `map\u003cstring, string\u003e`\nheaders | `map\u003cstring, string\u003e`\nmethod | `string`\nparams | `map\u003cstring, string\u003e`\npath | `string`\ntime | `google.protobuf.Timestamp`\n\nIf the request value is not well-formed for the service, the request will\nbe rejected as an invalid argument.", + "type": "any" + } + }, + "id": "TestCase" } }, + "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, - "protocol": "rest", - "canonicalName": "Firebase Rules", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/firebase.readonly": { - "description": "View all your Firebase data and settings" - }, - "https://www.googleapis.com/auth/firebase": { - "description": "View and administer all your Firebase data and settings" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "rootUrl": "https://firebaserules.googleapis.com/", - "ownerDomain": "google.com", - "name": "firebaserules", - "batchPath": "batch", - "title": "Firebase Rules API", - "ownerName": "Google", - "resources": { - "projects": { - "methods": { - "test": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "TestRulesetResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "parameters": { - "name": { - "description": "Tests may either provide `source` or a `Ruleset` resource name.\n\nFor tests against `source`, the resource name must refer to the project:\nFormat: `projects/{project_id}`\n\nFor tests against a `Ruleset`, this must be the `Ruleset` resource name:\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`", - "type": "string", - "required": true, - "pattern": "^projects/.+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}:test", - "path": "v1/{+name}:test", - "id": "firebaserules.projects.test", - "request": { - "$ref": "TestRulesetRequest" - }, - "description": "Test `Source` for syntactic and semantic correctness. Issues present, if\nany, will be returned to the caller with a description, severity, and\nsource location.\n\nThe test method may be executed with `Source` or a `Ruleset` name.\nPassing `Source` is useful for unit testing new rules. Passing a `Ruleset`\nname is useful for regression testing an existing rule.\n\nThe following is an example of `Source` that permits users to upload images\nto a bucket bearing their user id and matching the correct metadata:\n\n_*Example*_\n\n // Users are allowed to subscribe and unsubscribe to the blog.\n service firebase.storage {\n match /users/{userId}/images/{imageName} {\n allow write: if userId == request.auth.uid\n && (imageName.matches('*.png$')\n || imageName.matches('*.jpg$'))\n && resource.mimeType.matches('^image/')\n }\n }" - } - }, - "resources": { - "rulesets": { - "methods": { - "list": { - "id": "firebaserules.projects.rulesets.list", - "path": "v1/{+name}/rulesets", - "description": "List `Ruleset` metadata only and optionally filter the results by `Ruleset`\nname.\n\nThe full `Source` contents of a `Ruleset` may be retrieved with\nGetRuleset.", - "response": { - "$ref": "ListRulesetsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Page size to load. Maximum of 100. Defaults to 10.\nNote: `page_size` is just a hint and the service may choose to load less\nthan `page_size` due to the size of the output. To traverse all of the\nreleases, caller should iterate until the `page_token` is empty.", - "type": "integer" - }, - "filter": { - "type": "string", - "location": "query", - "description": "`Ruleset` filter. The list method supports filters with restrictions on\n`Ruleset.name`.\n\nFilters on `Ruleset.create_time` should use the `date` function which\nparses strings that conform to the RFC 3339 date/time specifications.\n\nExample: `create_time \u003e date(\"2017-01-01\") AND name=UUID-*`" - }, - "pageToken": { - "location": "query", - "description": "Next page token for loading the next batch of `Ruleset` instances.", - "type": "string" - }, - "name": { - "description": "Resource name for the project.\n\nFormat: `projects/{project_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/rulesets" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Ruleset" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "parameters": { - "name": { - "location": "path", - "description": "Resource name for the ruleset to get.\n\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/rulesets/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}", - "path": "v1/{+name}", - "id": "firebaserules.projects.rulesets.get", - "description": "Get a `Ruleset` by name including the full `Source` contents." - }, - "create": { - "response": { - "$ref": "Ruleset" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Resource name for Project which owns this `Ruleset`.\n\nFormat: `projects/{project_id}`", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/rulesets", - "id": "firebaserules.projects.rulesets.create", - "path": "v1/{+name}/rulesets", - "request": { - "$ref": "Ruleset" - }, - "description": "Create a `Ruleset` from `Source`.\n\nThe `Ruleset` is given a unique generated name which is returned to the\ncaller. `Source` containing syntactic or semantics errors will result in an\nerror response indicating the first error encountered. For a detailed view\nof `Source` issues, use TestRuleset." - }, - "delete": { - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "httpMethod": "DELETE", - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/rulesets/[^/]+$", - "location": "path", - "description": "Resource name for the ruleset to delete.\n\nFormat: `projects/{project_id}/rulesets/{ruleset_id}`" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase" - ], - "flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}", - "id": "firebaserules.projects.rulesets.delete", - "path": "v1/{+name}", - "description": "Delete a `Ruleset` by resource name.\n\nIf the `Ruleset` is referenced by a `Release` the operation will fail." - } - } - }, - "releases": { - "methods": { - "getExecutable": { - "description": "Get the `Release` executable to use when enforcing rules.", - "httpMethod": "GET", - "response": { - "$ref": "GetReleaseExecutableResponse" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Resource name of the `Release`.\n\nFormat: `projects/{project_id}/releases/{release_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/releases/.+$", - "location": "path" - }, - "executableVersion": { - "location": "query", - "enum": [ - "RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", - "FIREBASE_RULES_EXECUTABLE_V1", - "FIREBASE_RULES_EXECUTABLE_V2" - ], - "description": "The requested runtime executable version.\nDefaults to FIREBASE_RULES_EXECUTABLE_V1", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "flatPath": "v1/projects/{projectsId}/releases/{releasesId}:getExecutable", - "path": "v1/{+name}:getExecutable", - "id": "firebaserules.projects.releases.getExecutable" - }, - "delete": { - "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", - "path": "v1/{+name}", - "id": "firebaserules.projects.releases.delete", - "description": "Delete a `Release` by resource name.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/releases/.+$", - "location": "path", - "description": "Resource name for the `Release` to delete.\n\nFormat: `projects/{project_id}/releases/{release_id}`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase" - ] - }, - "list": { - "description": "List the `Release` values for a project. This list may optionally be\nfiltered by `Release` name, `Ruleset` name, `TestSuite` name, or any\ncombination thereof.", - "response": { - "$ref": "ListReleasesResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "parameters": { - "filter": { - "type": "string", - "location": "query", - "description": "`Release` filter. The list method supports filters with restrictions on the\n`Release.name`, `Release.ruleset_name`, and `Release.test_suite_name`.\n\nExample 1: A filter of 'name=prod*' might return `Release`s with names\nwithin 'projects/foo' prefixed with 'prod':\n\nName | Ruleset Name\n------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/uuid1234\nprojects/foo/releases/prod/v1 | projects/foo/rulesets/uuid1234\nprojects/foo/releases/prod/v2 | projects/foo/rulesets/uuid8888\n\nExample 2: A filter of `name=prod* ruleset_name=uuid1234` would return only\n`Release` instances for 'projects/foo' with names prefixed with 'prod'\nreferring to the same `Ruleset` name of 'uuid1234':\n\nName | Ruleset Name\n------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/1234\nprojects/foo/releases/prod/v1 | projects/foo/rulesets/1234\n\nIn the examples, the filter parameters refer to the search filters are\nrelative to the project. Fully qualified prefixed may also be used. e.g.\n`test_suite_name=projects/foo/testsuites/uuid1`" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Next page token for the next batch of `Release` instances." - }, - "name": { - "description": "Resource name for the project.\n\nFormat: `projects/{project_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Page size to load. Maximum of 100. Defaults to 10.\nNote: `page_size` is just a hint and the service may choose to load fewer\nthan `page_size` results due to the size of the output. To traverse all of\nthe releases, the caller should iterate until the `page_token` on the\nresponse is empty.", - "type": "integer" - } - }, - "flatPath": "v1/projects/{projectsId}/releases", - "id": "firebaserules.projects.releases.list", - "path": "v1/{+name}/releases" - }, - "create": { - "description": "Create a `Release`.\n\nRelease names should reflect the developer's deployment practices. For\nexample, the release name may include the environment name, application\nname, application version, or any other name meaningful to the developer.\nOnce a `Release` refers to a `Ruleset`, the rules can be enforced by\nFirebase Rules-enabled services.\n\nMore than one `Release` may be 'live' concurrently. Consider the following\nthree `Release` names for `projects/foo` and the `Ruleset` to which they\nrefer.\n\nRelease Name | Ruleset Name\n--------------------------------|-------------\nprojects/foo/releases/prod | projects/foo/rulesets/uuid123\nprojects/foo/releases/prod/beta | projects/foo/rulesets/uuid123\nprojects/foo/releases/prod/v23 | projects/foo/rulesets/uuid456\n\nThe table reflects the `Ruleset` rollout in progress. The `prod` and\n`prod/beta` releases refer to the same `Ruleset`. However, `prod/v23`\nrefers to a new `Ruleset`. The `Ruleset` reference for a `Release` may be\nupdated using the UpdateRelease method.", - "request": { - "$ref": "Release" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Release" - }, - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Resource name for the project which owns this `Release`.\n\nFormat: `projects/{project_id}`" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase" - ], - "flatPath": "v1/projects/{projectsId}/releases", - "path": "v1/{+name}/releases", - "id": "firebaserules.projects.releases.create" - }, - "get": { - "description": "Get a `Release` by name.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Release" - }, - "parameters": { - "name": { - "location": "path", - "description": "Resource name of the `Release`.\n\nFormat: `projects/{project_id}/releases/{release_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/releases/.+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase", - "https://www.googleapis.com/auth/firebase.readonly" - ], - "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", - "path": "v1/{+name}", - "id": "firebaserules.projects.releases.get" - }, - "update": { - "id": "firebaserules.projects.releases.update", - "path": "v1/{+name}", - "description": "Update a `Release`.\n\nOnly updates to the `ruleset_name` and `test_suite_name` fields will be\nhonored. `Release` rename is not supported. To create a `Release` use the\nCreateRelease method.", - "request": { - "$ref": "Release" - }, - "response": { - "$ref": "Release" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PUT", - "parameters": { - "name": { - "description": "Resource name for the `Release`.\n\n`Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`\nwhich affords developers a great deal of flexibility in mapping the name\nto the style that best fits their existing development practices. For\nexample, a name could refer to an environment, an app, a version, or some\ncombination of three.\n\nIn the table below, for the project name `projects/foo`, the following\nrelative release paths show how flat and structured names might be chosen\nto match a desired development / deployment strategy.\n\nUse Case | Flat Name | Structured Name\n-------------|---------------------|----------------\nEnvironments | releases/qa | releases/qa\nApps | releases/app1_qa | releases/app1/qa\nVersions | releases/app1_v2_qa | releases/app1/v2/qa\n\nThe delimiter between the release name path elements can be almost anything\nand it should work equally well with the release name list filter, but in\nmany ways the structured paths provide a clearer picture of the\nrelationship between `Release` instances.\n\nFormat: `projects/{project_id}/releases/{release_id}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/releases/.+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/firebase" - ], - "flatPath": "v1/projects/{projectsId}/releases/{releasesId}" - } - } - } - } - } - }, - "parameters": { - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - } - }, - "version": "v1", - "baseUrl": "https://firebaserules.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request.\n", - "servicePath": "" + } } diff --git a/vendor/google.golang.org/api/firebaserules/v1/firebaserules-gen.go b/vendor/google.golang.org/api/firebaserules/v1/firebaserules-gen.go index 6911bff3a..0cb4b1d9b 100644 --- a/vendor/google.golang.org/api/firebaserules/v1/firebaserules-gen.go +++ b/vendor/google.golang.org/api/firebaserules/v1/firebaserules-gen.go @@ -957,6 +957,38 @@ func (s *TestSuite) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UpdateReleaseRequest: The request for +// FirebaseRulesService.UpdateReleasePatch. +type UpdateReleaseRequest struct { + // Release: `Release` to update. + Release *Release `json:"release,omitempty"` + + // UpdateMask: Specifies which fields to update. + UpdateMask string `json:"updateMask,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Release") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Release") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UpdateReleaseRequest) MarshalJSON() ([]byte, error) { + type noMethod UpdateReleaseRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // method id "firebaserules.projects.test": type ProjectsTestCall struct { @@ -1969,6 +2001,148 @@ func (c *ProjectsReleasesListCall) Pages(ctx context.Context, f func(*ListReleas } } +// method id "firebaserules.projects.releases.patch": + +type ProjectsReleasesPatchCall struct { + s *Service + name string + updatereleaserequest *UpdateReleaseRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Update a `Release` via PATCH. +// +// Only updates to the `ruleset_name` and `test_suite_name` fields will +// be +// honored. `Release` rename is not supported. To create a `Release` use +// the +// CreateRelease method. +func (r *ProjectsReleasesService) Patch(name string, updatereleaserequest *UpdateReleaseRequest) *ProjectsReleasesPatchCall { + c := &ProjectsReleasesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.updatereleaserequest = updatereleaserequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsReleasesPatchCall) Fields(s ...googleapi.Field) *ProjectsReleasesPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsReleasesPatchCall) Context(ctx context.Context) *ProjectsReleasesPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsReleasesPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsReleasesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatereleaserequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firebaserules.projects.releases.patch" call. +// Exactly one of *Release or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Release.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsReleasesPatchCall) Do(opts ...googleapi.CallOption) (*Release, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Release{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Update a `Release` via PATCH.\n\nOnly updates to the `ruleset_name` and `test_suite_name` fields will be\nhonored. `Release` rename is not supported. To create a `Release` use the\nCreateRelease method.", + // "flatPath": "v1/projects/{projectsId}/releases/{releasesId}", + // "httpMethod": "PATCH", + // "id": "firebaserules.projects.releases.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Resource name for the project which owns this `Release`.\n\nFormat: `projects/{project_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/releases/.+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "UpdateReleaseRequest" + // }, + // "response": { + // "$ref": "Release" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/firebase" + // ] + // } + +} + // method id "firebaserules.projects.releases.update": type ProjectsReleasesUpdateCall struct { diff --git a/vendor/google.golang.org/api/firestore/v1beta1/firestore-api.json b/vendor/google.golang.org/api/firestore/v1beta1/firestore-api.json new file mode 100644 index 000000000..4bc7f4f21 --- /dev/null +++ b/vendor/google.golang.org/api/firestore/v1beta1/firestore-api.json @@ -0,0 +1,1967 @@ +{ + "rootUrl": "https://firestore.googleapis.com/", + "ownerDomain": "google.com", + "name": "firestore", + "batchPath": "batch", + "title": "Google Cloud Firestore API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "databases": { + "resources": { + "documents": { + "methods": { + "delete": { + "description": "Deletes a document.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "currentDocument.exists": { + "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", + "type": "boolean", + "location": "query" + }, + "name": { + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + "location": "path", + "description": "The resource name of the Document to delete. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string", + "required": true + }, + "currentDocument.updateTime": { + "location": "query", + "format": "google-datetime", + "description": "When set, the target document must exist and have been last updated at\nthat time.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + "id": "firestore.projects.databases.documents.delete", + "path": "v1beta1/{+name}" + }, + "listCollectionIds": { + "request": { + "$ref": "ListCollectionIdsRequest" + }, + "description": "Lists all the collection IDs underneath a document.", + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListCollectionIdsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "parent": { + "location": "path", + "description": "The parent document. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:listCollectionIds", + "path": "v1beta1/{+parent}:listCollectionIds", + "id": "firestore.projects.databases.documents.listCollectionIds" + }, + "commit": { + "response": { + "$ref": "CommitResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "parameters": { + "database": { + "pattern": "^projects/[^/]+/databases/[^/]+$", + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:commit", + "id": "firestore.projects.databases.documents.commit", + "path": "v1beta1/{+database}/documents:commit", + "description": "Commits a transaction, while optionally updating documents.", + "request": { + "$ref": "CommitRequest" + } + }, + "rollback": { + "request": { + "$ref": "RollbackRequest" + }, + "description": "Rolls back a transaction.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "database": { + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:rollback", + "id": "firestore.projects.databases.documents.rollback", + "path": "v1beta1/{+database}/documents:rollback" + }, + "write": { + "response": { + "$ref": "WriteResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "parameters": { + "database": { + "pattern": "^projects/[^/]+/databases/[^/]+$", + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.\nThis is only required in the first message.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:write", + "id": "firestore.projects.databases.documents.write", + "path": "v1beta1/{+database}/documents:write", + "description": "Streams batches of document updates and deletes, in order.", + "request": { + "$ref": "WriteRequest" + } + }, + "batchGet": { + "response": { + "$ref": "BatchGetDocumentsResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "database": { + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:batchGet", + "id": "firestore.projects.databases.documents.batchGet", + "path": "v1beta1/{+database}/documents:batchGet", + "request": { + "$ref": "BatchGetDocumentsRequest" + }, + "description": "Gets multiple documents.\n\nDocuments returned by this method are not guaranteed to be returned in the\nsame order that they were requested." + }, + "beginTransaction": { + "response": { + "$ref": "BeginTransactionResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "parameters": { + "database": { + "pattern": "^projects/[^/]+/databases/[^/]+$", + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:beginTransaction", + "id": "firestore.projects.databases.documents.beginTransaction", + "path": "v1beta1/{+database}/documents:beginTransaction", + "description": "Starts a new transaction.", + "request": { + "$ref": "BeginTransactionRequest" + } + }, + "list": { + "description": "Lists documents.", + "httpMethod": "GET", + "parameterOrder": [ + "parent", + "collectionId" + ], + "response": { + "$ref": "ListDocumentsResponse" + }, + "parameters": { + "readTime": { + "format": "google-datetime", + "description": "Reads documents as they were at the given time.\nThis may not be older than 60 seconds.", + "type": "string", + "location": "query" + }, + "orderBy": { + "description": "The order to sort results by. For example: `priority desc, name`.", + "type": "string", + "location": "query" + }, + "showMissing": { + "location": "query", + "description": "If the list should show missing documents. A missing document is a\ndocument that does not exist but has sub-documents. These documents will\nbe returned with a key but will not have fields, Document.create_time,\nor Document.update_time set.\n\nRequests with `show_missing` may not specify `where` or\n`order_by`.", + "type": "boolean" + }, + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "type": "string", + "repeated": true, + "location": "query" + }, + "pageToken": { + "description": "The `next_page_token` value returned from a previous List request, if any.", + "type": "string", + "location": "query" + }, + "collectionId": { + "location": "path", + "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`\nor `messages`.", + "type": "string", + "required": true + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of documents to return.", + "type": "integer" + }, + "transaction": { + "format": "byte", + "description": "Reads documents in a transaction.", + "type": "string", + "location": "query" + }, + "parent": { + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + "location": "path", + "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}/{collectionId}", + "path": "v1beta1/{+parent}/{collectionId}", + "id": "firestore.projects.databases.documents.list" + }, + "runQuery": { + "request": { + "$ref": "RunQueryRequest" + }, + "description": "Runs a query.", + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "RunQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + "location": "path", + "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", + "path": "v1beta1/{+parent}:runQuery", + "id": "firestore.projects.databases.documents.runQuery" + }, + "createDocument": { + "response": { + "$ref": "Document" + }, + "parameterOrder": [ + "parent", + "collectionId" + ], + "httpMethod": "POST", + "parameters": { + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "type": "string", + "repeated": true, + "location": "query" + }, + "collectionId": { + "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`.", + "type": "string", + "required": true, + "location": "path" + }, + "documentId": { + "description": "The client-assigned document ID to use for this document.\n\nOptional. If not specified, an ID will be assigned by the service.", + "type": "string", + "location": "query" + }, + "parent": { + "description": "The parent resource. For example:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+/documents/.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{collectionId}", + "id": "firestore.projects.databases.documents.createDocument", + "path": "v1beta1/{+parent}/{collectionId}", + "description": "Creates a new document.", + "request": { + "$ref": "Document" + } + }, + "listen": { + "httpMethod": "POST", + "parameterOrder": [ + "database" + ], + "response": { + "$ref": "ListenResponse" + }, + "parameters": { + "database": { + "pattern": "^projects/[^/]+/databases/[^/]+$", + "location": "path", + "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:listen", + "path": "v1beta1/{+database}/documents:listen", + "id": "firestore.projects.databases.documents.listen", + "description": "Listens to changes.", + "request": { + "$ref": "ListenRequest" + } + }, + "patch": { + "response": { + "$ref": "Document" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "currentDocument.updateTime": { + "location": "query", + "format": "google-datetime", + "description": "When set, the target document must exist and have been last updated at\nthat time.", + "type": "string" + }, + "currentDocument.exists": { + "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", + "type": "boolean", + "location": "query" + }, + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "type": "string", + "repeated": true, + "location": "query" + }, + "updateMask.fieldPaths": { + "location": "query", + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "type": "string", + "repeated": true + }, + "name": { + "description": "The resource name of the document, for example\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + "id": "firestore.projects.databases.documents.patch", + "path": "v1beta1/{+name}", + "request": { + "$ref": "Document" + }, + "description": "Updates or inserts a document." + }, + "get": { + "description": "Gets a single document.", + "response": { + "$ref": "Document" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "readTime": { + "format": "google-datetime", + "description": "Reads the version of the document at the given time.\nThis may not be older than 60 seconds.", + "type": "string", + "location": "query" + }, + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "type": "string", + "repeated": true, + "location": "query" + }, + "name": { + "description": "The resource name of the Document to get. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + "location": "path" + }, + "transaction": { + "format": "byte", + "description": "Reads the document in a transaction.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + "id": "firestore.projects.databases.documents.get", + "path": "v1beta1/{+name}" + } + } + }, + "indexes": { + "methods": { + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "parent": { + "location": "path", + "description": "The name of the database this index will apply to. For example:\n`projects/{project_id}/databases/{database_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", + "id": "firestore.projects.databases.indexes.create", + "path": "v1beta1/{+parent}/indexes", + "request": { + "$ref": "Index" + }, + "description": "Creates the specified index.\nA newly created index's initial state is `CREATING`. On completion of the\nreturned google.longrunning.Operation, the state will be `READY`.\nIf the index already exists, the call will return an `ALREADY_EXISTS`\nstatus.\n\nDuring creation, the process could result in an error, in which case the\nindex will move to the `ERROR` state. The process can be recovered by\nfixing the data that caused the error, removing the index with\ndelete, then re-creating the index with\ncreate.\n\nIndexes with a single field cannot be created." + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", + "location": "path", + "description": "The index name. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", + "id": "firestore.projects.databases.indexes.delete", + "path": "v1beta1/{+name}", + "description": "Deletes an index." + }, + "get": { + "description": "Gets an index.", + "response": { + "$ref": "Index" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "name": { + "description": "The name of the index. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", + "id": "firestore.projects.databases.indexes.get", + "path": "v1beta1/{+name}" + }, + "list": { + "response": { + "$ref": "ListIndexesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ], + "parameters": { + "filter": { + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "The standard List page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "The standard List page size.", + "type": "integer", + "location": "query" + }, + "parent": { + "description": "The database name. For example:\n`projects/{project_id}/databases/{database_id}`", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", + "id": "firestore.projects.databases.indexes.list", + "path": "v1beta1/{+parent}/indexes", + "description": "Lists the indexes that match the specified filters." + } + } + } + } + } + } + } + }, + "parameters": { + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "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.", + "type": "string", + "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + } + }, + "version": "v1beta1", + "baseUrl": "https://firestore.googleapis.com/", + "description": "", + "kind": "discovery#restDescription", + "servicePath": "", + "basePath": "", + "revision": "0", + "documentationLink": "https://cloud.google.com/firestore", + "id": "firestore:v1beta1", + "discoveryVersion": "v1", + "version_module": true, + "schemas": { + "Target": { + "properties": { + "query": { + "description": "A target specified by a query.", + "$ref": "QueryTarget" + }, + "resumeToken": { + "format": "byte", + "description": "A resume token from a prior TargetChange for an identical target.\n\nUsing a resume token with a different target is unsupported and may fail.", + "type": "string" + }, + "once": { + "description": "If the target should be removed once it is current and consistent.", + "type": "boolean" + }, + "readTime": { + "format": "google-datetime", + "description": "Start listening after a specific `read_time`.\n\nThe client must know the state of matching documents at this time.", + "type": "string" + }, + "targetId": { + "format": "int32", + "description": "A client provided target ID.\n\nIf not set, the server will assign an ID for the target.\n\nUsed for resuming a target without changing IDs. The IDs can either be\nclient-assigned or be server-assigned in a previous stream. All targets\nwith client provided IDs must be added before adding a target that needs\na server-assigned id.", + "type": "integer" + }, + "documents": { + "$ref": "DocumentsTarget", + "description": "A target specified by a set of document names." + } + }, + "id": "Target", + "description": "A specification of a set of documents to listen to.", + "type": "object" + }, + "RunQueryRequest": { + "description": "The request for Firestore.RunQuery.", + "type": "object", + "properties": { + "readTime": { + "format": "google-datetime", + "description": "Reads documents as they were at the given time.\nThis may not be older than 60 seconds.", + "type": "string" + }, + "newTransaction": { + "description": "Starts a new transaction and reads the documents.\nDefaults to a read-only transaction.\nThe new transaction ID will be returned as the first response in the\nstream.", + "$ref": "TransactionOptions" + }, + "transaction": { + "format": "byte", + "description": "Reads documents in a transaction.", + "type": "string" + }, + "structuredQuery": { + "description": "A structured query.", + "$ref": "StructuredQuery" + } + }, + "id": "RunQueryRequest" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "Precondition": { + "description": "A precondition on a document, used for conditional operations.", + "type": "object", + "properties": { + "updateTime": { + "format": "google-datetime", + "description": "When set, the target document must exist and have been last updated at\nthat time.", + "type": "string" + }, + "exists": { + "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", + "type": "boolean" + } + }, + "id": "Precondition" + }, + "ListIndexesResponse": { + "description": "The response for FirestoreAdmin.ListIndexes.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "indexes": { + "description": "The indexes.", + "items": { + "$ref": "Index" + }, + "type": "array" + } + }, + "id": "ListIndexesResponse" + }, + "TransactionOptions": { + "properties": { + "readWrite": { + "description": "The transaction can be used for both read and write operations.", + "$ref": "ReadWrite" + }, + "readOnly": { + "description": "The transaction can only be used for read operations.", + "$ref": "ReadOnly" + } + }, + "id": "TransactionOptions", + "description": "Options for creating a new transaction.", + "type": "object" + }, + "FieldReference": { + "description": "A reference to a field, such as `max(messages.time) as max_time`.", + "type": "object", + "properties": { + "fieldPath": { + "type": "string" + } + }, + "id": "FieldReference" + }, + "ListenResponse": { + "description": "The response for Firestore.Listen.", + "type": "object", + "properties": { + "documentDelete": { + "description": "A Document has been deleted.", + "$ref": "DocumentDelete" + }, + "filter": { + "description": "A filter to apply to the set of documents previously returned for the\ngiven target.\n\nReturned when documents may have been removed from the given target, but\nthe exact documents are unknown.", + "$ref": "ExistenceFilter" + }, + "documentChange": { + "$ref": "DocumentChange", + "description": "A Document has changed." + }, + "documentRemove": { + "$ref": "DocumentRemove", + "description": "A Document has been removed from a target (because it is no longer\nrelevant to that target)." + }, + "targetChange": { + "$ref": "TargetChange", + "description": "Targets have changed." + } + }, + "id": "ListenResponse" + }, + "ListCollectionIdsRequest": { + "properties": { + "pageToken": { + "description": "A page token. Must be a value from\nListCollectionIdsResponse.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return.", + "type": "integer" + } + }, + "id": "ListCollectionIdsRequest", + "description": "The request for Firestore.ListCollectionIds.", + "type": "object" + }, + "ExistenceFilter": { + "description": "A digest of all the documents that match a given target.", + "type": "object", + "properties": { + "targetId": { + "format": "int32", + "description": "The target ID to which this filter applies.", + "type": "integer" + }, + "count": { + "format": "int32", + "description": "The total count of documents that match target_id.\n\nIf different from the count of documents in the client that match, the\nclient must manually determine which documents no longer match the target.", + "type": "integer" + } + }, + "id": "ExistenceFilter" + }, + "ReadOnly": { + "description": "Options for a transaction that can only be used to read documents.", + "type": "object", + "properties": { + "readTime": { + "format": "google-datetime", + "description": "Reads documents at the given time.\nThis may not be older than 60 seconds.", + "type": "string" + } + }, + "id": "ReadOnly" + }, + "WriteResult": { + "description": "The result of applying a write.", + "type": "object", + "properties": { + "updateTime": { + "format": "google-datetime", + "description": "The last update time of the document after applying the write. Not set\nafter a `delete`.\n\nIf the write did not actually change the document, this will be the\nprevious update_time.", + "type": "string" + }, + "transformResults": { + "description": "The results of applying each DocumentTransform.FieldTransform, in the\nsame order.", + "items": { + "$ref": "Value" + }, + "type": "array" + } + }, + "id": "WriteResult" + }, + "Value": { + "description": "A message that can hold any of the supported value types.", + "type": "object", + "properties": { + "bytesValue": { + "format": "byte", + "description": "A bytes value.\n\nMust not exceed 1 MiB - 89 bytes.\nOnly the first 1,500 bytes are considered by queries.", + "type": "string" + }, + "geoPointValue": { + "description": "A geo point value representing a point on the surface of Earth.", + "$ref": "LatLng" + }, + "integerValue": { + "format": "int64", + "description": "An integer value.", + "type": "string" + }, + "arrayValue": { + "$ref": "ArrayValue", + "description": "An array value.\n\nCannot contain another array value." + }, + "referenceValue": { + "description": "A reference to a document. For example:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string" + }, + "stringValue": { + "description": "A string value.\n\nThe string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.\nOnly the first 1,500 bytes of the UTF-8 representation are considered by\nqueries.", + "type": "string" + }, + "doubleValue": { + "format": "double", + "description": "A double value.", + "type": "number" + }, + "timestampValue": { + "format": "google-datetime", + "description": "A timestamp value.\n\nPrecise only to microseconds. When stored, any additional precision is\nrounded down.", + "type": "string" + }, + "booleanValue": { + "description": "A boolean value.", + "type": "boolean" + }, + "nullValue": { + "enum": [ + "NULL_VALUE" + ], + "description": "A null value.", + "type": "string", + "enumDescriptions": [ + "Null value." + ] + }, + "mapValue": { + "description": "A map value.", + "$ref": "MapValue" + } + }, + "id": "Value" + }, + "Write": { + "properties": { + "transform": { + "description": "Applies a tranformation to a document.\nAt most one `transform` per document is allowed in a given request.\nAn `update` cannot follow a `transform` on the same document in a given\nrequest.", + "$ref": "DocumentTransform" + }, + "delete": { + "description": "A document name to delete. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string" + }, + "currentDocument": { + "$ref": "Precondition", + "description": "An optional precondition on the document.\n\nThe write will fail if this is set and not met by the target document." + }, + "updateMask": { + "$ref": "DocumentMask", + "description": "The fields to update in this write.\n\nThis field can be set only when the operation is `update`.\nNone of the field paths in the mask may contain a reserved name.\nIf the document exists on the server and has fields not referenced in the\nmask, they are left unchanged.\nFields referenced in the mask, but not present in the input document, are\ndeleted from the document on the server.\nThe field paths in this mask must not contain a reserved field name." + }, + "update": { + "description": "A document to write.", + "$ref": "Document" + } + }, + "id": "Write", + "description": "A write on a document.", + "type": "object" + }, + "Cursor": { + "description": "A position in a query result set.", + "type": "object", + "properties": { + "before": { + "description": "If the position is just before or just after the given values, relative\nto the sort order defined by the query.", + "type": "boolean" + }, + "values": { + "description": "The values that represent a position, in the order they appear in\nthe order by clause of a query.\n\nCan contain fewer values than specified in the order by clause.", + "items": { + "$ref": "Value" + }, + "type": "array" + } + }, + "id": "Cursor" + }, + "ReadWrite": { + "description": "Options for a transaction that can be used to read and write documents.", + "type": "object", + "properties": { + "retryTransaction": { + "format": "byte", + "description": "An optional transaction to retry.", + "type": "string" + } + }, + "id": "ReadWrite" + }, + "BatchGetDocumentsRequest": { + "properties": { + "documents": { + "description": "The names of the documents to retrieve. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nThe request will fail if any of the document is not a child resource of the\ngiven `database`. Duplicate names will be elided.", + "items": { + "type": "string" + }, + "type": "array" + }, + "readTime": { + "format": "google-datetime", + "description": "Reads documents as they were at the given time.\nThis may not be older than 60 seconds.", + "type": "string" + }, + "newTransaction": { + "$ref": "TransactionOptions", + "description": "Starts a new transaction and reads the documents.\nDefaults to a read-only transaction.\nThe new transaction ID will be returned as the first response in the\nstream." + }, + "mask": { + "$ref": "DocumentMask", + "description": "The fields to return. If not set, returns all fields.\n\nIf a document has a field that is not present in this mask, that field will\nnot be returned in the response." + }, + "transaction": { + "format": "byte", + "description": "Reads documents in a transaction.", + "type": "string" + } + }, + "id": "BatchGetDocumentsRequest", + "description": "The request for Firestore.BatchGetDocuments.", + "type": "object" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + }, + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + } + }, + "id": "Operation" + }, + "DocumentChange": { + "description": "A Document has changed.\n\nMay be the result of multiple writes, including deletes, that\nultimately resulted in a new value for the Document.\n\nMultiple DocumentChange messages may be returned for the same logical\nchange, if multiple targets are affected.", + "type": "object", + "properties": { + "removedTargetIds": { + "description": "A set of target IDs for targets that no longer match this document.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "document": { + "description": "The new state of the Document.\n\nIf `mask` is set, contains only fields that were updated or added.", + "$ref": "Document" + }, + "targetIds": { + "description": "A set of target IDs of targets that match this document.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "id": "DocumentChange" + }, + "QueryTarget": { + "description": "A target specified by a query.", + "type": "object", + "properties": { + "parent": { + "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "type": "string" + }, + "structuredQuery": { + "$ref": "StructuredQuery", + "description": "A structured query." + } + }, + "id": "QueryTarget" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status" + }, + "Document": { + "description": "A Firestore document.\n\nMust not exceed 1 MiB - 4 bytes.", + "type": "object", + "properties": { + "updateTime": { + "format": "google-datetime", + "description": "Output only. The time at which the document was last changed.\n\nThis value is initally set to the `create_time` then increases\nmonotonically with each change to the document. It can also be\ncompared to values from other documents and the `read_time` of a query.", + "type": "string" + }, + "fields": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The document's fields.\n\nThe map keys represent field names.\n\nA simple field name contains only characters `a` to `z`, `A` to `Z`,\n`0` to `9`, or `_`, and must not start with `0` to `9` or `_`. For example,\n`foo_bar_17`.\n\nField names matching the regular expression `__.*__` are reserved. Reserved\nfield names are forbidden except in certain documented contexts. The map\nkeys, represented as UTF-8, must not exceed 1,500 bytes and cannot be\nempty.\n\nField paths may be used in other contexts to refer to structured fields\ndefined here. For `map_value`, the field path is represented by the simple\nor quoted field names of the containing fields, delimited by `.`. For\nexample, the structured field\n`\"foo\" : { map_value: { \"x&y\" : { string_value: \"hello\" }}}` would be\nrepresented by the field path `foo.x&y`.\n\nWithin a field path, a quoted field name starts and ends with `` ` `` and\nmay contain any character. Some characters, including `` ` ``, must be\nescaped using a `\\`. For example, `` `x&y` `` represents `x&y` and\n`` `bak\\`tik` `` represents `` bak`tik ``.", + "type": "object" + }, + "name": { + "description": "The resource name of the document, for example\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string" + }, + "createTime": { + "format": "google-datetime", + "description": "Output only. The time at which the document was created.\n\nThis value increases monotonically when a document is deleted then\nrecreated. It can also be compared to values from other documents and\nthe `read_time` of a query.", + "type": "string" + } + }, + "id": "Document" + }, + "Projection": { + "description": "The projection of document's fields to return.", + "type": "object", + "properties": { + "fields": { + "description": "The fields to return.\n\nIf empty, all fields are returned. To only return the name\nof the document, use `['__name__']`.", + "items": { + "$ref": "FieldReference" + }, + "type": "array" + } + }, + "id": "Projection" + }, + "DocumentRemove": { + "description": "A Document has been removed from the view of the targets.\n\nSent if the document is no longer relevant to a target and is out of view.\nCan be sent instead of a DocumentDelete or a DocumentChange if the server\ncan not send the new value of the document.\n\nMultiple DocumentRemove messages may be returned for the same logical\nwrite or delete, if multiple targets are affected.", + "type": "object", + "properties": { + "removedTargetIds": { + "description": "A set of target IDs for targets that previously matched this document.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "document": { + "description": "The resource name of the Document that has gone out of view.", + "type": "string" + }, + "readTime": { + "format": "google-datetime", + "description": "The read timestamp at which the remove was observed.\n\nGreater or equal to the `commit_time` of the change/delete/remove.", + "type": "string" + } + }, + "id": "DocumentRemove" + }, + "ListDocumentsResponse": { + "description": "The response for Firestore.ListDocuments.", + "type": "object", + "properties": { + "documents": { + "description": "The Documents found.", + "items": { + "$ref": "Document" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The next page token.", + "type": "string" + } + }, + "id": "ListDocumentsResponse" + }, + "RollbackRequest": { + "description": "The request for Firestore.Rollback.", + "type": "object", + "properties": { + "transaction": { + "format": "byte", + "description": "The transaction to roll back.", + "type": "string" + } + }, + "id": "RollbackRequest" + }, + "CompositeFilter": { + "description": "A filter that merges multiple other filters using the given operator.", + "type": "object", + "properties": { + "filters": { + "description": "The list of filters to combine.\nMust contain at least one filter.", + "items": { + "$ref": "Filter" + }, + "type": "array" + }, + "op": { + "enum": [ + "OPERATOR_UNSPECIFIED", + "AND" + ], + "description": "The operator for combining multiple filters.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "The results are required to satisfy each of the combined filters." + ] + } + }, + "id": "CompositeFilter" + }, + "DocumentsTarget": { + "properties": { + "documents": { + "description": "The names of the documents to retrieve. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nThe request will fail if any of the document is not a child resource of\nthe given `database`. Duplicate names will be elided.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "DocumentsTarget", + "description": "A target specified by a set of documents names.", + "type": "object" + }, + "DocumentMask": { + "properties": { + "fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "DocumentMask", + "description": "A set of field paths on a document.\nUsed to restrict a get or update operation on a document to a subset of its\nfields.\nThis is different from standard field masks, as this is always scoped to a\nDocument, and takes in account the dynamic nature of Value.", + "type": "object" + }, + "DocumentTransform": { + "properties": { + "document": { + "description": "The name of the document to transform.", + "type": "string" + }, + "fieldTransforms": { + "description": "The list of transformations to apply to the fields of the document, in\norder.", + "items": { + "$ref": "FieldTransform" + }, + "type": "array" + } + }, + "id": "DocumentTransform", + "description": "A transformation of a document.", + "type": "object" + }, + "FieldTransform": { + "description": "A transformation of a field of the document.", + "type": "object", + "properties": { + "fieldPath": { + "description": "The path of the field. See Document.fields for the field path syntax\nreference.", + "type": "string" + }, + "setToServerValue": { + "description": "Sets the field to the given server value.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "The time at which the server processed the request." + ], + "enum": [ + "SERVER_VALUE_UNSPECIFIED", + "REQUEST_TIME" + ] + } + }, + "id": "FieldTransform" + }, + "ListCollectionIdsResponse": { + "description": "The response from Firestore.ListCollectionIds.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "A page token that may be used to continue the list.", + "type": "string" + }, + "collectionIds": { + "description": "The collection ids.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "ListCollectionIdsResponse" + }, + "CommitResponse": { + "properties": { + "commitTime": { + "format": "google-datetime", + "description": "The time at which the commit occurred.", + "type": "string" + }, + "writeResults": { + "description": "The result of applying the writes.\n\nThis i-th write result corresponds to the i-th write in the\nrequest.", + "items": { + "$ref": "WriteResult" + }, + "type": "array" + } + }, + "id": "CommitResponse", + "description": "The response for Firestore.Commit.", + "type": "object" + }, + "Order": { + "description": "An order on a field.", + "type": "object", + "properties": { + "field": { + "description": "The field to order by.", + "$ref": "FieldReference" + }, + "direction": { + "enumDescriptions": [ + "Unspecified.", + "Ascending.", + "Descending." + ], + "enum": [ + "DIRECTION_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "description": "The direction to order by. Defaults to `ASCENDING`.", + "type": "string" + } + }, + "id": "Order" + }, + "WriteResponse": { + "description": "The response for Firestore.Write.", + "type": "object", + "properties": { + "commitTime": { + "format": "google-datetime", + "description": "The time at which the commit occurred.", + "type": "string" + }, + "streamId": { + "description": "The ID of the stream.\nOnly set on the first message, when a new stream was created.", + "type": "string" + }, + "streamToken": { + "format": "byte", + "description": "A token that represents the position of this response in the stream.\nThis can be used by a client to resume the stream at this point.\n\nThis field is always set.", + "type": "string" + }, + "writeResults": { + "description": "The result of applying the writes.\n\nThis i-th write result corresponds to the i-th write in the\nrequest.", + "items": { + "$ref": "WriteResult" + }, + "type": "array" + } + }, + "id": "WriteResponse" + }, + "FieldFilter": { + "description": "A filter on a specific field.", + "type": "object", + "properties": { + "value": { + "$ref": "Value", + "description": "The value to compare to." + }, + "op": { + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Less than. Requires that the field come first in `order_by`.", + "Less than or equal. Requires that the field come first in `order_by`.", + "Greater than. Requires that the field come first in `order_by`.", + "Greater than or equal. Requires that the field come first in\n`order_by`.", + "Equal." + ], + "enum": [ + "OPERATOR_UNSPECIFIED", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL", + "EQUAL" + ], + "description": "The operator to filter by.", + "type": "string" + }, + "field": { + "$ref": "FieldReference", + "description": "The field to filter by." + } + }, + "id": "FieldFilter" + }, + "TargetChange": { + "description": "Targets being watched have changed.", + "type": "object", + "properties": { + "targetChangeType": { + "enum": [ + "NO_CHANGE", + "ADD", + "REMOVE", + "CURRENT", + "RESET" + ], + "description": "The type of change that occurred.", + "type": "string", + "enumDescriptions": [ + "No change has occurred. Used only to send an updated `resume_token`.", + "The targets have been added.", + "The targets have been removed.", + "The targets reflect all changes committed before the targets were added\nto the stream.\n\nThis will be sent after or with a `read_time` that is greater than or\nequal to the time at which the targets were added.\n\nListeners can wait for this change if read-after-write semantics\nare desired.", + "The targets have been reset, and a new initial state for the targets\nwill be returned in subsequent changes.\n\nAfter the initial state is complete, `CURRENT` will be returned even\nif the target was previously indicated to be `CURRENT`." + ] + }, + "resumeToken": { + "format": "byte", + "description": "A token that can be used to resume the stream for the given `target_ids`,\nor all targets if `target_ids` is empty.\n\nNot set on every target change.", + "type": "string" + }, + "targetIds": { + "description": "The target IDs of targets that have changed.\n\nIf empty, the change applies to all targets.\n\nFor `target_change_type=ADD`, the order of the target IDs matches the order\nof the requests to add the targets. This allows clients to unambiguously\nassociate server-assigned target IDs with added targets.\n\nFor other states, the order of the target IDs is not defined.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "readTime": { + "format": "google-datetime", + "description": "The consistent `read_time` for the given `target_ids` (omitted when the\ntarget_ids are not at a consistent snapshot).\n\nThe stream is guaranteed to send a `read_time` with `target_ids` empty\nwhenever the entire stream reaches a new consistent snapshot. ADD,\nCURRENT, and RESET messages are guaranteed to (eventually) result in a\nnew consistent snapshot (while NO_CHANGE and REMOVE messages are not).\n\nFor a given stream, `read_time` is guaranteed to be monotonically\nincreasing.", + "type": "string" + }, + "cause": { + "$ref": "Status", + "description": "The error that resulted in this change, if applicable." + } + }, + "id": "TargetChange" + }, + "MapValue": { + "description": "A map value.", + "type": "object", + "properties": { + "fields": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The map's fields.\n\nThe map keys represent field names. Field names matching the regular\nexpression `__.*__` are reserved. Reserved field names are forbidden except\nin certain documented contexts. The map keys, represented as UTF-8, must\nnot exceed 1,500 bytes and cannot be empty.", + "type": "object" + } + }, + "id": "MapValue" + }, + "DocumentDelete": { + "description": "A Document has been deleted.\n\nMay be the result of multiple writes, including updates, the\nlast of which deleted the Document.\n\nMultiple DocumentDelete messages may be returned for the same logical\ndelete, if multiple targets are affected.", + "type": "object", + "properties": { + "readTime": { + "format": "google-datetime", + "description": "The read timestamp at which the delete was observed.\n\nGreater or equal to the `commit_time` of the delete.", + "type": "string" + }, + "removedTargetIds": { + "description": "A set of target IDs for targets that previously matched this entity.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "document": { + "description": "The resource name of the Document that was deleted.", + "type": "string" + } + }, + "id": "DocumentDelete" + }, + "BeginTransactionResponse": { + "description": "The response for Firestore.BeginTransaction.", + "type": "object", + "properties": { + "transaction": { + "format": "byte", + "description": "The transaction that was started.", + "type": "string" + } + }, + "id": "BeginTransactionResponse" + }, + "IndexField": { + "properties": { + "fieldPath": { + "description": "The path of the field. Must match the field path specification described\nby google.firestore.v1beta1.Document.fields.\nSpecial field path `__name__` may be used by itself or at the end of a\npath. `__type__` may be used only at the end of path.", + "type": "string" + }, + "mode": { + "enum": [ + "MODE_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "description": "The field's mode.", + "type": "string", + "enumDescriptions": [ + "The mode is unspecified.", + "The field's values are indexed so as to support sequencing in\nascending order and also query by \u003c, \u003e, \u003c=, \u003e=, and =.", + "The field's values are indexed so as to support sequencing in\ndescending order and also query by \u003c, \u003e, \u003c=, \u003e=, and =." + ] + } + }, + "id": "IndexField", + "description": "A field of an index.", + "type": "object" + }, + "RunQueryResponse": { + "properties": { + "skippedResults": { + "format": "int32", + "description": "The number of results that have been skipped due to an offset between\nthe last response and the current response.", + "type": "integer" + }, + "transaction": { + "format": "byte", + "description": "The transaction that was started as part of this request.\nCan only be set in the first response, and only if\nRunQueryRequest.new_transaction was set in the request.\nIf set, no other fields will be set in this response.", + "type": "string" + }, + "document": { + "$ref": "Document", + "description": "A query result.\nNot set when reporting partial progress." + }, + "readTime": { + "format": "google-datetime", + "description": "The time at which the document was read. This may be monotonically\nincreasing; in this case, the previous documents in the result stream are\nguaranteed not to have changed between their `read_time` and this one.\n\nIf the query returns no results, a response with `read_time` and no\n`document` will be sent, and this represents the time at which the query\nwas run.", + "type": "string" + } + }, + "id": "RunQueryResponse", + "description": "The response for Firestore.RunQuery.", + "type": "object" + }, + "CommitRequest": { + "description": "The request for Firestore.Commit.", + "type": "object", + "properties": { + "transaction": { + "format": "byte", + "description": "If set, applies all writes in this transaction, and commits it.", + "type": "string" + }, + "writes": { + "description": "The writes to apply.\n\nAlways executed atomically and in order.", + "items": { + "$ref": "Write" + }, + "type": "array" + } + }, + "id": "CommitRequest" + }, + "BeginTransactionRequest": { + "properties": { + "options": { + "description": "The options for the transaction.\nDefaults to a read-write transaction.", + "$ref": "TransactionOptions" + } + }, + "id": "BeginTransactionRequest", + "description": "The request for Firestore.BeginTransaction.", + "type": "object" + }, + "ListenRequest": { + "description": "A request for Firestore.Listen", + "type": "object", + "properties": { + "removeTarget": { + "format": "int32", + "description": "The ID of a target to remove from this stream.", + "type": "integer" + }, + "addTarget": { + "$ref": "Target", + "description": "A target to add to this stream." + }, + "labels": { + "description": "Labels associated with this target change.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "id": "ListenRequest" + }, + "LatLng": { + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "latitude": { + "format": "double", + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "type": "number" + }, + "longitude": { + "format": "double", + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "type": "number" + } + }, + "id": "LatLng" + }, + "CollectionSelector": { + "description": "A selection of a collection, such as `messages as m1`.", + "type": "object", + "properties": { + "allDescendants": { + "description": "When false, selects only collections that are immediate children of\nthe `parent` specified in the containing `RunQueryRequest`.\nWhen true, selects all descendant collections.", + "type": "boolean" + }, + "collectionId": { + "description": "The collection ID.\nWhen set, selects only collections with this ID.", + "type": "string" + } + }, + "id": "CollectionSelector" + }, + "ArrayValue": { + "description": "An array value.", + "type": "object", + "properties": { + "values": { + "description": "Values in the array.", + "items": { + "$ref": "Value" + }, + "type": "array" + } + }, + "id": "ArrayValue" + }, + "Index": { + "description": "An index definition.", + "type": "object", + "properties": { + "state": { + "enumDescriptions": [ + "The state is unspecified.", + "The index is being created.\nThere is an active long-running operation for the index.\nThe index is updated when writing a document.\nSome index data may exist.", + "The index is ready to be used.\nThe index is updated when writing a document.\nThe index is fully populated from all stored documents it applies to.", + "The index was being created, but something went wrong.\nThere is no active long-running operation for the index,\nand the most recently finished long-running operation failed.\nThe index is not updated when writing a document.\nSome index data may exist." + ], + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "ERROR" + ], + "description": "The state of the index.\nOutput only.", + "type": "string" + }, + "fields": { + "description": "The fields to index.", + "items": { + "$ref": "IndexField" + }, + "type": "array" + }, + "name": { + "description": "The resource name of the index.\nOutput only.", + "type": "string" + }, + "collectionId": { + "description": "The collection ID to which this index applies. Required.", + "type": "string" + } + }, + "id": "Index" + }, + "StructuredQuery": { + "description": "A Firestore query.", + "type": "object", + "properties": { + "where": { + "$ref": "Filter", + "description": "The filter to apply." + }, + "orderBy": { + "description": "The order to apply to the query results.\n\nFirestore guarantees a stable ordering through the following rules:\n\n * Any field required to appear in `order_by`, that is not already\n specified in `order_by`, is appended to the order in field name order\n by default.\n * If an order on `__name__` is not specified, it is appended by default.\n\nFields are appended with the same sort direction as the last order\nspecified, or 'ASCENDING' if no order was specified. For example:\n\n * `SELECT * FROM Foo ORDER BY A` becomes\n `SELECT * FROM Foo ORDER BY A, __name__`\n * `SELECT * FROM Foo ORDER BY A DESC` becomes\n `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`\n * `SELECT * FROM Foo WHERE A \u003e 1` becomes\n `SELECT * FROM Foo WHERE A \u003e 1 ORDER BY A, __name__`", + "items": { + "$ref": "Order" + }, + "type": "array" + }, + "select": { + "$ref": "Projection", + "description": "The projection to return." + }, + "limit": { + "format": "int32", + "description": "The maximum number of results to return.\n\nApplies after all other constraints.\nMust be \u003e= 0 if specified.", + "type": "integer" + }, + "offset": { + "format": "int32", + "description": "The number of results to skip.\n\nApplies before limit, but after all other constraints. Must be \u003e= 0 if\nspecified.", + "type": "integer" + }, + "from": { + "description": "The collections to query.", + "items": { + "$ref": "CollectionSelector" + }, + "type": "array" + }, + "endAt": { + "description": "A end point for the query results.", + "$ref": "Cursor" + }, + "startAt": { + "description": "A starting point for the query results.", + "$ref": "Cursor" + } + }, + "id": "StructuredQuery" + }, + "UnaryFilter": { + "description": "A filter with a single operand.", + "type": "object", + "properties": { + "op": { + "enum": [ + "OPERATOR_UNSPECIFIED", + "IS_NAN", + "IS_NULL" + ], + "description": "The unary operator to apply.", + "type": "string", + "enumDescriptions": [ + "Unspecified. This value must not be used.", + "Test if a field is equal to NaN.", + "Test if an exprestion evaluates to Null." + ] + }, + "field": { + "description": "The field to which to apply the operator.", + "$ref": "FieldReference" + } + }, + "id": "UnaryFilter" + }, + "Filter": { + "description": "A filter.", + "type": "object", + "properties": { + "compositeFilter": { + "description": "A composite filter.", + "$ref": "CompositeFilter" + }, + "fieldFilter": { + "description": "A filter on a document field.", + "$ref": "FieldFilter" + }, + "unaryFilter": { + "description": "A filter that takes exactly one argument.", + "$ref": "UnaryFilter" + } + }, + "id": "Filter" + }, + "WriteRequest": { + "description": "The request for Firestore.Write.\n\nThe first request creates a stream, or resumes an existing one from a token.\n\nWhen creating a new stream, the server replies with a response containing\nonly an ID and a token, to use in the next request.\n\nWhen resuming a stream, the server first streams any responses later than the\ngiven token, then a response containing only an up-to-date token, to use in\nthe next request.", + "type": "object", + "properties": { + "streamId": { + "description": "The ID of the write stream to resume.\nThis may only be set in the first message. When left empty, a new write\nstream will be created.", + "type": "string" + }, + "streamToken": { + "format": "byte", + "description": "A stream token that was previously sent by the server.\n\nThe client should set this field to the token from the most recent\nWriteResponse it has received. This acknowledges that the client has\nreceived responses up to this token. After sending this token, earlier\ntokens may not be used anymore.\n\nThe server may close the stream if there are too many unacknowledged\nresponses.\n\nLeave this field unset when creating a new stream. To resume a stream at\na specific point, set this field and the `stream_id` field.\n\nLeave this field unset when creating a new stream.", + "type": "string" + }, + "writes": { + "description": "The writes to apply.\n\nAlways executed atomically and in order.\nThis must be empty on the first request.\nThis may be empty on the last request.\nThis must not be empty on all other requests.", + "items": { + "$ref": "Write" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with this write request.", + "type": "object" + } + }, + "id": "WriteRequest" + }, + "BatchGetDocumentsResponse": { + "description": "The streamed response for Firestore.BatchGetDocuments.", + "type": "object", + "properties": { + "readTime": { + "format": "google-datetime", + "description": "The time at which the document was read.\nThis may be monotically increasing, in this case the previous documents in\nthe result stream are guaranteed not to have changed between their\nread_time and this one.", + "type": "string" + }, + "missing": { + "description": "A document name that was requested but does not exist. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + "type": "string" + }, + "found": { + "description": "A document that was requested.", + "$ref": "Document" + }, + "transaction": { + "format": "byte", + "description": "The transaction that was started as part of this request.\nWill only be set in the first response, and only if\nBatchGetDocumentsRequest.new_transaction was set in the request.", + "type": "string" + } + }, + "id": "BatchGetDocumentsResponse" + } + }, + "protocol": "rest", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "canonicalName": "Firestore", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/datastore": { + "description": "View and manage your Google Cloud Datastore data" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + } +} diff --git a/vendor/google.golang.org/api/firestore/v1beta1/firestore-gen.go b/vendor/google.golang.org/api/firestore/v1beta1/firestore-gen.go new file mode 100644 index 000000000..b56c21a6b --- /dev/null +++ b/vendor/google.golang.org/api/firestore/v1beta1/firestore-gen.go @@ -0,0 +1,5362 @@ +// Package firestore provides access to the Google Cloud Firestore API. +// +// See https://cloud.google.com/firestore +// +// Usage example: +// +// import "google.golang.org/api/firestore/v1beta1" +// ... +// firestoreService, err := firestore.New(oauthHttpClient) +package firestore // import "google.golang.org/api/firestore/v1beta1" + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + context "golang.org/x/net/context" + ctxhttp "golang.org/x/net/context/ctxhttp" + gensupport "google.golang.org/api/gensupport" + googleapi "google.golang.org/api/googleapi" + "io" + "net/http" + "net/url" + "strconv" + "strings" +) + +// Always reference these packages, just in case the auto-generated code +// below doesn't. +var _ = bytes.NewBuffer +var _ = strconv.Itoa +var _ = fmt.Sprintf +var _ = json.NewDecoder +var _ = io.Copy +var _ = url.Parse +var _ = gensupport.MarshalJSON +var _ = googleapi.Version +var _ = errors.New +var _ = strings.Replace +var _ = context.Canceled +var _ = ctxhttp.Do + +const apiId = "firestore:v1beta1" +const apiName = "firestore" +const apiVersion = "v1beta1" +const basePath = "https://firestore.googleapis.com/" + +// OAuth2 scopes used by this API. +const ( + // View and manage your data across Google Cloud Platform services + CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" + + // View and manage your Google Cloud Datastore data + DatastoreScope = "https://www.googleapis.com/auth/datastore" +) + +func New(client *http.Client) (*Service, error) { + if client == nil { + return nil, errors.New("client is nil") + } + s := &Service{client: client, BasePath: basePath} + s.Projects = NewProjectsService(s) + return s, nil +} + +type Service struct { + client *http.Client + BasePath string // API endpoint base URL + UserAgent string // optional additional User-Agent fragment + + Projects *ProjectsService +} + +func (s *Service) userAgent() string { + if s.UserAgent == "" { + return googleapi.UserAgent + } + return googleapi.UserAgent + " " + s.UserAgent +} + +func NewProjectsService(s *Service) *ProjectsService { + rs := &ProjectsService{s: s} + rs.Databases = NewProjectsDatabasesService(s) + return rs +} + +type ProjectsService struct { + s *Service + + Databases *ProjectsDatabasesService +} + +func NewProjectsDatabasesService(s *Service) *ProjectsDatabasesService { + rs := &ProjectsDatabasesService{s: s} + rs.Documents = NewProjectsDatabasesDocumentsService(s) + rs.Indexes = NewProjectsDatabasesIndexesService(s) + return rs +} + +type ProjectsDatabasesService struct { + s *Service + + Documents *ProjectsDatabasesDocumentsService + + Indexes *ProjectsDatabasesIndexesService +} + +func NewProjectsDatabasesDocumentsService(s *Service) *ProjectsDatabasesDocumentsService { + rs := &ProjectsDatabasesDocumentsService{s: s} + return rs +} + +type ProjectsDatabasesDocumentsService struct { + s *Service +} + +func NewProjectsDatabasesIndexesService(s *Service) *ProjectsDatabasesIndexesService { + rs := &ProjectsDatabasesIndexesService{s: s} + return rs +} + +type ProjectsDatabasesIndexesService struct { + s *Service +} + +// ArrayValue: An array value. +type ArrayValue struct { + // Values: Values in the array. + Values []*Value `json:"values,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Values") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Values") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ArrayValue) MarshalJSON() ([]byte, error) { + type noMethod ArrayValue + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// BatchGetDocumentsRequest: The request for +// Firestore.BatchGetDocuments. +type BatchGetDocumentsRequest struct { + // Documents: The names of the documents to retrieve. In the + // format: + // `projects/{project_id}/databases/{database_id}/documents/{docu + // ment_path}`. + // The request will fail if any of the document is not a child resource + // of the + // given `database`. Duplicate names will be elided. + Documents []string `json:"documents,omitempty"` + + // Mask: The fields to return. If not set, returns all fields. + // + // If a document has a field that is not present in this mask, that + // field will + // not be returned in the response. + Mask *DocumentMask `json:"mask,omitempty"` + + // NewTransaction: Starts a new transaction and reads the + // documents. + // Defaults to a read-only transaction. + // The new transaction ID will be returned as the first response in + // the + // stream. + NewTransaction *TransactionOptions `json:"newTransaction,omitempty"` + + // ReadTime: Reads documents as they were at the given time. + // This may not be older than 60 seconds. + ReadTime string `json:"readTime,omitempty"` + + // Transaction: Reads documents in a transaction. + Transaction string `json:"transaction,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Documents") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Documents") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BatchGetDocumentsRequest) MarshalJSON() ([]byte, error) { + type noMethod BatchGetDocumentsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// BatchGetDocumentsResponse: The streamed response for +// Firestore.BatchGetDocuments. +type BatchGetDocumentsResponse struct { + // Found: A document that was requested. + Found *Document `json:"found,omitempty"` + + // Missing: A document name that was requested but does not exist. In + // the + // format: + // `projects/{project_id}/databases/{database_id}/documents/{docu + // ment_path}`. + Missing string `json:"missing,omitempty"` + + // ReadTime: The time at which the document was read. + // This may be monotically increasing, in this case the previous + // documents in + // the result stream are guaranteed not to have changed between + // their + // read_time and this one. + ReadTime string `json:"readTime,omitempty"` + + // Transaction: The transaction that was started as part of this + // request. + // Will only be set in the first response, and only + // if + // BatchGetDocumentsRequest.new_transaction was set in the request. + Transaction string `json:"transaction,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Found") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Found") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BatchGetDocumentsResponse) MarshalJSON() ([]byte, error) { + type noMethod BatchGetDocumentsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// BeginTransactionRequest: The request for Firestore.BeginTransaction. +type BeginTransactionRequest struct { + // Options: The options for the transaction. + // Defaults to a read-write transaction. + Options *TransactionOptions `json:"options,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Options") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Options") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BeginTransactionRequest) MarshalJSON() ([]byte, error) { + type noMethod BeginTransactionRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// BeginTransactionResponse: The response for +// Firestore.BeginTransaction. +type BeginTransactionResponse struct { + // Transaction: The transaction that was started. + Transaction string `json:"transaction,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Transaction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Transaction") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BeginTransactionResponse) MarshalJSON() ([]byte, error) { + type noMethod BeginTransactionResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CollectionSelector: A selection of a collection, such as `messages as +// m1`. +type CollectionSelector struct { + // AllDescendants: When false, selects only collections that are + // immediate children of + // the `parent` specified in the containing `RunQueryRequest`. + // When true, selects all descendant collections. + AllDescendants bool `json:"allDescendants,omitempty"` + + // CollectionId: The collection ID. + // When set, selects only collections with this ID. + CollectionId string `json:"collectionId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AllDescendants") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AllDescendants") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *CollectionSelector) MarshalJSON() ([]byte, error) { + type noMethod CollectionSelector + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CommitRequest: The request for Firestore.Commit. +type CommitRequest struct { + // Transaction: If set, applies all writes in this transaction, and + // commits it. + Transaction string `json:"transaction,omitempty"` + + // Writes: The writes to apply. + // + // Always executed atomically and in order. + Writes []*Write `json:"writes,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Transaction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Transaction") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitRequest) MarshalJSON() ([]byte, error) { + type noMethod CommitRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CommitResponse: The response for Firestore.Commit. +type CommitResponse struct { + // CommitTime: The time at which the commit occurred. + CommitTime string `json:"commitTime,omitempty"` + + // WriteResults: The result of applying the writes. + // + // This i-th write result corresponds to the i-th write in the + // request. + WriteResults []*WriteResult `json:"writeResults,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CommitTime") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CommitTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CommitResponse) MarshalJSON() ([]byte, error) { + type noMethod CommitResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// CompositeFilter: A filter that merges multiple other filters using +// the given operator. +type CompositeFilter struct { + // Filters: The list of filters to combine. + // Must contain at least one filter. + Filters []*Filter `json:"filters,omitempty"` + + // Op: The operator for combining multiple filters. + // + // Possible values: + // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. + // "AND" - The results are required to satisfy each of the combined + // filters. + Op string `json:"op,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Filters") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Filters") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *CompositeFilter) MarshalJSON() ([]byte, error) { + type noMethod CompositeFilter + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Cursor: A position in a query result set. +type Cursor struct { + // Before: If the position is just before or just after the given + // values, relative + // to the sort order defined by the query. + Before bool `json:"before,omitempty"` + + // Values: The values that represent a position, in the order they + // appear in + // the order by clause of a query. + // + // Can contain fewer values than specified in the order by clause. + Values []*Value `json:"values,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Before") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Before") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Cursor) MarshalJSON() ([]byte, error) { + type noMethod Cursor + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Document: A Firestore document. +// +// Must not exceed 1 MiB - 4 bytes. +type Document struct { + // CreateTime: Output only. The time at which the document was + // created. + // + // This value increases monotonically when a document is deleted + // then + // recreated. It can also be compared to values from other documents + // and + // the `read_time` of a query. + CreateTime string `json:"createTime,omitempty"` + + // Fields: The document's fields. + // + // The map keys represent field names. + // + // A simple field name contains only characters `a` to `z`, `A` to + // `Z`, + // `0` to `9`, or `_`, and must not start with `0` to `9` or `_`. For + // example, + // `foo_bar_17`. + // + // Field names matching the regular expression `__.*__` are reserved. + // Reserved + // field names are forbidden except in certain documented contexts. The + // map + // keys, represented as UTF-8, must not exceed 1,500 bytes and cannot + // be + // empty. + // + // Field paths may be used in other contexts to refer to structured + // fields + // defined here. For `map_value`, the field path is represented by the + // simple + // or quoted field names of the containing fields, delimited by `.`. + // For + // example, the structured field + // "foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would + // be + // represented by the field path `foo.x&y`. + // + // Within a field path, a quoted field name starts and ends with `` ` `` + // and + // may contain any character. Some characters, including `` ` ``, must + // be + // escaped using a `\`. For example, `` `x&y` `` represents `x&y` and + // `` `bak\`tik` `` represents `` bak`tik ``. + Fields map[string]Value `json:"fields,omitempty"` + + // Name: The resource name of the document, for + // example + // `projects/{project_id}/databases/{database_id}/documents/{docu + // ment_path}`. + Name string `json:"name,omitempty"` + + // UpdateTime: Output only. The time at which the document was last + // changed. + // + // This value is initally set to the `create_time` then + // increases + // monotonically with each change to the document. It can also + // be + // compared to values from other documents and the `read_time` of a + // query. + UpdateTime string `json:"updateTime,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CreateTime") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CreateTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Document) MarshalJSON() ([]byte, error) { + type noMethod Document + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentChange: A Document has changed. +// +// May be the result of multiple writes, including deletes, +// that +// ultimately resulted in a new value for the Document. +// +// Multiple DocumentChange messages may be returned for the same +// logical +// change, if multiple targets are affected. +type DocumentChange struct { + // Document: The new state of the Document. + // + // If `mask` is set, contains only fields that were updated or added. + Document *Document `json:"document,omitempty"` + + // RemovedTargetIds: A set of target IDs for targets that no longer + // match this document. + RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` + + // TargetIds: A set of target IDs of targets that match this document. + TargetIds []int64 `json:"targetIds,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Document") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Document") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentChange) MarshalJSON() ([]byte, error) { + type noMethod DocumentChange + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentDelete: A Document has been deleted. +// +// May be the result of multiple writes, including updates, the +// last of which deleted the Document. +// +// Multiple DocumentDelete messages may be returned for the same +// logical +// delete, if multiple targets are affected. +type DocumentDelete struct { + // Document: The resource name of the Document that was deleted. + Document string `json:"document,omitempty"` + + // ReadTime: The read timestamp at which the delete was + // observed. + // + // Greater or equal to the `commit_time` of the delete. + ReadTime string `json:"readTime,omitempty"` + + // RemovedTargetIds: A set of target IDs for targets that previously + // matched this entity. + RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Document") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Document") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentDelete) MarshalJSON() ([]byte, error) { + type noMethod DocumentDelete + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentMask: A set of field paths on a document. +// Used to restrict a get or update operation on a document to a subset +// of its +// fields. +// This is different from standard field masks, as this is always scoped +// to a +// Document, and takes in account the dynamic nature of Value. +type DocumentMask struct { + // FieldPaths: The list of field paths in the mask. See Document.fields + // for a field + // path syntax reference. + FieldPaths []string `json:"fieldPaths,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldPaths") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldPaths") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentMask) MarshalJSON() ([]byte, error) { + type noMethod DocumentMask + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentRemove: A Document has been removed from the view of the +// targets. +// +// Sent if the document is no longer relevant to a target and is out of +// view. +// Can be sent instead of a DocumentDelete or a DocumentChange if the +// server +// can not send the new value of the document. +// +// Multiple DocumentRemove messages may be returned for the same +// logical +// write or delete, if multiple targets are affected. +type DocumentRemove struct { + // Document: The resource name of the Document that has gone out of + // view. + Document string `json:"document,omitempty"` + + // ReadTime: The read timestamp at which the remove was + // observed. + // + // Greater or equal to the `commit_time` of the change/delete/remove. + ReadTime string `json:"readTime,omitempty"` + + // RemovedTargetIds: A set of target IDs for targets that previously + // matched this document. + RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Document") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Document") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentRemove) MarshalJSON() ([]byte, error) { + type noMethod DocumentRemove + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentTransform: A transformation of a document. +type DocumentTransform struct { + // Document: The name of the document to transform. + Document string `json:"document,omitempty"` + + // FieldTransforms: The list of transformations to apply to the fields + // of the document, in + // order. + FieldTransforms []*FieldTransform `json:"fieldTransforms,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Document") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Document") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentTransform) MarshalJSON() ([]byte, error) { + type noMethod DocumentTransform + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DocumentsTarget: A target specified by a set of documents names. +type DocumentsTarget struct { + // Documents: The names of the documents to retrieve. In the + // format: + // `projects/{project_id}/databases/{database_id}/documents/{docu + // ment_path}`. + // The request will fail if any of the document is not a child resource + // of + // the given `database`. Duplicate names will be elided. + Documents []string `json:"documents,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Documents") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Documents") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DocumentsTarget) MarshalJSON() ([]byte, error) { + type noMethod DocumentsTarget + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Empty: A generic empty message that you can re-use to avoid defining +// duplicated +// empty messages in your APIs. A typical example is to use it 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 `{}`. +type Empty struct { + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` +} + +// ExistenceFilter: A digest of all the documents that match a given +// target. +type ExistenceFilter struct { + // Count: The total count of documents that match target_id. + // + // If different from the count of documents in the client that match, + // the + // client must manually determine which documents no longer match the + // target. + Count int64 `json:"count,omitempty"` + + // TargetId: The target ID to which this filter applies. + TargetId int64 `json:"targetId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Count") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Count") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ExistenceFilter) MarshalJSON() ([]byte, error) { + type noMethod ExistenceFilter + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// FieldFilter: A filter on a specific field. +type FieldFilter struct { + // Field: The field to filter by. + Field *FieldReference `json:"field,omitempty"` + + // Op: The operator to filter by. + // + // Possible values: + // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. + // "LESS_THAN" - Less than. Requires that the field come first in + // `order_by`. + // "LESS_THAN_OR_EQUAL" - Less than or equal. Requires that the field + // come first in `order_by`. + // "GREATER_THAN" - Greater than. Requires that the field come first + // in `order_by`. + // "GREATER_THAN_OR_EQUAL" - Greater than or equal. Requires that the + // field come first in + // `order_by`. + // "EQUAL" - Equal. + Op string `json:"op,omitempty"` + + // Value: The value to compare to. + Value *Value `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Field") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Field") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FieldFilter) MarshalJSON() ([]byte, error) { + type noMethod FieldFilter + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// FieldReference: A reference to a field, such as `max(messages.time) +// as max_time`. +type FieldReference struct { + FieldPath string `json:"fieldPath,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldPath") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldPath") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FieldReference) MarshalJSON() ([]byte, error) { + type noMethod FieldReference + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// FieldTransform: A transformation of a field of the document. +type FieldTransform struct { + // FieldPath: The path of the field. See Document.fields for the field + // path syntax + // reference. + FieldPath string `json:"fieldPath,omitempty"` + + // SetToServerValue: Sets the field to the given server value. + // + // Possible values: + // "SERVER_VALUE_UNSPECIFIED" - Unspecified. This value must not be + // used. + // "REQUEST_TIME" - The time at which the server processed the + // request. + SetToServerValue string `json:"setToServerValue,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldPath") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldPath") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *FieldTransform) MarshalJSON() ([]byte, error) { + type noMethod FieldTransform + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Filter: A filter. +type Filter struct { + // CompositeFilter: A composite filter. + CompositeFilter *CompositeFilter `json:"compositeFilter,omitempty"` + + // FieldFilter: A filter on a document field. + FieldFilter *FieldFilter `json:"fieldFilter,omitempty"` + + // UnaryFilter: A filter that takes exactly one argument. + UnaryFilter *UnaryFilter `json:"unaryFilter,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CompositeFilter") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CompositeFilter") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Filter) MarshalJSON() ([]byte, error) { + type noMethod Filter + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Index: An index definition. +type Index struct { + // CollectionId: The collection ID to which this index applies. + // Required. + CollectionId string `json:"collectionId,omitempty"` + + // Fields: The fields to index. + Fields []*IndexField `json:"fields,omitempty"` + + // Name: The resource name of the index. + // Output only. + Name string `json:"name,omitempty"` + + // State: The state of the index. + // Output only. + // + // Possible values: + // "STATE_UNSPECIFIED" - The state is unspecified. + // "CREATING" - The index is being created. + // There is an active long-running operation for the index. + // The index is updated when writing a document. + // Some index data may exist. + // "READY" - The index is ready to be used. + // The index is updated when writing a document. + // The index is fully populated from all stored documents it applies to. + // "ERROR" - The index was being created, but something went + // wrong. + // There is no active long-running operation for the index, + // and the most recently finished long-running operation failed. + // The index is not updated when writing a document. + // Some index data may exist. + State string `json:"state,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CollectionId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CollectionId") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Index) MarshalJSON() ([]byte, error) { + type noMethod Index + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// IndexField: A field of an index. +type IndexField struct { + // FieldPath: The path of the field. Must match the field path + // specification described + // by google.firestore.v1beta1.Document.fields. + // Special field path `__name__` may be used by itself or at the end of + // a + // path. `__type__` may be used only at the end of path. + FieldPath string `json:"fieldPath,omitempty"` + + // Mode: The field's mode. + // + // Possible values: + // "MODE_UNSPECIFIED" - The mode is unspecified. + // "ASCENDING" - The field's values are indexed so as to support + // sequencing in + // ascending order and also query by <, >, <=, >=, and =. + // "DESCENDING" - The field's values are indexed so as to support + // sequencing in + // descending order and also query by <, >, <=, >=, and =. + Mode string `json:"mode,omitempty"` + + // ForceSendFields is a list of field names (e.g. "FieldPath") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FieldPath") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *IndexField) MarshalJSON() ([]byte, error) { + type noMethod IndexField + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// LatLng: An object representing a latitude/longitude pair. This is +// expressed as a pair +// of doubles representing degrees latitude and degrees longitude. +// Unless +// specified otherwise, this must conform to the +// WGS84 +// st +// andard. Values must be within normalized ranges. +// +// Example of normalization code in Python: +// +// def NormalizeLongitude(longitude): +// """Wraps decimal degrees longitude to [-180.0, 180.0].""" +// q, r = divmod(longitude, 360.0) +// if r > 180.0 or (r == 180.0 and q <= -1.0): +// return r - 360.0 +// return r +// +// def NormalizeLatLng(latitude, longitude): +// """Wraps decimal degrees latitude and longitude to +// [-90.0, 90.0] and [-180.0, 180.0], respectively.""" +// r = latitude % 360.0 +// if r <= 90.0: +// return r, NormalizeLongitude(longitude) +// elif r >= 270.0: +// return r - 360, NormalizeLongitude(longitude) +// else: +// return 180 - r, NormalizeLongitude(longitude + 180.0) +// +// assert 180.0 == NormalizeLongitude(180.0) +// assert -180.0 == NormalizeLongitude(-180.0) +// assert -179.0 == NormalizeLongitude(181.0) +// assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) +// assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) +// assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) +// assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) +// assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) +// assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) +// assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) +// assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) +// assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) +// assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) +type LatLng struct { + // Latitude: The latitude in degrees. It must be in the range [-90.0, + // +90.0]. + Latitude float64 `json:"latitude,omitempty"` + + // Longitude: The longitude in degrees. It must be in the range [-180.0, + // +180.0]. + Longitude float64 `json:"longitude,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Latitude") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Latitude") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *LatLng) MarshalJSON() ([]byte, error) { + type noMethod LatLng + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *LatLng) UnmarshalJSON(data []byte) error { + type noMethod LatLng + var s1 struct { + Latitude gensupport.JSONFloat64 `json:"latitude"` + Longitude gensupport.JSONFloat64 `json:"longitude"` + *noMethod + } + s1.noMethod = (*noMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Latitude = float64(s1.Latitude) + s.Longitude = float64(s1.Longitude) + return nil +} + +// ListCollectionIdsRequest: The request for +// Firestore.ListCollectionIds. +type ListCollectionIdsRequest struct { + // PageSize: The maximum number of results to return. + PageSize int64 `json:"pageSize,omitempty"` + + // PageToken: A page token. Must be a value + // from + // ListCollectionIdsResponse. + PageToken string `json:"pageToken,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PageSize") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "PageSize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListCollectionIdsRequest) MarshalJSON() ([]byte, error) { + type noMethod ListCollectionIdsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListCollectionIdsResponse: The response from +// Firestore.ListCollectionIds. +type ListCollectionIdsResponse struct { + // CollectionIds: The collection ids. + CollectionIds []string `json:"collectionIds,omitempty"` + + // NextPageToken: A page token that may be used to continue the list. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CollectionIds") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CollectionIds") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListCollectionIdsResponse) MarshalJSON() ([]byte, error) { + type noMethod ListCollectionIdsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListDocumentsResponse: The response for Firestore.ListDocuments. +type ListDocumentsResponse struct { + // Documents: The Documents found. + Documents []*Document `json:"documents,omitempty"` + + // NextPageToken: The next page token. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Documents") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Documents") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListDocumentsResponse) MarshalJSON() ([]byte, error) { + type noMethod ListDocumentsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListIndexesResponse: The response for FirestoreAdmin.ListIndexes. +type ListIndexesResponse struct { + // Indexes: The indexes. + Indexes []*Index `json:"indexes,omitempty"` + + // NextPageToken: The standard List next-page token. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Indexes") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Indexes") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListIndexesResponse) MarshalJSON() ([]byte, error) { + type noMethod ListIndexesResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListenRequest: A request for Firestore.Listen +type ListenRequest struct { + // AddTarget: A target to add to this stream. + AddTarget *Target `json:"addTarget,omitempty"` + + // Labels: Labels associated with this target change. + Labels map[string]string `json:"labels,omitempty"` + + // RemoveTarget: The ID of a target to remove from this stream. + RemoveTarget int64 `json:"removeTarget,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AddTarget") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AddTarget") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListenRequest) MarshalJSON() ([]byte, error) { + type noMethod ListenRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListenResponse: The response for Firestore.Listen. +type ListenResponse struct { + // DocumentChange: A Document has changed. + DocumentChange *DocumentChange `json:"documentChange,omitempty"` + + // DocumentDelete: A Document has been deleted. + DocumentDelete *DocumentDelete `json:"documentDelete,omitempty"` + + // DocumentRemove: A Document has been removed from a target (because it + // is no longer + // relevant to that target). + DocumentRemove *DocumentRemove `json:"documentRemove,omitempty"` + + // Filter: A filter to apply to the set of documents previously returned + // for the + // given target. + // + // Returned when documents may have been removed from the given target, + // but + // the exact documents are unknown. + Filter *ExistenceFilter `json:"filter,omitempty"` + + // TargetChange: Targets have changed. + TargetChange *TargetChange `json:"targetChange,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DocumentChange") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DocumentChange") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ListenResponse) MarshalJSON() ([]byte, error) { + type noMethod ListenResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// MapValue: A map value. +type MapValue struct { + // Fields: The map's fields. + // + // The map keys represent field names. Field names matching the + // regular + // expression `__.*__` are reserved. Reserved field names are forbidden + // except + // in certain documented contexts. The map keys, represented as UTF-8, + // must + // not exceed 1,500 bytes and cannot be empty. + Fields map[string]Value `json:"fields,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Fields") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Fields") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MapValue) MarshalJSON() ([]byte, error) { + type noMethod MapValue + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Operation: This resource represents a long-running operation that is +// the result of a +// network API call. +type Operation struct { + // Done: 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. + Done bool `json:"done,omitempty"` + + // Error: The error result of the operation in case of failure or + // cancellation. + Error *Status `json:"error,omitempty"` + + // Metadata: 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. + Metadata googleapi.RawMessage `json:"metadata,omitempty"` + + // Name: 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 have the format of `operations/some/unique/name`. + Name string `json:"name,omitempty"` + + // Response: 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`. + Response googleapi.RawMessage `json:"response,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Done") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Done") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Operation) MarshalJSON() ([]byte, error) { + type noMethod Operation + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Order: An order on a field. +type Order struct { + // Direction: The direction to order by. Defaults to `ASCENDING`. + // + // Possible values: + // "DIRECTION_UNSPECIFIED" - Unspecified. + // "ASCENDING" - Ascending. + // "DESCENDING" - Descending. + Direction string `json:"direction,omitempty"` + + // Field: The field to order by. + Field *FieldReference `json:"field,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Direction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Direction") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Order) MarshalJSON() ([]byte, error) { + type noMethod Order + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Precondition: A precondition on a document, used for conditional +// operations. +type Precondition struct { + // Exists: When set to `true`, the target document must exist. + // When set to `false`, the target document must not exist. + Exists bool `json:"exists,omitempty"` + + // UpdateTime: When set, the target document must exist and have been + // last updated at + // that time. + UpdateTime string `json:"updateTime,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Exists") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Exists") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Precondition) MarshalJSON() ([]byte, error) { + type noMethod Precondition + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Projection: The projection of document's fields to return. +type Projection struct { + // Fields: The fields to return. + // + // If empty, all fields are returned. To only return the name + // of the document, use `['__name__']`. + Fields []*FieldReference `json:"fields,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Fields") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Fields") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Projection) MarshalJSON() ([]byte, error) { + type noMethod Projection + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// QueryTarget: A target specified by a query. +type QueryTarget struct { + // Parent: 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-c + // hatroom` + Parent string `json:"parent,omitempty"` + + // StructuredQuery: A structured query. + StructuredQuery *StructuredQuery `json:"structuredQuery,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Parent") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Parent") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *QueryTarget) MarshalJSON() ([]byte, error) { + type noMethod QueryTarget + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ReadOnly: Options for a transaction that can only be used to read +// documents. +type ReadOnly struct { + // ReadTime: Reads documents at the given time. + // This may not be older than 60 seconds. + ReadTime string `json:"readTime,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ReadTime") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ReadTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ReadOnly) MarshalJSON() ([]byte, error) { + type noMethod ReadOnly + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ReadWrite: Options for a transaction that can be used to read and +// write documents. +type ReadWrite struct { + // RetryTransaction: An optional transaction to retry. + RetryTransaction string `json:"retryTransaction,omitempty"` + + // ForceSendFields is a list of field names (e.g. "RetryTransaction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "RetryTransaction") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ReadWrite) MarshalJSON() ([]byte, error) { + type noMethod ReadWrite + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// RollbackRequest: The request for Firestore.Rollback. +type RollbackRequest struct { + // Transaction: The transaction to roll back. + Transaction string `json:"transaction,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Transaction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Transaction") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RollbackRequest) MarshalJSON() ([]byte, error) { + type noMethod RollbackRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// RunQueryRequest: The request for Firestore.RunQuery. +type RunQueryRequest struct { + // NewTransaction: Starts a new transaction and reads the + // documents. + // Defaults to a read-only transaction. + // The new transaction ID will be returned as the first response in + // the + // stream. + NewTransaction *TransactionOptions `json:"newTransaction,omitempty"` + + // ReadTime: Reads documents as they were at the given time. + // This may not be older than 60 seconds. + ReadTime string `json:"readTime,omitempty"` + + // StructuredQuery: A structured query. + StructuredQuery *StructuredQuery `json:"structuredQuery,omitempty"` + + // Transaction: Reads documents in a transaction. + Transaction string `json:"transaction,omitempty"` + + // ForceSendFields is a list of field names (e.g. "NewTransaction") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NewTransaction") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *RunQueryRequest) MarshalJSON() ([]byte, error) { + type noMethod RunQueryRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// RunQueryResponse: The response for Firestore.RunQuery. +type RunQueryResponse struct { + // Document: A query result. + // Not set when reporting partial progress. + Document *Document `json:"document,omitempty"` + + // ReadTime: 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. + ReadTime string `json:"readTime,omitempty"` + + // SkippedResults: The number of results that have been skipped due to + // an offset between + // the last response and the current response. + SkippedResults int64 `json:"skippedResults,omitempty"` + + // Transaction: The transaction that was started as part of this + // request. + // Can only be set in the first response, and only + // if + // RunQueryRequest.new_transaction was set in the request. + // If set, no other fields will be set in this response. + Transaction string `json:"transaction,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Document") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Document") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RunQueryResponse) MarshalJSON() ([]byte, error) { + type noMethod RunQueryResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Status: The `Status` type defines a logical error model that is +// suitable for different +// programming environments, including REST APIs and RPC APIs. It is +// used by +// [gRPC](https://github.com/grpc). The error model is designed to +// be: +// +// - Simple to use and understand for most users +// - Flexible enough to meet unexpected needs +// +// # Overview +// +// The `Status` message contains three pieces of data: error code, error +// message, +// and error details. The error code should be an enum value +// of +// google.rpc.Code, but it may accept additional error codes if needed. +// The +// error message should be a developer-facing English message that +// helps +// developers *understand* and *resolve* the error. If a localized +// user-facing +// error message is needed, put the localized message in the error +// details or +// localize it in the client. The optional error details may contain +// arbitrary +// information about the error. There is a predefined set of error +// detail types +// in the package `google.rpc` that can be used for common error +// conditions. +// +// # Language mapping +// +// The `Status` message is the logical representation of the error +// model, but it +// is not necessarily the actual wire format. When the `Status` message +// is +// exposed in different client libraries and different wire protocols, +// it can be +// mapped differently. For example, it will likely be mapped to some +// exceptions +// in Java, but more likely mapped to some error codes in C. +// +// # Other uses +// +// The error model and the `Status` message can be used in a variety +// of +// environments, either with or without APIs, to provide a +// consistent developer experience across different +// environments. +// +// Example uses of this error model include: +// +// - Partial errors. If a service needs to return partial errors to the +// client, +// it may embed the `Status` in the normal response to indicate the +// partial +// errors. +// +// - Workflow errors. A typical workflow has multiple steps. Each step +// may +// have a `Status` message for error reporting. +// +// - Batch operations. If a client uses batch request and batch +// response, the +// `Status` message should be used directly inside batch response, +// one for +// each error sub-response. +// +// - Asynchronous operations. If an API call embeds asynchronous +// operation +// results in its response, the status of those operations should +// be +// represented directly using the `Status` message. +// +// - Logging. If some API errors are stored in logs, the message +// `Status` could +// be used directly after any stripping needed for security/privacy +// reasons. +type Status struct { + // Code: The status code, which should be an enum value of + // google.rpc.Code. + Code int64 `json:"code,omitempty"` + + // Details: A list of messages that carry the error details. There is a + // common set of + // message types for APIs to use. + Details []googleapi.RawMessage `json:"details,omitempty"` + + // Message: 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. + Message string `json:"message,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Code") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Status) MarshalJSON() ([]byte, error) { + type noMethod Status + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StructuredQuery: A Firestore query. +type StructuredQuery struct { + // EndAt: A end point for the query results. + EndAt *Cursor `json:"endAt,omitempty"` + + // From: The collections to query. + From []*CollectionSelector `json:"from,omitempty"` + + // Limit: The maximum number of results to return. + // + // Applies after all other constraints. + // Must be >= 0 if specified. + Limit int64 `json:"limit,omitempty"` + + // Offset: The number of results to skip. + // + // Applies before limit, but after all other constraints. Must be >= 0 + // if + // specified. + Offset int64 `json:"offset,omitempty"` + + // OrderBy: 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__` + OrderBy []*Order `json:"orderBy,omitempty"` + + // Select: The projection to return. + Select *Projection `json:"select,omitempty"` + + // StartAt: A starting point for the query results. + StartAt *Cursor `json:"startAt,omitempty"` + + // Where: The filter to apply. + Where *Filter `json:"where,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EndAt") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EndAt") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StructuredQuery) MarshalJSON() ([]byte, error) { + type noMethod StructuredQuery + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Target: A specification of a set of documents to listen to. +type Target struct { + // Documents: A target specified by a set of document names. + Documents *DocumentsTarget `json:"documents,omitempty"` + + // Once: If the target should be removed once it is current and + // consistent. + Once bool `json:"once,omitempty"` + + // Query: A target specified by a query. + Query *QueryTarget `json:"query,omitempty"` + + // ReadTime: Start listening after a specific `read_time`. + // + // The client must know the state of matching documents at this time. + ReadTime string `json:"readTime,omitempty"` + + // ResumeToken: A resume token from a prior TargetChange for an + // identical target. + // + // Using a resume token with a different target is unsupported and may + // fail. + ResumeToken string `json:"resumeToken,omitempty"` + + // TargetId: A client provided target ID. + // + // If not set, the server will assign an ID for the target. + // + // Used for resuming a target without changing IDs. The IDs can either + // be + // client-assigned or be server-assigned in a previous stream. All + // targets + // with client provided IDs must be added before adding a target that + // needs + // a server-assigned id. + TargetId int64 `json:"targetId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Documents") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Documents") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Target) MarshalJSON() ([]byte, error) { + type noMethod Target + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TargetChange: Targets being watched have changed. +type TargetChange struct { + // Cause: The error that resulted in this change, if applicable. + Cause *Status `json:"cause,omitempty"` + + // ReadTime: The consistent `read_time` for the given `target_ids` + // (omitted when the + // target_ids are not at a consistent snapshot). + // + // The stream is guaranteed to send a `read_time` with `target_ids` + // empty + // whenever the entire stream reaches a new consistent snapshot. + // ADD, + // CURRENT, and RESET messages are guaranteed to (eventually) result in + // a + // new consistent snapshot (while NO_CHANGE and REMOVE messages are + // not). + // + // For a given stream, `read_time` is guaranteed to be + // monotonically + // increasing. + ReadTime string `json:"readTime,omitempty"` + + // ResumeToken: A token that can be used to resume the stream for the + // given `target_ids`, + // or all targets if `target_ids` is empty. + // + // Not set on every target change. + ResumeToken string `json:"resumeToken,omitempty"` + + // TargetChangeType: The type of change that occurred. + // + // Possible values: + // "NO_CHANGE" - No change has occurred. Used only to send an updated + // `resume_token`. + // "ADD" - The targets have been added. + // "REMOVE" - The targets have been removed. + // "CURRENT" - The targets reflect all changes committed before the + // targets were added + // to the stream. + // + // This will be sent after or with a `read_time` that is greater than + // or + // equal to the time at which the targets were added. + // + // Listeners can wait for this change if read-after-write semantics + // are desired. + // "RESET" - The targets have been reset, and a new initial state for + // the targets + // will be returned in subsequent changes. + // + // After the initial state is complete, `CURRENT` will be returned + // even + // if the target was previously indicated to be `CURRENT`. + TargetChangeType string `json:"targetChangeType,omitempty"` + + // TargetIds: The target IDs of targets that have changed. + // + // If empty, the change applies to all targets. + // + // For `target_change_type=ADD`, the order of the target IDs matches the + // order + // of the requests to add the targets. This allows clients to + // unambiguously + // associate server-assigned target IDs with added targets. + // + // For other states, the order of the target IDs is not defined. + TargetIds []int64 `json:"targetIds,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Cause") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Cause") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TargetChange) MarshalJSON() ([]byte, error) { + type noMethod TargetChange + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TransactionOptions: Options for creating a new transaction. +type TransactionOptions struct { + // ReadOnly: The transaction can only be used for read operations. + ReadOnly *ReadOnly `json:"readOnly,omitempty"` + + // ReadWrite: The transaction can be used for both read and write + // operations. + ReadWrite *ReadWrite `json:"readWrite,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ReadOnly") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ReadOnly") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TransactionOptions) MarshalJSON() ([]byte, error) { + type noMethod TransactionOptions + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UnaryFilter: A filter with a single operand. +type UnaryFilter struct { + // Field: The field to which to apply the operator. + Field *FieldReference `json:"field,omitempty"` + + // Op: The unary operator to apply. + // + // Possible values: + // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. + // "IS_NAN" - Test if a field is equal to NaN. + // "IS_NULL" - Test if an exprestion evaluates to Null. + Op string `json:"op,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Field") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Field") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UnaryFilter) MarshalJSON() ([]byte, error) { + type noMethod UnaryFilter + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Value: A message that can hold any of the supported value types. +type Value struct { + // ArrayValue: An array value. + // + // Cannot contain another array value. + ArrayValue *ArrayValue `json:"arrayValue,omitempty"` + + // BooleanValue: A boolean value. + BooleanValue bool `json:"booleanValue,omitempty"` + + // BytesValue: A bytes value. + // + // Must not exceed 1 MiB - 89 bytes. + // Only the first 1,500 bytes are considered by queries. + BytesValue string `json:"bytesValue,omitempty"` + + // DoubleValue: A double value. + DoubleValue float64 `json:"doubleValue,omitempty"` + + // GeoPointValue: A geo point value representing a point on the surface + // of Earth. + GeoPointValue *LatLng `json:"geoPointValue,omitempty"` + + // IntegerValue: An integer value. + IntegerValue int64 `json:"integerValue,omitempty,string"` + + // MapValue: A map value. + MapValue *MapValue `json:"mapValue,omitempty"` + + // NullValue: A null value. + // + // Possible values: + // "NULL_VALUE" - Null value. + NullValue string `json:"nullValue,omitempty"` + + // ReferenceValue: A reference to a document. For + // example: + // `projects/{project_id}/databases/{database_id}/documents/{doc + // ument_path}`. + ReferenceValue string `json:"referenceValue,omitempty"` + + // StringValue: A string value. + // + // The string, represented as UTF-8, must not exceed 1 MiB - 89 + // bytes. + // Only the first 1,500 bytes of the UTF-8 representation are considered + // by + // queries. + StringValue string `json:"stringValue,omitempty"` + + // TimestampValue: A timestamp value. + // + // Precise only to microseconds. When stored, any additional precision + // is + // rounded down. + TimestampValue string `json:"timestampValue,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ArrayValue") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ArrayValue") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Value) MarshalJSON() ([]byte, error) { + type noMethod Value + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *Value) UnmarshalJSON(data []byte) error { + type noMethod Value + var s1 struct { + DoubleValue gensupport.JSONFloat64 `json:"doubleValue"` + *noMethod + } + s1.noMethod = (*noMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.DoubleValue = float64(s1.DoubleValue) + return nil +} + +// Write: A write on a document. +type Write struct { + // CurrentDocument: An optional precondition on the document. + // + // The write will fail if this is set and not met by the target + // document. + CurrentDocument *Precondition `json:"currentDocument,omitempty"` + + // Delete: A document name to delete. In the + // format: + // `projects/{project_id}/databases/{database_id}/documents/{docu + // ment_path}`. + Delete string `json:"delete,omitempty"` + + // Transform: Applies a tranformation to a document. + // At most one `transform` per document is allowed in a given + // request. + // An `update` cannot follow a `transform` on the same document in a + // given + // request. + Transform *DocumentTransform `json:"transform,omitempty"` + + // Update: A document to write. + Update *Document `json:"update,omitempty"` + + // UpdateMask: The fields to update in this write. + // + // This field can be set only when the operation is `update`. + // None of the field paths in the mask may contain a reserved name. + // If the document exists on the server and has fields not referenced in + // the + // mask, they are left unchanged. + // Fields referenced in the mask, but not present in the input document, + // are + // deleted from the document on the server. + // The field paths in this mask must not contain a reserved field name. + UpdateMask *DocumentMask `json:"updateMask,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CurrentDocument") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CurrentDocument") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Write) MarshalJSON() ([]byte, error) { + type noMethod Write + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// WriteRequest: The request for Firestore.Write. +// +// The first request creates a stream, or resumes an existing one from a +// token. +// +// When creating a new stream, the server replies with a response +// containing +// only an ID and a token, to use in the next request. +// +// When resuming a stream, the server first streams any responses later +// than the +// given token, then a response containing only an up-to-date token, to +// use in +// the next request. +type WriteRequest struct { + // Labels: Labels associated with this write request. + Labels map[string]string `json:"labels,omitempty"` + + // StreamId: The ID of the write stream to resume. + // This may only be set in the first message. When left empty, a new + // write + // stream will be created. + StreamId string `json:"streamId,omitempty"` + + // StreamToken: A stream token that was previously sent by the + // server. + // + // The client should set this field to the token from the most + // recent + // WriteResponse it has received. This acknowledges that the client + // has + // received responses up to this token. After sending this token, + // earlier + // tokens may not be used anymore. + // + // The server may close the stream if there are too many + // unacknowledged + // responses. + // + // Leave this field unset when creating a new stream. To resume a stream + // at + // a specific point, set this field and the `stream_id` field. + // + // Leave this field unset when creating a new stream. + StreamToken string `json:"streamToken,omitempty"` + + // Writes: The writes to apply. + // + // Always executed atomically and in order. + // This must be empty on the first request. + // This may be empty on the last request. + // This must not be empty on all other requests. + Writes []*Write `json:"writes,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Labels") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Labels") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *WriteRequest) MarshalJSON() ([]byte, error) { + type noMethod WriteRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// WriteResponse: The response for Firestore.Write. +type WriteResponse struct { + // CommitTime: The time at which the commit occurred. + CommitTime string `json:"commitTime,omitempty"` + + // StreamId: The ID of the stream. + // Only set on the first message, when a new stream was created. + StreamId string `json:"streamId,omitempty"` + + // StreamToken: A token that represents the position of this response in + // the stream. + // This can be used by a client to resume the stream at this + // point. + // + // This field is always set. + StreamToken string `json:"streamToken,omitempty"` + + // WriteResults: The result of applying the writes. + // + // This i-th write result corresponds to the i-th write in the + // request. + WriteResults []*WriteResult `json:"writeResults,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CommitTime") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CommitTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *WriteResponse) MarshalJSON() ([]byte, error) { + type noMethod WriteResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// WriteResult: The result of applying a write. +type WriteResult struct { + // TransformResults: The results of applying each + // DocumentTransform.FieldTransform, in the + // same order. + TransformResults []*Value `json:"transformResults,omitempty"` + + // UpdateTime: The last update time of the document after applying the + // write. Not set + // after a `delete`. + // + // If the write did not actually change the document, this will be + // the + // previous update_time. + UpdateTime string `json:"updateTime,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TransformResults") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TransformResults") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *WriteResult) MarshalJSON() ([]byte, error) { + type noMethod WriteResult + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// method id "firestore.projects.databases.documents.batchGet": + +type ProjectsDatabasesDocumentsBatchGetCall struct { + s *Service + database string + batchgetdocumentsrequest *BatchGetDocumentsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BatchGet: Gets multiple documents. +// +// Documents returned by this method are not guaranteed to be returned +// in the +// same order that they were requested. +func (r *ProjectsDatabasesDocumentsService) BatchGet(database string, batchgetdocumentsrequest *BatchGetDocumentsRequest) *ProjectsDatabasesDocumentsBatchGetCall { + c := &ProjectsDatabasesDocumentsBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.batchgetdocumentsrequest = batchgetdocumentsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsBatchGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsBatchGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsBatchGetCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsBatchGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsBatchGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsBatchGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetdocumentsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:batchGet") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.batchGet" call. +// Exactly one of *BatchGetDocumentsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *BatchGetDocumentsResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetDocumentsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &BatchGetDocumentsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets multiple documents.\n\nDocuments returned by this method are not guaranteed to be returned in the\nsame order that they were requested.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:batchGet", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.batchGet", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:batchGet", + // "request": { + // "$ref": "BatchGetDocumentsRequest" + // }, + // "response": { + // "$ref": "BatchGetDocumentsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.beginTransaction": + +type ProjectsDatabasesDocumentsBeginTransactionCall struct { + s *Service + database string + begintransactionrequest *BeginTransactionRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BeginTransaction: Starts a new transaction. +func (r *ProjectsDatabasesDocumentsService) BeginTransaction(database string, begintransactionrequest *BeginTransactionRequest) *ProjectsDatabasesDocumentsBeginTransactionCall { + c := &ProjectsDatabasesDocumentsBeginTransactionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.begintransactionrequest = begintransactionrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsBeginTransactionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsBeginTransactionCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsBeginTransactionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.begintransactionrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:beginTransaction") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.beginTransaction" call. +// Exactly one of *BeginTransactionResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *BeginTransactionResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Do(opts ...googleapi.CallOption) (*BeginTransactionResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &BeginTransactionResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Starts a new transaction.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:beginTransaction", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.beginTransaction", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:beginTransaction", + // "request": { + // "$ref": "BeginTransactionRequest" + // }, + // "response": { + // "$ref": "BeginTransactionResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.commit": + +type ProjectsDatabasesDocumentsCommitCall struct { + s *Service + database string + commitrequest *CommitRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Commit: Commits a transaction, while optionally updating documents. +func (r *ProjectsDatabasesDocumentsService) Commit(database string, commitrequest *CommitRequest) *ProjectsDatabasesDocumentsCommitCall { + c := &ProjectsDatabasesDocumentsCommitCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.commitrequest = commitrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsCommitCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsCommitCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsCommitCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsCommitCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsCommitCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsCommitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:commit") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.commit" call. +// Exactly one of *CommitResponse or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *CommitResponse.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsCommitCall) Do(opts ...googleapi.CallOption) (*CommitResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &CommitResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Commits a transaction, while optionally updating documents.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:commit", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.commit", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:commit", + // "request": { + // "$ref": "CommitRequest" + // }, + // "response": { + // "$ref": "CommitResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.createDocument": + +type ProjectsDatabasesDocumentsCreateDocumentCall struct { + s *Service + parent string + collectionId string + document *Document + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// CreateDocument: Creates a new document. +func (r *ProjectsDatabasesDocumentsService) CreateDocument(parent string, collectionId string, document *Document) *ProjectsDatabasesDocumentsCreateDocumentCall { + c := &ProjectsDatabasesDocumentsCreateDocumentCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.collectionId = collectionId + c.document = document + return c +} + +// DocumentId sets the optional parameter "documentId": The +// client-assigned document ID to use for this document. +// +// If not specified, an ID will be assigned by the service. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) DocumentId(documentId string) *ProjectsDatabasesDocumentsCreateDocumentCall { + c.urlParams_.Set("documentId", documentId) + return c +} + +// MaskFieldPaths sets the optional parameter "mask.fieldPaths": The +// list of field paths in the mask. See Document.fields for a field +// path syntax reference. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsCreateDocumentCall { + c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsCreateDocumentCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsCreateDocumentCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.document) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/{collectionId}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + "collectionId": c.collectionId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.createDocument" call. +// Exactly one of *Document or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Document.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Do(opts ...googleapi.CallOption) (*Document, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Document{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new document.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{collectionId}", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.createDocument", + // "parameterOrder": [ + // "parent", + // "collectionId" + // ], + // "parameters": { + // "collectionId": { + // "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "documentId": { + // "description": "The client-assigned document ID to use for this document.\n\nOptional. If not specified, an ID will be assigned by the service.", + // "location": "query", + // "type": "string" + // }, + // "mask.fieldPaths": { + // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + // "location": "query", + // "repeated": true, + // "type": "string" + // }, + // "parent": { + // "description": "The parent resource. For example:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/.+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+parent}/{collectionId}", + // "request": { + // "$ref": "Document" + // }, + // "response": { + // "$ref": "Document" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.delete": + +type ProjectsDatabasesDocumentsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a document. +func (r *ProjectsDatabasesDocumentsService) Delete(name string) *ProjectsDatabasesDocumentsDeleteCall { + c := &ProjectsDatabasesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// CurrentDocumentExists sets the optional parameter +// "currentDocument.exists": When set to `true`, the target document +// must exist. +// When set to `false`, the target document must not exist. +func (c *ProjectsDatabasesDocumentsDeleteCall) CurrentDocumentExists(currentDocumentExists bool) *ProjectsDatabasesDocumentsDeleteCall { + c.urlParams_.Set("currentDocument.exists", fmt.Sprint(currentDocumentExists)) + return c +} + +// CurrentDocumentUpdateTime sets the optional parameter +// "currentDocument.updateTime": When set, the target document must +// exist and have been last updated at +// that time. +func (c *ProjectsDatabasesDocumentsDeleteCall) CurrentDocumentUpdateTime(currentDocumentUpdateTime string) *ProjectsDatabasesDocumentsDeleteCall { + c.urlParams_.Set("currentDocument.updateTime", currentDocumentUpdateTime) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.delete" call. +// Exactly one of *Empty or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Empty.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsDatabasesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Empty{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes a document.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + // "httpMethod": "DELETE", + // "id": "firestore.projects.databases.documents.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "currentDocument.exists": { + // "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", + // "location": "query", + // "type": "boolean" + // }, + // "currentDocument.updateTime": { + // "description": "When set, the target document must exist and have been last updated at\nthat time.", + // "format": "google-datetime", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "The resource name of the Document to delete. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+name}", + // "response": { + // "$ref": "Empty" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.get": + +type ProjectsDatabasesDocumentsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a single document. +func (r *ProjectsDatabasesDocumentsService) Get(name string) *ProjectsDatabasesDocumentsGetCall { + c := &ProjectsDatabasesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// MaskFieldPaths sets the optional parameter "mask.fieldPaths": The +// list of field paths in the mask. See Document.fields for a field +// path syntax reference. +func (c *ProjectsDatabasesDocumentsGetCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsGetCall { + c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) + return c +} + +// ReadTime sets the optional parameter "readTime": Reads the version of +// the document at the given time. +// This may not be older than 60 seconds. +func (c *ProjectsDatabasesDocumentsGetCall) ReadTime(readTime string) *ProjectsDatabasesDocumentsGetCall { + c.urlParams_.Set("readTime", readTime) + return c +} + +// Transaction sets the optional parameter "transaction": Reads the +// document in a transaction. +func (c *ProjectsDatabasesDocumentsGetCall) Transaction(transaction string) *ProjectsDatabasesDocumentsGetCall { + c.urlParams_.Set("transaction", transaction) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsDatabasesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsDatabasesDocumentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsGetCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.get" call. +// Exactly one of *Document or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Document.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*Document, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Document{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a single document.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + // "httpMethod": "GET", + // "id": "firestore.projects.databases.documents.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "mask.fieldPaths": { + // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + // "location": "query", + // "repeated": true, + // "type": "string" + // }, + // "name": { + // "description": "The resource name of the Document to get. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // }, + // "readTime": { + // "description": "Reads the version of the document at the given time.\nThis may not be older than 60 seconds.", + // "format": "google-datetime", + // "location": "query", + // "type": "string" + // }, + // "transaction": { + // "description": "Reads the document in a transaction.", + // "format": "byte", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1beta1/{+name}", + // "response": { + // "$ref": "Document" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.list": + +type ProjectsDatabasesDocumentsListCall struct { + s *Service + parent string + collectionId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists documents. +func (r *ProjectsDatabasesDocumentsService) List(parent string, collectionId string) *ProjectsDatabasesDocumentsListCall { + c := &ProjectsDatabasesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.collectionId = collectionId + return c +} + +// MaskFieldPaths sets the optional parameter "mask.fieldPaths": The +// list of field paths in the mask. See Document.fields for a field +// path syntax reference. +func (c *ProjectsDatabasesDocumentsListCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) + return c +} + +// OrderBy sets the optional parameter "orderBy": The order to sort +// results by. For example: `priority desc, name`. +func (c *ProjectsDatabasesDocumentsListCall) OrderBy(orderBy string) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number +// of documents to return. +func (c *ProjectsDatabasesDocumentsListCall) PageSize(pageSize int64) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The +// `next_page_token` value returned from a previous List request, if +// any. +func (c *ProjectsDatabasesDocumentsListCall) PageToken(pageToken string) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReadTime sets the optional parameter "readTime": Reads documents as +// they were at the given time. +// This may not be older than 60 seconds. +func (c *ProjectsDatabasesDocumentsListCall) ReadTime(readTime string) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("readTime", readTime) + return c +} + +// ShowMissing sets the optional parameter "showMissing": 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`. +func (c *ProjectsDatabasesDocumentsListCall) ShowMissing(showMissing bool) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("showMissing", fmt.Sprint(showMissing)) + return c +} + +// Transaction sets the optional parameter "transaction": Reads +// documents in a transaction. +func (c *ProjectsDatabasesDocumentsListCall) Transaction(transaction string) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("transaction", transaction) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsDatabasesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsDatabasesDocumentsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsListCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/{collectionId}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + "collectionId": c.collectionId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.list" call. +// Exactly one of *ListDocumentsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListDocumentsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsListCall) Do(opts ...googleapi.CallOption) (*ListDocumentsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListDocumentsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists documents.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}/{collectionId}", + // "httpMethod": "GET", + // "id": "firestore.projects.databases.documents.list", + // "parameterOrder": [ + // "parent", + // "collectionId" + // ], + // "parameters": { + // "collectionId": { + // "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`\nor `messages`.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "mask.fieldPaths": { + // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + // "location": "query", + // "repeated": true, + // "type": "string" + // }, + // "orderBy": { + // "description": "The order to sort results by. For example: `priority desc, name`.", + // "location": "query", + // "type": "string" + // }, + // "pageSize": { + // "description": "The maximum number of documents 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": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // }, + // "readTime": { + // "description": "Reads documents as they were at the given time.\nThis may not be older than 60 seconds.", + // "format": "google-datetime", + // "location": "query", + // "type": "string" + // }, + // "showMissing": { + // "description": "If the list should show missing documents. A missing document is a\ndocument that does not exist but has sub-documents. These documents will\nbe returned with a key but will not have fields, Document.create_time,\nor Document.update_time set.\n\nRequests with `show_missing` may not specify `where` or\n`order_by`.", + // "location": "query", + // "type": "boolean" + // }, + // "transaction": { + // "description": "Reads documents in a 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" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsDatabasesDocumentsListCall) Pages(ctx context.Context, f func(*ListDocumentsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "firestore.projects.databases.documents.listCollectionIds": + +type ProjectsDatabasesDocumentsListCollectionIdsCall struct { + s *Service + parent string + listcollectionidsrequest *ListCollectionIdsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListCollectionIds: Lists all the collection IDs underneath a +// document. +func (r *ProjectsDatabasesDocumentsService) ListCollectionIds(parent string, listcollectionidsrequest *ListCollectionIdsRequest) *ProjectsDatabasesDocumentsListCollectionIdsCall { + c := &ProjectsDatabasesDocumentsListCollectionIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.listcollectionidsrequest = listcollectionidsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListCollectionIdsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListCollectionIdsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.listcollectionidsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:listCollectionIds") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.listCollectionIds" call. +// Exactly one of *ListCollectionIdsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *ListCollectionIdsResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Do(opts ...googleapi.CallOption) (*ListCollectionIdsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListCollectionIdsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all the collection IDs underneath a document.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:listCollectionIds", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.listCollectionIds", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The parent document. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+parent}:listCollectionIds", + // "request": { + // "$ref": "ListCollectionIdsRequest" + // }, + // "response": { + // "$ref": "ListCollectionIdsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Pages(ctx context.Context, f func(*ListCollectionIdsResponse) error) error { + c.ctx_ = ctx + defer func(pt string) { c.listcollectionidsrequest.PageToken = pt }(c.listcollectionidsrequest.PageToken) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.listcollectionidsrequest.PageToken = x.NextPageToken + } +} + +// method id "firestore.projects.databases.documents.listen": + +type ProjectsDatabasesDocumentsListenCall struct { + s *Service + database string + listenrequest *ListenRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Listen: Listens to changes. +func (r *ProjectsDatabasesDocumentsService) Listen(database string, listenrequest *ListenRequest) *ProjectsDatabasesDocumentsListenCall { + c := &ProjectsDatabasesDocumentsListenCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.listenrequest = listenrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsListenCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListenCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsListenCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListenCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsListenCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsListenCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.listenrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:listen") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.listen" call. +// Exactly one of *ListenResponse or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *ListenResponse.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsListenCall) Do(opts ...googleapi.CallOption) (*ListenResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListenResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Listens to changes.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:listen", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.listen", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:listen", + // "request": { + // "$ref": "ListenRequest" + // }, + // "response": { + // "$ref": "ListenResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.patch": + +type ProjectsDatabasesDocumentsPatchCall struct { + s *Service + name string + document *Document + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates or inserts a document. +func (r *ProjectsDatabasesDocumentsService) Patch(name string, document *Document) *ProjectsDatabasesDocumentsPatchCall { + c := &ProjectsDatabasesDocumentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.document = document + return c +} + +// CurrentDocumentExists sets the optional parameter +// "currentDocument.exists": When set to `true`, the target document +// must exist. +// When set to `false`, the target document must not exist. +func (c *ProjectsDatabasesDocumentsPatchCall) CurrentDocumentExists(currentDocumentExists bool) *ProjectsDatabasesDocumentsPatchCall { + c.urlParams_.Set("currentDocument.exists", fmt.Sprint(currentDocumentExists)) + return c +} + +// CurrentDocumentUpdateTime sets the optional parameter +// "currentDocument.updateTime": When set, the target document must +// exist and have been last updated at +// that time. +func (c *ProjectsDatabasesDocumentsPatchCall) CurrentDocumentUpdateTime(currentDocumentUpdateTime string) *ProjectsDatabasesDocumentsPatchCall { + c.urlParams_.Set("currentDocument.updateTime", currentDocumentUpdateTime) + return c +} + +// MaskFieldPaths sets the optional parameter "mask.fieldPaths": The +// list of field paths in the mask. See Document.fields for a field +// path syntax reference. +func (c *ProjectsDatabasesDocumentsPatchCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsPatchCall { + c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) + return c +} + +// UpdateMaskFieldPaths sets the optional parameter +// "updateMask.fieldPaths": The list of field paths in the mask. See +// Document.fields for a field +// path syntax reference. +func (c *ProjectsDatabasesDocumentsPatchCall) UpdateMaskFieldPaths(updateMaskFieldPaths ...string) *ProjectsDatabasesDocumentsPatchCall { + c.urlParams_.SetMulti("updateMask.fieldPaths", append([]string{}, updateMaskFieldPaths...)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsPatchCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsPatchCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.document) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.patch" call. +// Exactly one of *Document or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Document.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsPatchCall) Do(opts ...googleapi.CallOption) (*Document, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Document{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates or inserts a document.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", + // "httpMethod": "PATCH", + // "id": "firestore.projects.databases.documents.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "currentDocument.exists": { + // "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", + // "location": "query", + // "type": "boolean" + // }, + // "currentDocument.updateTime": { + // "description": "When set, the target document must exist and have been last updated at\nthat time.", + // "format": "google-datetime", + // "location": "query", + // "type": "string" + // }, + // "mask.fieldPaths": { + // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + // "location": "query", + // "repeated": true, + // "type": "string" + // }, + // "name": { + // "description": "The resource name of the document, for example\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // }, + // "updateMask.fieldPaths": { + // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", + // "location": "query", + // "repeated": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+name}", + // "request": { + // "$ref": "Document" + // }, + // "response": { + // "$ref": "Document" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.rollback": + +type ProjectsDatabasesDocumentsRollbackCall struct { + s *Service + database string + rollbackrequest *RollbackRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Rollback: Rolls back a transaction. +func (r *ProjectsDatabasesDocumentsService) Rollback(database string, rollbackrequest *RollbackRequest) *ProjectsDatabasesDocumentsRollbackCall { + c := &ProjectsDatabasesDocumentsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.rollbackrequest = rollbackrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsRollbackCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsRollbackCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsRollbackCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsRollbackCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsRollbackCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsRollbackCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbackrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:rollback") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.rollback" call. +// Exactly one of *Empty or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Empty.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsDatabasesDocumentsRollbackCall) Do(opts ...googleapi.CallOption) (*Empty, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Empty{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Rolls back a transaction.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:rollback", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.rollback", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:rollback", + // "request": { + // "$ref": "RollbackRequest" + // }, + // "response": { + // "$ref": "Empty" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.runQuery": + +type ProjectsDatabasesDocumentsRunQueryCall struct { + s *Service + parent string + runqueryrequest *RunQueryRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RunQuery: Runs a query. +func (r *ProjectsDatabasesDocumentsService) RunQuery(parent string, runqueryrequest *RunQueryRequest) *ProjectsDatabasesDocumentsRunQueryCall { + c := &ProjectsDatabasesDocumentsRunQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.runqueryrequest = runqueryrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsRunQueryCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsRunQueryCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsRunQueryCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsRunQueryCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsRunQueryCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsRunQueryCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.runqueryrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:runQuery") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.runQuery" call. +// Exactly one of *RunQueryResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *RunQueryResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsRunQueryCall) Do(opts ...googleapi.CallOption) (*RunQueryResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &RunQueryResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Runs a query.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.runQuery", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+parent}:runQuery", + // "request": { + // "$ref": "RunQueryRequest" + // }, + // "response": { + // "$ref": "RunQueryResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.documents.write": + +type ProjectsDatabasesDocumentsWriteCall struct { + s *Service + database string + writerequest *WriteRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Write: Streams batches of document updates and deletes, in order. +func (r *ProjectsDatabasesDocumentsService) Write(database string, writerequest *WriteRequest) *ProjectsDatabasesDocumentsWriteCall { + c := &ProjectsDatabasesDocumentsWriteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.database = database + c.writerequest = writerequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesDocumentsWriteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsWriteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesDocumentsWriteCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsWriteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesDocumentsWriteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesDocumentsWriteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.writerequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:write") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "database": c.database, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.documents.write" call. +// Exactly one of *WriteResponse or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *WriteResponse.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesDocumentsWriteCall) Do(opts ...googleapi.CallOption) (*WriteResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &WriteResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Streams batches of document updates and deletes, in order.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:write", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.documents.write", + // "parameterOrder": [ + // "database" + // ], + // "parameters": { + // "database": { + // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.\nThis is only required in the first message.", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+database}/documents:write", + // "request": { + // "$ref": "WriteRequest" + // }, + // "response": { + // "$ref": "WriteResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.indexes.create": + +type ProjectsDatabasesIndexesCreateCall struct { + s *Service + parent string + index *Index + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates the specified index. +// A newly created index's initial state is `CREATING`. On completion of +// the +// returned google.longrunning.Operation, the state will be `READY`. +// If the index already exists, the call will return an +// `ALREADY_EXISTS` +// status. +// +// During creation, the process could result in an error, in which case +// the +// index will move to the `ERROR` state. The process can be recovered +// by +// fixing the data that caused the error, removing the index +// with +// delete, then re-creating the index with +// create. +// +// Indexes with a single field cannot be created. +func (r *ProjectsDatabasesIndexesService) Create(parent string, index *Index) *ProjectsDatabasesIndexesCreateCall { + c := &ProjectsDatabasesIndexesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.index = index + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesIndexesCreateCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesIndexesCreateCall) Context(ctx context.Context) *ProjectsDatabasesIndexesCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesIndexesCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesIndexesCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.index) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/indexes") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.indexes.create" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsDatabasesIndexesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates the specified index.\nA newly created index's initial state is `CREATING`. On completion of the\nreturned google.longrunning.Operation, the state will be `READY`.\nIf the index already exists, the call will return an `ALREADY_EXISTS`\nstatus.\n\nDuring creation, the process could result in an error, in which case the\nindex will move to the `ERROR` state. The process can be recovered by\nfixing the data that caused the error, removing the index with\ndelete, then re-creating the index with\ncreate.\n\nIndexes with a single field cannot be created.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", + // "httpMethod": "POST", + // "id": "firestore.projects.databases.indexes.create", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The name of the database this index will apply to. For example:\n`projects/{project_id}/databases/{database_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+parent}/indexes", + // "request": { + // "$ref": "Index" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.indexes.delete": + +type ProjectsDatabasesIndexesDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an index. +func (r *ProjectsDatabasesIndexesService) Delete(name string) *ProjectsDatabasesIndexesDeleteCall { + c := &ProjectsDatabasesIndexesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesIndexesDeleteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesIndexesDeleteCall) Context(ctx context.Context) *ProjectsDatabasesIndexesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesIndexesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesIndexesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.indexes.delete" call. +// Exactly one of *Empty or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Empty.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsDatabasesIndexesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Empty{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes an index.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", + // "httpMethod": "DELETE", + // "id": "firestore.projects.databases.indexes.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The index name. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+name}", + // "response": { + // "$ref": "Empty" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.indexes.get": + +type ProjectsDatabasesIndexesGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets an index. +func (r *ProjectsDatabasesIndexesService) Get(name string) *ProjectsDatabasesIndexesGetCall { + c := &ProjectsDatabasesIndexesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesIndexesGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsDatabasesIndexesGetCall) IfNoneMatch(entityTag string) *ProjectsDatabasesIndexesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesIndexesGetCall) Context(ctx context.Context) *ProjectsDatabasesIndexesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesIndexesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesIndexesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.indexes.get" call. +// Exactly one of *Index or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Index.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsDatabasesIndexesGetCall) Do(opts ...googleapi.CallOption) (*Index, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Index{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets an index.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", + // "httpMethod": "GET", + // "id": "firestore.projects.databases.indexes.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The name of the index. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+name}", + // "response": { + // "$ref": "Index" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// method id "firestore.projects.databases.indexes.list": + +type ProjectsDatabasesIndexesListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the indexes that match the specified filters. +func (r *ProjectsDatabasesIndexesService) List(parent string) *ProjectsDatabasesIndexesListCall { + c := &ProjectsDatabasesIndexesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": +func (c *ProjectsDatabasesIndexesListCall) Filter(filter string) *ProjectsDatabasesIndexesListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// PageSize sets the optional parameter "pageSize": The standard List +// page size. +func (c *ProjectsDatabasesIndexesListCall) PageSize(pageSize int64) *ProjectsDatabasesIndexesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The standard List +// page token. +func (c *ProjectsDatabasesIndexesListCall) PageToken(pageToken string) *ProjectsDatabasesIndexesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsDatabasesIndexesListCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsDatabasesIndexesListCall) IfNoneMatch(entityTag string) *ProjectsDatabasesIndexesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsDatabasesIndexesListCall) Context(ctx context.Context) *ProjectsDatabasesIndexesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsDatabasesIndexesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsDatabasesIndexesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/indexes") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firestore.projects.databases.indexes.list" call. +// Exactly one of *ListIndexesResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListIndexesResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsDatabasesIndexesListCall) Do(opts ...googleapi.CallOption) (*ListIndexesResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListIndexesResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists the indexes that match the specified filters.", + // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", + // "httpMethod": "GET", + // "id": "firestore.projects.databases.indexes.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "filter": { + // "location": "query", + // "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" + // }, + // "parent": { + // "description": "The database name. For example:\n`projects/{project_id}/databases/{database_id}`", + // "location": "path", + // "pattern": "^projects/[^/]+/databases/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta1/{+parent}/indexes", + // "response": { + // "$ref": "ListIndexesResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/datastore" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsDatabasesIndexesListCall) Pages(ctx context.Context, f func(*ListIndexesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} diff --git a/vendor/google.golang.org/api/genomics/v1/genomics-api.json b/vendor/google.golang.org/api/genomics/v1/genomics-api.json index 0f24c5863..0feff9500 100644 --- a/vendor/google.golang.org/api/genomics/v1/genomics-api.json +++ b/vendor/google.golang.org/api/genomics/v1/genomics-api.json @@ -1,27 +1,41 @@ { - "rootUrl": "https://genomics.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "genomics", - "batchPath": "batch", - "documentationLink": "https://cloud.google.com/genomics", - "revision": "20170928", - "id": "genomics:v1", - "title": "Genomics API", "discoveryVersion": "v1", "ownerName": "Google", "resources": { "callsets": { "methods": { + "create": { + "request": { + "$ref": "CallSet" + }, + "description": "Creates a new call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": {}, + "flatPath": "v1/callsets", + "path": "v1/callsets", + "id": "genomics.callsets.create" + }, "delete": { "description": "Deletes a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ "callSetId" ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "parameters": { "callSetId": { "location": "path", @@ -30,59 +44,55 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], "flatPath": "v1/callsets/{callSetId}", - "path": "v1/callsets/{callSetId}", - "id": "genomics.callsets.delete" + "id": "genomics.callsets.delete", + "path": "v1/callsets/{callSetId}" }, "search": { - "path": "v1/callsets/search", - "id": "genomics.callsets.search", - "description": "Gets a list of call sets matching the criteria.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).", "request": { "$ref": "SearchCallSetsRequest" }, - "httpMethod": "POST", - "parameterOrder": [], + "description": "Gets a list of call sets matching the criteria.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).", "response": { "$ref": "SearchCallSetsResponse" }, - "parameters": {}, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "flatPath": "v1/callsets/search" + "parameters": {}, + "flatPath": "v1/callsets/search", + "id": "genomics.callsets.search", + "path": "v1/callsets/search" }, "get": { - "response": { - "$ref": "CallSet" - }, + "description": "Gets a call set by ID.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "httpMethod": "GET", "parameterOrder": [ "callSetId" ], - "httpMethod": "GET", + "response": { + "$ref": "CallSet" + }, + "parameters": { + "callSetId": { + "description": "The ID of the call set.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "parameters": { - "callSetId": { - "location": "path", - "description": "The ID of the call set.", - "type": "string", - "required": true - } - }, "flatPath": "v1/callsets/{callSetId}", - "id": "genomics.callsets.get", "path": "v1/callsets/{callSetId}", - "description": "Gets a call set by ID.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + "id": "genomics.callsets.get" }, "patch": { "description": "Updates a call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.", @@ -98,16 +108,16 @@ "httpMethod": "PATCH", "parameters": { "callSetId": { + "location": "path", "description": "The ID of the call set to be updated.", "type": "string", - "required": true, - "location": "path" + "required": true }, "updateMask": { - "location": "query", "format": "google-fieldmask", "description": "An optional mask specifying which fields to update. At this time, the only\nmutable field is name. The only\nacceptable value is \"name\". If unspecified, all mutable fields will be\nupdated.", - "type": "string" + "type": "string", + "location": "query" } }, "scopes": [ @@ -117,25 +127,6 @@ "flatPath": "v1/callsets/{callSetId}", "id": "genomics.callsets.patch", "path": "v1/callsets/{callSetId}" - }, - "create": { - "path": "v1/callsets", - "id": "genomics.callsets.create", - "request": { - "$ref": "CallSet" - }, - "description": "Creates a new call set.\n\nFor the definitions of call sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "CallSet" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": {}, - "flatPath": "v1/callsets" } } }, @@ -147,69 +138,135 @@ "response": { "$ref": "SearchReadsResponse" }, - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], + "parameters": {}, "flatPath": "v1/reads/search", "path": "v1/reads/search", "id": "genomics.reads.search", - "description": "Gets a list of reads for one or more read group sets.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nReads search operates over a genomic coordinate space of reference sequence\n& position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).", "request": { "$ref": "SearchReadsRequest" - } + }, + "description": "Gets a list of reads for one or more read group sets.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nReads search operates over a genomic coordinate space of reference sequence\n& position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85)." } } }, "readgroupsets": { + "resources": { + "coveragebuckets": { + "methods": { + "list": { + "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.", + "response": { + "$ref": "ListCoverageBucketsResponse" + }, + "parameterOrder": [ + "readGroupSetId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 2048.", + "type": "integer", + "location": "query" + }, + "start": { + "format": "int64", + "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified. Defaults to 0.", + "type": "string", + "location": "query" + }, + "targetBucketWidth": { + "format": "int64", + "description": "The desired width of each reported coverage bucket in base pairs. This\nwill be rounded down to the nearest precomputed bucket width; the value\nof which is returned as `bucketWidth` in the response. Defaults\nto infinity (each bucket spans an entire reference sequence) or the length\nof the target range, if specified. The smallest precomputed\n`bucketWidth` is currently 2048 base pairs; this is subject to\nchange.", + "type": "string", + "location": "query" + }, + "readGroupSetId": { + "location": "path", + "description": "Required. The ID of the read group set over which coverage is requested.", + "type": "string", + "required": true + }, + "referenceName": { + "location": "query", + "description": "The name of the reference to query, within the reference set associated\nwith this query. Optional.", + "type": "string" + }, + "end": { + "location": "query", + "format": "int64", + "description": "The end position of the range on the reference, 0-based exclusive. If\nspecified, `referenceName` must also be specified. If unset or 0, defaults\nto the length of the reference.", + "type": "string" + } + }, + "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets", + "id": "genomics.readgroupsets.coveragebuckets.list", + "path": "v1/readgroupsets/{readGroupSetId}/coveragebuckets" + } + } + } + }, "methods": { - "import": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/devstorage.read_write", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": {}, - "flatPath": "v1/readgroupsets:import", - "path": "v1/readgroupsets:import", - "id": "genomics.readgroupsets.import", - "request": { - "$ref": "ImportReadGroupSetsRequest" - }, - "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)" - }, "delete": { - "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ "readGroupSetId" ], + "httpMethod": "DELETE", + "parameters": { + "readGroupSetId": { + "description": "The ID of the read group set to be deleted. The caller must have WRITE\npermissions to the dataset associated with this read group set.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "parameters": { - "readGroupSetId": { - "location": "path", - "description": "The ID of the read group set to be deleted. The caller must have WRITE\npermissions to the dataset associated with this read group set.", - "type": "string", - "required": true - } - }, "flatPath": "v1/readgroupsets/{readGroupSetId}", - "path": "v1/readgroupsets/{readGroupSetId}", "id": "genomics.readgroupsets.delete", + "path": "v1/readgroupsets/{readGroupSetId}", "description": "Deletes a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" }, + "import": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Operation" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/readgroupsets:import", + "path": "v1/readgroupsets:import", + "id": "genomics.readgroupsets.import", + "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)", + "request": { + "$ref": "ImportReadGroupSetsRequest" + } + }, "export": { "httpMethod": "POST", "parameterOrder": [ @@ -240,28 +297,26 @@ } }, "search": { + "request": { + "$ref": "SearchReadGroupSetsRequest" + }, + "description": "Searches for read group sets matching the criteria.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).", "response": { "$ref": "SearchReadGroupSetsResponse" }, "parameterOrder": [], "httpMethod": "POST", - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], + "parameters": {}, "flatPath": "v1/readgroupsets/search", "id": "genomics.readgroupsets.search", - "path": "v1/readgroupsets/search", - "description": "Searches for read group sets matching the criteria.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).", - "request": { - "$ref": "SearchReadGroupSetsRequest" - } + "path": "v1/readgroupsets/search" }, "get": { - "id": "genomics.readgroupsets.get", - "path": "v1/readgroupsets/{readGroupSetId}", "description": "Gets a read group set by ID.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "response": { "$ref": "ReadGroupSet" @@ -283,13 +338,17 @@ "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "flatPath": "v1/readgroupsets/{readGroupSetId}" + "flatPath": "v1/readgroupsets/{readGroupSetId}", + "id": "genomics.readgroupsets.get", + "path": "v1/readgroupsets/{readGroupSetId}" }, "patch": { - "description": "Updates a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.", + "path": "v1/readgroupsets/{readGroupSetId}", + "id": "genomics.readgroupsets.patch", "request": { "$ref": "ReadGroupSet" }, + "description": "Updates a read group set.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics.", "httpMethod": "PATCH", "parameterOrder": [ "readGroupSetId" @@ -297,12 +356,16 @@ "response": { "$ref": "ReadGroupSet" }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "parameters": { "readGroupSetId": { + "location": "path", "description": "The ID of the read group set to be updated. The caller must have WRITE\npermissions to the dataset associated with this read group set.", "type": "string", - "required": true, - "location": "path" + "required": true }, "updateMask": { "location": "query", @@ -311,79 +374,135 @@ "type": "string" } }, + "flatPath": "v1/readgroupsets/{readGroupSetId}" + } + } + }, + "annotationsets": { + "methods": { + "delete": { + "path": "v1/annotationsets/{annotationSetId}", + "id": "genomics.annotationsets.delete", + "description": "Deletes an annotation set. Caller must have WRITE permission\nfor the associated annotation set.", + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "annotationSetId" + ], + "parameters": { + "annotationSetId": { + "description": "The ID of the annotation set to be deleted.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1/readgroupsets/{readGroupSetId}", - "path": "v1/readgroupsets/{readGroupSetId}", - "id": "genomics.readgroupsets.patch" - } - }, - "resources": { - "coveragebuckets": { - "methods": { - "list": { - "response": { - "$ref": "ListCoverageBucketsResponse" - }, - "parameterOrder": [ - "readGroupSetId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], - "parameters": { - "start": { - "format": "int64", - "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified. Defaults to 0.", - "type": "string", - "location": "query" - }, - "readGroupSetId": { - "description": "Required. The ID of the read group set over which coverage is requested.", - "type": "string", - "required": true, - "location": "path" - }, - "targetBucketWidth": { - "format": "int64", - "description": "The desired width of each reported coverage bucket in base pairs. This\nwill be rounded down to the nearest precomputed bucket width; the value\nof which is returned as `bucketWidth` in the response. Defaults\nto infinity (each bucket spans an entire reference sequence) or the length\nof the target range, if specified. The smallest precomputed\n`bucketWidth` is currently 2048 base pairs; this is subject to\nchange.", - "type": "string", - "location": "query" - }, - "referenceName": { - "description": "The name of the reference to query, within the reference set associated\nwith this query. Optional.", - "type": "string", - "location": "query" - }, - "end": { - "location": "query", - "format": "int64", - "description": "The end position of the range on the reference, 0-based exclusive. If\nspecified, `referenceName` must also be specified. If unset or 0, defaults\nto the length of the reference.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 2048.", - "type": "integer" - } - }, - "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets", - "id": "genomics.readgroupsets.coveragebuckets.list", - "path": "v1/readgroupsets/{readGroupSetId}/coveragebuckets", - "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nFor the definitions of read group sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset." + "flatPath": "v1/annotationsets/{annotationSetId}" + }, + "search": { + "description": "Searches for annotation sets that match the given criteria. Annotation sets\nare returned in an unspecified order. This order is consistent, such that\ntwo queries for the same content (regardless of page size) yield annotation\nsets in the same order across their respective streams of paginated\nresponses. Caller must have READ permission for the queried datasets.", + "request": { + "$ref": "SearchAnnotationSetsRequest" + }, + "response": { + "$ref": "SearchAnnotationSetsResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], + "flatPath": "v1/annotationsets/search", + "id": "genomics.annotationsets.search", + "path": "v1/annotationsets/search" + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "annotationSetId" + ], + "response": { + "$ref": "AnnotationSet" + }, + "parameters": { + "annotationSetId": { + "description": "The ID of the annotation set to be retrieved.", + "type": "string", + "required": true, + "location": "path" } - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], + "flatPath": "v1/annotationsets/{annotationSetId}", + "path": "v1/annotationsets/{annotationSetId}", + "id": "genomics.annotationsets.get", + "description": "Gets an annotation set. Caller must have READ permission for\nthe associated dataset." + }, + "update": { + "response": { + "$ref": "AnnotationSet" + }, + "parameterOrder": [ + "annotationSetId" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": { + "annotationSetId": { + "location": "path", + "description": "The ID of the annotation set to be updated.", + "type": "string", + "required": true + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nsource_uri, and\ninfo. If unspecified, all\nmutable fields will be updated.", + "type": "string" + } + }, + "flatPath": "v1/annotationsets/{annotationSetId}", + "id": "genomics.annotationsets.update", + "path": "v1/annotationsets/{annotationSetId}", + "request": { + "$ref": "AnnotationSet" + }, + "description": "Updates an annotation set. The update must respect all mutability\nrestrictions and other invariants described on the annotation set resource.\nCaller must have WRITE permission for the associated dataset." + }, + "create": { + "description": "Creates a new annotation set. Caller must have WRITE permission for the\nassociated dataset.\n\nThe following fields are required:\n\n * datasetId\n * referenceSetId\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field).", + "request": { + "$ref": "AnnotationSet" + }, + "response": { + "$ref": "AnnotationSet" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/annotationsets", + "id": "genomics.annotationsets.create", + "path": "v1/annotationsets" } } }, @@ -409,6 +528,25 @@ "parameters": {}, "flatPath": "v1/variants:import" }, + "merge": { + "id": "genomics.variants.merge", + "path": "v1/variants:merge", + "description": "Merges the given variants with existing variants.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method! It is easy to introduce\nmistakes in existing variants and difficult to back out of them. For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n // Existing variant - irrelevant fields trimmed for clarity\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 0,\n 1\n ],\n }\n ]\n }\n\n // New variant with conflicting call information\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 1,\n 1\n ],\n }\n ]\n }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 1,\n 1\n ],\n }\n ]\n }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.", + "request": { + "$ref": "MergeVariantsRequest" + }, + "response": { + "$ref": "Empty" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/variants:merge" + }, "delete": { "httpMethod": "DELETE", "parameterOrder": [ @@ -434,63 +572,44 @@ "id": "genomics.variants.delete", "description": "Deletes a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" }, - "merge": { - "httpMethod": "POST", - "parameterOrder": [], + "create": { "response": { - "$ref": "Empty" + "$ref": "Variant" }, + "parameterOrder": [], + "httpMethod": "POST", "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1/variants:merge", - "path": "v1/variants:merge", - "id": "genomics.variants.merge", - "description": "Merges the given variants with existing variants.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method! It is easy to introduce\nmistakes in existing variants and difficult to back out of them. For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n // Existing variant - irrelevant fields trimmed for clarity\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 0,\n 1\n ],\n }\n ]\n }\n\n // New variant with conflicting call information\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 1,\n 1\n ],\n }\n ]\n }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n {\n \"variantSetId\": \"10473108253681171589\",\n \"referenceName\": \"1\",\n \"start\": \"10582\",\n \"referenceBases\": \"G\",\n \"alternateBases\": [\n \"A\"\n ],\n \"calls\": [\n {\n \"callSetId\": \"10473108253681171589-0\",\n \"callSetName\": \"CALLSET0\",\n \"genotype\": [\n 1,\n 1\n ],\n }\n ]\n }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.", + "flatPath": "v1/variants", + "id": "genomics.variants.create", + "path": "v1/variants", + "description": "Creates a new variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "request": { - "$ref": "MergeVariantsRequest" + "$ref": "Variant" } }, - "create": { - "path": "v1/variants", - "id": "genomics.variants.create", - "request": { - "$ref": "Variant" - }, - "description": "Creates a new variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Variant" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": {}, - "flatPath": "v1/variants" - }, "search": { + "description": "Gets a list of variants matching the criteria.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).", + "request": { + "$ref": "SearchVariantsRequest" + }, "httpMethod": "POST", "parameterOrder": [], "response": { "$ref": "SearchVariantsResponse" }, + "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "parameters": {}, "flatPath": "v1/variants/search", "path": "v1/variants/search", - "id": "genomics.variants.search", - "request": { - "$ref": "SearchVariantsRequest" - }, - "description": "Gets a list of variants matching the criteria.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126)." + "id": "genomics.variants.search" }, "get": { "response": { @@ -500,6 +619,11 @@ "variantId" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], "parameters": { "variantId": { "location": "path", @@ -508,17 +632,16 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], "flatPath": "v1/variants/{variantId}", "id": "genomics.variants.get", "path": "v1/variants/{variantId}", "description": "Gets a variant by ID.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" }, "patch": { + "description": "Updates a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.", + "request": { + "$ref": "Variant" + }, "httpMethod": "PATCH", "parameterOrder": [ "variantId" @@ -528,16 +651,16 @@ }, "parameters": { "updateMask": { + "location": "query", "format": "google-fieldmask", "description": "An optional mask specifying which fields to update. At this time, mutable\nfields are names and\ninfo. Acceptable values are \"names\" and\n\"info\". If unspecified, all mutable fields will be updated.", - "type": "string", - "location": "query" + "type": "string" }, "variantId": { + "location": "path", "description": "The ID of the variant to be updated.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ @@ -546,198 +669,63 @@ ], "flatPath": "v1/variants/{variantId}", "path": "v1/variants/{variantId}", - "id": "genomics.variants.patch", - "description": "Updates a variant.\n\nFor the definitions of variants and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.", - "request": { - "$ref": "Variant" - } - } - } - }, - "annotationsets": { - "methods": { - "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "annotationSetId" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": { - "annotationSetId": { - "location": "path", - "description": "The ID of the annotation set to be deleted.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/annotationsets/{annotationSetId}", - "path": "v1/annotationsets/{annotationSetId}", - "id": "genomics.annotationsets.delete", - "description": "Deletes an annotation set. Caller must have WRITE permission\nfor the associated annotation set." - }, - "search": { - "path": "v1/annotationsets/search", - "id": "genomics.annotationsets.search", - "description": "Searches for annotation sets that match the given criteria. Annotation sets\nare returned in an unspecified order. This order is consistent, such that\ntwo queries for the same content (regardless of page size) yield annotation\nsets in the same order across their respective streams of paginated\nresponses. Caller must have READ permission for the queried datasets.", - "request": { - "$ref": "SearchAnnotationSetsRequest" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "SearchAnnotationSetsResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], - "flatPath": "v1/annotationsets/search" - }, - "get": { - "response": { - "$ref": "AnnotationSet" - }, - "parameterOrder": [ - "annotationSetId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], - "parameters": { - "annotationSetId": { - "description": "The ID of the annotation set to be retrieved.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/annotationsets/{annotationSetId}", - "id": "genomics.annotationsets.get", - "path": "v1/annotationsets/{annotationSetId}", - "description": "Gets an annotation set. Caller must have READ permission for\nthe associated dataset." - }, - "update": { - "httpMethod": "PUT", - "parameterOrder": [ - "annotationSetId" - ], - "response": { - "$ref": "AnnotationSet" - }, - "parameters": { - "annotationSetId": { - "location": "path", - "description": "The ID of the annotation set to be updated.", - "type": "string", - "required": true - }, - "updateMask": { - "format": "google-fieldmask", - "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nsource_uri, and\ninfo. If unspecified, all\nmutable fields will be updated.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/annotationsets/{annotationSetId}", - "path": "v1/annotationsets/{annotationSetId}", - "id": "genomics.annotationsets.update", - "description": "Updates an annotation set. The update must respect all mutability\nrestrictions and other invariants described on the annotation set resource.\nCaller must have WRITE permission for the associated dataset.", - "request": { - "$ref": "AnnotationSet" - } - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "AnnotationSet" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/annotationsets", - "path": "v1/annotationsets", - "id": "genomics.annotationsets.create", - "description": "Creates a new annotation set. Caller must have WRITE permission for the\nassociated dataset.\n\nThe following fields are required:\n\n * datasetId\n * referenceSetId\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field).", - "request": { - "$ref": "AnnotationSet" - } + "id": "genomics.variants.patch" } } }, "references": { "methods": { "search": { - "httpMethod": "POST", - "parameterOrder": [], + "id": "genomics.references.search", + "path": "v1/references/search", + "request": { + "$ref": "SearchReferencesRequest" + }, + "description": "Searches for references which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).", "response": { "$ref": "SearchReferencesResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], "parameters": {}, - "flatPath": "v1/references/search", - "path": "v1/references/search", - "id": "genomics.references.search", - "request": { - "$ref": "SearchReferencesRequest" - }, - "description": "Searches for references which match the given criteria.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146)." + "flatPath": "v1/references/search" }, "get": { - "path": "v1/references/{referenceId}", - "id": "genomics.references.get", "description": "Gets a reference.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).", - "httpMethod": "GET", "response": { "$ref": "Reference" }, + "httpMethod": "GET", "parameterOrder": [ "referenceId" ], - "parameters": { - "referenceId": { - "description": "The ID of the reference.", - "type": "string", - "required": true, - "location": "path" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "flatPath": "v1/references/{referenceId}" + "parameters": { + "referenceId": { + "location": "path", + "description": "The ID of the reference.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/references/{referenceId}", + "id": "genomics.references.get", + "path": "v1/references/{referenceId}" } }, "resources": { "bases": { "methods": { "list": { - "id": "genomics.references.bases.list", - "path": "v1/references/{referenceId}/bases", - "description": "Lists the bases in a reference, optionally restricted to a range.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).", "response": { "$ref": "ListBasesResponse" }, @@ -746,24 +734,6 @@ ], "httpMethod": "GET", "parameters": { - "start": { - "format": "int64", - "description": "The start position (0-based) of this query. Defaults to 0.", - "type": "string", - "location": "query" - }, - "referenceId": { - "description": "The ID of the reference.", - "type": "string", - "required": true, - "location": "path" - }, - "end": { - "location": "query", - "format": "int64", - "description": "The end position (0-based, exclusive) of this query. Defaults to the length\nof this reference.", - "type": "string" - }, "pageToken": { "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", "type": "string", @@ -774,6 +744,24 @@ "description": "The maximum number of bases to return in a single page. If unspecified,\ndefaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base\npairs).", "type": "integer", "location": "query" + }, + "start": { + "location": "query", + "format": "int64", + "description": "The start position (0-based) of this query. Defaults to 0.", + "type": "string" + }, + "referenceId": { + "location": "path", + "description": "The ID of the reference.", + "type": "string", + "required": true + }, + "end": { + "format": "int64", + "description": "The end position (0-based, exclusive) of this query. Defaults to the length\nof this reference.", + "type": "string", + "location": "query" } }, "scopes": [ @@ -781,7 +769,10 @@ "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "flatPath": "v1/references/{referenceId}/bases" + "flatPath": "v1/references/{referenceId}/bases", + "id": "genomics.references.bases.list", + "path": "v1/references/{referenceId}/bases", + "description": "Lists the bases in a reference, optionally restricted to a range.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221)." } } } @@ -789,6 +780,35 @@ }, "datasets": { "methods": { + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "pattern": "^datasets/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/datasets/{datasetsId}:testIamPermissions", + "id": "genomics.datasets.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions" + }, "delete": { "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "httpMethod": "DELETE", @@ -798,34 +818,28 @@ "parameterOrder": [ "datasetId" ], + "parameters": { + "datasetId": { + "description": "The ID of the dataset to be deleted.", + "type": "string", + "required": true, + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "parameters": { - "datasetId": { - "location": "path", - "description": "The ID of the dataset to be deleted.", - "type": "string", - "required": true - } - }, "flatPath": "v1/datasets/{datasetId}", "path": "v1/datasets/{datasetId}", "id": "genomics.datasets.delete" }, "list": { - "description": "Lists datasets within a project.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "httpMethod": "GET", + "parameterOrder": [], "response": { "$ref": "ListDatasetsResponse" }, - "parameterOrder": [], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], "parameters": { "pageToken": { "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", @@ -833,19 +847,44 @@ "location": "query" }, "pageSize": { + "location": "query", "format": "int32", "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 50. The maximum value is 1024.", - "type": "integer", - "location": "query" + "type": "integer" }, "projectId": { - "location": "query", "description": "Required. The Google Cloud project ID to list datasets for.", - "type": "string" + "type": "string", + "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], "flatPath": "v1/datasets", + "path": "v1/datasets", "id": "genomics.datasets.list", + "description": "Lists datasets within a project.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + }, + "create": { + "request": { + "$ref": "Dataset" + }, + "description": "Creates a new dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "response": { + "$ref": "Dataset" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": {}, + "flatPath": "v1/datasets", + "id": "genomics.datasets.create", "path": "v1/datasets" }, "setIamPolicy": { @@ -856,10 +895,6 @@ "resource" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], "parameters": { "resource": { "pattern": "^datasets/[^/]+$", @@ -869,41 +904,32 @@ "required": true } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "flatPath": "v1/datasets/{datasetsId}:setIamPolicy", "id": "genomics.datasets.setIamPolicy", "path": "v1/{+resource}:setIamPolicy", + "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.", "request": { "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information." - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Dataset" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": {}, - "flatPath": "v1/datasets", - "path": "v1/datasets", - "id": "genomics.datasets.create", - "request": { - "$ref": "Dataset" - }, - "description": "Creates a new dataset.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + } }, "getIamPolicy": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], + "id": "genomics.datasets.getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "response": { "$ref": "Policy" }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" @@ -917,67 +943,7 @@ "required": true } }, - "flatPath": "v1/datasets/{datasetsId}:getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "id": "genomics.datasets.getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" - }, - "get": { - "response": { - "$ref": "Dataset" - }, - "parameterOrder": [ - "datasetId" - ], - "httpMethod": "GET", - "parameters": { - "datasetId": { - "description": "The ID of the dataset.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], - "flatPath": "v1/datasets/{datasetId}", - "id": "genomics.datasets.get", - "path": "v1/datasets/{datasetId}", - "description": "Gets a dataset by ID.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" - }, - "undelete": { - "response": { - "$ref": "Dataset" - }, - "parameterOrder": [ - "datasetId" - ], - "httpMethod": "POST", - "parameters": { - "datasetId": { - "location": "path", - "description": "The ID of the dataset to be undeleted.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/datasets/{datasetId}:undelete", - "id": "genomics.datasets.undelete", - "path": "v1/datasets/{datasetId}:undelete", - "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis operation is only possible for a week after the deletion occurred.", - "request": { - "$ref": "UndeleteDatasetRequest" - } + "flatPath": "v1/datasets/{datasetsId}:getIamPolicy" }, "patch": { "id": "genomics.datasets.patch", @@ -1013,235 +979,67 @@ }, "flatPath": "v1/datasets/{datasetId}" }, - "testIamPermissions": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": { - "resource": { - "pattern": "^datasets/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/datasets/{datasetsId}:testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "id": "genomics.datasets.testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" - } - } - }, - "variantsets": { - "methods": { - "create": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "VariantSet" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/variantsets", - "path": "v1/variantsets", - "id": "genomics.variantsets.create", - "description": "Creates a new variant set.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.", - "request": { - "$ref": "VariantSet" - } - }, - "export": { - "httpMethod": "POST", - "parameterOrder": [ - "variantSetId" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "variantSetId": { - "description": "Required. The ID of the variant set that contains variant data which\nshould be exported. The caller must have READ access to this variant set.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/bigquery", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/variantsets/{variantSetId}:export", - "path": "v1/variantsets/{variantSetId}:export", - "id": "genomics.variantsets.export", - "description": "Exports variant set data to an external destination.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "request": { - "$ref": "ExportVariantSetRequest" - } - }, - "search": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "SearchVariantSetsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics", - "https://www.googleapis.com/auth/genomics.readonly" - ], - "parameters": {}, - "flatPath": "v1/variantsets/search", - "path": "v1/variantsets/search", - "id": "genomics.variantsets.search", - "request": { - "$ref": "SearchVariantSetsRequest" - }, - "description": "Returns a list of all variant sets matching search criteria.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49)." - }, "get": { - "httpMethod": "GET", - "parameterOrder": [ - "variantSetId" - ], + "description": "Gets a dataset by ID.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "response": { - "$ref": "VariantSet" + "$ref": "Dataset" }, + "parameterOrder": [ + "datasetId" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], "parameters": { - "variantSetId": { - "description": "Required. The ID of the variant set.", + "datasetId": { + "location": "path", + "description": "The ID of the dataset.", "type": "string", - "required": true, - "location": "path" + "required": true } }, - "flatPath": "v1/variantsets/{variantSetId}", - "path": "v1/variantsets/{variantSetId}", - "id": "genomics.variantsets.get", - "description": "Gets a variant set by ID.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + "flatPath": "v1/datasets/{datasetId}", + "id": "genomics.datasets.get", + "path": "v1/datasets/{datasetId}" }, - "patch": { - "description": "Updates a variant set using patch semantics.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "undelete": { + "response": { + "$ref": "Dataset" + }, + "parameterOrder": [ + "datasetId" + ], + "httpMethod": "POST", + "parameters": { + "datasetId": { + "location": "path", + "description": "The ID of the dataset to be undeleted.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/datasets/{datasetId}:undelete", + "id": "genomics.datasets.undelete", + "path": "v1/datasets/{datasetId}:undelete", + "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nFor the definitions of datasets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThis operation is only possible for a week after the deletion occurred.", "request": { - "$ref": "VariantSet" - }, - "response": { - "$ref": "VariantSet" - }, - "parameterOrder": [ - "variantSetId" - ], - "httpMethod": "PATCH", - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "An optional mask specifying which fields to update. Supported fields:\n\n* metadata.\n* name.\n* description.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.", - "type": "string" - }, - "variantSetId": { - "location": "path", - "description": "The ID of the variant to be updated (must already exist).", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/variantsets/{variantSetId}", - "id": "genomics.variantsets.patch", - "path": "v1/variantsets/{variantSetId}" - }, - "delete": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "variantSetId" - ], - "httpMethod": "DELETE", - "parameters": { - "variantSetId": { - "location": "path", - "description": "The ID of the variant set to be deleted.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/variantsets/{variantSetId}", - "id": "genomics.variantsets.delete", - "path": "v1/variantsets/{variantSetId}", - "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + "$ref": "UndeleteDatasetRequest" + } } } }, "annotations": { "methods": { - "create": { - "path": "v1/annotations", - "id": "genomics.annotations.create", - "description": "Creates a new annotation. Caller must have WRITE permission\nfor the associated annotation set.\n\nThe following fields are required:\n\n* annotationSetId\n* referenceName or\n referenceId\n\n### Transcripts\n\nFor annotations of type TRANSCRIPT, the following fields of\ntranscript must be provided:\n\n* exons.start\n* exons.end\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field). The annotated\nrange must be no longer than 100Mbp (mega base pairs). See the\nAnnotation resource\nfor additional restrictions on each field.", - "request": { - "$ref": "Annotation" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Annotation" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/annotations" - }, - "batchCreate": { - "path": "v1/annotations:batchCreate", - "id": "genomics.annotations.batchCreate", - "description": "Creates one or more new annotations atomically. All annotations must\nbelong to the same annotation set. Caller must have WRITE\npermission for this annotation set. For optimal performance, batch\npositionally adjacent annotations together.\n\nIf the request has a systemic issue, such as an attempt to write to\nan inaccessible annotation set, the entire RPC will fail accordingly. For\nlesser data issues, when possible an error will be isolated to the\ncorresponding batch entry in the response; the remaining well formed\nannotations will be created normally.\n\nFor details on the requirements for each individual annotation resource,\nsee\nCreateAnnotation.", - "request": { - "$ref": "BatchCreateAnnotationsRequest" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "BatchCreateAnnotationsResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "flatPath": "v1/annotations:batchCreate" - }, "search": { + "path": "v1/annotations/search", + "id": "genomics.annotations.search", "description": "Searches for annotations that match the given criteria. Results are\nordered by genomic coordinate (by reference sequence, then position).\nAnnotations with equivalent genomic coordinates are returned in an\nunspecified order. This order is consistent, such that two queries for the\nsame content (regardless of page size) yield annotations in the same order\nacross their respective streams of paginated responses. Caller must have\nREAD permission for the queried annotation sets.", "request": { "$ref": "SearchAnnotationsRequest" @@ -1257,37 +1055,37 @@ "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "flatPath": "v1/annotations/search", - "path": "v1/annotations/search", - "id": "genomics.annotations.search" + "flatPath": "v1/annotations/search" }, "get": { - "path": "v1/annotations/{annotationId}", - "id": "genomics.annotations.get", "description": "Gets an annotation. Caller must have READ permission\nfor the associated annotation set.", "httpMethod": "GET", + "response": { + "$ref": "Annotation" + }, "parameterOrder": [ "annotationId" ], - "response": { - "$ref": "Annotation" + "parameters": { + "annotationId": { + "description": "The ID of the annotation to be retrieved.", + "type": "string", + "required": true, + "location": "path" + } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", "https://www.googleapis.com/auth/genomics.readonly" ], - "parameters": { - "annotationId": { - "location": "path", - "description": "The ID of the annotation to be retrieved.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/annotations/{annotationId}" + "flatPath": "v1/annotations/{annotationId}", + "path": "v1/annotations/{annotationId}", + "id": "genomics.annotations.get" }, "update": { + "id": "genomics.annotations.update", + "path": "v1/annotations/{annotationId}", "request": { "$ref": "Annotation" }, @@ -1304,53 +1102,252 @@ "https://www.googleapis.com/auth/genomics" ], "parameters": { + "annotationId": { + "location": "path", + "description": "The ID of the annotation to be updated.", + "type": "string", + "required": true + }, "updateMask": { - "location": "query", "format": "google-fieldmask", "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nvariant,\ntranscript, and\ninfo. If unspecified, all mutable\nfields will be updated.", - "type": "string" - }, + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/annotations/{annotationId}" + }, + "delete": { + "description": "Deletes an annotation. Caller must have WRITE permission for\nthe associated annotation set.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "annotationId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": { "annotationId": { - "description": "The ID of the annotation to be updated.", + "description": "The ID of the annotation to be deleted.", "type": "string", "required": true, "location": "path" } }, "flatPath": "v1/annotations/{annotationId}", - "id": "genomics.annotations.update", + "id": "genomics.annotations.delete", "path": "v1/annotations/{annotationId}" }, - "delete": { - "httpMethod": "DELETE", + "create": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Annotation" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/annotations", + "path": "v1/annotations", + "id": "genomics.annotations.create", + "description": "Creates a new annotation. Caller must have WRITE permission\nfor the associated annotation set.\n\nThe following fields are required:\n\n* annotationSetId\n* referenceName or\n referenceId\n\n### Transcripts\n\nFor annotations of type TRANSCRIPT, the following fields of\ntranscript must be provided:\n\n* exons.start\n* exons.end\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field). The annotated\nrange must be no longer than 100Mbp (mega base pairs). See the\nAnnotation resource\nfor additional restrictions on each field.", + "request": { + "$ref": "Annotation" + } + }, + "batchCreate": { + "path": "v1/annotations:batchCreate", + "id": "genomics.annotations.batchCreate", + "request": { + "$ref": "BatchCreateAnnotationsRequest" + }, + "description": "Creates one or more new annotations atomically. All annotations must\nbelong to the same annotation set. Caller must have WRITE\npermission for this annotation set. For optimal performance, batch\npositionally adjacent annotations together.\n\nIf the request has a systemic issue, such as an attempt to write to\nan inaccessible annotation set, the entire RPC will fail accordingly. For\nlesser data issues, when possible an error will be isolated to the\ncorresponding batch entry in the response; the remaining well formed\nannotations will be created normally.\n\nFor details on the requirements for each individual annotation resource,\nsee\nCreateAnnotation.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "BatchCreateAnnotationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": {}, + "flatPath": "v1/annotations:batchCreate" + } + } + }, + "variantsets": { + "methods": { + "create": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": {}, + "flatPath": "v1/variantsets", + "path": "v1/variantsets", + "id": "genomics.variantsets.create", + "request": { + "$ref": "VariantSet" + }, + "description": "Creates a new variant set.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server." + }, + "export": { + "response": { + "$ref": "Operation" + }, "parameterOrder": [ - "annotationId" + "variantSetId" + ], + "httpMethod": "POST", + "parameters": { + "variantSetId": { + "location": "path", + "description": "Required. The ID of the variant set that contains variant data which\nshould be exported. The caller must have READ access to this variant set.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "flatPath": "v1/variantsets/{variantSetId}:export", + "id": "genomics.variantsets.export", + "path": "v1/variantsets/{variantSetId}:export", + "description": "Exports variant set data to an external destination.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "request": { + "$ref": "ExportVariantSetRequest" + } + }, + "search": { + "id": "genomics.variantsets.search", + "path": "v1/variantsets/search", + "description": "Returns a list of all variant sets matching search criteria.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).", + "request": { + "$ref": "SearchVariantSetsRequest" + }, + "response": { + "$ref": "SearchVariantSetsResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], + "flatPath": "v1/variantsets/search" + }, + "get": { + "description": "Gets a variant set by ID.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "httpMethod": "GET", + "parameterOrder": [ + "variantSetId" ], "response": { - "$ref": "Empty" + "$ref": "VariantSet" }, "parameters": { - "annotationId": { + "variantSetId": { "location": "path", - "description": "The ID of the annotation to be deleted.", + "description": "Required. The ID of the variant set.", "type": "string", "required": true } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ], + "flatPath": "v1/variantsets/{variantSetId}", + "path": "v1/variantsets/{variantSetId}", + "id": "genomics.variantsets.get" + }, + "patch": { + "response": { + "$ref": "VariantSet" + }, + "parameterOrder": [ + "variantSetId" + ], + "httpMethod": "PATCH", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1/annotations/{annotationId}", - "path": "v1/annotations/{annotationId}", - "id": "genomics.annotations.delete", - "description": "Deletes an annotation. Caller must have WRITE permission for\nthe associated annotation set." + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "An optional mask specifying which fields to update. Supported fields:\n\n* metadata.\n* name.\n* description.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.", + "type": "string" + }, + "variantSetId": { + "location": "path", + "description": "The ID of the variant to be updated (must already exist).", + "type": "string", + "required": true + } + }, + "flatPath": "v1/variantsets/{variantSetId}", + "id": "genomics.variantsets.patch", + "path": "v1/variantsets/{variantSetId}", + "request": { + "$ref": "VariantSet" + }, + "description": "Updates a variant set using patch semantics.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)" + }, + "delete": { + "id": "genomics.variantsets.delete", + "path": "v1/variantsets/{variantSetId}", + "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.\n\nFor the definitions of variant sets and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "variantSetId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": { + "variantSetId": { + "location": "path", + "description": "The ID of the variant set to be deleted.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/variantsets/{variantSetId}" } } }, "operations": { "methods": { "cancel": { + "path": "v1/{+name}:cancel", + "id": "genomics.operations.cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation.", "httpMethod": "POST", "parameterOrder": [ "name" @@ -1358,44 +1355,38 @@ "response": { "$ref": "Empty" }, - "parameters": { - "name": { - "pattern": "^operations/.+$", - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1/operations/{operationsId}:cancel", - "path": "v1/{+name}:cancel", - "id": "genomics.operations.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. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation.", - "request": { - "$ref": "CancelOperationRequest" - } - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], "parameters": { "name": { - "description": "The name of the operation resource.", + "description": "The name of the operation resource to be cancelled.", "type": "string", "required": true, "pattern": "^operations/.+$", "location": "path" } }, + "flatPath": "v1/operations/{operationsId}:cancel" + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "pattern": "^operations/.+$", + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" @@ -1406,26 +1397,25 @@ "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." }, "list": { - "description": "Lists operations that match the specified filter in the request.", - "response": { - "$ref": "ListOperationsResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "name" ], - "httpMethod": "GET", + "response": { + "$ref": "ListOperationsResponse" + }, "parameters": { "pageToken": { + "location": "query", "description": "The standard list page token.", - "type": "string", - "location": "query" + "type": "string" }, "name": { - "pattern": "^operations$", - "location": "path", "description": "The name of the operation's parent resource.", "type": "string", - "required": true + "required": true, + "pattern": "^operations$", + "location": "path" }, "pageSize": { "location": "query", @@ -1444,8 +1434,9 @@ "https://www.googleapis.com/auth/genomics" ], "flatPath": "v1/operations", + "path": "v1/{+name}", "id": "genomics.operations.list", - "path": "v1/{+name}" + "description": "Lists operations that match the specified filter in the request." } } }, @@ -1456,11 +1447,11 @@ "request": { "$ref": "SearchReferenceSetsRequest" }, + "httpMethod": "POST", + "parameterOrder": [], "response": { "$ref": "SearchReferenceSetsResponse" }, - "parameterOrder": [], - "httpMethod": "POST", "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -1468,17 +1459,20 @@ "https://www.googleapis.com/auth/genomics.readonly" ], "flatPath": "v1/referencesets/search", - "id": "genomics.referencesets.search", - "path": "v1/referencesets/search" + "path": "v1/referencesets/search", + "id": "genomics.referencesets.search" }, "get": { - "parameterOrder": [ - "referenceSetId" - ], - "httpMethod": "GET", + "id": "genomics.referencesets.get", + "path": "v1/referencesets/{referenceSetId}", + "description": "Gets a reference set.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).", "response": { "$ref": "ReferenceSet" }, + "httpMethod": "GET", + "parameterOrder": [ + "referenceSetId" + ], "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics", @@ -1492,46 +1486,12 @@ "location": "path" } }, - "flatPath": "v1/referencesets/{referenceSetId}", - "id": "genomics.referencesets.get", - "path": "v1/referencesets/{referenceSetId}", - "description": "Gets a reference set.\n\nFor the definitions of references and other genomics resources, see\n[Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83)." + "flatPath": "v1/referencesets/{referenceSetId}" } } } }, "parameters": { - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", @@ -1554,30 +1514,24 @@ "location": "query" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" }, "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -1585,11 +1539,1097 @@ ], "location": "query", "description": "Data format for response.", - "default": "json" + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "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.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" } }, "schemas": { + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + } + }, + "id": "Status" + }, + "Binding": { + "properties": { + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" + }, + "UndeleteDatasetRequest": { + "properties": {}, + "id": "UndeleteDatasetRequest", + "type": "object" + }, + "Range": { + "properties": { + "referenceName": { + "description": "The reference sequence name, for example `chr1`,\n`1`, or `chrX`.", + "type": "string" + }, + "start": { + "format": "int64", + "description": "The start position of the range on the reference, 0-based inclusive.", + "type": "string" + }, + "end": { + "format": "int64", + "description": "The end position of the range on the reference, 0-based exclusive.", + "type": "string" + } + }, + "id": "Range", + "description": "A 0-based half-open genomic coordinate range for search requests.", + "type": "object" + }, + "VariantSet": { + "properties": { + "description": { + "description": "A textual description of this variant set.", + "type": "string" + }, + "datasetId": { + "description": "The dataset to which this variant set belongs.", + "type": "string" + }, + "name": { + "description": "User-specified, mutable name.", + "type": "string" + }, + "referenceSetId": { + "description": "The reference set to which the variant set is mapped. The reference set\ndescribes the alignment provenance of the variant set, while the\n`referenceBounds` describe the shape of the actual variant data. The\nreference set's reference names are a superset of those found in the\n`referenceBounds`.\n\nFor example, given a variant set that is mapped to the GRCh38 reference set\nand contains a single variant on reference 'X', `referenceBounds` would\ncontain only an entry for 'X', while the associated reference set\nenumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.", + "type": "string" + }, + "metadata": { + "description": "The metadata associated with this variant set.", + "items": { + "$ref": "VariantSetMetadata" + }, + "type": "array" + }, + "referenceBounds": { + "description": "A list of all references used by the variants in a variant set\nwith associated coordinate upper bounds for each one.", + "items": { + "$ref": "ReferenceBound" + }, + "type": "array" + }, + "id": { + "description": "The server-generated variant set ID, unique across all variant sets.", + "type": "string" + } + }, + "id": "VariantSet", + "description": "A variant set is a collection of call sets and variants. It contains summary\nstatistics of those contents. A variant set belongs to a dataset.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "type": "object" + }, + "ReferenceBound": { + "properties": { + "referenceName": { + "description": "The name of the reference associated with this reference bound.", + "type": "string" + }, + "upperBound": { + "format": "int64", + "description": "An upper bound (inclusive) on the starting coordinate of any\nvariant in the reference sequence.", + "type": "string" + } + }, + "id": "ReferenceBound", + "description": "ReferenceBound records an upper bound for the starting coordinate of\nvariants in a particular reference.", + "type": "object" + }, + "BatchCreateAnnotationsResponse": { + "properties": { + "entries": { + "description": "The resulting per-annotation entries, ordered consistently with the\noriginal request.", + "items": { + "$ref": "Entry" + }, + "type": "array" + } + }, + "id": "BatchCreateAnnotationsResponse", + "type": "object" + }, + "SearchCallSetsResponse": { + "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, + "callSets": { + "description": "The list of matching call sets.", + "items": { + "$ref": "CallSet" + }, + "type": "array" + } + }, + "id": "SearchCallSetsResponse", + "description": "The call set search response.", + "type": "object" + }, + "Variant": { + "description": "A variant represents a change in DNA sequence relative to a reference\nsequence. For example, a variant could represent a SNP or an insertion.\nVariants belong to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach of the calls on a variant represent a determination of genotype with\nrespect to that variant. For example, a call might assign probability of 0.32\nto the occurrence of a SNP named rs1234 in a sample named NA12345. A call\nbelongs to a call set, which contains related calls typically from one\nsample.", + "type": "object", + "properties": { + "quality": { + "format": "double", + "description": "A measure of how likely this variant is to be real.\nA higher value is better.", + "type": "number" + }, + "id": { + "description": "The server-generated variant ID, unique across all variants.", + "type": "string" + }, + "variantSetId": { + "description": "The ID of the variant set this variant belongs to.", + "type": "string" + }, + "referenceName": { + "description": "The reference on which this variant occurs.\n(such as `chr20` or `X`)", + "type": "string" + }, + "info": { + "additionalProperties": { + "items": { + "type": "any" + }, + "type": "array" + }, + "description": "A map of additional variant information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", + "type": "object" + }, + "referenceBases": { + "description": "The reference bases for this variant. They start at the given\nposition.", + "type": "string" + }, + "names": { + "description": "Names for the variant, for example a RefSNP ID.", + "items": { + "type": "string" + }, + "type": "array" + }, + "alternateBases": { + "description": "The bases that appear instead of the reference bases.", + "items": { + "type": "string" + }, + "type": "array" + }, + "filter": { + "description": "A list of filters (normally quality filters) this variant has failed.\n`PASS` indicates this variant has passed all filters.", + "items": { + "type": "string" + }, + "type": "array" + }, + "end": { + "format": "int64", + "description": "The end position (0-based) of this variant. This corresponds to the first\nbase after the last base in the reference allele. So, the length of\nthe reference allele is (end - start). This is useful for variants\nthat don't explicitly give alternate bases, for example large deletions.", + "type": "string" + }, + "calls": { + "description": "The variant calls for this particular variant. Each one represents the\ndetermination of genotype with respect to this variant.", + "items": { + "$ref": "VariantCall" + }, + "type": "array" + }, + "created": { + "format": "int64", + "description": "The date this variant was created, in milliseconds from the epoch.", + "type": "string" + }, + "start": { + "format": "int64", + "description": "The position at which this variant occurs (0-based).\nThis corresponds to the first base of the string of reference bases.", + "type": "string" + } + }, + "id": "Variant" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", + "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" + } + }, + "id": "ListOperationsResponse" + }, + "OperationMetadata": { + "description": "Metadata describing an Operation.", + "type": "object", + "properties": { + "clientId": { + "description": "This field is deprecated. Use `labels` instead. Optionally provided by the\ncaller when submitting the request that creates the operation.", + "type": "string" + }, + "events": { + "description": "Optional event messages that were generated during the job's execution.\nThis also contains any warnings that were generated during import\nor export.", + "items": { + "$ref": "OperationEvent" + }, + "type": "array" + }, + "endTime": { + "format": "google-datetime", + "description": "The time at which the job stopped running.", + "type": "string" + }, + "startTime": { + "format": "google-datetime", + "description": "The time at which the job began to run.", + "type": "string" + }, + "request": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The original request that started the operation. Note that this will be in\ncurrent version of the API. If the operation was started with v1beta2 API\nand a GetOperation is performed on v1 API, a v1 request will be returned.", + "type": "object" + }, + "runtimeMetadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Runtime metadata on this Operation.", + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optionally provided by the caller when submitting the request that creates\nthe operation.", + "type": "object" + }, + "createTime": { + "format": "google-datetime", + "description": "The time at which the job was submitted to the Genomics service.", + "type": "string" + }, + "projectId": { + "description": "The Google Cloud Project in which the job is scoped.", + "type": "string" + } + }, + "id": "OperationMetadata" + }, + "SearchVariantsRequest": { + "properties": { + "maxCalls": { + "format": "int32", + "description": "The maximum number of calls to return in a single page. Note that this\nlimit may be exceeded in the event that a matching variant contains more\ncalls than the requested maximum. If unspecified, defaults to 5000. The\nmaximum value is 10000.", + "type": "integer" + }, + "pageToken": { + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of variants to return in a single page. If unspecified,\ndefaults to 5000. The maximum value is 10000.", + "type": "integer" + }, + "callSetIds": { + "description": "Only return variant calls which belong to call sets with these ids.\nLeaving this blank returns all variant calls. If a variant has no\ncalls belonging to any of these call sets, it won't be returned at all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "variantName": { + "description": "Only return variants which have exactly this name.", + "type": "string" + }, + "start": { + "format": "int64", + "description": "The beginning of the window (0-based, inclusive) for which\noverlapping variants should be returned. If unspecified, defaults to 0.", + "type": "string" + }, + "referenceName": { + "description": "Required. Only return variants in this reference sequence.", + "type": "string" + }, + "variantSetIds": { + "description": "At most one variant set ID must be provided. Only variants from this\nvariant set will be returned. If omitted, a call set id must be included in\nthe request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "end": { + "format": "int64", + "description": "The end of the window, 0-based exclusive. If unspecified or 0, defaults to\nthe length of the reference.", + "type": "string" + } + }, + "id": "SearchVariantsRequest", + "description": "The variant search request.", + "type": "object" + }, + "SearchReadGroupSetsRequest": { + "properties": { + "datasetIds": { + "description": "Restricts this query to read group sets within the given datasets. At least\none ID must be provided.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pageToken": { + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "name": { + "description": "Only return read group sets for which a substring of the name matches this\nstring.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 1024.", + "type": "integer" + } + }, + "id": "SearchReadGroupSetsRequest", + "description": "The read group set search request.", + "type": "object" + }, + "SearchAnnotationsResponse": { + "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, + "annotations": { + "description": "The matching annotations.", + "items": { + "$ref": "Annotation" + }, + "type": "array" + } + }, + "id": "SearchAnnotationsResponse", + "type": "object" + }, + "SearchReadsResponse": { + "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, + "alignments": { + "description": "The list of matching alignments sorted by mapped genomic coordinate,\nif any, ascending in position within the same reference. Unmapped reads,\nwhich have no position, are returned contiguously and are sorted in\nascending lexicographic order by fragment name.", + "items": { + "$ref": "Read" + }, + "type": "array" + } + }, + "id": "SearchReadsResponse", + "description": "The read search response.", + "type": "object" + }, + "ClinicalCondition": { + "type": "object", + "properties": { + "conceptId": { + "description": "The MedGen concept id associated with this gene.\nSearch for these IDs at http://www.ncbi.nlm.nih.gov/medgen/", + "type": "string" + }, + "names": { + "description": "A set of names for the condition.", + "items": { + "type": "string" + }, + "type": "array" + }, + "omimId": { + "description": "The OMIM id for this condition.\nSearch for these IDs at http://omim.org/", + "type": "string" + }, + "externalIds": { + "description": "The set of external IDs for this condition.", + "items": { + "$ref": "ExternalId" + }, + "type": "array" + } + }, + "id": "ClinicalCondition" + }, + "Program": { + "properties": { + "name": { + "description": "The display name of the program. This is typically the colloquial name of\nthe tool used, for example 'bwa' or 'picard'.", + "type": "string" + }, + "prevProgramId": { + "description": "The ID of the program run before this one.", + "type": "string" + }, + "commandLine": { + "description": "The command line used to run this program.", + "type": "string" + }, + "version": { + "description": "The version of the program run.", + "type": "string" + }, + "id": { + "description": "The user specified locally unique ID of the program. Used along with\n`prevProgramId` to define an ordering between programs.", + "type": "string" + } + }, + "id": "Program", + "type": "object" + }, + "ComputeEngine": { + "properties": { + "diskNames": { + "description": "The names of the disks that were created for this pipeline.", + "items": { + "type": "string" + }, + "type": "array" + }, + "machineType": { + "description": "The machine type of the instance.", + "type": "string" + }, + "instanceName": { + "description": "The instance on which the operation is running.", + "type": "string" + }, + "zone": { + "description": "The availability zone in which the instance resides.", + "type": "string" + } + }, + "id": "ComputeEngine", + "description": "Describes a Compute Engine resource that is being managed by a running\npipeline.", + "type": "object" + }, + "CoverageBucket": { + "properties": { + "meanCoverage": { + "format": "float", + "description": "The average number of reads which are aligned to each individual\nreference base in this bucket.", + "type": "number" + }, + "range": { + "description": "The genomic coordinate range spanned by this bucket.", + "$ref": "Range" + } + }, + "id": "CoverageBucket", + "description": "A bucket over which read coverage has been precomputed. A bucket corresponds\nto a specific range of the reference sequence.", + "type": "object" + }, + "ExternalId": { + "properties": { + "id": { + "description": "The id used by the source of this data.", + "type": "string" + }, + "sourceName": { + "description": "The name of the source of this data.", + "type": "string" + } + }, + "id": "ExternalId", + "type": "object" + }, + "SearchVariantSetsRequest": { + "description": "The search variant sets request.", + "type": "object", + "properties": { + "pageToken": { + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024.", + "type": "integer" + }, + "datasetIds": { + "description": "Exactly one dataset ID must be provided here. Only variant sets which\nbelong to this dataset will be returned.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "SearchVariantSetsRequest" + }, + "VariantSetMetadata": { + "description": "Metadata describes a single piece of variant call metadata.\nThese data include a top level key and either a single value string (value)\nor a list of key-value pairs (info.)\nValue and info are mutually exclusive.", + "type": "object", + "properties": { + "info": { + "additionalProperties": { + "items": { + "type": "any" + }, + "type": "array" + }, + "description": "Remaining structured metadata key-value pairs. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "INTEGER", + "FLOAT", + "FLAG", + "CHARACTER", + "STRING" + ], + "description": "The type of data. Possible types include: Integer, Float,\nFlag, Character, and String.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "value": { + "description": "The value field for simple metadata", + "type": "string" + }, + "id": { + "description": "User-provided ID field, not enforced by this API.\nTwo or more pieces of structured metadata with identical\nid and key fields are considered equivalent.", + "type": "string" + }, + "number": { + "description": "The number of values that can be included in a field described by this\nmetadata.", + "type": "string" + }, + "key": { + "description": "The top-level key.", + "type": "string" + }, + "description": { + "description": "A textual description of this metadata.", + "type": "string" + } + }, + "id": "VariantSetMetadata" + }, + "Reference": { + "description": "A reference is a canonical assembled DNA sequence, intended to act as a\nreference coordinate space for other genomic annotations. A single reference\nmight represent the human chromosome 1 or mitochandrial DNA, for instance. A\nreference belongs to one or more reference sets.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "type": "object", + "properties": { + "name": { + "description": "The name of this reference, for example `22`.", + "type": "string" + }, + "md5checksum": { + "description": "MD5 of the upper-case sequence excluding all whitespace characters (this\nis equivalent to SQ:M5 in SAM). This value is represented in lower case\nhexadecimal format.", + "type": "string" + }, + "id": { + "description": "The server-generated reference ID, unique across all references.", + "type": "string" + }, + "length": { + "format": "int64", + "description": "The length of this reference's sequence.", + "type": "string" + }, + "sourceAccessions": { + "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `GCF_000001405.26`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceUri": { + "description": "The URI from which the sequence was obtained. Typically specifies a FASTA\nformat file.", + "type": "string" + }, + "ncbiTaxonId": { + "format": "int32", + "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.", + "type": "integer" + } + }, + "id": "Reference" + }, + "SearchReferenceSetsRequest": { + "properties": { + "pageToken": { + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "accessions": { + "description": "If present, return reference sets for which a prefix of any of\nsourceAccessions\nmatch any of these strings. Accession numbers typically have a main number\nand a version, for example `NC_000001.11`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 4096.", + "type": "integer" + }, + "assemblyId": { + "description": "If present, return reference sets for which a substring of their\n`assemblyId` matches this string (case insensitive).", + "type": "string" + }, + "md5checksums": { + "description": "If present, return reference sets for which the\nmd5checksum matches exactly.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "SearchReferenceSetsRequest", + "type": "object" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + } + }, + "id": "SetIamPolicyRequest" + }, + "MergeVariantsRequest": { + "properties": { + "variants": { + "description": "The variants to be merged with existing variants.", + "items": { + "$ref": "Variant" + }, + "type": "array" + }, + "infoMergeConfig": { + "additionalProperties": { + "enum": [ + "INFO_MERGE_OPERATION_UNSPECIFIED", + "IGNORE_NEW", + "MOVE_TO_CALLS" + ], + "type": "string" + }, + "description": "A mapping between info field keys and the InfoMergeOperations to\nbe performed on them.", + "type": "object" + }, + "variantSetId": { + "description": "The destination variant set.", + "type": "string" + } + }, + "id": "MergeVariantsRequest", + "type": "object" + }, + "BatchCreateAnnotationsRequest": { + "type": "object", + "properties": { + "requestId": { + "description": "A unique request ID which enables the server to detect duplicated requests.\nIf provided, duplicated requests will result in the same response; if not\nprovided, duplicated requests may result in duplicated data. For a given\nannotation set, callers should not reuse `request_id`s when writing\ndifferent batches of annotations - behavior in this case is undefined.\nA common approach is to use a UUID. For batch jobs where worker crashes are\na possibility, consider using some unique variant of a worker or run ID.", + "type": "string" + }, + "annotations": { + "description": "The annotations to be created. At most 4096 can be specified in a single\nrequest.", + "items": { + "$ref": "Annotation" + }, + "type": "array" + } + }, + "id": "BatchCreateAnnotationsRequest" + }, + "Read": { + "properties": { + "supplementaryAlignment": { + "description": "Whether this alignment is supplementary. Equivalent to SAM flag 0x800.\nSupplementary alignments are used in the representation of a chimeric\nalignment. In a chimeric alignment, a read is split into multiple\nlinear alignments that map to different reference contigs. The first\nlinear alignment in the read will be designated as the representative\nalignment; the remaining linear alignments will be designated as\nsupplementary alignments. These alignments may have different mapping\nquality scores. In each linear alignment in a chimeric alignment, the read\nwill be hard clipped. The `alignedSequence` and\n`alignedQuality` fields in the alignment record will only\nrepresent the bases for its respective linear alignment.", + "type": "boolean" + }, + "properPlacement": { + "description": "The orientation and the distance between reads from the fragment are\nconsistent with the sequencing protocol (SAM flag 0x2).", + "type": "boolean" + }, + "fragmentLength": { + "format": "int32", + "description": "The observed length of the fragment, equivalent to TLEN in SAM.", + "type": "integer" + }, + "failedVendorQualityChecks": { + "description": "Whether this read did not pass filters, such as platform or vendor quality\ncontrols (SAM flag 0x200).", + "type": "boolean" + }, + "alignedQuality": { + "description": "The quality of the read sequence contained in this alignment record\n(equivalent to QUAL in SAM).\n`alignedSequence` and `alignedQuality` may be shorter than the full read\nsequence and quality. This will occur if the alignment is part of a\nchimeric alignment, or if the read was trimmed. When this occurs, the CIGAR\nfor this read will begin/end with a hard clip operator that will indicate\nthe length of the excised sequence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "alignment": { + "$ref": "LinearAlignment", + "description": "The linear alignment for this alignment record. This field is null for\nunmapped reads." + }, + "numberReads": { + "format": "int32", + "description": "The number of reads in the fragment (extension to SAM flag 0x1).", + "type": "integer" + }, + "id": { + "description": "The server-generated read ID, unique across all reads. This is different\nfrom the `fragmentName`.", + "type": "string" + }, + "secondaryAlignment": { + "description": "Whether this alignment is secondary. Equivalent to SAM flag 0x100.\nA secondary alignment represents an alternative to the primary alignment\nfor this read. Aligners may return secondary alignments if a read can map\nambiguously to multiple coordinates in the genome. By convention, each read\nhas one and only one alignment where both `secondaryAlignment`\nand `supplementaryAlignment` are false.", + "type": "boolean" + }, + "fragmentName": { + "description": "The fragment name. Equivalent to QNAME (query template name) in SAM.", + "type": "string" + }, + "readGroupSetId": { + "description": "The ID of the read group set this read belongs to. A read belongs to\nexactly one read group set.", + "type": "string" + }, + "duplicateFragment": { + "description": "The fragment is a PCR or optical duplicate (SAM flag 0x400).", + "type": "boolean" + }, + "readNumber": { + "format": "int32", + "description": "The read number in sequencing. 0-based and less than numberReads. This\nfield replaces SAM flag 0x40 and 0x80.", + "type": "integer" + }, + "readGroupId": { + "description": "The ID of the read group this read belongs to. A read belongs to exactly\none read group. This is a server-generated ID which is distinct from SAM's\nRG tag (for that value, see\nReadGroup.name).", + "type": "string" + }, + "alignedSequence": { + "description": "The bases of the read sequence contained in this alignment record,\n**without CIGAR operations applied** (equivalent to SEQ in SAM).\n`alignedSequence` and `alignedQuality` may be\nshorter than the full read sequence and quality. This will occur if the\nalignment is part of a chimeric alignment, or if the read was trimmed. When\nthis occurs, the CIGAR for this read will begin/end with a hard clip\noperator that will indicate the length of the excised sequence.", + "type": "string" + }, + "info": { + "additionalProperties": { + "items": { + "type": "any" + }, + "type": "array" + }, + "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", + "type": "object" + }, + "nextMatePosition": { + "description": "The mapping of the primary alignment of the\n`(readNumber+1)%numberReads` read in the fragment. It replaces\nmate position and mate strand in SAM.", + "$ref": "Position" + } + }, + "id": "Read", + "description": "A read alignment describes a linear alignment of a string of DNA to a\nreference sequence, in addition to metadata\nabout the fragment (the molecule of DNA sequenced) and the read (the bases\nwhich were read by the sequencer). A read is equivalent to a line in a SAM\nfile. A read belongs to exactly one read group and exactly one\nread group set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\n### Reverse-stranded reads\n\nMapped reads (reads having a non-null `alignment`) can be aligned to either\nthe forward or the reverse strand of their associated reference. Strandedness\nof a mapped read is encoded by `alignment.position.reverseStrand`.\n\nIf we consider the reference to be a forward-stranded coordinate space of\n`[0, reference.length)` with `0` as the left-most position and\n`reference.length` as the right-most position, reads are always aligned left\nto right. That is, `alignment.position.position` always refers to the\nleft-most reference coordinate and `alignment.cigar` describes the alignment\nof this read to the reference from left to right. All per-base fields such as\n`alignedSequence` and `alignedQuality` share this same left-to-right\norientation; this is true of reads which are aligned to either strand. For\nreverse-stranded reads, this means that `alignedSequence` is the reverse\ncomplement of the bases that were originally reported by the sequencing\nmachine.\n\n### Generating a reference-aligned sequence string\n\nWhen interacting with mapped reads, it's often useful to produce a string\nrepresenting the local alignment of the read to reference. The following\npseudocode demonstrates one way of doing this:\n\n out = \"\"\n offset = 0\n for c in read.alignment.cigar {\n switch c.operation {\n case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\":\n out += read.alignedSequence[offset:offset+c.operationLength]\n offset += c.operationLength\n break\n case \"CLIP_SOFT\", \"INSERT\":\n offset += c.operationLength\n break\n case \"PAD\":\n out += repeat(\"*\", c.operationLength)\n break\n case \"DELETE\":\n out += repeat(\"-\", c.operationLength)\n break\n case \"SKIP\":\n out += repeat(\" \", c.operationLength)\n break\n case \"CLIP_HARD\":\n break\n }\n }\n return out\n\n### Converting to SAM's CIGAR string\n\nThe following pseudocode generates a SAM CIGAR string from the\n`cigar` field. Note that this is a lossy conversion\n(`cigar.referenceSequence` is lost).\n\n cigarMap = {\n \"ALIGNMENT_MATCH\": \"M\",\n \"INSERT\": \"I\",\n \"DELETE\": \"D\",\n \"SKIP\": \"N\",\n \"CLIP_SOFT\": \"S\",\n \"CLIP_HARD\": \"H\",\n \"PAD\": \"P\",\n \"SEQUENCE_MATCH\": \"=\",\n \"SEQUENCE_MISMATCH\": \"X\",\n }\n cigarStr = \"\"\n for c in read.alignment.cigar {\n cigarStr += c.operationLength + cigarMap[c.operation]\n }\n return cigarStr", + "type": "object" + }, + "ReferenceSet": { + "description": "A reference set is a set of references which typically comprise a reference\nassembly for a species, such as `GRCh38` which is representative\nof the human genome. A reference set defines a common coordinate space for\ncomparing reference-aligned experimental data. A reference set contains 1 or\nmore references.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "type": "object", + "properties": { + "sourceAccessions": { + "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `NC_000001.11`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "Free text description of this reference set.", + "type": "string" + }, + "sourceUri": { + "description": "The URI from which the references were obtained.", + "type": "string" + }, + "ncbiTaxonId": { + "format": "int32", + "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)\nindicating the species which this reference set is intended to model. Note\nthat contained references may specify a different `ncbiTaxonId`, as\nassemblies may contain reference sequences which do not belong to the\nmodeled species, for example EBV in a human reference genome.", + "type": "integer" + }, + "referenceIds": { + "description": "The IDs of the reference objects that are part of this set.\n`Reference.md5checksum` must be unique within this set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "assemblyId": { + "description": "Public id of this reference set, such as `GRCh37`.", + "type": "string" + }, + "md5checksum": { + "description": "Order-independent MD5 checksum which identifies this reference set. The\nchecksum is computed by sorting all lower case hexidecimal string\n`reference.md5checksum` (for all reference in this set) in\nascending lexicographic order, concatenating, and taking the MD5 of that\nvalue. The resulting value is represented in lower case hexadecimal format.", + "type": "string" + }, + "id": { + "description": "The server-generated reference set ID, unique across all reference sets.", + "type": "string" + } + }, + "id": "ReferenceSet" + }, + "CigarUnit": { + "description": "A single CIGAR operation.", + "type": "object", + "properties": { + "operationLength": { + "format": "int64", + "description": "The number of genomic bases that the operation runs for. Required.", + "type": "string" + }, + "operation": { + "enumDescriptions": [ + "", + "An alignment match indicates that a sequence can be aligned to the\nreference without evidence of an INDEL. Unlike the\n`SEQUENCE_MATCH` and `SEQUENCE_MISMATCH` operators,\nthe `ALIGNMENT_MATCH` operator does not indicate whether the\nreference and read sequences are an exact match. This operator is\nequivalent to SAM's `M`.", + "The insert operator indicates that the read contains evidence of bases\nbeing inserted into the reference. This operator is equivalent to SAM's\n`I`.", + "The delete operator indicates that the read contains evidence of bases\nbeing deleted from the reference. This operator is equivalent to SAM's\n`D`.", + "The skip operator indicates that this read skips a long segment of the\nreference, but the bases have not been deleted. This operator is commonly\nused when working with RNA-seq data, where reads may skip long segments\nof the reference between exons. This operator is equivalent to SAM's\n`N`.", + "The soft clip operator indicates that bases at the start/end of a read\nhave not been considered during alignment. This may occur if the majority\nof a read maps, except for low quality bases at the start/end of a read.\nThis operator is equivalent to SAM's `S`. Bases that are soft\nclipped will still be stored in the read.", + "The hard clip operator indicates that bases at the start/end of a read\nhave been omitted from this alignment. This may occur if this linear\nalignment is part of a chimeric alignment, or if the read has been\ntrimmed (for example, during error correction or to trim poly-A tails for\nRNA-seq). This operator is equivalent to SAM's `H`.", + "The pad operator indicates that there is padding in an alignment. This\noperator is equivalent to SAM's `P`.", + "This operator indicates that this portion of the aligned sequence exactly\nmatches the reference. This operator is equivalent to SAM's `=`.", + "This operator indicates that this portion of the aligned sequence is an\nalignment match to the reference, but a sequence mismatch. This can\nindicate a SNP or a read error. This operator is equivalent to SAM's\n`X`." + ], + "enum": [ + "OPERATION_UNSPECIFIED", + "ALIGNMENT_MATCH", + "INSERT", + "DELETE", + "SKIP", + "CLIP_SOFT", + "CLIP_HARD", + "PAD", + "SEQUENCE_MATCH", + "SEQUENCE_MISMATCH" + ], + "type": "string" + }, + "referenceSequence": { + "description": "`referenceSequence` is only used at mismatches\n(`SEQUENCE_MISMATCH`) and deletions (`DELETE`).\nFilling this field replaces SAM's MD tag. If the relevant information is\nnot available, this field is unset.", + "type": "string" + } + }, + "id": "CigarUnit" + }, + "AnnotationSet": { + "properties": { + "sourceUri": { + "description": "The source URI describing the file from which this annotation set was\ngenerated, if any.", + "type": "string" + }, + "datasetId": { + "description": "The dataset to which this annotation set belongs.", + "type": "string" + }, + "name": { + "description": "The display name for this annotation set.", + "type": "string" + }, + "referenceSetId": { + "description": "The ID of the reference set that defines the coordinate space for this\nset's annotations.", + "type": "string" + }, + "type": { + "enumDescriptions": [ + "", + "A `GENERIC` annotation type should be used when no other annotation\ntype will suffice. This represents an untyped annotation of the reference\ngenome.", + "A `VARIANT` annotation type.", + "A `GENE` annotation type represents the existence of a gene at the\nassociated reference coordinates. The start coordinate is typically the\ngene's transcription start site and the end is typically the end of the\ngene's last exon.", + "A `TRANSCRIPT` annotation type represents the assertion that a\nparticular region of the reference genome may be transcribed as RNA." + ], + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "GENERIC", + "VARIANT", + "GENE", + "TRANSCRIPT" + ], + "description": "The type of annotations contained within this set.", + "type": "string" + }, + "info": { + "additionalProperties": { + "items": { + "type": "any" + }, + "type": "array" + }, + "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", + "type": "object" + }, + "id": { + "description": "The server-generated annotation set ID, unique across all annotation sets.", + "type": "string" + } + }, + "id": "AnnotationSet", + "description": "An annotation set is a logical grouping of annotations that share consistent\ntype information and provenance. Examples of annotation sets include 'all\ngenes from refseq', and 'all variant annotations from ClinVar'.", + "type": "object" + }, + "Transcript": { + "properties": { + "codingSequence": { + "description": "The range of the coding sequence for this transcript, if any. To determine\nthe exact ranges of coding sequence, intersect this range with those of the\nexons, if any. If there are any\nexons, the\ncodingSequence must start\nand end within them.\n\nNote that in some cases, the reference genome will not exactly match the\nobserved mRNA transcript e.g. due to variance in the source genome from\nreference. In these cases,\nexon.frame will not necessarily\nmatch the expected reference reading frame and coding exon reference bases\ncannot necessarily be concatenated to produce the original transcript mRNA.", + "$ref": "CodingSequence" + }, + "geneId": { + "description": "The annotation ID of the gene from which this transcript is transcribed.", + "type": "string" + }, + "exons": { + "description": "The \u003ca href=\"http://en.wikipedia.org/wiki/Exon\"\u003eexons\u003c/a\u003e that compose\nthis transcript. This field should be unset for genomes where transcript\nsplicing does not occur, for example prokaryotes.\n\nIntrons are regions of the transcript that are not included in the\nspliced RNA product. Though not explicitly modeled here, intron ranges can\nbe deduced; all regions of this transcript that are not exons are introns.\n\nExonic sequences do not necessarily code for a translational product\n(amino acids). Only the regions of exons bounded by the\ncodingSequence correspond\nto coding DNA sequence.\n\nExons are ordered by start position and may not overlap.", + "items": { + "$ref": "Exon" + }, + "type": "array" + } + }, + "id": "Transcript", + "description": "A transcript represents the assertion that a particular region of the\nreference genome may be transcribed as RNA.", + "type": "object" + }, + "Experiment": { + "properties": { + "sequencingCenter": { + "description": "The sequencing center used as part of this experiment.", + "type": "string" + }, + "platformUnit": { + "description": "The platform unit used as part of this experiment, for example\nflowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the\n@RG PU field in the SAM spec.", + "type": "string" + }, + "instrumentModel": { + "description": "The instrument model used as part of this experiment. This maps to\nsequencing technology in the SAM spec.", + "type": "string" + }, + "libraryId": { + "description": "A client-supplied library identifier; a library is a collection of DNA\nfragments which have been prepared for sequencing from a sample. This\nfield is important for quality control as error or bias can be introduced\nduring sample preparation.", + "type": "string" + } + }, + "id": "Experiment", + "type": "object" + }, + "ListDatasetsResponse": { + "description": "The dataset list response.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, + "datasets": { + "description": "The list of matching Datasets.", + "items": { + "$ref": "Dataset" + }, + "type": "array" + } + }, + "id": "ListDatasetsResponse" + }, "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "type": "object", "properties": { "permissions": { "description": "REQUIRED: The set of permissions to check for the 'resource'.\nPermissions with wildcards (such as '*' or 'storage.*') are not allowed.\nAllowed permissions are:\n\n* `genomics.datasets.create`\n* `genomics.datasets.delete`\n* `genomics.datasets.get`\n* `genomics.datasets.list`\n* `genomics.datasets.update`\n* `genomics.datasets.getIamPolicy`\n* `genomics.datasets.setIamPolicy`", @@ -1599,9 +2639,7 @@ "type": "array" } }, - "id": "TestIamPermissionsRequest", - "description": "Request message for `TestIamPermissions` method.", - "type": "object" + "id": "TestIamPermissionsRequest" }, "Exon": { "type": "object", @@ -1647,18 +2685,9 @@ "type": "object" }, "CallSet": { + "description": "A call set is a collection of variant calls, typically for one sample. It\nbelongs to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "type": "object", "properties": { - "variantSetIds": { - "description": "The IDs of the variant sets this call set belongs to. This field must\nhave exactly length one, as a call set belongs to a single variant set.\nThis field is repeated for compatibility with the\n[GA4GH 0.5.1\nAPI](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).", - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The server-generated call set ID, unique across all call sets.", - "type": "string" - }, "created": { "format": "int64", "description": "The date this call set was created in milliseconds from the epoch.", @@ -1681,14 +2710,22 @@ }, "description": "A map of additional call set information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", "type": "object" + }, + "variantSetIds": { + "description": "The IDs of the variant sets this call set belongs to. This field must\nhave exactly length one, as a call set belongs to a single variant set.\nThis field is repeated for compatibility with the\n[GA4GH 0.5.1\nAPI](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The server-generated call set ID, unique across all call sets.", + "type": "string" } }, - "id": "CallSet", - "description": "A call set is a collection of variant calls, typically for one sample. It\nbelongs to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "type": "object" + "id": "CallSet" }, "SearchAnnotationSetsResponse": { - "type": "object", "properties": { "nextPageToken": { "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", @@ -1702,7 +2739,8 @@ "type": "array" } }, - "id": "SearchAnnotationSetsResponse" + "id": "SearchAnnotationSetsResponse", + "type": "object" }, "ImportVariantsRequest": { "properties": { @@ -1734,18 +2772,18 @@ "type": "boolean" }, "format": { + "enumDescriptions": [ + "", + "VCF (Variant Call Format). The VCF files may be gzip compressed. gVCF is\nalso supported. Disclaimer: gzip VCF imports are currently much slower\nthan equivalent uncompressed VCF imports. For this reason, uncompressed\nVCF is currently recommended for imports with more than 1GB combined\nuncompressed size, or for time sensitive imports.", + "Complete Genomics masterVarBeta format. The masterVarBeta files may\nbe bzip2 compressed." + ], "enum": [ "FORMAT_UNSPECIFIED", "FORMAT_VCF", "FORMAT_COMPLETE_GENOMICS" ], "description": "The format of the variant data being imported. If unspecified, defaults to\nto `VCF`.", - "type": "string", - "enumDescriptions": [ - "", - "VCF (Variant Call Format). The VCF files may be gzip compressed. gVCF is\nalso supported. Disclaimer: gzip VCF imports are currently much slower\nthan equivalent uncompressed VCF imports. For this reason, uncompressed\nVCF is currently recommended for imports with more than 1GB combined\nuncompressed size, or for time sensitive imports.", - "Complete Genomics masterVarBeta format. The masterVarBeta files may\nbe bzip2 compressed." - ] + "type": "string" } }, "id": "ImportVariantsRequest", @@ -1753,7 +2791,34 @@ "type": "object" }, "VariantAnnotation": { + "type": "object", "properties": { + "effect": { + "enumDescriptions": [ + "", + "`EFFECT_OTHER` should be used when no other Effect\nwill suffice.", + "`FRAMESHIFT` indicates a mutation in which the insertion or\ndeletion of nucleotides resulted in a frameshift change.", + "`FRAME_PRESERVING_INDEL` indicates a mutation in which a\nmultiple of three nucleotides has been inserted or deleted, resulting\nin no change to the reading frame of the coding sequence.", + "`SYNONYMOUS_SNP` indicates a single nucleotide polymorphism\nmutation that results in no amino acid change.", + "`NONSYNONYMOUS_SNP` indicates a single nucleotide\npolymorphism mutation that results in an amino acid change.", + "`STOP_GAIN` indicates a mutation that leads to the creation\nof a stop codon at the variant site. Frameshift mutations creating\ndownstream stop codons do not count as `STOP_GAIN`.", + "`STOP_LOSS` indicates a mutation that eliminates a\nstop codon at the variant site.", + "`SPLICE_SITE_DISRUPTION` indicates that this variant is\nfound in a splice site for the associated transcript, and alters the\nnormal splicing pattern." + ], + "enum": [ + "EFFECT_UNSPECIFIED", + "EFFECT_OTHER", + "FRAMESHIFT", + "FRAME_PRESERVING_INDEL", + "SYNONYMOUS_SNP", + "NONSYNONYMOUS_SNP", + "STOP_GAIN", + "STOP_LOSS", + "SPLICE_SITE_DISRUPTION" + ], + "description": "Effect of the variant on the coding sequence.", + "type": "string" + }, "transcriptIds": { "description": "Google annotation IDs of the transcripts affected by this variant. These\nshould be provided when the variant is created.", "items": { @@ -1835,36 +2900,9 @@ "$ref": "ClinicalCondition" }, "type": "array" - }, - "effect": { - "enumDescriptions": [ - "", - "`EFFECT_OTHER` should be used when no other Effect\nwill suffice.", - "`FRAMESHIFT` indicates a mutation in which the insertion or\ndeletion of nucleotides resulted in a frameshift change.", - "`FRAME_PRESERVING_INDEL` indicates a mutation in which a\nmultiple of three nucleotides has been inserted or deleted, resulting\nin no change to the reading frame of the coding sequence.", - "`SYNONYMOUS_SNP` indicates a single nucleotide polymorphism\nmutation that results in no amino acid change.", - "`NONSYNONYMOUS_SNP` indicates a single nucleotide\npolymorphism mutation that results in an amino acid change.", - "`STOP_GAIN` indicates a mutation that leads to the creation\nof a stop codon at the variant site. Frameshift mutations creating\ndownstream stop codons do not count as `STOP_GAIN`.", - "`STOP_LOSS` indicates a mutation that eliminates a\nstop codon at the variant site.", - "`SPLICE_SITE_DISRUPTION` indicates that this variant is\nfound in a splice site for the associated transcript, and alters the\nnormal splicing pattern." - ], - "enum": [ - "EFFECT_UNSPECIFIED", - "EFFECT_OTHER", - "FRAMESHIFT", - "FRAME_PRESERVING_INDEL", - "SYNONYMOUS_SNP", - "NONSYNONYMOUS_SNP", - "STOP_GAIN", - "STOP_LOSS", - "SPLICE_SITE_DISRUPTION" - ], - "description": "Effect of the variant on the coding sequence.", - "type": "string" } }, - "id": "VariantAnnotation", - "type": "object" + "id": "VariantAnnotation" }, "ListCoverageBucketsResponse": { "properties": { @@ -1927,6 +2965,7 @@ "id": "ExportVariantSetRequest" }, "SearchAnnotationsRequest": { + "type": "object", "properties": { "referenceId": { "description": "The ID of the reference to query.", @@ -1963,8 +3002,7 @@ "type": "string" } }, - "id": "SearchAnnotationsRequest", - "type": "object" + "id": "SearchAnnotationsRequest" }, "OperationEvent": { "description": "An event that occurred during an Operation.", @@ -1988,6 +3026,7 @@ "id": "OperationEvent" }, "CodingSequence": { + "type": "object", "properties": { "start": { "format": "int64", @@ -2000,31 +3039,7 @@ "type": "string" } }, - "id": "CodingSequence", - "type": "object" - }, - "SearchReferencesResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, - "references": { - "description": "The matching references.", - "items": { - "$ref": "Reference" - }, - "type": "array" - } - }, - "id": "SearchReferencesResponse" - }, - "GetIamPolicyRequest": { - "properties": {}, - "id": "GetIamPolicyRequest", - "description": "Request message for `GetIamPolicy` method.", - "type": "object" + "id": "CodingSequence" }, "TestIamPermissionsResponse": { "properties": { @@ -2040,8 +3055,41 @@ "description": "Response message for `TestIamPermissions` method.", "type": "object" }, - "SearchAnnotationSetsRequest": { + "GetIamPolicyRequest": { + "properties": {}, + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object" + }, + "SearchReferencesResponse": { "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, + "references": { + "description": "The matching references.", + "items": { + "$ref": "Reference" + }, + "type": "array" + } + }, + "id": "SearchReferencesResponse", + "type": "object" + }, + "SearchAnnotationSetsRequest": { + "type": "object", + "properties": { + "pageToken": { + "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 128. The maximum value is 1024.", + "type": "integer" + }, "datasetIds": { "description": "Required. The dataset IDs to search within. Caller must have `READ` access\nto these datasets.", "items": { @@ -2077,47 +3125,30 @@ "referenceSetId": { "description": "If specified, only annotation sets associated with the given reference set\nare returned.", "type": "string" - }, - "pageToken": { - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 128. The maximum value is 1024.", - "type": "integer" } }, - "id": "SearchAnnotationSetsRequest", - "type": "object" + "id": "SearchAnnotationSetsRequest" }, "SearchReadGroupSetsResponse": { + "description": "The read group set search response.", + "type": "object", "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, "readGroupSets": { "description": "The list of matching read group sets.", "items": { "$ref": "ReadGroupSet" }, "type": "array" + }, + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" } }, - "id": "SearchReadGroupSetsResponse", - "description": "The read group set search response.", - "type": "object" + "id": "SearchReadGroupSetsResponse" }, "SearchReferencesRequest": { "properties": { - "md5checksums": { - "description": "If present, return references for which the\nmd5checksum matches exactly.", - "items": { - "type": "string" - }, - "type": "array" - }, "pageToken": { "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", "type": "string" @@ -2137,12 +3168,21 @@ "referenceSetId": { "description": "If present, return only references which belong to this reference set.", "type": "string" + }, + "md5checksums": { + "description": "If present, return references for which the\nmd5checksum matches exactly.", + "items": { + "type": "string" + }, + "type": "array" } }, "id": "SearchReferencesRequest", "type": "object" }, "LinearAlignment": { + "description": "A linear alignment can be represented by one CIGAR string. Describes the\nmapped position and local alignment of the read to the reference.", + "type": "object", "properties": { "cigar": { "description": "Represents the local alignment of this sequence (alignment matches, indels,\netc) against the reference.", @@ -2152,8 +3192,8 @@ "type": "array" }, "position": { - "description": "The position of this alignment.", - "$ref": "Position" + "$ref": "Position", + "description": "The position of this alignment." }, "mappingQuality": { "format": "int32", @@ -2161,14 +3201,20 @@ "type": "integer" } }, - "id": "LinearAlignment", - "description": "A linear alignment can be represented by one CIGAR string. Describes the\nmapped position and local alignment of the read to the reference.", - "type": "object" + "id": "LinearAlignment" }, "Dataset": { "description": "A Dataset is a collection of genomic data.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", "type": "object", "properties": { + "name": { + "description": "The dataset name.", + "type": "string" + }, + "projectId": { + "description": "The Google Cloud project ID that this dataset belongs to.", + "type": "string" + }, "id": { "description": "The server-generated dataset ID, unique across all datasets.", "type": "string" @@ -2177,21 +3223,11 @@ "format": "google-datetime", "description": "The time this dataset was created, in seconds from the epoch.", "type": "string" - }, - "name": { - "description": "The dataset name.", - "type": "string" - }, - "projectId": { - "description": "The Google Cloud project ID that this dataset belongs to.", - "type": "string" } }, "id": "Dataset" }, "ImportVariantsResponse": { - "description": "The variant data import response.", - "type": "object", "properties": { "callSetIds": { "description": "IDs of the call sets created during the import.", @@ -2201,17 +3237,45 @@ "type": "array" } }, - "id": "ImportVariantsResponse" + "id": "ImportVariantsResponse", + "description": "The variant data import response.", + "type": "object" }, "ReadGroup": { + "description": "A read group is all the data that's processed the same way by the sequencer.", + "type": "object", "properties": { + "id": { + "description": "The server-generated read group ID, unique for all read groups.\nNote: This is different than the @RG ID field in the SAM spec. For that\nvalue, see name.", + "type": "string" + }, + "programs": { + "description": "The programs used to generate this read group. Programs are always\nidentical for all read groups within a read group set. For this reason,\nonly the first read group in a returned set will have this field\npopulated.", + "items": { + "$ref": "Program" + }, + "type": "array" + }, + "predictedInsertSize": { + "format": "int32", + "description": "The predicted insert size of this read group. The insert size is the length\nthe sequenced DNA fragment from end-to-end, not including the adapters.", + "type": "integer" + }, + "description": { + "description": "A free-form text description of this read group.", + "type": "string" + }, + "sampleId": { + "description": "A client-supplied sample identifier for the reads in this read group.", + "type": "string" + }, "datasetId": { "description": "The dataset to which this read group belongs.", "type": "string" }, "experiment": { - "description": "The experiment used to generate this read group.", - "$ref": "Experiment" + "$ref": "Experiment", + "description": "The experiment used to generate this read group." }, "name": { "description": "The read group name. This corresponds to the @RG ID field in the SAM spec.", @@ -2230,39 +3294,11 @@ }, "description": "A map of additional read group information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", "type": "object" - }, - "id": { - "description": "The server-generated read group ID, unique for all read groups.\nNote: This is different than the @RG ID field in the SAM spec. For that\nvalue, see name.", - "type": "string" - }, - "predictedInsertSize": { - "format": "int32", - "description": "The predicted insert size of this read group. The insert size is the length\nthe sequenced DNA fragment from end-to-end, not including the adapters.", - "type": "integer" - }, - "programs": { - "description": "The programs used to generate this read group. Programs are always\nidentical for all read groups within a read group set. For this reason,\nonly the first read group in a returned set will have this field\npopulated.", - "items": { - "$ref": "Program" - }, - "type": "array" - }, - "description": { - "description": "A free-form text description of this read group.", - "type": "string" - }, - "sampleId": { - "description": "A client-supplied sample identifier for the reads in this read group.", - "type": "string" } }, - "id": "ReadGroup", - "description": "A read group is all the data that's processed the same way by the sequencer.", - "type": "object" + "id": "ReadGroup" }, "ReadGroupSet": { - "description": "A read group set is a logical collection of read groups, which are\ncollections of reads produced by a sequencer. A read group set typically\nmodels reads corresponding to one sample, sequenced one way, and aligned one\nway.\n\n* A read group set belongs to one dataset.\n* A read group belongs to one read group set.\n* A read belongs to one read group.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "type": "object", "properties": { "datasetId": { "description": "The dataset to which this read group set belongs.", @@ -2302,20 +3338,22 @@ "type": "string" } }, - "id": "ReadGroupSet" + "id": "ReadGroupSet", + "description": "A read group set is a logical collection of read groups, which are\ncollections of reads produced by a sequencer. A read group set typically\nmodels reads corresponding to one sample, sequenced one way, and aligned one\nway.\n\n* A read group set belongs to one dataset.\n* A read group belongs to one read group set.\n* A read belongs to one read group.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", + "type": "object" }, "SearchVariantSetsResponse": { "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, "variantSets": { "description": "The variant sets belonging to the requested dataset.", "items": { "$ref": "VariantSet" }, "type": "array" + }, + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" } }, "id": "SearchVariantSetsResponse", @@ -2323,32 +3361,29 @@ "type": "object" }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", "properties": {}, - "id": "Empty" + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" }, "Entry": { + "type": "object", "properties": { "annotation": { - "description": "The created annotation, if creation was successful.", - "$ref": "Annotation" + "$ref": "Annotation", + "description": "The created annotation, if creation was successful." }, "status": { "$ref": "Status", "description": "The creation status." } }, - "id": "Entry", - "type": "object" + "id": "Entry" }, "Position": { + "description": "An abstraction for referring to a genomic position, in relation to some\nalready known reference. For now, represents a genomic position as a\nreference name, a base number on that reference (0-based), and a\ndetermination of forward or reverse strand.", + "type": "object", "properties": { - "position": { - "format": "int64", - "description": "The 0-based offset from the start of the forward strand for that reference.", - "type": "string" - }, "referenceName": { "description": "The name of the reference in whatever reference set is being used.", "type": "string" @@ -2356,11 +3391,14 @@ "reverseStrand": { "description": "Whether this position is on the reverse strand, as opposed to the forward\nstrand.", "type": "boolean" + }, + "position": { + "format": "int64", + "description": "The 0-based offset from the start of the forward strand for that reference.", + "type": "string" } }, - "id": "Position", - "description": "An abstraction for referring to a genomic position, in relation to some\nalready known reference. For now, represents a genomic position as a\nreference name, a base number on that reference (0-based), and a\ndetermination of forward or reverse strand.", - "type": "object" + "id": "Position" }, "SearchReferenceSetsResponse": { "properties": { @@ -2380,8 +3418,6 @@ "type": "object" }, "SearchCallSetsRequest": { - "description": "The call set search request.", - "type": "object", "properties": { "variantSetIds": { "description": "Restrict the query to call sets within the given variant sets. At least one\nID must be provided.", @@ -2404,7 +3440,9 @@ "type": "integer" } }, - "id": "SearchCallSetsRequest" + "id": "SearchCallSetsRequest", + "description": "The call set search request.", + "type": "object" }, "ImportReadGroupSetsRequest": { "properties": { @@ -2413,18 +3451,18 @@ "type": "string" }, "partitionStrategy": { - "enumDescriptions": [ - "", - "In most cases, this strategy yields one read group set per file. This is\nthe default behavior.\n\nAllocate one read group set per file per sample. For BAM files, read\ngroups are considered to share a sample if they have identical sample\nnames. Furthermore, all reads for each file which do not belong to a read\ngroup, if any, will be grouped into a single read group set per-file.", - "Includes all read groups in all imported files into a single read group\nset. Requires that the headers for all imported files are equivalent. All\nreads which do not belong to a read group, if any, will be grouped into a\nseparate read group set." - ], "enum": [ "PARTITION_STRATEGY_UNSPECIFIED", "PER_FILE_PER_SAMPLE", "MERGE_ALL" ], "description": "The partition strategy describes how read groups are partitioned into read\ngroup sets.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "", + "In most cases, this strategy yields one read group set per file. This is\nthe default behavior.\n\nAllocate one read group set per file per sample. For BAM files, read\ngroups are considered to share a sample if they have identical sample\nnames. Furthermore, all reads for each file which do not belong to a read\ngroup, if any, will be grouped into a single read group set per-file.", + "Includes all read groups in all imported files into a single read group\nset. Requires that the headers for all imported files are equivalent. All\nreads which do not belong to a read group, if any, will be grouped into a\nseparate read group set." + ] }, "datasetId": { "description": "Required. The ID of the dataset these read group sets will belong to. The\ncaller must have WRITE permissions to this dataset.", @@ -2466,8 +3504,18 @@ "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object" }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "type": "object", + "properties": {}, + "id": "CancelOperationRequest" + }, "Annotation": { "properties": { + "transcript": { + "$ref": "Transcript", + "description": "A transcript value represents the assertion that a particular region of\nthe reference genome may be transcribed as RNA. An alternative splicing\npattern would be represented as a separate transcript object. This field\nis only set for annotations of type `TRANSCRIPT`." + }, "start": { "format": "int64", "description": "The start position of the range on the reference, 0-based inclusive.", @@ -2485,14 +3533,14 @@ "description": "A variant annotation, which describes the effect of a variant on the\ngenome, the coding sequence, and/or higher level consequences at the\norganism level e.g. pathogenicity. This field is only set for annotations\nof type `VARIANT`.", "$ref": "VariantAnnotation" }, - "referenceId": { - "description": "The ID of the Google Genomics reference associated with this range.", - "type": "string" - }, "id": { "description": "The server-generated annotation ID, unique across all annotations.", "type": "string" }, + "referenceId": { + "description": "The ID of the Google Genomics reference associated with this range.", + "type": "string" + }, "reverseStrand": { "description": "Whether this range refers to the reverse strand, as opposed to the forward\nstrand. Note that regardless of this field, the start/end position of the\nrange always refer to the forward strand.", "type": "boolean" @@ -2501,16 +3549,6 @@ "description": "The display name corresponding to the reference specified by\n`referenceId`, for example `chr1`, `1`, or `chrX`.", "type": "string" }, - "info": { - "additionalProperties": { - "items": { - "type": "any" - }, - "type": "array" - }, - "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", - "type": "object" - }, "type": { "enumDescriptions": [ "", @@ -2529,35 +3567,30 @@ "description": "The data type for this annotation. Must match the containing annotation\nset's type.", "type": "string" }, + "info": { + "additionalProperties": { + "items": { + "type": "any" + }, + "type": "array" + }, + "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", + "type": "object" + }, "end": { "format": "int64", "description": "The end position of the range on the reference, 0-based exclusive.", "type": "string" - }, - "transcript": { - "description": "A transcript value represents the assertion that a particular region of\nthe reference genome may be transcribed as RNA. An alternative splicing\npattern would be represented as a separate transcript object. This field\nis only set for annotations of type `TRANSCRIPT`.", - "$ref": "Transcript" } }, "id": "Annotation", "description": "An annotation describes a region of reference genome. The value of an\nannotation may be one of several canonical types, supplemented by arbitrary\ninfo tags. An annotation is not inherently associated with a specific\nsample or individual (though a client could choose to use annotations in\nthis way). Example canonical annotation types are `GENE` and\n`VARIANT`.", "type": "object" }, - "CancelOperationRequest": { - "properties": {}, - "id": "CancelOperationRequest", - "description": "The request message for Operations.CancelOperation.", - "type": "object" - }, "SearchReadsRequest": { "description": "The read search request.", "type": "object", "properties": { - "start": { - "format": "int64", - "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified.", - "type": "string" - }, "referenceName": { "description": "The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to\n`*`, only unmapped reads are returned. If unspecified, all reads (mapped\nand unmapped) are returned.", "type": "string" @@ -2589,22 +3622,29 @@ "format": "int32", "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 2048.", "type": "integer" + }, + "start": { + "format": "int64", + "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified.", + "type": "string" } }, "id": "SearchReadsRequest" }, "RuntimeMetadata": { + "description": "Runtime metadata that will be populated in the\nruntimeMetadata\nfield of the Operation associated with a RunPipeline execution.", + "type": "object", "properties": { "computeEngine": { "$ref": "ComputeEngine", "description": "Execution information specific to Google Compute Engine." } }, - "id": "RuntimeMetadata", - "description": "Runtime metadata that will be populated in the\nruntimeMetadata\nfield of the Operation associated with a RunPipeline execution.", - "type": "object" + "id": "RuntimeMetadata" }, "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", "properties": { "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", @@ -2635,9 +3675,7 @@ "type": "object" } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object" + "id": "Operation" }, "ImportReadGroupSetsResponse": { "properties": { @@ -2654,8 +3692,6 @@ "type": "object" }, "VariantCall": { - "description": "A call represents the determination of genotype with respect to a particular\nvariant. It may include associated information such as quality and phasing.\nFor example, a call might assign a probability of 0.32 to the occurrence of\na SNP named rs1234 in a call set with the name NA12345.", - "type": "object", "properties": { "phaseset": { "description": "If this field is present, this variant call's genotype ordering implies\nthe phase of the bases and is consistent with any other variant calls in\nthe same reference sequence which have the same phaseset value.\nWhen importing data from VCF, if the genotype data was phased but no\nphase set was specified this field will be set to `*`.", @@ -2696,28 +3732,29 @@ "type": "array" } }, - "id": "VariantCall" + "id": "VariantCall", + "description": "A call represents the determination of genotype with respect to a particular\nvariant. It may include associated information such as quality and phasing.\nFor example, a call might assign a probability of 0.32 to the occurrence of\na SNP named rs1234 in a call set with the name NA12345.", + "type": "object" }, "SearchVariantsResponse": { - "description": "The variant search response.", - "type": "object", "properties": { + "nextPageToken": { + "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", + "type": "string" + }, "variants": { "description": "The list of matching Variants.", "items": { "$ref": "Variant" }, "type": "array" - }, - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" } }, - "id": "SearchVariantsResponse" + "id": "SearchVariantsResponse", + "description": "The variant search response.", + "type": "object" }, "ListBasesResponse": { - "type": "object", "properties": { "nextPageToken": { "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", @@ -2733,1061 +3770,15 @@ "type": "string" } }, - "id": "ListBasesResponse" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status" - }, - "Binding": { - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding", - "description": "Associates `members` with a `role`.", - "type": "object" - }, - "UndeleteDatasetRequest": { - "type": "object", - "properties": {}, - "id": "UndeleteDatasetRequest" - }, - "Range": { - "description": "A 0-based half-open genomic coordinate range for search requests.", - "type": "object", - "properties": { - "referenceName": { - "description": "The reference sequence name, for example `chr1`,\n`1`, or `chrX`.", - "type": "string" - }, - "start": { - "format": "int64", - "description": "The start position of the range on the reference, 0-based inclusive.", - "type": "string" - }, - "end": { - "format": "int64", - "description": "The end position of the range on the reference, 0-based exclusive.", - "type": "string" - } - }, - "id": "Range" - }, - "VariantSet": { - "description": "A variant set is a collection of call sets and variants. It contains summary\nstatistics of those contents. A variant set belongs to a dataset.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "type": "object", - "properties": { - "description": { - "description": "A textual description of this variant set.", - "type": "string" - }, - "datasetId": { - "description": "The dataset to which this variant set belongs.", - "type": "string" - }, - "name": { - "description": "User-specified, mutable name.", - "type": "string" - }, - "referenceSetId": { - "description": "The reference set to which the variant set is mapped. The reference set\ndescribes the alignment provenance of the variant set, while the\n`referenceBounds` describe the shape of the actual variant data. The\nreference set's reference names are a superset of those found in the\n`referenceBounds`.\n\nFor example, given a variant set that is mapped to the GRCh38 reference set\nand contains a single variant on reference 'X', `referenceBounds` would\ncontain only an entry for 'X', while the associated reference set\nenumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.", - "type": "string" - }, - "metadata": { - "description": "The metadata associated with this variant set.", - "items": { - "$ref": "VariantSetMetadata" - }, - "type": "array" - }, - "referenceBounds": { - "description": "A list of all references used by the variants in a variant set\nwith associated coordinate upper bounds for each one.", - "items": { - "$ref": "ReferenceBound" - }, - "type": "array" - }, - "id": { - "description": "The server-generated variant set ID, unique across all variant sets.", - "type": "string" - } - }, - "id": "VariantSet" - }, - "ReferenceBound": { - "description": "ReferenceBound records an upper bound for the starting coordinate of\nvariants in a particular reference.", - "type": "object", - "properties": { - "referenceName": { - "description": "The name of the reference associated with this reference bound.", - "type": "string" - }, - "upperBound": { - "format": "int64", - "description": "An upper bound (inclusive) on the starting coordinate of any\nvariant in the reference sequence.", - "type": "string" - } - }, - "id": "ReferenceBound" - }, - "BatchCreateAnnotationsResponse": { - "type": "object", - "properties": { - "entries": { - "description": "The resulting per-annotation entries, ordered consistently with the\noriginal request.", - "items": { - "$ref": "Entry" - }, - "type": "array" - } - }, - "id": "BatchCreateAnnotationsResponse" - }, - "SearchCallSetsResponse": { - "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, - "callSets": { - "description": "The list of matching call sets.", - "items": { - "$ref": "CallSet" - }, - "type": "array" - } - }, - "id": "SearchCallSetsResponse", - "description": "The call set search response.", - "type": "object" - }, - "Variant": { - "properties": { - "referenceName": { - "description": "The reference on which this variant occurs.\n(such as `chr20` or `X`)", - "type": "string" - }, - "info": { - "additionalProperties": { - "items": { - "type": "any" - }, - "type": "array" - }, - "description": "A map of additional variant information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", - "type": "object" - }, - "referenceBases": { - "description": "The reference bases for this variant. They start at the given\nposition.", - "type": "string" - }, - "names": { - "description": "Names for the variant, for example a RefSNP ID.", - "items": { - "type": "string" - }, - "type": "array" - }, - "alternateBases": { - "description": "The bases that appear instead of the reference bases.", - "items": { - "type": "string" - }, - "type": "array" - }, - "end": { - "format": "int64", - "description": "The end position (0-based) of this variant. This corresponds to the first\nbase after the last base in the reference allele. So, the length of\nthe reference allele is (end - start). This is useful for variants\nthat don't explicitly give alternate bases, for example large deletions.", - "type": "string" - }, - "filter": { - "description": "A list of filters (normally quality filters) this variant has failed.\n`PASS` indicates this variant has passed all filters.", - "items": { - "type": "string" - }, - "type": "array" - }, - "calls": { - "description": "The variant calls for this particular variant. Each one represents the\ndetermination of genotype with respect to this variant.", - "items": { - "$ref": "VariantCall" - }, - "type": "array" - }, - "created": { - "format": "int64", - "description": "The date this variant was created, in milliseconds from the epoch.", - "type": "string" - }, - "start": { - "format": "int64", - "description": "The position at which this variant occurs (0-based).\nThis corresponds to the first base of the string of reference bases.", - "type": "string" - }, - "quality": { - "format": "double", - "description": "A measure of how likely this variant is to be real.\nA higher value is better.", - "type": "number" - }, - "id": { - "description": "The server-generated variant ID, unique across all variants.", - "type": "string" - }, - "variantSetId": { - "description": "The ID of the variant set this variant belongs to.", - "type": "string" - } - }, - "id": "Variant", - "description": "A variant represents a change in DNA sequence relative to a reference\nsequence. For example, a variant could represent a SNP or an insertion.\nVariants belong to a variant set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\nEach of the calls on a variant represent a determination of genotype with\nrespect to that variant. For example, a call might assign probability of 0.32\nto the occurrence of a SNP named rs1234 in a sample named NA12345. A call\nbelongs to a call set, which contains related calls typically from one\nsample.", - "type": "object" - }, - "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" - } - }, - "id": "ListOperationsResponse", - "description": "The response message for Operations.ListOperations.", - "type": "object" - }, - "OperationMetadata": { - "properties": { - "runtimeMetadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Runtime metadata on this Operation.", - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optionally provided by the caller when submitting the request that creates\nthe operation.", - "type": "object" - }, - "createTime": { - "format": "google-datetime", - "description": "The time at which the job was submitted to the Genomics service.", - "type": "string" - }, - "projectId": { - "description": "The Google Cloud Project in which the job is scoped.", - "type": "string" - }, - "clientId": { - "description": "This field is deprecated. Use `labels` instead. Optionally provided by the\ncaller when submitting the request that creates the operation.", - "type": "string" - }, - "events": { - "description": "Optional event messages that were generated during the job's execution.\nThis also contains any warnings that were generated during import\nor export.", - "items": { - "$ref": "OperationEvent" - }, - "type": "array" - }, - "endTime": { - "format": "google-datetime", - "description": "The time at which the job stopped running.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The time at which the job began to run.", - "type": "string" - }, - "request": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "The original request that started the operation. Note that this will be in\ncurrent version of the API. If the operation was started with v1beta2 API\nand a GetOperation is performed on v1 API, a v1 request will be returned.", - "type": "object" - } - }, - "id": "OperationMetadata", - "description": "Metadata describing an Operation.", - "type": "object" - }, - "SearchVariantsRequest": { - "properties": { - "maxCalls": { - "format": "int32", - "description": "The maximum number of calls to return in a single page. Note that this\nlimit may be exceeded in the event that a matching variant contains more\ncalls than the requested maximum. If unspecified, defaults to 5000. The\nmaximum value is 10000.", - "type": "integer" - }, - "pageToken": { - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of variants to return in a single page. If unspecified,\ndefaults to 5000. The maximum value is 10000.", - "type": "integer" - }, - "callSetIds": { - "description": "Only return variant calls which belong to call sets with these ids.\nLeaving this blank returns all variant calls. If a variant has no\ncalls belonging to any of these call sets, it won't be returned at all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "variantName": { - "description": "Only return variants which have exactly this name.", - "type": "string" - }, - "start": { - "format": "int64", - "description": "The beginning of the window (0-based, inclusive) for which\noverlapping variants should be returned. If unspecified, defaults to 0.", - "type": "string" - }, - "referenceName": { - "description": "Required. Only return variants in this reference sequence.", - "type": "string" - }, - "variantSetIds": { - "description": "At most one variant set ID must be provided. Only variants from this\nvariant set will be returned. If omitted, a call set id must be included in\nthe request.", - "items": { - "type": "string" - }, - "type": "array" - }, - "end": { - "format": "int64", - "description": "The end of the window, 0-based exclusive. If unspecified or 0, defaults to\nthe length of the reference.", - "type": "string" - } - }, - "id": "SearchVariantsRequest", - "description": "The variant search request.", - "type": "object" - }, - "SearchReadGroupSetsRequest": { - "description": "The read group set search request.", - "type": "object", - "properties": { - "pageToken": { - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "name": { - "description": "Only return read group sets for which a substring of the name matches this\nstring.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 1024.", - "type": "integer" - }, - "datasetIds": { - "description": "Restricts this query to read group sets within the given datasets. At least\none ID must be provided.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "SearchReadGroupSetsRequest" - }, - "SearchAnnotationsResponse": { - "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, - "annotations": { - "description": "The matching annotations.", - "items": { - "$ref": "Annotation" - }, - "type": "array" - } - }, - "id": "SearchAnnotationsResponse", - "type": "object" - }, - "ClinicalCondition": { - "type": "object", - "properties": { - "omimId": { - "description": "The OMIM id for this condition.\nSearch for these IDs at http://omim.org/", - "type": "string" - }, - "externalIds": { - "description": "The set of external IDs for this condition.", - "items": { - "$ref": "ExternalId" - }, - "type": "array" - }, - "conceptId": { - "description": "The MedGen concept id associated with this gene.\nSearch for these IDs at http://www.ncbi.nlm.nih.gov/medgen/", - "type": "string" - }, - "names": { - "description": "A set of names for the condition.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "ClinicalCondition" - }, - "SearchReadsResponse": { - "description": "The read search response.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, - "alignments": { - "description": "The list of matching alignments sorted by mapped genomic coordinate,\nif any, ascending in position within the same reference. Unmapped reads,\nwhich have no position, are returned contiguously and are sorted in\nascending lexicographic order by fragment name.", - "items": { - "$ref": "Read" - }, - "type": "array" - } - }, - "id": "SearchReadsResponse" - }, - "Program": { - "properties": { - "prevProgramId": { - "description": "The ID of the program run before this one.", - "type": "string" - }, - "commandLine": { - "description": "The command line used to run this program.", - "type": "string" - }, - "version": { - "description": "The version of the program run.", - "type": "string" - }, - "id": { - "description": "The user specified locally unique ID of the program. Used along with\n`prevProgramId` to define an ordering between programs.", - "type": "string" - }, - "name": { - "description": "The display name of the program. This is typically the colloquial name of\nthe tool used, for example 'bwa' or 'picard'.", - "type": "string" - } - }, - "id": "Program", - "type": "object" - }, - "ComputeEngine": { - "properties": { - "zone": { - "description": "The availability zone in which the instance resides.", - "type": "string" - }, - "diskNames": { - "description": "The names of the disks that were created for this pipeline.", - "items": { - "type": "string" - }, - "type": "array" - }, - "machineType": { - "description": "The machine type of the instance.", - "type": "string" - }, - "instanceName": { - "description": "The instance on which the operation is running.", - "type": "string" - } - }, - "id": "ComputeEngine", - "description": "Describes a Compute Engine resource that is being managed by a running\npipeline.", - "type": "object" - }, - "CoverageBucket": { - "properties": { - "meanCoverage": { - "format": "float", - "description": "The average number of reads which are aligned to each individual\nreference base in this bucket.", - "type": "number" - }, - "range": { - "description": "The genomic coordinate range spanned by this bucket.", - "$ref": "Range" - } - }, - "id": "CoverageBucket", - "description": "A bucket over which read coverage has been precomputed. A bucket corresponds\nto a specific range of the reference sequence.", - "type": "object" - }, - "ExternalId": { - "properties": { - "id": { - "description": "The id used by the source of this data.", - "type": "string" - }, - "sourceName": { - "description": "The name of the source of this data.", - "type": "string" - } - }, - "id": "ExternalId", - "type": "object" - }, - "SearchVariantSetsRequest": { - "properties": { - "datasetIds": { - "description": "Exactly one dataset ID must be provided here. Only variant sets which\nbelong to this dataset will be returned.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pageToken": { - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024.", - "type": "integer" - } - }, - "id": "SearchVariantSetsRequest", - "description": "The search variant sets request.", - "type": "object" - }, - "VariantSetMetadata": { - "description": "Metadata describes a single piece of variant call metadata.\nThese data include a top level key and either a single value string (value)\nor a list of key-value pairs (info.)\nValue and info are mutually exclusive.", - "type": "object", - "properties": { - "info": { - "additionalProperties": { - "items": { - "type": "any" - }, - "type": "array" - }, - "description": "Remaining structured metadata key-value pairs. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", - "type": "object" - }, - "type": { - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "enum": [ - "TYPE_UNSPECIFIED", - "INTEGER", - "FLOAT", - "FLAG", - "CHARACTER", - "STRING" - ], - "description": "The type of data. Possible types include: Integer, Float,\nFlag, Character, and String.", - "type": "string" - }, - "value": { - "description": "The value field for simple metadata", - "type": "string" - }, - "id": { - "description": "User-provided ID field, not enforced by this API.\nTwo or more pieces of structured metadata with identical\nid and key fields are considered equivalent.", - "type": "string" - }, - "number": { - "description": "The number of values that can be included in a field described by this\nmetadata.", - "type": "string" - }, - "key": { - "description": "The top-level key.", - "type": "string" - }, - "description": { - "description": "A textual description of this metadata.", - "type": "string" - } - }, - "id": "VariantSetMetadata" - }, - "Reference": { - "properties": { - "name": { - "description": "The name of this reference, for example `22`.", - "type": "string" - }, - "md5checksum": { - "description": "MD5 of the upper-case sequence excluding all whitespace characters (this\nis equivalent to SQ:M5 in SAM). This value is represented in lower case\nhexadecimal format.", - "type": "string" - }, - "id": { - "description": "The server-generated reference ID, unique across all references.", - "type": "string" - }, - "length": { - "format": "int64", - "description": "The length of this reference's sequence.", - "type": "string" - }, - "sourceAccessions": { - "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `GCF_000001405.26`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ncbiTaxonId": { - "format": "int32", - "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.", - "type": "integer" - }, - "sourceUri": { - "description": "The URI from which the sequence was obtained. Typically specifies a FASTA\nformat file.", - "type": "string" - } - }, - "id": "Reference", - "description": "A reference is a canonical assembled DNA sequence, intended to act as a\nreference coordinate space for other genomic annotations. A single reference\nmight represent the human chromosome 1 or mitochandrial DNA, for instance. A\nreference belongs to one or more reference sets.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "type": "object" - }, - "SearchReferenceSetsRequest": { - "properties": { - "md5checksums": { - "description": "If present, return reference sets for which the\nmd5checksum matches exactly.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pageToken": { - "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.", - "type": "string" - }, - "accessions": { - "description": "If present, return reference sets for which a prefix of any of\nsourceAccessions\nmatch any of these strings. Accession numbers typically have a main number\nand a version, for example `NC_000001.11`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "pageSize": { - "format": "int32", - "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 4096.", - "type": "integer" - }, - "assemblyId": { - "description": "If present, return reference sets for which a substring of their\n`assemblyId` matches this string (case insensitive).", - "type": "string" - } - }, - "id": "SearchReferenceSetsRequest", - "type": "object" - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest" - }, - "MergeVariantsRequest": { - "type": "object", - "properties": { - "variants": { - "description": "The variants to be merged with existing variants.", - "items": { - "$ref": "Variant" - }, - "type": "array" - }, - "infoMergeConfig": { - "additionalProperties": { - "enum": [ - "INFO_MERGE_OPERATION_UNSPECIFIED", - "IGNORE_NEW", - "MOVE_TO_CALLS" - ], - "type": "string" - }, - "description": "A mapping between info field keys and the InfoMergeOperations to\nbe performed on them.", - "type": "object" - }, - "variantSetId": { - "description": "The destination variant set.", - "type": "string" - } - }, - "id": "MergeVariantsRequest" - }, - "BatchCreateAnnotationsRequest": { - "type": "object", - "properties": { - "annotations": { - "description": "The annotations to be created. At most 4096 can be specified in a single\nrequest.", - "items": { - "$ref": "Annotation" - }, - "type": "array" - }, - "requestId": { - "description": "A unique request ID which enables the server to detect duplicated requests.\nIf provided, duplicated requests will result in the same response; if not\nprovided, duplicated requests may result in duplicated data. For a given\nannotation set, callers should not reuse `request_id`s when writing\ndifferent batches of annotations - behavior in this case is undefined.\nA common approach is to use a UUID. For batch jobs where worker crashes are\na possibility, consider using some unique variant of a worker or run ID.", - "type": "string" - } - }, - "id": "BatchCreateAnnotationsRequest" - }, - "Read": { - "properties": { - "failedVendorQualityChecks": { - "description": "Whether this read did not pass filters, such as platform or vendor quality\ncontrols (SAM flag 0x200).", - "type": "boolean" - }, - "alignedQuality": { - "description": "The quality of the read sequence contained in this alignment record\n(equivalent to QUAL in SAM).\n`alignedSequence` and `alignedQuality` may be shorter than the full read\nsequence and quality. This will occur if the alignment is part of a\nchimeric alignment, or if the read was trimmed. When this occurs, the CIGAR\nfor this read will begin/end with a hard clip operator that will indicate\nthe length of the excised sequence.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - }, - "alignment": { - "description": "The linear alignment for this alignment record. This field is null for\nunmapped reads.", - "$ref": "LinearAlignment" - }, - "id": { - "description": "The server-generated read ID, unique across all reads. This is different\nfrom the `fragmentName`.", - "type": "string" - }, - "numberReads": { - "format": "int32", - "description": "The number of reads in the fragment (extension to SAM flag 0x1).", - "type": "integer" - }, - "secondaryAlignment": { - "description": "Whether this alignment is secondary. Equivalent to SAM flag 0x100.\nA secondary alignment represents an alternative to the primary alignment\nfor this read. Aligners may return secondary alignments if a read can map\nambiguously to multiple coordinates in the genome. By convention, each read\nhas one and only one alignment where both `secondaryAlignment`\nand `supplementaryAlignment` are false.", - "type": "boolean" - }, - "fragmentName": { - "description": "The fragment name. Equivalent to QNAME (query template name) in SAM.", - "type": "string" - }, - "readGroupSetId": { - "description": "The ID of the read group set this read belongs to. A read belongs to\nexactly one read group set.", - "type": "string" - }, - "duplicateFragment": { - "description": "The fragment is a PCR or optical duplicate (SAM flag 0x400).", - "type": "boolean" - }, - "readNumber": { - "format": "int32", - "description": "The read number in sequencing. 0-based and less than numberReads. This\nfield replaces SAM flag 0x40 and 0x80.", - "type": "integer" - }, - "alignedSequence": { - "description": "The bases of the read sequence contained in this alignment record,\n**without CIGAR operations applied** (equivalent to SEQ in SAM).\n`alignedSequence` and `alignedQuality` may be\nshorter than the full read sequence and quality. This will occur if the\nalignment is part of a chimeric alignment, or if the read was trimmed. When\nthis occurs, the CIGAR for this read will begin/end with a hard clip\noperator that will indicate the length of the excised sequence.", - "type": "string" - }, - "readGroupId": { - "description": "The ID of the read group this read belongs to. A read belongs to exactly\none read group. This is a server-generated ID which is distinct from SAM's\nRG tag (for that value, see\nReadGroup.name).", - "type": "string" - }, - "info": { - "additionalProperties": { - "items": { - "type": "any" - }, - "type": "array" - }, - "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", - "type": "object" - }, - "nextMatePosition": { - "description": "The mapping of the primary alignment of the\n`(readNumber+1)%numberReads` read in the fragment. It replaces\nmate position and mate strand in SAM.", - "$ref": "Position" - }, - "supplementaryAlignment": { - "description": "Whether this alignment is supplementary. Equivalent to SAM flag 0x800.\nSupplementary alignments are used in the representation of a chimeric\nalignment. In a chimeric alignment, a read is split into multiple\nlinear alignments that map to different reference contigs. The first\nlinear alignment in the read will be designated as the representative\nalignment; the remaining linear alignments will be designated as\nsupplementary alignments. These alignments may have different mapping\nquality scores. In each linear alignment in a chimeric alignment, the read\nwill be hard clipped. The `alignedSequence` and\n`alignedQuality` fields in the alignment record will only\nrepresent the bases for its respective linear alignment.", - "type": "boolean" - }, - "properPlacement": { - "description": "The orientation and the distance between reads from the fragment are\nconsistent with the sequencing protocol (SAM flag 0x2).", - "type": "boolean" - }, - "fragmentLength": { - "format": "int32", - "description": "The observed length of the fragment, equivalent to TLEN in SAM.", - "type": "integer" - } - }, - "id": "Read", - "description": "A read alignment describes a linear alignment of a string of DNA to a\nreference sequence, in addition to metadata\nabout the fragment (the molecule of DNA sequenced) and the read (the bases\nwhich were read by the sequencer). A read is equivalent to a line in a SAM\nfile. A read belongs to exactly one read group and exactly one\nread group set.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)\n\n### Reverse-stranded reads\n\nMapped reads (reads having a non-null `alignment`) can be aligned to either\nthe forward or the reverse strand of their associated reference. Strandedness\nof a mapped read is encoded by `alignment.position.reverseStrand`.\n\nIf we consider the reference to be a forward-stranded coordinate space of\n`[0, reference.length)` with `0` as the left-most position and\n`reference.length` as the right-most position, reads are always aligned left\nto right. That is, `alignment.position.position` always refers to the\nleft-most reference coordinate and `alignment.cigar` describes the alignment\nof this read to the reference from left to right. All per-base fields such as\n`alignedSequence` and `alignedQuality` share this same left-to-right\norientation; this is true of reads which are aligned to either strand. For\nreverse-stranded reads, this means that `alignedSequence` is the reverse\ncomplement of the bases that were originally reported by the sequencing\nmachine.\n\n### Generating a reference-aligned sequence string\n\nWhen interacting with mapped reads, it's often useful to produce a string\nrepresenting the local alignment of the read to reference. The following\npseudocode demonstrates one way of doing this:\n\n out = \"\"\n offset = 0\n for c in read.alignment.cigar {\n switch c.operation {\n case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\":\n out += read.alignedSequence[offset:offset+c.operationLength]\n offset += c.operationLength\n break\n case \"CLIP_SOFT\", \"INSERT\":\n offset += c.operationLength\n break\n case \"PAD\":\n out += repeat(\"*\", c.operationLength)\n break\n case \"DELETE\":\n out += repeat(\"-\", c.operationLength)\n break\n case \"SKIP\":\n out += repeat(\" \", c.operationLength)\n break\n case \"CLIP_HARD\":\n break\n }\n }\n return out\n\n### Converting to SAM's CIGAR string\n\nThe following pseudocode generates a SAM CIGAR string from the\n`cigar` field. Note that this is a lossy conversion\n(`cigar.referenceSequence` is lost).\n\n cigarMap = {\n \"ALIGNMENT_MATCH\": \"M\",\n \"INSERT\": \"I\",\n \"DELETE\": \"D\",\n \"SKIP\": \"N\",\n \"CLIP_SOFT\": \"S\",\n \"CLIP_HARD\": \"H\",\n \"PAD\": \"P\",\n \"SEQUENCE_MATCH\": \"=\",\n \"SEQUENCE_MISMATCH\": \"X\",\n }\n cigarStr = \"\"\n for c in read.alignment.cigar {\n cigarStr += c.operationLength + cigarMap[c.operation]\n }\n return cigarStr", - "type": "object" - }, - "ReferenceSet": { - "properties": { - "description": { - "description": "Free text description of this reference set.", - "type": "string" - }, - "sourceAccessions": { - "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `NC_000001.11`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "sourceUri": { - "description": "The URI from which the references were obtained.", - "type": "string" - }, - "ncbiTaxonId": { - "format": "int32", - "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)\nindicating the species which this reference set is intended to model. Note\nthat contained references may specify a different `ncbiTaxonId`, as\nassemblies may contain reference sequences which do not belong to the\nmodeled species, for example EBV in a human reference genome.", - "type": "integer" - }, - "referenceIds": { - "description": "The IDs of the reference objects that are part of this set.\n`Reference.md5checksum` must be unique within this set.", - "items": { - "type": "string" - }, - "type": "array" - }, - "md5checksum": { - "description": "Order-independent MD5 checksum which identifies this reference set. The\nchecksum is computed by sorting all lower case hexidecimal string\n`reference.md5checksum` (for all reference in this set) in\nascending lexicographic order, concatenating, and taking the MD5 of that\nvalue. The resulting value is represented in lower case hexadecimal format.", - "type": "string" - }, - "assemblyId": { - "description": "Public id of this reference set, such as `GRCh37`.", - "type": "string" - }, - "id": { - "description": "The server-generated reference set ID, unique across all reference sets.", - "type": "string" - } - }, - "id": "ReferenceSet", - "description": "A reference set is a set of references which typically comprise a reference\nassembly for a species, such as `GRCh38` which is representative\nof the human genome. A reference set defines a common coordinate space for\ncomparing reference-aligned experimental data. A reference set contains 1 or\nmore references.\n\nFor more genomics resource definitions, see [Fundamentals of Google\nGenomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)", - "type": "object" - }, - "CigarUnit": { - "description": "A single CIGAR operation.", - "type": "object", - "properties": { - "operationLength": { - "format": "int64", - "description": "The number of genomic bases that the operation runs for. Required.", - "type": "string" - }, - "operation": { - "enumDescriptions": [ - "", - "An alignment match indicates that a sequence can be aligned to the\nreference without evidence of an INDEL. Unlike the\n`SEQUENCE_MATCH` and `SEQUENCE_MISMATCH` operators,\nthe `ALIGNMENT_MATCH` operator does not indicate whether the\nreference and read sequences are an exact match. This operator is\nequivalent to SAM's `M`.", - "The insert operator indicates that the read contains evidence of bases\nbeing inserted into the reference. This operator is equivalent to SAM's\n`I`.", - "The delete operator indicates that the read contains evidence of bases\nbeing deleted from the reference. This operator is equivalent to SAM's\n`D`.", - "The skip operator indicates that this read skips a long segment of the\nreference, but the bases have not been deleted. This operator is commonly\nused when working with RNA-seq data, where reads may skip long segments\nof the reference between exons. This operator is equivalent to SAM's\n`N`.", - "The soft clip operator indicates that bases at the start/end of a read\nhave not been considered during alignment. This may occur if the majority\nof a read maps, except for low quality bases at the start/end of a read.\nThis operator is equivalent to SAM's `S`. Bases that are soft\nclipped will still be stored in the read.", - "The hard clip operator indicates that bases at the start/end of a read\nhave been omitted from this alignment. This may occur if this linear\nalignment is part of a chimeric alignment, or if the read has been\ntrimmed (for example, during error correction or to trim poly-A tails for\nRNA-seq). This operator is equivalent to SAM's `H`.", - "The pad operator indicates that there is padding in an alignment. This\noperator is equivalent to SAM's `P`.", - "This operator indicates that this portion of the aligned sequence exactly\nmatches the reference. This operator is equivalent to SAM's `=`.", - "This operator indicates that this portion of the aligned sequence is an\nalignment match to the reference, but a sequence mismatch. This can\nindicate a SNP or a read error. This operator is equivalent to SAM's\n`X`." - ], - "enum": [ - "OPERATION_UNSPECIFIED", - "ALIGNMENT_MATCH", - "INSERT", - "DELETE", - "SKIP", - "CLIP_SOFT", - "CLIP_HARD", - "PAD", - "SEQUENCE_MATCH", - "SEQUENCE_MISMATCH" - ], - "type": "string" - }, - "referenceSequence": { - "description": "`referenceSequence` is only used at mismatches\n(`SEQUENCE_MISMATCH`) and deletions (`DELETE`).\nFilling this field replaces SAM's MD tag. If the relevant information is\nnot available, this field is unset.", - "type": "string" - } - }, - "id": "CigarUnit" - }, - "AnnotationSet": { - "properties": { - "name": { - "description": "The display name for this annotation set.", - "type": "string" - }, - "referenceSetId": { - "description": "The ID of the reference set that defines the coordinate space for this\nset's annotations.", - "type": "string" - }, - "type": { - "enum": [ - "ANNOTATION_TYPE_UNSPECIFIED", - "GENERIC", - "VARIANT", - "GENE", - "TRANSCRIPT" - ], - "description": "The type of annotations contained within this set.", - "type": "string", - "enumDescriptions": [ - "", - "A `GENERIC` annotation type should be used when no other annotation\ntype will suffice. This represents an untyped annotation of the reference\ngenome.", - "A `VARIANT` annotation type.", - "A `GENE` annotation type represents the existence of a gene at the\nassociated reference coordinates. The start coordinate is typically the\ngene's transcription start site and the end is typically the end of the\ngene's last exon.", - "A `TRANSCRIPT` annotation type represents the assertion that a\nparticular region of the reference genome may be transcribed as RNA." - ] - }, - "info": { - "additionalProperties": { - "items": { - "type": "any" - }, - "type": "array" - }, - "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).", - "type": "object" - }, - "id": { - "description": "The server-generated annotation set ID, unique across all annotation sets.", - "type": "string" - }, - "sourceUri": { - "description": "The source URI describing the file from which this annotation set was\ngenerated, if any.", - "type": "string" - }, - "datasetId": { - "description": "The dataset to which this annotation set belongs.", - "type": "string" - } - }, - "id": "AnnotationSet", - "description": "An annotation set is a logical grouping of annotations that share consistent\ntype information and provenance. Examples of annotation sets include 'all\ngenes from refseq', and 'all variant annotations from ClinVar'.", - "type": "object" - }, - "Transcript": { - "properties": { - "codingSequence": { - "$ref": "CodingSequence", - "description": "The range of the coding sequence for this transcript, if any. To determine\nthe exact ranges of coding sequence, intersect this range with those of the\nexons, if any. If there are any\nexons, the\ncodingSequence must start\nand end within them.\n\nNote that in some cases, the reference genome will not exactly match the\nobserved mRNA transcript e.g. due to variance in the source genome from\nreference. In these cases,\nexon.frame will not necessarily\nmatch the expected reference reading frame and coding exon reference bases\ncannot necessarily be concatenated to produce the original transcript mRNA." - }, - "geneId": { - "description": "The annotation ID of the gene from which this transcript is transcribed.", - "type": "string" - }, - "exons": { - "description": "The \u003ca href=\"http://en.wikipedia.org/wiki/Exon\"\u003eexons\u003c/a\u003e that compose\nthis transcript. This field should be unset for genomes where transcript\nsplicing does not occur, for example prokaryotes.\n\nIntrons are regions of the transcript that are not included in the\nspliced RNA product. Though not explicitly modeled here, intron ranges can\nbe deduced; all regions of this transcript that are not exons are introns.\n\nExonic sequences do not necessarily code for a translational product\n(amino acids). Only the regions of exons bounded by the\ncodingSequence correspond\nto coding DNA sequence.\n\nExons are ordered by start position and may not overlap.", - "items": { - "$ref": "Exon" - }, - "type": "array" - } - }, - "id": "Transcript", - "description": "A transcript represents the assertion that a particular region of the\nreference genome may be transcribed as RNA.", - "type": "object" - }, - "Experiment": { - "properties": { - "sequencingCenter": { - "description": "The sequencing center used as part of this experiment.", - "type": "string" - }, - "platformUnit": { - "description": "The platform unit used as part of this experiment, for example\nflowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the\n@RG PU field in the SAM spec.", - "type": "string" - }, - "instrumentModel": { - "description": "The instrument model used as part of this experiment. This maps to\nsequencing technology in the SAM spec.", - "type": "string" - }, - "libraryId": { - "description": "A client-supplied library identifier; a library is a collection of DNA\nfragments which have been prepared for sequencing from a sample. This\nfield is important for quality control as error or bias can be introduced\nduring sample preparation.", - "type": "string" - } - }, - "id": "Experiment", - "type": "object" - }, - "ListDatasetsResponse": { - "properties": { - "nextPageToken": { - "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.", - "type": "string" - }, - "datasets": { - "description": "The list of matching Datasets.", - "items": { - "$ref": "Dataset" - }, - "type": "array" - } - }, - "id": "ListDatasetsResponse", - "description": "The dataset list response.", + "id": "ListBasesResponse", "type": "object" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1", "baseUrl": "https://genomics.googleapis.com/", "auth": { @@ -3811,7 +3802,16 @@ } } }, - "kind": "discovery#restDescription", + "servicePath": "", "description": "Upload, process, query, and search Genomics data in the cloud.", - "servicePath": "" + "kind": "discovery#restDescription", + "rootUrl": "https://genomics.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "genomics", + "batchPath": "batch", + "revision": "20171018", + "documentationLink": "https://cloud.google.com/genomics", + "id": "genomics:v1", + "title": "Genomics API" } diff --git a/vendor/google.golang.org/api/genomics/v1alpha2/genomics-api.json b/vendor/google.golang.org/api/genomics/v1alpha2/genomics-api.json index 113080f10..9765b519e 100644 --- a/vendor/google.golang.org/api/genomics/v1alpha2/genomics-api.json +++ b/vendor/google.golang.org/api/genomics/v1alpha2/genomics-api.json @@ -2,14 +2,14 @@ "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/genomics": { - "description": "View and manage Genomics data" - }, "https://www.googleapis.com/auth/compute": { "description": "View and manage your Google Compute Engine resources" }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/genomics": { + "description": "View and manage Genomics data" } } } @@ -22,9 +22,9 @@ "ownerDomain": "google.com", "name": "genomics", "batchPath": "batch", - "id": "genomics:v1alpha2", + "revision": "20171018", "documentationLink": "https://cloud.google.com/genomics", - "revision": "20170928", + "id": "genomics:v1alpha2", "title": "Genomics API", "ownerName": "Google", "discoveryVersion": "v1", @@ -32,21 +32,6 @@ "pipelines": { "methods": { "get": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], - "parameters": { - "pipelineId": { - "location": "path", - "description": "Caller must have READ access to the project in which this pipeline\nis defined.", - "type": "string", - "required": true - } - }, - "flatPath": "v1alpha2/pipelines/{pipelineId}", - "id": "genomics.pipelines.get", - "path": "v1alpha2/pipelines/{pipelineId}", "description": "Retrieves a pipeline based on ID.\n\nCaller must have READ permission to the project.", "response": { "$ref": "Pipeline" @@ -54,43 +39,51 @@ "parameterOrder": [ "pipelineId" ], - "httpMethod": "GET" + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], + "parameters": { + "pipelineId": { + "description": "Caller must have READ access to the project in which this pipeline\nis defined.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v1alpha2/pipelines/{pipelineId}", + "id": "genomics.pipelines.get", + "path": "v1alpha2/pipelines/{pipelineId}" }, "setOperationStatus": { - "httpMethod": "PUT", - "parameterOrder": [], "response": { "$ref": "Empty" }, + "parameterOrder": [], + "httpMethod": "PUT", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], "parameters": {}, "flatPath": "v1alpha2/pipelines:setOperationStatus", - "path": "v1alpha2/pipelines:setOperationStatus", "id": "genomics.pipelines.setOperationStatus", + "path": "v1alpha2/pipelines:setOperationStatus", "request": { "$ref": "SetOperationStatusRequest" }, "description": "Sets status of a given operation. Any new timestamps (as determined by\ndescription) are appended to TimestampEvents. Should only be called by VMs\ncreated by the Pipelines Service and not by end users." }, "delete": { - "flatPath": "v1alpha2/pipelines/{pipelineId}", - "path": "v1alpha2/pipelines/{pipelineId}", - "id": "genomics.pipelines.delete", "description": "Deletes a pipeline based on ID.\n\nCaller must have WRITE permission to the project.", - "httpMethod": "DELETE", - "parameterOrder": [ - "pipelineId" - ], "response": { "$ref": "Empty" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" + "parameterOrder": [ + "pipelineId" ], + "httpMethod": "DELETE", "parameters": { "pipelineId": { "location": "path", @@ -98,18 +91,22 @@ "type": "string", "required": true } - } - }, - "getControllerConfig": { - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ControllerConfig" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], + "flatPath": "v1alpha2/pipelines/{pipelineId}", + "id": "genomics.pipelines.delete", + "path": "v1alpha2/pipelines/{pipelineId}" + }, + "getControllerConfig": { + "description": "Gets controller configuration information. Should only be called\nby VMs created by the Pipelines Service and not by end users.", + "httpMethod": "GET", + "response": { + "$ref": "ControllerConfig" + }, + "parameterOrder": [], "parameters": { "operationId": { "location": "query", @@ -117,33 +114,40 @@ "type": "string" }, "validationToken": { - "location": "query", "format": "uint64", - "type": "string" + "type": "string", + "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "flatPath": "v1alpha2/pipelines:getControllerConfig", "path": "v1alpha2/pipelines:getControllerConfig", - "id": "genomics.pipelines.getControllerConfig", - "description": "Gets controller configuration information. Should only be called\nby VMs created by the Pipelines Service and not by end users." + "id": "genomics.pipelines.getControllerConfig" }, "list": { "description": "Lists pipelines.\n\nCaller must have READ permission to the project.", - "httpMethod": "GET", - "parameterOrder": [], "response": { "$ref": "ListPipelinesResponse" }, + "httpMethod": "GET", + "parameterOrder": [], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "parameters": { "namePrefix": { + "location": "query", "description": "Pipelines with names that match this prefix should be\nreturned. If unspecified, all pipelines in the project, up to\n`pageSize`, will be returned.", - "type": "string", - "location": "query" + "type": "string" }, "pageToken": { + "location": "query", "description": "Token to use to indicate where to start getting results.\nIf unspecified, returns the first page of results.", - "type": "string", - "location": "query" + "type": "string" }, "pageSize": { "format": "int32", @@ -157,32 +161,28 @@ "type": "string" } }, + "flatPath": "v1alpha2/pipelines", + "id": "genomics.pipelines.list", + "path": "v1alpha2/pipelines" + }, + "create": { + "request": { + "$ref": "Pipeline" + }, + "description": "Creates a pipeline that can be run later. Create takes a Pipeline that\nhas all fields other than `pipelineId` populated, and then returns\nthe same pipeline with `pipelineId` populated. This id can be used\nto run the pipeline.\n\nCaller must have WRITE permission to the project.", + "response": { + "$ref": "Pipeline" + }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1alpha2/pipelines", - "path": "v1alpha2/pipelines", - "id": "genomics.pipelines.list" - }, - "create": { - "flatPath": "v1alpha2/pipelines", - "path": "v1alpha2/pipelines", - "id": "genomics.pipelines.create", - "description": "Creates a pipeline that can be run later. Create takes a Pipeline that\nhas all fields other than `pipelineId` populated, and then returns\nthe same pipeline with `pipelineId` populated. This id can be used\nto run the pipeline.\n\nCaller must have WRITE permission to the project.", - "request": { - "$ref": "Pipeline" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Pipeline" - }, "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ] + "flatPath": "v1alpha2/pipelines", + "id": "genomics.pipelines.create", + "path": "v1alpha2/pipelines" }, "run": { "httpMethod": "POST", @@ -190,62 +190,90 @@ "response": { "$ref": "Operation" }, + "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/genomics" ], - "parameters": {}, "flatPath": "v1alpha2/pipelines:run", "path": "v1alpha2/pipelines:run", "id": "genomics.pipelines.run", + "description": "Runs a pipeline. If `pipelineId` is specified in the request, then\nrun a saved pipeline. If `ephemeralPipeline` is specified, then run\nthat pipeline once without saving a copy.\n\nThe caller must have READ permission to the project where the pipeline\nis stored and WRITE permission to the project where the pipeline will be\nrun, as VMs will be created and storage will be used.\n\nIf a pipeline operation is still running after 6 days, it will be canceled.", "request": { "$ref": "RunPipelineRequest" - }, - "description": "Runs a pipeline. If `pipelineId` is specified in the request, then\nrun a saved pipeline. If `ephemeralPipeline` is specified, then run\nthat pipeline once without saving a copy.\n\nThe caller must have READ permission to the project where the pipeline\nis stored and WRITE permission to the project where the pipeline will be\nrun, as VMs will be created and storage will be used.\n\nIf a pipeline operation is still running after 6 days, it will be canceled." + } } } }, "operations": { "methods": { - "get": { - "response": { - "$ref": "Operation" - }, + "cancel": { + "httpMethod": "POST", "parameterOrder": [ "name" ], - "httpMethod": "GET", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/genomics" + ], "parameters": { "name": { - "type": "string", - "required": true, "pattern": "^operations/.+$", "location": "path", - "description": "The name of the operation resource." + "description": "The name of the operation resource to be cancelled.", + "type": "string", + "required": true + } + }, + "flatPath": "v1alpha2/operations/{operationsId}:cancel", + "path": "v1alpha2/{+name}:cancel", + "id": "genomics.operations.cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation." + }, + "get": { + "path": "v1alpha2/{+name}", + "id": "genomics.operations.get", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "pattern": "^operations/.+$", + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1alpha2/operations/{operationsId}", - "id": "genomics.operations.get", - "path": "v1alpha2/{+name}", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + "flatPath": "v1alpha2/operations/{operationsId}" }, "list": { - "response": { - "$ref": "ListOperationsResponse" - }, + "path": "v1alpha2/{+name}", + "id": "genomics.operations.list", + "description": "Lists operations that match the specified filter in the request.", + "httpMethod": "GET", "parameterOrder": [ "name" ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/genomics" - ], + "response": { + "$ref": "ListOperationsResponse" + }, "parameters": { "filter": { "location": "query", @@ -253,9 +281,9 @@ "type": "string" }, "pageToken": { - "location": "query", "description": "The standard list page token.", - "type": "string" + "type": "string", + "location": "query" }, "name": { "pattern": "^operations$", @@ -271,48 +299,20 @@ "location": "query" } }, - "flatPath": "v1alpha2/operations", - "id": "genomics.operations.list", - "path": "v1alpha2/{+name}", - "description": "Lists operations that match the specified filter in the request." - }, - "cancel": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^operations/.+$" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/genomics" ], - "flatPath": "v1alpha2/operations/{operationsId}:cancel", - "path": "v1alpha2/{+name}:cancel", - "id": "genomics.operations.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. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation.", - "request": { - "$ref": "CancelOperationRequest" - } + "flatPath": "v1alpha2/operations" } } } }, "parameters": { "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", @@ -320,15 +320,15 @@ "type": "boolean", "location": "query" }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" }, "callback": { "location": "query", @@ -336,19 +336,21 @@ "type": "string" }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ] + "type": "string" }, "alt": { + "description": "Data format for response.", + "default": "json", "enum": [ "json", "media", @@ -360,30 +362,28 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], + "location": "query" + }, + "key": { "location": "query", - "description": "Data format for response.", - "default": "json" + "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.", + "type": "string" }, "access_token": { "description": "OAuth access token.", "type": "string", "location": "query" }, - "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.", - "type": "string", - "location": "query" - }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "oauth_token": { "location": "query", @@ -391,37 +391,77 @@ "type": "string" }, "bearer_token": { - "location": "query", "description": "OAuth bearer token.", - "type": "string" + "type": "string", + "location": "query" } }, "schemas": { - "TimestampEvent": { - "description": "Stores the list of events and times they occured for major events in job\nexecution.", + "ComputeEngine": { + "description": "Describes a Compute Engine resource that is being managed by a running\npipeline.", "type": "object", "properties": { + "zone": { + "description": "The availability zone in which the instance resides.", + "type": "string" + }, + "diskNames": { + "description": "The names of the disks that were created for this pipeline.", + "items": { + "type": "string" + }, + "type": "array" + }, + "machineType": { + "description": "The machine type of the instance.", + "type": "string" + }, + "instanceName": { + "description": "The instance on which the operation is running.", + "type": "string" + } + }, + "id": "ComputeEngine" + }, + "ImportVariantsResponse": { + "description": "The variant data import response.", + "type": "object", + "properties": { + "callSetIds": { + "description": "IDs of the call sets created during the import.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "ImportVariantsResponse" + }, + "TimestampEvent": { + "properties": { + "description": { + "description": "String indicating the type of event", + "type": "string" + }, "timestamp": { "format": "google-datetime", "description": "The time this event occured.", "type": "string" - }, - "description": { - "description": "String indicating the type of event", - "type": "string" } }, - "id": "TimestampEvent" + "id": "TimestampEvent", + "description": "Stores the list of events and times they occured for major events in job\nexecution.", + "type": "object" }, "LocalCopy": { "properties": { - "disk": { - "description": "Required. The name of the disk where this parameter is\nlocated. Can be the name of one of the disks specified in the\nResources field, or \"boot\", which represents the Docker\ninstance's boot disk and has a mount point of `/`.", - "type": "string" - }, "path": { "description": "Required. The path within the user's docker container where\nthis input should be localized to and from, relative to the specified\ndisk's mount point. For example: file.txt,", "type": "string" + }, + "disk": { + "description": "Required. The name of the disk where this parameter is\nlocated. Can be the name of one of the disks specified in the\nResources field, or \"boot\", which represents the Docker\ninstance's boot disk and has a mount point of `/`.", + "type": "string" } }, "id": "LocalCopy", @@ -429,8 +469,6 @@ "type": "object" }, "DockerExecutor": { - "description": "The Docker execuctor specification.", - "type": "object", "properties": { "cmd": { "description": "Required. The command or newline delimited script to run. The command\nstring will be executed within a bash shell.\n\nIf the command exits with a non-zero exit code, output parameter\nde-localization will be skipped and the pipeline operation's\n`error` field will be populated.\n\nMaximum command string length is 16384.", @@ -441,16 +479,18 @@ "type": "string" } }, - "id": "DockerExecutor" + "id": "DockerExecutor", + "description": "The Docker execuctor specification.", + "type": "object" + }, + "Empty": { + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" }, "Disk": { - "description": "A Google Compute Engine disk resource specification.", - "type": "object", "properties": { - "autoDelete": { - "description": "Deprecated. Disks created by the Pipelines API will be deleted at the end\nof the pipeline run, regardless of what this field is set to.", - "type": "boolean" - }, "sizeGb": { "format": "int32", "description": "The size of the disk. Defaults to 500 (GB).\nThis field is not applicable for local SSD.", @@ -487,27 +527,25 @@ ], "description": "Required. The type of the disk to create.", "type": "string" + }, + "autoDelete": { + "description": "Deprecated. Disks created by the Pipelines API will be deleted at the end\nof the pipeline run, regardless of what this field is set to.", + "type": "boolean" } }, - "id": "Disk" - }, - "Empty": { - "type": "object", - "properties": {}, - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`." + "id": "Disk", + "description": "A Google Compute Engine disk resource specification.", + "type": "object" }, "PipelineParameter": { - "description": "Parameters facilitate setting and delivering data into the\npipeline's execution environment. They are defined at create time,\nwith optional defaults, and can be overridden at run time.\n\nIf `localCopy` is unset, then the parameter specifies a string that\nis passed as-is into the pipeline, as the value of the environment\nvariable with the given name. A default value can be optionally\nspecified at create time. The default can be overridden at run time\nusing the inputs map. If no default is given, a value must be\nsupplied at runtime.\n\nIf `localCopy` is defined, then the parameter specifies a data\nsource or sink, both in Google Cloud Storage and on the Docker container\nwhere the pipeline computation is run. The service account associated with\nthe Pipeline (by\ndefault the project's Compute Engine service account) must have access to the\nGoogle Cloud Storage paths.\n\nAt run time, the Google Cloud Storage paths can be overridden if a default\nwas provided at create time, or must be set otherwise. The pipeline runner\nshould add a key/value pair to either the inputs or outputs map. The\nindicated data copies will be carried out before/after pipeline execution,\njust as if the corresponding arguments were provided to `gsutil cp`.\n\nFor example: Given the following `PipelineParameter`, specified\nin the `inputParameters` list:\n\n```\n{name: \"input_file\", localCopy: {path: \"file.txt\", disk: \"pd1\"}}\n```\n\nwhere `disk` is defined in the `PipelineResources` object as:\n\n```\n{name: \"pd1\", mountPoint: \"/mnt/disk/\"}\n```\n\nWe create a disk named `pd1`, mount it on the host VM, and map\n`/mnt/pd1` to `/mnt/disk` in the docker container. At\nruntime, an entry for `input_file` would be required in the inputs\nmap, such as:\n\n```\n inputs[\"input_file\"] = \"gs://my-bucket/bar.txt\"\n```\n\nThis would generate the following gsutil call:\n\n```\n gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt\n```\n\nThe file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the\nDocker container. Acceptable paths are:\n\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\u003cth\u003eGoogle Cloud storage path\u003c/th\u003e\u003cth\u003eLocal path\u003c/th\u003e\u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\u003ctd\u003efile\u003c/td\u003e\u003ctd\u003efile\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003eglob\u003c/td\u003e\u003ctd\u003edirectory\u003c/td\u003e\u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\nFor outputs, the direction of the copy is reversed:\n\n```\n gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt\n```\n\nAcceptable paths are:\n\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\u003cth\u003eLocal path\u003c/th\u003e\u003cth\u003eGoogle Cloud Storage path\u003c/th\u003e\u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\u003ctd\u003efile\u003c/td\u003e\u003ctd\u003efile\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003efile\u003c/td\u003e\n \u003ctd\u003edirectory - directory must already exist\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003eglob\u003c/td\u003e\n \u003ctd\u003edirectory - directory will be created if it doesn't exist\u003c/td\u003e\u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\nOne restriction due to docker limitations, is that for outputs that are found\non the boot disk, the local path cannot be a glob and must be a file.", - "type": "object", "properties": { "defaultValue": { "description": "The default value for this parameter. Can be overridden at runtime.\nIf `localCopy` is present, then this must be a Google Cloud Storage path\nbeginning with `gs://`.", "type": "string" }, "name": { - "type": "string", - "description": "Required. Name of the parameter - the pipeline runner uses this string\nas the key to the input and output maps in RunPipeline." + "description": "Required. Name of the parameter - the pipeline runner uses this string\nas the key to the input and output maps in RunPipeline.", + "type": "string" }, "description": { "description": "Human-readable description.", @@ -518,7 +556,9 @@ "description": "If present, this parameter is marked for copying to and from the VM.\n`LocalCopy` indicates where on the VM the file should be. The value\ngiven to this parameter (either at runtime or using `defaultValue`)\nmust be the remote path where the file should be." } }, - "id": "PipelineParameter" + "id": "PipelineParameter", + "description": "Parameters facilitate setting and delivering data into the\npipeline's execution environment. They are defined at create time,\nwith optional defaults, and can be overridden at run time.\n\nIf `localCopy` is unset, then the parameter specifies a string that\nis passed as-is into the pipeline, as the value of the environment\nvariable with the given name. A default value can be optionally\nspecified at create time. The default can be overridden at run time\nusing the inputs map. If no default is given, a value must be\nsupplied at runtime.\n\nIf `localCopy` is defined, then the parameter specifies a data\nsource or sink, both in Google Cloud Storage and on the Docker container\nwhere the pipeline computation is run. The service account associated with\nthe Pipeline (by\ndefault the project's Compute Engine service account) must have access to the\nGoogle Cloud Storage paths.\n\nAt run time, the Google Cloud Storage paths can be overridden if a default\nwas provided at create time, or must be set otherwise. The pipeline runner\nshould add a key/value pair to either the inputs or outputs map. The\nindicated data copies will be carried out before/after pipeline execution,\njust as if the corresponding arguments were provided to `gsutil cp`.\n\nFor example: Given the following `PipelineParameter`, specified\nin the `inputParameters` list:\n\n```\n{name: \"input_file\", localCopy: {path: \"file.txt\", disk: \"pd1\"}}\n```\n\nwhere `disk` is defined in the `PipelineResources` object as:\n\n```\n{name: \"pd1\", mountPoint: \"/mnt/disk/\"}\n```\n\nWe create a disk named `pd1`, mount it on the host VM, and map\n`/mnt/pd1` to `/mnt/disk` in the docker container. At\nruntime, an entry for `input_file` would be required in the inputs\nmap, such as:\n\n```\n inputs[\"input_file\"] = \"gs://my-bucket/bar.txt\"\n```\n\nThis would generate the following gsutil call:\n\n```\n gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt\n```\n\nThe file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the\nDocker container. Acceptable paths are:\n\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\u003cth\u003eGoogle Cloud storage path\u003c/th\u003e\u003cth\u003eLocal path\u003c/th\u003e\u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\u003ctd\u003efile\u003c/td\u003e\u003ctd\u003efile\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003eglob\u003c/td\u003e\u003ctd\u003edirectory\u003c/td\u003e\u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\nFor outputs, the direction of the copy is reversed:\n\n```\n gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt\n```\n\nAcceptable paths are:\n\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\u003cth\u003eLocal path\u003c/th\u003e\u003cth\u003eGoogle Cloud Storage path\u003c/th\u003e\u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\u003ctd\u003efile\u003c/td\u003e\u003ctd\u003efile\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003efile\u003c/td\u003e\n \u003ctd\u003edirectory - directory must already exist\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003eglob\u003c/td\u003e\n \u003ctd\u003edirectory - directory will be created if it doesn't exist\u003c/td\u003e\u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\nOne restriction due to docker limitations, is that for outputs that are found\non the boot disk, the local path cannot be a glob and must be a file.", + "type": "object" }, "LoggingOptions": { "description": "The logging options for the pipeline run.", @@ -532,54 +572,41 @@ "id": "LoggingOptions" }, "RunPipelineRequest": { - "id": "RunPipelineRequest", "description": "The request to run a pipeline. If `pipelineId` is specified, it\nrefers to a saved pipeline created with CreatePipeline and set as\nthe `pipelineId` of the returned Pipeline object. If\n`ephemeralPipeline` is specified, that pipeline is run once\nwith the given args and not saved. It is an error to specify both\n`pipelineId` and `ephemeralPipeline`. `pipelineArgs`\nmust be specified.", "type": "object", "properties": { + "ephemeralPipeline": { + "$ref": "Pipeline", + "description": "A new pipeline object to run once and then delete." + }, "pipelineArgs": { - "$ref": "RunPipelineArgs", - "description": "The arguments to use when running this pipeline." + "description": "The arguments to use when running this pipeline.", + "$ref": "RunPipelineArgs" }, "pipelineId": { "description": "The already created pipeline to run.", "type": "string" - }, - "ephemeralPipeline": { - "description": "A new pipeline object to run once and then delete.", - "$ref": "Pipeline" - } - } - }, - "CancelOperationRequest": { - "description": "The request message for Operations.CancelOperation.", - "type": "object", - "properties": {}, - "id": "CancelOperationRequest" - }, - "RuntimeMetadata": { - "description": "Runtime metadata that will be populated in the\nruntimeMetadata\nfield of the Operation associated with a RunPipeline execution.", - "type": "object", - "properties": { - "computeEngine": { - "$ref": "ComputeEngine", - "description": "Execution information specific to Google Compute Engine." } }, - "id": "RuntimeMetadata" + "id": "RunPipelineRequest" + }, + "CancelOperationRequest": { + "properties": {}, + "id": "CancelOperationRequest", + "description": "The request message for Operations.CancelOperation.", + "type": "object" }, "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", "properties": { - "done": { - "type": "boolean", - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable." - }, "response": { - "description": "If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an Empty response is returned.", - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - } + }, + "description": "If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an Empty response is returned.", + "type": "object" }, "name": { "description": "The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`", @@ -596,15 +623,26 @@ }, "description": "An OperationMetadata object. This will always be returned with the Operation.", "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object" + "id": "Operation" + }, + "RuntimeMetadata": { + "description": "Runtime metadata that will be populated in the\nruntimeMetadata\nfield of the Operation associated with a RunPipeline execution.", + "type": "object", + "properties": { + "computeEngine": { + "description": "Execution information specific to Google Compute Engine.", + "$ref": "ComputeEngine" + } + }, + "id": "RuntimeMetadata" }, "ImportReadGroupSetsResponse": { - "description": "The read group set import response.", - "type": "object", "properties": { "readGroupSetIds": { "description": "IDs of the read group sets that were created.", @@ -614,17 +652,12 @@ "type": "array" } }, - "id": "ImportReadGroupSetsResponse" + "id": "ImportReadGroupSetsResponse", + "description": "The read group set import response.", + "type": "object" }, "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" @@ -639,9 +672,16 @@ "type": "object" }, "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" } }, - "id": "Status" + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object" }, "ServiceAccount": { "description": "A Google Cloud Service Account.", @@ -661,7 +701,52 @@ }, "id": "ServiceAccount" }, + "PipelineResources": { + "properties": { + "minimumRamGb": { + "format": "double", + "description": "The minimum amount of RAM to use. Defaults to 3.75 (GB)", + "type": "number" + }, + "preemptible": { + "description": "Whether to use preemptible VMs. Defaults to `false`. In order to use this,\nmust be true for both create time and run time. Cannot be true at run time\nif false at create time.", + "type": "boolean" + }, + "zones": { + "description": "List of Google Compute Engine availability zones to which resource\ncreation will restricted. If empty, any zone may be chosen.", + "items": { + "type": "string" + }, + "type": "array" + }, + "minimumCpuCores": { + "format": "int32", + "description": "The minimum number of cores to use. Defaults to 1.", + "type": "integer" + }, + "noAddress": { + "description": "Whether to assign an external IP to the instance. This is an experimental\nfeature that may go away. Defaults to false.\nCorresponds to `--no_address` flag for [gcloud compute instances create]\n(https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).\nIn order to use this, must be true for both create time and run time.\nCannot be true at run time if false at create time. If you need to ssh into\na private IP VM for debugging, you can ssh to a public VM and then ssh into\nthe private VM's Internal IP. If noAddress is set, this pipeline run may\nonly load docker images from Google Container Registry and not Docker Hub.\nBefore using this, you must\n[configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).", + "type": "boolean" + }, + "disks": { + "description": "Disks to attach.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "bootDiskSizeGb": { + "format": "int32", + "description": "The size of the boot disk. Defaults to 10 (GB).", + "type": "integer" + } + }, + "id": "PipelineResources", + "description": "The system resources for the pipeline run.", + "type": "object" + }, "Pipeline": { + "description": "The pipeline object. Represents a transformation from a set of input\nparameters to a set of output parameters. The transformation is defined\nas a docker image and command to run within that image. Each pipeline\nis run on a Google Compute Engine VM. A pipeline can be created with the\n`create` method and then later run with the `run` method, or a pipeline can\nbe defined and run all at once with the `run` method.", "type": "object", "properties": { "inputParameters": { @@ -672,12 +757,12 @@ "type": "array" }, "resources": { - "$ref": "PipelineResources", - "description": "Required. Specifies resource requirements for the pipeline run.\nRequired fields:\n\n*\nminimumCpuCores\n\n*\nminimumRamGb" + "description": "Required. Specifies resource requirements for the pipeline run.\nRequired fields:\n\n*\nminimumCpuCores\n\n*\nminimumRamGb", + "$ref": "PipelineResources" }, "name": { - "type": "string", - "description": "Required. A user specified pipeline name that does not have to be unique.\nThis name can be used for filtering Pipelines in ListPipelines." + "description": "Required. A user specified pipeline name that does not have to be unique.\nThis name can be used for filtering Pipelines in ListPipelines.", + "type": "string" }, "pipelineId": { "description": "Unique pipeline id that is generated by the service when CreatePipeline\nis called. Cannot be specified in the Pipeline used in the\nCreatePipelineRequest, and will be populated in the response to\nCreatePipeline and all subsequent Get and List calls. Indicates that the\nservice has registered this pipeline.", @@ -703,73 +788,7 @@ "type": "string" } }, - "id": "Pipeline", - "description": "The pipeline object. Represents a transformation from a set of input\nparameters to a set of output parameters. The transformation is defined\nas a docker image and command to run within that image. Each pipeline\nis run on a Google Compute Engine VM. A pipeline can be created with the\n`create` method and then later run with the `run` method, or a pipeline can\nbe defined and run all at once with the `run` method." - }, - "PipelineResources": { - "description": "The system resources for the pipeline run.", - "type": "object", - "properties": { - "minimumRamGb": { - "format": "double", - "description": "The minimum amount of RAM to use. Defaults to 3.75 (GB)", - "type": "number" - }, - "preemptible": { - "description": "Whether to use preemptible VMs. Defaults to `false`. In order to use this,\nmust be true for both create time and run time. Cannot be true at run time\nif false at create time.", - "type": "boolean" - }, - "zones": { - "items": { - "type": "string" - }, - "type": "array", - "description": "List of Google Compute Engine availability zones to which resource\ncreation will restricted. If empty, any zone may be chosen." - }, - "minimumCpuCores": { - "format": "int32", - "description": "The minimum number of cores to use. Defaults to 1.", - "type": "integer" - }, - "noAddress": { - "description": "Whether to assign an external IP to the instance. This is an experimental\nfeature that may go away. Defaults to false.\nCorresponds to `--no_address` flag for [gcloud compute instances create]\n(https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).\nIn order to use this, must be true for both create time and run time.\nCannot be true at run time if false at create time. If you need to ssh into\na private IP VM for debugging, you can ssh to a public VM and then ssh into\nthe private VM's Internal IP. If noAddress is set, this pipeline run may\nonly load docker images from Google Container Registry and not Docker Hub.\nBefore using this, you must\n[configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).", - "type": "boolean" - }, - "disks": { - "items": { - "$ref": "Disk" - }, - "type": "array", - "description": "Disks to attach." - }, - "bootDiskSizeGb": { - "format": "int32", - "description": "The size of the boot disk. Defaults to 10 (GB).", - "type": "integer" - } - }, - "id": "PipelineResources" - }, - "OperationEvent": { - "description": "An event that occurred during an Operation.", - "type": "object", - "properties": { - "endTime": { - "format": "google-datetime", - "description": "Optional time of when event finished. An event can have a start time and no\nfinish time. If an event has a finish time, there must be a start time.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "Optional time of when event started.", - "type": "string" - }, - "description": { - "description": "Required description of event.", - "type": "string" - } - }, - "id": "OperationEvent" + "id": "Pipeline" }, "ControllerConfig": { "description": "Stores the information that the controller will fetch from the\nserver in order to run. Should only be used by VMs created by the\nPipelines Service and not by end users.", @@ -800,10 +819,10 @@ "type": "object" }, "disks": { - "type": "object", "additionalProperties": { "type": "string" - } + }, + "type": "object" }, "machineType": { "type": "string" @@ -814,23 +833,26 @@ }, "id": "ControllerConfig" }, - "ListOperationsResponse": { + "OperationEvent": { + "description": "An event that occurred during an Operation.", "type": "object", "properties": { - "nextPageToken": { - "type": "string", - "description": "The standard List next-page token." + "endTime": { + "format": "google-datetime", + "description": "Optional time of when event finished. An event can have a start time and no\nfinish time. If an event has a finish time, there must be a start time.", + "type": "string" }, - "operations": { - "description": "A list of operations that matches the specified filter in the request.", - "items": { - "$ref": "Operation" - }, - "type": "array" + "startTime": { + "format": "google-datetime", + "description": "Optional time of when event started.", + "type": "string" + }, + "description": { + "description": "Required description of event.", + "type": "string" } }, - "id": "ListOperationsResponse", - "description": "The response message for Operations.ListOperations." + "id": "OperationEvent" }, "RepeatedString": { "type": "object", @@ -844,14 +866,30 @@ }, "id": "RepeatedString" }, + "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" + } + }, + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" + }, "OperationMetadata": { - "description": "Metadata describing an Operation.", - "type": "object", "properties": { "startTime": { - "type": "string", "format": "google-datetime", - "description": "The time at which the job began to run." + "description": "The time at which the job began to run.", + "type": "string" }, "request": { "additionalProperties": { @@ -875,11 +913,11 @@ "type": "string" }, "labels": { - "description": "Optionally provided by the caller when submitting the request that creates\nthe operation.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optionally provided by the caller when submitting the request that creates\nthe operation.", + "type": "object" }, "projectId": { "description": "The Google Cloud Project in which the job is scoped.", @@ -890,9 +928,9 @@ "type": "string" }, "endTime": { - "type": "string", "format": "google-datetime", - "description": "The time at which the job stopped running." + "description": "The time at which the job stopped running.", + "type": "string" }, "events": { "description": "Optional event messages that were generated during the job's execution.\nThis also contains any warnings that were generated during import\nor export.", @@ -902,11 +940,64 @@ "type": "array" } }, - "id": "OperationMetadata" + "id": "OperationMetadata", + "description": "Metadata describing an Operation.", + "type": "object" + }, + "RunPipelineArgs": { + "description": "The pipeline run arguments.", + "type": "object", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this pipeline run. Labels will also be applied to\ncompute resources (VM, disks) created by this pipeline run. When listing\noperations, operations can filtered by labels.\nLabel keys may not be empty; label values may be empty. Non-empty labels\nmust be 1-63 characters long, and comply with [RFC1035]\n(https://www.ietf.org/rfc/rfc1035.txt).\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "type": "object" + }, + "logging": { + "$ref": "LoggingOptions", + "description": "Required. Logging options. Used by the service to communicate results\nto the user." + }, + "keepVmAliveOnFailureDuration": { + "format": "google-duration", + "description": "How long to keep the VM up after a failure (for example docker command\nfailed, copying input or output files failed, etc). While the VM is up, one\ncan ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.", + "type": "string" + }, + "resources": { + "description": "Specifies resource requirements/overrides for the pipeline run.", + "$ref": "PipelineResources" + }, + "outputs": { + "additionalProperties": { + "type": "string" + }, + "description": "Pipeline output arguments; keys are defined in the pipeline\ndocumentation. All output parameters of without default values\nmust be specified. If parameters with defaults are specified\nhere, the defaults will be overridden.", + "type": "object" + }, + "projectId": { + "description": "Required. The project in which to run the pipeline. The caller must have\nWRITER access to all Google Cloud services and resources (e.g. Google\nCompute Engine) will be used.", + "type": "string" + }, + "clientId": { + "description": "This field is deprecated. Use `labels` instead. Client-specified pipeline\noperation identifier.", + "type": "string" + }, + "inputs": { + "additionalProperties": { + "type": "string" + }, + "description": "Pipeline input arguments; keys are defined in the pipeline documentation.\nAll input parameters that do not have default values must be specified.\nIf parameters with defaults are specified here, the defaults will be\noverridden.", + "type": "object" + }, + "serviceAccount": { + "$ref": "ServiceAccount", + "description": "The Google Cloud Service Account that will be used to access data and\nservices. By default, the compute service account associated with\n`projectId` is used." + } + }, + "id": "RunPipelineArgs" }, "ListPipelinesResponse": { - "description": "The response of ListPipelines. Contains at most `pageSize`\npipelines. If it contains `pageSize` pipelines, and more pipelines\nexist, then `nextPageToken` will be populated and should be\nused as the `pageToken` argument to a subsequent ListPipelines\nrequest.", - "type": "object", "properties": { "nextPageToken": { "description": "The token to use to get the next page of results.", @@ -920,62 +1011,13 @@ "type": "array" } }, - "id": "ListPipelinesResponse" - }, - "RunPipelineArgs": { - "properties": { - "clientId": { - "type": "string", - "description": "This field is deprecated. Use `labels` instead. Client-specified pipeline\noperation identifier." - }, - "inputs": { - "additionalProperties": { - "type": "string" - }, - "description": "Pipeline input arguments; keys are defined in the pipeline documentation.\nAll input parameters that do not have default values must be specified.\nIf parameters with defaults are specified here, the defaults will be\noverridden.", - "type": "object" - }, - "serviceAccount": { - "$ref": "ServiceAccount", - "description": "The Google Cloud Service Account that will be used to access data and\nservices. By default, the compute service account associated with\n`projectId` is used." - }, - "logging": { - "description": "Required. Logging options. Used by the service to communicate results\nto the user.", - "$ref": "LoggingOptions" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to this pipeline run. Labels will also be applied to\ncompute resources (VM, disks) created by this pipeline run. When listing\noperations, operations can filtered by labels.\nLabel keys may not be empty; label values may be empty. Non-empty labels\nmust be 1-63 characters long, and comply with [RFC1035]\n(https://www.ietf.org/rfc/rfc1035.txt).\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", - "type": "object" - }, - "keepVmAliveOnFailureDuration": { - "format": "google-duration", - "description": "How long to keep the VM up after a failure (for example docker command\nfailed, copying input or output files failed, etc). While the VM is up, one\ncan ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.", - "type": "string" - }, - "resources": { - "$ref": "PipelineResources", - "description": "Specifies resource requirements/overrides for the pipeline run." - }, - "outputs": { - "additionalProperties": { - "type": "string" - }, - "description": "Pipeline output arguments; keys are defined in the pipeline\ndocumentation. All output parameters of without default values\nmust be specified. If parameters with defaults are specified\nhere, the defaults will be overridden.", - "type": "object" - }, - "projectId": { - "description": "Required. The project in which to run the pipeline. The caller must have\nWRITER access to all Google Cloud services and resources (e.g. Google\nCompute Engine) will be used.", - "type": "string" - } - }, - "id": "RunPipelineArgs", - "description": "The pipeline run arguments.", + "id": "ListPipelinesResponse", + "description": "The response of ListPipelines. Contains at most `pageSize`\npipelines. If it contains `pageSize` pipelines, and more pipelines\nexist, then `nextPageToken` will be populated and should be\nused as the `pageToken` argument to a subsequent ListPipelines\nrequest.", "type": "object" }, "SetOperationStatusRequest": { + "description": "Request to set operation status. Should only be used by VMs\ncreated by the Pipelines Service and not by end users.", + "type": "object", "properties": { "errorCode": { "enum": [ @@ -1035,55 +1077,13 @@ "type": "string" } }, - "id": "SetOperationStatusRequest", - "description": "Request to set operation status. Should only be used by VMs\ncreated by the Pipelines Service and not by end users.", - "type": "object" - }, - "ComputeEngine": { - "description": "Describes a Compute Engine resource that is being managed by a running\npipeline.", - "type": "object", - "properties": { - "zone": { - "type": "string", - "description": "The availability zone in which the instance resides." - }, - "diskNames": { - "description": "The names of the disks that were created for this pipeline.", - "items": { - "type": "string" - }, - "type": "array" - }, - "machineType": { - "description": "The machine type of the instance.", - "type": "string" - }, - "instanceName": { - "type": "string", - "description": "The instance on which the operation is running." - } - }, - "id": "ComputeEngine" - }, - "ImportVariantsResponse": { - "description": "The variant data import response.", - "type": "object", - "properties": { - "callSetIds": { - "description": "IDs of the call sets created during the import.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "ImportVariantsResponse" + "id": "SetOperationStatusRequest" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "version": "v1alpha2", "baseUrl": "https://genomics.googleapis.com/" diff --git a/vendor/google.golang.org/api/iam/v1/iam-api.json b/vendor/google.golang.org/api/iam/v1/iam-api.json index fef8df4a3..e9da2eefb 100644 --- a/vendor/google.golang.org/api/iam/v1/iam-api.json +++ b/vendor/google.golang.org/api/iam/v1/iam-api.json @@ -1,17 +1,1139 @@ { - "revision": "20170922", - "documentationLink": "https://cloud.google.com/iam/", + "fullyEncodeReservedExpansion": true, + "title": "Google Identity and Access Management (IAM) API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "serviceAccounts": { + "methods": { + "setIamPolicy": { + "description": "Sets the IAM access control policy for a\nServiceAccount.", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "iam.projects.serviceAccounts.setIamPolicy" + }, + "signJwt": { + "response": { + "$ref": "SignJwtResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path", + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", + "path": "v1/{+name}:signJwt", + "id": "iam.projects.serviceAccounts.signJwt", + "request": { + "$ref": "SignJwtRequest" + }, + "description": "Signs a JWT using a service account's system-managed private key.\n\nIf no expiry time (`exp`) is provided in the `SignJwtRequest`, IAM sets an\nan expiry time of one hour by default. If you request an expiry time of\nmore than one hour, the request will fail." + }, + "create": { + "response": { + "$ref": "ServiceAccount" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects/my-project-123`.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/serviceAccounts", + "path": "v1/{+name}/serviceAccounts", + "id": "iam.projects.serviceAccounts.create", + "description": "Creates a ServiceAccount\nand returns it.", + "request": { + "$ref": "CreateServiceAccountRequest" + } + }, + "getIamPolicy": { + "path": "v1/{+resource}:getIamPolicy", + "id": "iam.projects.serviceAccounts.getIamPolicy", + "description": "Returns the IAM access control policy for a\nServiceAccount.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy" + }, + "get": { + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", + "path": "v1/{+name}", + "id": "iam.projects.serviceAccounts.get", + "description": "Gets a ServiceAccount.", + "response": { + "$ref": "ServiceAccount" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path", + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string" + } + } + }, + "update": { + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", + "id": "iam.projects.serviceAccounts.update", + "path": "v1/{+name}", + "request": { + "$ref": "ServiceAccount" + }, + "description": "Updates a ServiceAccount.\n\nCurrently, only the following fields are updatable:\n`display_name` .\nThe `etag` is mandatory.", + "httpMethod": "PUT", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "ServiceAccount" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path", + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nRequests using `-` as a wildcard for the `PROJECT_ID` will infer the\nproject from the `account` and the `ACCOUNT` value can be the `email`\naddress or the `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "iam.projects.serviceAccounts.testIamPermissions", + "description": "Tests the specified permissions against the IAM access control policy\nfor a ServiceAccount.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path" + } + } + }, + "delete": { + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", + "path": "v1/{+name}", + "id": "iam.projects.serviceAccounts.delete", + "description": "Deletes a ServiceAccount.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "signBlob": { + "description": "Signs a blob using a service account's system-managed private key.", + "request": { + "$ref": "SignBlobRequest" + }, + "response": { + "$ref": "SignBlobResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", + "path": "v1/{+name}:signBlob", + "id": "iam.projects.serviceAccounts.signBlob" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListServiceAccountsResponse" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects/my-project-123`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageToken": { + "description": "Optional pagination token returned in an earlier\nListServiceAccountsResponse.next_page_token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Optional limit on the number of service accounts to include in the\nresponse. Further accounts can subsequently be obtained by including the\nListServiceAccountsResponse.next_page_token\nin a subsequent request.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts", + "id": "iam.projects.serviceAccounts.list", + "path": "v1/{+name}/serviceAccounts", + "description": "Lists ServiceAccounts for a project." + } + }, + "resources": { + "keys": { + "methods": { + "create": { + "request": { + "$ref": "CreateServiceAccountKeyRequest" + }, + "description": "Creates a ServiceAccountKey\nand returns it.", + "response": { + "$ref": "ServiceAccountKey" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", + "path": "v1/{+name}/keys", + "id": "iam.projects.serviceAccounts.keys.create" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "description": "The resource name of the service account key in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", + "path": "v1/{+name}", + "id": "iam.projects.serviceAccounts.keys.delete", + "description": "Deletes a ServiceAccountKey." + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "ListServiceAccountKeysResponse" + }, + "parameters": { + "keyTypes": { + "location": "query", + "enum": [ + "KEY_TYPE_UNSPECIFIED", + "USER_MANAGED", + "SYSTEM_MANAGED" + ], + "description": "Filters the types of keys the user wants to include in the list\nresponse. Duplicate key types are not allowed. If no key type\nis provided, all keys are returned.", + "type": "string", + "repeated": true + }, + "name": { + "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nUsing `-` as a wildcard for the `PROJECT_ID`, will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", + "id": "iam.projects.serviceAccounts.keys.list", + "path": "v1/{+name}/keys", + "description": "Lists ServiceAccountKeys." + }, + "get": { + "description": "Gets the ServiceAccountKey\nby key id.", + "httpMethod": "GET", + "response": { + "$ref": "ServiceAccountKey" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "publicKeyType": { + "location": "query", + "enum": [ + "TYPE_NONE", + "TYPE_X509_PEM_FILE", + "TYPE_RAW_PUBLIC_KEY" + ], + "description": "The output format of the public key requested.\nX509_PEM is the default output format.", + "type": "string" + }, + "name": { + "location": "path", + "description": "The resource name of the service account key in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.\n\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", + "id": "iam.projects.serviceAccounts.keys.get", + "path": "v1/{+name}" + } + } + } + } + }, + "roles": { + "methods": { + "delete": { + "description": "Soft deletes a role. The role is suspended and cannot be used to create new\nIAM Policy Bindings.\nThe Role will not be included in `ListRoles()` unless `show_deleted` is set\nin the `ListRolesRequest`. The Role contains the deleted boolean set.\nExisting Bindings remains, but are inactive. The Role can be undeleted\nwithin 7 days. After 7 days the Role is deleted and all Bindings associated\nwith the role are removed.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Role" + }, + "parameters": { + "etag": { + "location": "query", + "description": "Used to perform a consistent read-modify-write.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/roles/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/roles/{rolesId}", + "id": "iam.projects.roles.delete", + "path": "v1/{+name}" + }, + "list": { + "response": { + "$ref": "ListRolesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "showDeleted": { + "location": "query", + "description": "Include Roles that have been deleted.", + "type": "boolean" + }, + "pageToken": { + "description": "Optional pagination token returned in an earlier ListRolesResponse.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "Optional limit on the number of roles to include in the response.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Optional view for the returned Role objects.", + "type": "string" + }, + "parent": { + "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/roles", + "path": "v1/{+parent}/roles", + "id": "iam.projects.roles.list", + "description": "Lists the Roles defined on a resource." + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "Role" + }, + "parameters": { + "parent": { + "location": "path", + "description": "The resource name of the parent resource in one of the following formats:\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/roles", + "id": "iam.projects.roles.create", + "path": "v1/{+parent}/roles", + "request": { + "$ref": "CreateRoleRequest" + }, + "description": "Creates a new Role." + }, + "patch": { + "description": "Updates a Role definition.", + "request": { + "$ref": "Role" + }, + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/roles/[^/]+$", + "location": "path" + }, + "updateMask": { + "location": "query", + "description": "A mask describing which fields in the Role have changed.", + "format": "google-fieldmask", + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/roles/{rolesId}", + "path": "v1/{+name}", + "id": "iam.projects.roles.patch" + }, + "undelete": { + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/roles/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/roles/{rolesId}:undelete", + "path": "v1/{+name}:undelete", + "id": "iam.projects.roles.undelete", + "description": "Undelete a Role, bringing it back in its previous state.", + "request": { + "$ref": "UndeleteRoleRequest" + } + }, + "get": { + "flatPath": "v1/projects/{projectsId}/roles/{rolesId}", + "path": "v1/{+name}", + "id": "iam.projects.roles.get", + "description": "Gets a Role definition.", + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "location": "path", + "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/roles/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "roles": { + "methods": { + "queryGrantableRoles": { + "id": "iam.roles.queryGrantableRoles", + "path": "v1/roles:queryGrantableRoles", + "request": { + "$ref": "QueryGrantableRolesRequest" + }, + "description": "Queries roles that can be granted on a particular resource.\nA role is grantable if it can be used as the role in a binding for a policy\nfor that resource.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "QueryGrantableRolesResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/roles:queryGrantableRoles" + }, + "list": { + "response": { + "$ref": "ListRolesResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "parent": { + "location": "query", + "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", + "type": "string" + }, + "showDeleted": { + "description": "Include Roles that have been deleted.", + "type": "boolean", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "Optional pagination token returned in an earlier ListRolesResponse.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Optional limit on the number of roles to include in the response.", + "format": "int32", + "type": "integer" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Optional view for the returned Role objects.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/roles", + "path": "v1/roles", + "id": "iam.roles.list", + "description": "Lists the Roles defined on a resource." + }, + "get": { + "description": "Gets a Role definition.", + "httpMethod": "GET", + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "pattern": "^roles/[^/]+$", + "location": "path", + "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/roles/{rolesId}", + "id": "iam.roles.get", + "path": "v1/{+name}" + } + } + }, + "permissions": { + "methods": { + "queryTestablePermissions": { + "description": "Lists the permissions testable on a resource.\nA permission is testable if it can be tested for an identity on a resource.", + "request": { + "$ref": "QueryTestablePermissionsRequest" + }, + "response": { + "$ref": "QueryTestablePermissionsResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/permissions:queryTestablePermissions", + "path": "v1/permissions:queryTestablePermissions", + "id": "iam.permissions.queryTestablePermissions" + } + } + }, + "organizations": { + "resources": { + "roles": { + "methods": { + "undelete": { + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^organizations/[^/]+/roles/[^/]+$", + "location": "path", + "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}:undelete", + "path": "v1/{+name}:undelete", + "id": "iam.organizations.roles.undelete", + "description": "Undelete a Role, bringing it back in its previous state.", + "request": { + "$ref": "UndeleteRoleRequest" + } + }, + "get": { + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^organizations/[^/]+/roles/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", + "path": "v1/{+name}", + "id": "iam.organizations.roles.get", + "description": "Gets a Role definition." + }, + "patch": { + "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", + "path": "v1/{+name}", + "id": "iam.organizations.roles.patch", + "description": "Updates a Role definition.", + "request": { + "$ref": "Role" + }, + "response": { + "$ref": "Role" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "updateMask": { + "description": "A mask describing which fields in the Role have changed.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "name": { + "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^organizations/[^/]+/roles/[^/]+$", + "location": "path" + } + } + }, + "delete": { + "id": "iam.organizations.roles.delete", + "path": "v1/{+name}", + "description": "Soft deletes a role. The role is suspended and cannot be used to create new\nIAM Policy Bindings.\nThe Role will not be included in `ListRoles()` unless `show_deleted` is set\nin the `ListRolesRequest`. The Role contains the deleted boolean set.\nExisting Bindings remains, but are inactive. The Role can be undeleted\nwithin 7 days. After 7 days the Role is deleted and all Bindings associated\nwith the role are removed.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Role" + }, + "parameters": { + "name": { + "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", + "required": true, + "type": "string", + "pattern": "^organizations/[^/]+/roles/[^/]+$", + "location": "path" + }, + "etag": { + "description": "Used to perform a consistent read-modify-write.", + "format": "byte", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListRolesResponse" + }, + "parameters": { + "pageToken": { + "description": "Optional pagination token returned in an earlier ListRolesResponse.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Optional limit on the number of roles to include in the response.", + "format": "int32", + "type": "integer" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Optional view for the returned Role objects.", + "type": "string" + }, + "parent": { + "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", + "required": true, + "type": "string", + "pattern": "^organizations/[^/]+$", + "location": "path" + }, + "showDeleted": { + "location": "query", + "description": "Include Roles that have been deleted.", + "type": "boolean" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/organizations/{organizationsId}/roles", + "id": "iam.organizations.roles.list", + "path": "v1/{+parent}/roles", + "description": "Lists the Roles defined on a resource." + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "Role" + }, + "parameters": { + "parent": { + "description": "The resource name of the parent resource in one of the following formats:\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", + "required": true, + "type": "string", + "pattern": "^organizations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/organizations/{organizationsId}/roles", + "id": "iam.organizations.roles.create", + "path": "v1/{+parent}/roles", + "request": { + "$ref": "CreateRoleRequest" + }, + "description": "Creates a new Role." + } + } + } + } + } + }, + "parameters": { + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + } + }, + "version": "v1", + "baseUrl": "https://iam.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", + "servicePath": "", + "basePath": "", "id": "iam:v1", + "documentationLink": "https://cloud.google.com/iam/", + "revision": "20171012", "discoveryVersion": "v1", "version_module": true, "schemas": { + "CreateRoleRequest": { + "properties": { + "roleId": { + "description": "The role id to use for this role.", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "The Role resource to create." + } + }, + "id": "CreateRoleRequest", + "description": "The request to create a new role.", + "type": "object" + }, + "ListServiceAccountKeysResponse": { + "description": "The service account keys list response.", + "type": "object", + "properties": { + "keys": { + "description": "The public keys for the service account.", + "type": "array", + "items": { + "$ref": "ServiceAccountKey" + } + } + }, + "id": "ListServiceAccountKeysResponse" + }, + "TestIamPermissionsResponse": { + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsResponse", + "description": "Response message for `TestIamPermissions` method.", + "type": "object" + }, + "QueryTestablePermissionsRequest": { + "properties": { + "pageSize": { + "description": "Optional limit on the number of permissions to include in the response.", + "format": "int32", + "type": "integer" + }, + "fullResourceName": { + "description": "Required. The full resource name to query from the list of testable\npermissions.\n\nThe name follows the Google Cloud Platform resource format.\nFor example, a Cloud Platform project with id `my-project` will be named\n`//cloudresourcemanager.googleapis.com/projects/my-project`.", + "type": "string" + }, + "pageToken": { + "description": "Optional pagination token returned in an earlier\nQueryTestablePermissionsRequest.", + "type": "string" + } + }, + "id": "QueryTestablePermissionsRequest", + "description": "A request to get permissions which can be tested on a resource.", + "type": "object" + }, "ServiceAccountKey": { "description": "Represents a service account key.\n\nA service account has two sets of key-pairs: user-managed, and\nsystem-managed.\n\nUser-managed key-pairs can be created and deleted by users. Users are\nresponsible for rotating these keys periodically to ensure security of\ntheir service accounts. Users retain the private key of these key-pairs,\nand Google retains ONLY the public key.\n\nSystem-managed key-pairs are managed automatically by Google, and rotated\ndaily without user intervention. The private key never leaves Google's\nservers to maximize security.\n\nPublic keys for all service accounts are also published at the OAuth2\nService Account API.", "type": "object", "properties": { - "publicKeyData": { + "privateKeyType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PKCS12_FILE", + "TYPE_GOOGLE_CREDENTIALS_FILE" + ], + "description": "The output format for the private key.\nOnly provided in `CreateServiceAccountKey` responses, not\nin `GetServiceAccountKey` or `ListServiceAccountKey` responses.\n\nGoogle never exposes system-managed private keys, and never retains\nuser-managed private keys.", + "type": "string", + "enumDescriptions": [ + "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", + "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https://tools.ietf.org/html/rfc7292.", + "Google Credentials File format." + ] + }, + "validAfterTime": { + "description": "The key can be used after this timestamp.", + "format": "google-datetime", + "type": "string" + }, + "privateKeyData": { + "description": "The private key data. Only provided in `CreateServiceAccountKey`\nresponses. Make sure to keep the private key data secure because it\nallows for the assertion of the service account identity.\nWhen decoded, the private key data can be used to authenticate with\nGoogle API client libraries and with\n\u003ca href=\"/sdk/gcloud/reference/auth/activate-service-account\"\u003egcloud\nauth activate-service-account\u003c/a\u003e.", "format": "byte", + "type": "string" + }, + "publicKeyData": { "description": "The public key data. Only provided in `GetServiceAccountKey` responses.", + "format": "byte", "type": "string" }, "name": { @@ -19,11 +1141,13 @@ "type": "string" }, "validBeforeTime": { - "format": "google-datetime", "description": "The key can be used before this timestamp.", + "format": "google-datetime", "type": "string" }, "keyAlgorithm": { + "description": "Specifies the algorithm (and possibly key size) for the key.", + "type": "string", "enumDescriptions": [ "An unspecified key algorithm.", "1k RSA Key.", @@ -33,33 +1157,7 @@ "KEY_ALG_UNSPECIFIED", "KEY_ALG_RSA_1024", "KEY_ALG_RSA_2048" - ], - "description": "Specifies the algorithm (and possibly key size) for the key.", - "type": "string" - }, - "privateKeyType": { - "type": "string", - "enumDescriptions": [ - "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", - "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https://tools.ietf.org/html/rfc7292.", - "Google Credentials File format." - ], - "enum": [ - "TYPE_UNSPECIFIED", - "TYPE_PKCS12_FILE", - "TYPE_GOOGLE_CREDENTIALS_FILE" - ], - "description": "The output format for the private key.\nOnly provided in `CreateServiceAccountKey` responses, not\nin `GetServiceAccountKey` or `ListServiceAccountKey` responses.\n\nGoogle never exposes system-managed private keys, and never retains\nuser-managed private keys." - }, - "validAfterTime": { - "format": "google-datetime", - "description": "The key can be used after this timestamp.", - "type": "string" - }, - "privateKeyData": { - "format": "byte", - "description": "The private key data. Only provided in `CreateServiceAccountKey`\nresponses. Make sure to keep the private key data secure because it\nallows for the assertion of the service account identity.\nWhen decoded, the private key data can be used to authenticate with\nGoogle API client libraries and with\n\u003ca href=\"/sdk/gcloud/reference/auth/activate-service-account\"\u003egcloud\nauth activate-service-account\u003c/a\u003e.", - "type": "string" + ] } }, "id": "ServiceAccountKey" @@ -68,28 +1166,27 @@ "description": "The service account sign blob response.", "type": "object", "properties": { + "signature": { + "description": "The signed blob.", + "format": "byte", + "type": "string" + }, "keyId": { "description": "The id of the key used to sign the blob.", "type": "string" - }, - "signature": { - "type": "string", - "format": "byte", - "description": "The signed blob." } }, "id": "SignBlobResponse" }, "Permission": { - "type": "object", "properties": { "onlyInPredefinedRoles": { "description": "This permission can ONLY be used in predefined roles.", "type": "boolean" }, "title": { - "type": "string", - "description": "The title of this Permission." + "description": "The title of this Permission.", + "type": "string" }, "description": { "description": "A brief description of what this Permission is used for.", @@ -110,6 +1207,12 @@ "type": "string" }, "stage": { + "enum": [ + "ALPHA", + "BETA", + "GA", + "DEPRECATED" + ], "description": "The current launch stage of the permission.", "type": "string", "enumDescriptions": [ @@ -117,12 +1220,6 @@ "The permission is currently in a beta phase.", "The permission is generally available.", "The permission is being deprecated." - ], - "enum": [ - "ALPHA", - "BETA", - "GA", - "DEPRECATED" ] }, "name": { @@ -131,7 +1228,8 @@ } }, "id": "Permission", - "description": "A permission which can be included by a role." + "description": "A permission which can be included by a role.", + "type": "object" }, "SignJwtRequest": { "description": "The service account sign JWT request.", @@ -145,22 +1243,20 @@ "id": "SignJwtRequest" }, "PolicyDelta": { - "id": "PolicyDelta", "description": "The difference delta between two policies.", "type": "object", "properties": { "bindingDeltas": { "description": "The delta for Bindings between two policies.", + "type": "array", "items": { "$ref": "BindingDelta" - }, - "type": "array" + } } - } + }, + "id": "PolicyDelta" }, "ListServiceAccountsResponse": { - "description": "The service account list response.", - "type": "object", "properties": { "nextPageToken": { "description": "To retrieve the next page of results, set\nListServiceAccountsRequest.page_token\nto this value.", @@ -168,69 +1264,71 @@ }, "accounts": { "description": "The list of matching service accounts.", + "type": "array", "items": { "$ref": "ServiceAccount" - }, - "type": "array" + } } }, - "id": "ListServiceAccountsResponse" + "id": "ListServiceAccountsResponse", + "description": "The service account list response.", + "type": "object" }, "QueryGrantableRolesResponse": { + "description": "The grantable role query response.", + "type": "object", "properties": { + "roles": { + "description": "The list of matching roles.", + "type": "array", + "items": { + "$ref": "Role" + } + }, "nextPageToken": { "description": "To retrieve the next page of results, set\n`QueryGrantableRolesRequest.page_token` to this value.", "type": "string" - }, - "roles": { - "description": "The list of matching roles.", - "items": { - "$ref": "Role" - }, - "type": "array" } }, - "id": "QueryGrantableRolesResponse", - "description": "The grantable role query response.", - "type": "object" + "id": "QueryGrantableRolesResponse" }, "SignBlobRequest": { "description": "The service account sign blob request.", "type": "object", "properties": { "bytesToSign": { - "type": "string", + "description": "The bytes to sign.", "format": "byte", - "description": "The bytes to sign." + "type": "string" } }, "id": "SignBlobRequest" }, "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", "properties": { "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" } }, - "id": "SetIamPolicyRequest" + "id": "SetIamPolicyRequest", + "description": "Request message for `SetIamPolicy` method.", + "type": "object" }, "QueryTestablePermissionsResponse": { "description": "The response containing permissions which can be tested on a resource.", "type": "object", "properties": { + "permissions": { + "description": "The Permissions testable on the requested resource.", + "type": "array", + "items": { + "$ref": "Permission" + } + }, "nextPageToken": { "description": "To retrieve the next page of results, set\n`QueryTestableRolesRequest.page_token` to this value.", "type": "string" - }, - "permissions": { - "description": "The Permissions testable on the requested resource.", - "items": { - "$ref": "Permission" - }, - "type": "array" } }, "id": "QueryTestablePermissionsResponse" @@ -242,11 +1340,24 @@ "id": "Empty" }, "CreateServiceAccountKeyRequest": { + "description": "The service account key create request.", "type": "object", "properties": { - "keyAlgorithm": { - "description": "Which type of key and algorithm to use for the key.\nThe default is currently a 2K RSA key. However this may change in the\nfuture.", + "privateKeyType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PKCS12_FILE", + "TYPE_GOOGLE_CREDENTIALS_FILE" + ], + "description": "The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the\ndefault output format.", "type": "string", + "enumDescriptions": [ + "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", + "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https://tools.ietf.org/html/rfc7292.", + "Google Credentials File format." + ] + }, + "keyAlgorithm": { "enumDescriptions": [ "An unspecified key algorithm.", "1k RSA Key.", @@ -256,75 +1367,62 @@ "KEY_ALG_UNSPECIFIED", "KEY_ALG_RSA_1024", "KEY_ALG_RSA_2048" - ] - }, - "privateKeyType": { - "enumDescriptions": [ - "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", - "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https://tools.ietf.org/html/rfc7292.", - "Google Credentials File format." ], - "enum": [ - "TYPE_UNSPECIFIED", - "TYPE_PKCS12_FILE", - "TYPE_GOOGLE_CREDENTIALS_FILE" - ], - "description": "The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the\ndefault output format.", + "description": "Which type of key and algorithm to use for the key.\nThe default is currently a 2K RSA key. However this may change in the\nfuture.", "type": "string" } }, - "id": "CreateServiceAccountKeyRequest", - "description": "The service account key create request." + "id": "CreateServiceAccountKeyRequest" + }, + "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "type": "object", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsRequest" }, "SignJwtResponse": { "properties": { - "signedJwt": { - "description": "The signed JWT.", - "type": "string" - }, "keyId": { "description": "The id of the key used to sign the JWT.", "type": "string" + }, + "signedJwt": { + "description": "The signed JWT.", + "type": "string" } }, "id": "SignJwtResponse", "description": "The service account sign JWT response.", "type": "object" }, - "TestIamPermissionsRequest": { - "type": "object", - "properties": { - "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsRequest", - "description": "Request message for `TestIamPermissions` method." - }, "Policy": { "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { "etag": { - "format": "byte", "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "format": "byte", "type": "string" }, "version": { - "format": "int32", "description": "Version of the `Policy`. The default version is 0.", + "format": "int32", "type": "integer" }, "bindings": { "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "type": "array", "items": { "$ref": "Binding" - }, - "type": "array" + } } }, "id": "Policy" @@ -333,77 +1431,79 @@ "description": "The response containing the roles defined under a resource.", "type": "object", "properties": { + "roles": { + "description": "The Roles defined on this resource.", + "type": "array", + "items": { + "$ref": "Role" + } + }, "nextPageToken": { "description": "To retrieve the next page of results, set\n`ListRolesRequest.page_token` to this value.", "type": "string" - }, - "roles": { - "description": "The Roles defined on this resource.", - "items": { - "$ref": "Role" - }, - "type": "array" } }, "id": "ListRolesResponse" }, "AuditData": { - "properties": { - "policyDelta": { - "description": "Policy delta between the original policy and the newly set policy.", - "$ref": "PolicyDelta" - } - }, - "id": "AuditData", "description": "Audit log information specific to Cloud IAM. This message is serialized\nas an `Any` type in the `ServiceData` message of an\n`AuditLog` message.", - "type": "object" - }, - "BindingDelta": { "type": "object", "properties": { - "condition": { - "description": "The condition that is associated with this binding.\nThis field is GOOGLE_INTERNAL.\nThis field is not logged in IAM side because it's only for audit logging.\nOptional", - "$ref": "Expr" - }, - "member": { - "description": "A single identity requesting access for a Cloud Platform resource.\nFollows the same format of Binding.members.\nRequired", - "type": "string" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - }, + "policyDelta": { + "$ref": "PolicyDelta", + "description": "Policy delta between the original policy and the newly set policy." + } + }, + "id": "AuditData" + }, + "BindingDelta": { + "description": "One delta entry for Binding. Each individual change (only one member in each\nentry) to a binding will be a separate entry.", + "type": "object", + "properties": { "action": { - "enumDescriptions": [ - "Unspecified.", - "Addition of a Binding.", - "Removal of a Binding." - ], "enum": [ "ACTION_UNSPECIFIED", "ADD", "REMOVE" ], "description": "The action that was performed on a Binding.\nRequired", + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "Addition of a Binding.", + "Removal of a Binding." + ] + }, + "member": { + "description": "A single identity requesting access for a Cloud Platform resource.\nFollows the same format of Binding.members.\nRequired", + "type": "string" + }, + "condition": { + "description": "The condition that is associated with this binding.\nThis field is GOOGLE_INTERNAL.\nThis field is not logged in IAM side because it's only for audit logging.\nOptional", + "$ref": "Expr" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", "type": "string" } }, - "id": "BindingDelta", - "description": "One delta entry for Binding. Each individual change (only one member in each\nentry) to a binding will be a separate entry." + "id": "BindingDelta" }, "UndeleteRoleRequest": { + "description": "The request to undelete an existing role.", "type": "object", "properties": { "etag": { - "format": "byte", "description": "Used to perform a consistent read-modify-write.", + "format": "byte", "type": "string" } }, - "id": "UndeleteRoleRequest", - "description": "The request to undelete an existing role." + "id": "UndeleteRoleRequest" }, "CreateServiceAccountRequest": { + "description": "The service account create request.", + "type": "object", "properties": { "accountId": { "description": "Required. The account id that is used to generate the service account\nemail address and a stable unique id. It is unique within a project,\nmust be 6-30 characters long, and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.", @@ -414,14 +1514,32 @@ "description": "The ServiceAccount resource to create.\nCurrently, only the following values are user assignable:\n`display_name` ." } }, - "id": "CreateServiceAccountRequest", - "description": "The service account create request.", - "type": "object" + "id": "CreateServiceAccountRequest" }, "Role": { "description": "A role in the Identity and Access Management API.", "type": "object", "properties": { + "title": { + "description": "Optional. A human-readable title for the role. Typically this\nis limited to 100 UTF-8 bytes.", + "type": "string" + }, + "includedPermissions": { + "description": "The names of the permissions this role grants when bound in an IAM policy.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Optional. A human-readable description for the role.", + "type": "string" + }, + "etag": { + "description": "Used to perform a consistent read-modify-write.", + "format": "byte", + "type": "string" + }, "stage": { "enum": [ "ALPHA", @@ -449,26 +1567,6 @@ "deleted": { "description": "The current deleted state of the role. This field is read only.\nIt will be ignored in calls to CreateRole and UpdateRole.", "type": "boolean" - }, - "title": { - "description": "Optional. A human-readable title for the role. Typically this\nis limited to 100 UTF-8 bytes.", - "type": "string" - }, - "includedPermissions": { - "description": "The names of the permissions this role grants when bound in an IAM policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "description": { - "description": "Optional. A human-readable description for the role.", - "type": "string" - }, - "etag": { - "format": "byte", - "description": "Used to perform a consistent read-modify-write.", - "type": "string" } }, "id": "Role" @@ -479,10 +1577,10 @@ "properties": { "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "role": { "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", @@ -491,27 +1589,35 @@ }, "id": "Binding" }, - "Expr": { + "QueryGrantableRolesRequest": { "properties": { - "location": { - "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", + "pageSize": { + "description": "Optional limit on the number of roles to include in the response.", + "format": "int32", + "type": "integer" + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "type": "string", + "enumDescriptions": [ + "Omits the `included_permissions` field.\nThis is the default value.", + "Returns all fields." + ] + }, + "fullResourceName": { + "description": "Required. The full resource name to query from the list of grantable roles.\n\nThe name follows the Google Cloud Platform resource format.\nFor example, a Cloud Platform project with id `my-project` will be named\n`//cloudresourcemanager.googleapis.com/projects/my-project`.", "type": "string" }, - "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", - "type": "string" - }, - "description": { - "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", + "pageToken": { + "description": "Optional pagination token returned in an earlier\nQueryGrantableRolesResponse.", "type": "string" } }, - "id": "Expr", - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", + "id": "QueryGrantableRolesRequest", + "description": "The grantable role query request.", "type": "object" }, "ServiceAccount": { @@ -523,8 +1629,8 @@ "type": "string" }, "etag": { - "format": "byte", "description": "Used to perform a consistent read-modify-write.", + "format": "byte", "type": "string" }, "name": { @@ -550,99 +1656,28 @@ }, "id": "ServiceAccount" }, - "QueryGrantableRolesRequest": { - "id": "QueryGrantableRolesRequest", - "description": "The grantable role query request.", + "Expr": { + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", "type": "object", "properties": { - "view": { - "enumDescriptions": [ - "Omits the `included_permissions` field.\nThis is the default value.", - "Returns all fields." - ], - "enum": [ - "BASIC", - "FULL" - ], + "description": { + "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", "type": "string" }, - "fullResourceName": { - "type": "string", - "description": "Required. The full resource name to query from the list of grantable roles.\n\nThe name follows the Google Cloud Platform resource format.\nFor example, a Cloud Platform project with id `my-project` will be named\n`//cloudresourcemanager.googleapis.com/projects/my-project`." - }, - "pageToken": { - "description": "Optional pagination token returned in an earlier\nQueryGrantableRolesResponse.", + "expression": { + "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", "type": "string" }, - "pageSize": { - "format": "int32", - "description": "Optional limit on the number of roles to include in the response.", - "type": "integer" - } - } - }, - "CreateRoleRequest": { - "description": "The request to create a new role.", - "type": "object", - "properties": { - "roleId": { - "description": "The role id to use for this role.", + "title": { + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", "type": "string" }, - "role": { - "description": "The Role resource to create.", - "$ref": "Role" - } - }, - "id": "CreateRoleRequest" - }, - "ListServiceAccountKeysResponse": { - "description": "The service account keys list response.", - "type": "object", - "properties": { - "keys": { - "description": "The public keys for the service account.", - "items": { - "$ref": "ServiceAccountKey" - }, - "type": "array" - } - }, - "id": "ListServiceAccountKeysResponse" - }, - "TestIamPermissionsResponse": { - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse", - "description": "Response message for `TestIamPermissions` method." - }, - "QueryTestablePermissionsRequest": { - "description": "A request to get permissions which can be tested on a resource.", - "type": "object", - "properties": { - "fullResourceName": { - "type": "string", - "description": "Required. The full resource name to query from the list of testable\npermissions.\n\nThe name follows the Google Cloud Platform resource format.\nFor example, a Cloud Platform project with id `my-project` will be named\n`//cloudresourcemanager.googleapis.com/projects/my-project`." - }, - "pageToken": { - "description": "Optional pagination token returned in an earlier\nQueryTestablePermissionsRequest.", + "location": { + "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Optional limit on the number of permissions to include in the response.", - "type": "integer" } }, - "id": "QueryTestablePermissionsRequest" + "id": "Expr" } }, "protocol": "rest", @@ -663,1040 +1698,5 @@ "rootUrl": "https://iam.googleapis.com/", "ownerDomain": "google.com", "name": "iam", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Identity and Access Management (IAM) API", - "ownerName": "Google", - "resources": { - "permissions": { - "methods": { - "queryTestablePermissions": { - "description": "Lists the permissions testable on a resource.\nA permission is testable if it can be tested for an identity on a resource.", - "request": { - "$ref": "QueryTestablePermissionsRequest" - }, - "response": { - "$ref": "QueryTestablePermissionsResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/permissions:queryTestablePermissions", - "id": "iam.permissions.queryTestablePermissions", - "path": "v1/permissions:queryTestablePermissions" - } - } - }, - "roles": { - "methods": { - "get": { - "description": "Gets a Role definition.", - "response": { - "$ref": "Role" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^roles/[^/]+$", - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/roles/{rolesId}", - "id": "iam.roles.get", - "path": "v1/{+name}" - }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Optional view for the returned Role objects.", - "type": "string" - }, - "parent": { - "location": "query", - "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", - "type": "string" - }, - "showDeleted": { - "location": "query", - "description": "Include Roles that have been deleted.", - "type": "boolean" - }, - "pageToken": { - "location": "query", - "description": "Optional pagination token returned in an earlier ListRolesResponse.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Optional limit on the number of roles to include in the response.", - "type": "integer", - "location": "query" - } - }, - "flatPath": "v1/roles", - "id": "iam.roles.list", - "path": "v1/roles", - "description": "Lists the Roles defined on a resource.", - "response": { - "$ref": "ListRolesResponse" - }, - "httpMethod": "GET", - "parameterOrder": [] - }, - "queryGrantableRoles": { - "response": { - "$ref": "QueryGrantableRolesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/roles:queryGrantableRoles", - "id": "iam.roles.queryGrantableRoles", - "path": "v1/roles:queryGrantableRoles", - "description": "Queries roles that can be granted on a particular resource.\nA role is grantable if it can be used as the role in a binding for a policy\nfor that resource.", - "request": { - "$ref": "QueryGrantableRolesRequest" - } - } - } - }, - "organizations": { - "resources": { - "roles": { - "methods": { - "list": { - "description": "Lists the Roles defined on a resource.", - "response": { - "$ref": "ListRolesResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "showDeleted": { - "location": "query", - "description": "Include Roles that have been deleted.", - "type": "boolean" - }, - "pageToken": { - "description": "Optional pagination token returned in an earlier ListRolesResponse.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional limit on the number of roles to include in the response.", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Optional view for the returned Role objects.", - "type": "string" - }, - "parent": { - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}/roles", - "id": "iam.organizations.roles.list", - "path": "v1/{+parent}/roles" - }, - "create": { - "response": { - "$ref": "Role" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path", - "description": "The resource name of the parent resource in one of the following formats:\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}/roles", - "id": "iam.organizations.roles.create", - "path": "v1/{+parent}/roles", - "description": "Creates a new Role.", - "request": { - "$ref": "CreateRoleRequest" - } - }, - "undelete": { - "id": "iam.organizations.roles.undelete", - "path": "v1/{+name}:undelete", - "description": "Undelete a Role, bringing it back in its previous state.", - "request": { - "$ref": "UndeleteRoleRequest" - }, - "response": { - "$ref": "Role" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/roles/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}:undelete" - }, - "get": { - "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", - "path": "v1/{+name}", - "id": "iam.organizations.roles.get", - "description": "Gets a Role definition.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/roles/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Updates a Role definition.", - "request": { - "$ref": "Role" - }, - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "name": { - "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/roles/[^/]+$", - "location": "path" - }, - "updateMask": { - "format": "google-fieldmask", - "description": "A mask describing which fields in the Role have changed.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", - "path": "v1/{+name}", - "id": "iam.organizations.roles.patch" - }, - "delete": { - "description": "Soft deletes a role. The role is suspended and cannot be used to create new\nIAM Policy Bindings.\nThe Role will not be included in `ListRoles()` unless `show_deleted` is set\nin the `ListRolesRequest`. The Role contains the deleted boolean set.\nExisting Bindings remains, but are inactive. The Role can be undeleted\nwithin 7 days. After 7 days the Role is deleted and all Bindings associated\nwith the role are removed.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/roles/[^/]+$" - }, - "etag": { - "location": "query", - "format": "byte", - "description": "Used to perform a consistent read-modify-write.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/organizations/{organizationsId}/roles/{rolesId}", - "path": "v1/{+name}", - "id": "iam.organizations.roles.delete" - } - } - } - } - }, - "projects": { - "resources": { - "roles": { - "methods": { - "delete": { - "description": "Soft deletes a role. The role is suspended and cannot be used to create new\nIAM Policy Bindings.\nThe Role will not be included in `ListRoles()` unless `show_deleted` is set\nin the `ListRolesRequest`. The Role contains the deleted boolean set.\nExisting Bindings remains, but are inactive. The Role can be undeleted\nwithin 7 days. After 7 days the Role is deleted and all Bindings associated\nwith the role are removed.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "etag": { - "location": "query", - "format": "byte", - "description": "Used to perform a consistent read-modify-write.", - "type": "string" - }, - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/roles/[^/]+$", - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/roles/{rolesId}", - "path": "v1/{+name}", - "id": "iam.projects.roles.delete" - }, - "list": { - "response": { - "$ref": "ListRolesResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "showDeleted": { - "location": "query", - "description": "Include Roles that have been deleted.", - "type": "boolean" - }, - "pageToken": { - "location": "query", - "description": "Optional pagination token returned in an earlier ListRolesResponse.", - "type": "string" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "Optional limit on the number of roles to include in the response." - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Optional view for the returned Role objects.", - "type": "string" - }, - "parent": { - "location": "path", - "description": "The resource name of the parent resource in one of the following formats:\n`` (empty string) -- this refers to curated roles.\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/roles", - "id": "iam.projects.roles.list", - "path": "v1/{+parent}/roles", - "description": "Lists the Roles defined on a resource." - }, - "create": { - "flatPath": "v1/projects/{projectsId}/roles", - "path": "v1/{+parent}/roles", - "id": "iam.projects.roles.create", - "description": "Creates a new Role.", - "request": { - "$ref": "CreateRoleRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "parent": { - "location": "path", - "description": "The resource name of the parent resource in one of the following formats:\n`organizations/{ORGANIZATION_ID}`\n`projects/{PROJECT_ID}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "request": { - "$ref": "Role" - }, - "description": "Updates a Role definition.", - "httpMethod": "PATCH", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "A mask describing which fields in the Role have changed.", - "type": "string" - }, - "name": { - "pattern": "^projects/[^/]+/roles/[^/]+$", - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/roles/{rolesId}", - "path": "v1/{+name}", - "id": "iam.projects.roles.patch" - }, - "undelete": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Role" - }, - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/roles/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/roles/{rolesId}:undelete", - "path": "v1/{+name}:undelete", - "id": "iam.projects.roles.undelete", - "description": "Undelete a Role, bringing it back in its previous state.", - "request": { - "$ref": "UndeleteRoleRequest" - } - }, - "get": { - "id": "iam.projects.roles.get", - "path": "v1/{+name}", - "description": "Gets a Role definition.", - "response": { - "$ref": "Role" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the role in one of the following formats:\n`roles/{ROLE_NAME}`\n`organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`\n`projects/{PROJECT_ID}/roles/{ROLE_NAME}`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/roles/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/roles/{rolesId}" - } - } - }, - "serviceAccounts": { - "methods": { - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ServiceAccount" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path", - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", - "path": "v1/{+name}", - "id": "iam.projects.serviceAccounts.get", - "description": "Gets a ServiceAccount." - }, - "update": { - "request": { - "$ref": "ServiceAccount" - }, - "description": "Updates a ServiceAccount.\n\nCurrently, only the following fields are updatable:\n`display_name` .\nThe `etag` is mandatory.", - "httpMethod": "PUT", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ServiceAccount" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nRequests using `-` as a wildcard for the `PROJECT_ID` will infer the\nproject from the `account` and the `ACCOUNT` value can be the `email`\naddress or the `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", - "path": "v1/{+name}", - "id": "iam.projects.serviceAccounts.update" - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Tests the specified permissions against the IAM access control policy\nfor a ServiceAccount.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field." - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "id": "iam.projects.serviceAccounts.testIamPermissions" - }, - "delete": { - "id": "iam.projects.serviceAccounts.delete", - "path": "v1/{+name}", - "description": "Deletes a ServiceAccount.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}" - }, - "list": { - "flatPath": "v1/projects/{projectsId}/serviceAccounts", - "id": "iam.projects.serviceAccounts.list", - "path": "v1/{+name}/serviceAccounts", - "description": "Lists ServiceAccounts for a project.", - "response": { - "$ref": "ListServiceAccountsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "Optional pagination token returned in an earlier\nListServiceAccountsResponse.next_page_token.", - "type": "string" - }, - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects/my-project-123`." - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Optional limit on the number of service accounts to include in the\nresponse. Further accounts can subsequently be obtained by including the\nListServiceAccountsResponse.next_page_token\nin a subsequent request.", - "type": "integer" - } - } - }, - "signBlob": { - "response": { - "$ref": "SignBlobResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path", - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", - "id": "iam.projects.serviceAccounts.signBlob", - "path": "v1/{+name}:signBlob", - "description": "Signs a blob using a service account's system-managed private key.", - "request": { - "$ref": "SignBlobRequest" - } - }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy", - "id": "iam.projects.serviceAccounts.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "description": "Sets the IAM access control policy for a\nServiceAccount.", - "request": { - "$ref": "SetIamPolicyRequest" - } - }, - "signJwt": { - "response": { - "$ref": "SignJwtResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", - "id": "iam.projects.serviceAccounts.signJwt", - "path": "v1/{+name}:signJwt", - "description": "Signs a JWT using a service account's system-managed private key.\n\nIf no expiry time (`exp`) is provided in the `SignJwtRequest`, IAM sets an\nan expiry time of one hour by default. If you request an expiry time of\nmore than one hour, the request will fail.", - "request": { - "$ref": "SignJwtRequest" - } - }, - "create": { - "flatPath": "v1/projects/{projectsId}/serviceAccounts", - "path": "v1/{+name}/serviceAccounts", - "id": "iam.projects.serviceAccounts.create", - "description": "Creates a ServiceAccount\nand returns it.", - "request": { - "$ref": "CreateServiceAccountRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ServiceAccount" - }, - "parameters": { - "name": { - "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects/my-project-123`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "getIamPolicy": { - "description": "Returns the IAM access control policy for a\nServiceAccount.", - "response": { - "$ref": "Policy" - }, - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy", - "id": "iam.projects.serviceAccounts.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy" - } - }, - "resources": { - "keys": { - "methods": { - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ServiceAccountKey" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", - "path": "v1/{+name}/keys", - "id": "iam.projects.serviceAccounts.keys.create", - "request": { - "$ref": "CreateServiceAccountKeyRequest" - }, - "description": "Creates a ServiceAccountKey\nand returns it." - }, - "delete": { - "description": "Deletes a ServiceAccountKey.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", - "location": "path", - "description": "The resource name of the service account key in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account." - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", - "id": "iam.projects.serviceAccounts.keys.delete", - "path": "v1/{+name}" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ServiceAccountKey" - }, - "parameters": { - "publicKeyType": { - "location": "query", - "enum": [ - "TYPE_NONE", - "TYPE_X509_PEM_FILE", - "TYPE_RAW_PUBLIC_KEY" - ], - "description": "The output format of the public key requested.\nX509_PEM is the default output format.", - "type": "string" - }, - "name": { - "description": "The resource name of the service account key in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.\n\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", - "path": "v1/{+name}", - "id": "iam.projects.serviceAccounts.keys.get", - "description": "Gets the ServiceAccountKey\nby key id." - }, - "list": { - "description": "Lists ServiceAccountKeys.", - "response": { - "$ref": "ListServiceAccountKeysResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nUsing `-` as a wildcard for the `PROJECT_ID`, will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$" - }, - "keyTypes": { - "location": "query", - "enum": [ - "KEY_TYPE_UNSPECIFIED", - "USER_MANAGED", - "SYSTEM_MANAGED" - ], - "description": "Filters the types of keys the user wants to include in the list\nresponse. Duplicate key types are not allowed. If no key type\nis provided, all keys are returned.", - "type": "string", - "repeated": true - } - }, - "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", - "id": "iam.projects.serviceAccounts.keys.list", - "path": "v1/{+name}/keys" - } - } - } - } - } - } - } - }, - "parameters": { - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "type": "string", - "location": "query", - "description": "JSONP" - }, - "alt": { - "location": "query", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ] - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" - } - }, - "version": "v1", - "baseUrl": "https://iam.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", - "servicePath": "", - "basePath": "" + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-api.json b/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-api.json index 92f660ec7..04d770dfa 100644 --- a/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-api.json +++ b/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/YDuUtEWk-s4RoFmU1uyfiL_piZ0\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/-CIGDhyktArHgwyopFUaXBy_0sc\"", "discoveryVersion": "v1", "id": "identitytoolkit:v3", "name": "identitytoolkit", "canonicalName": "Identity Toolkit", "version": "v3", - "revision": "20170828", + "revision": "20170927", "title": "Google Identity Toolkit API", "description": "Help the third party sites to implement federated login.", "ownerDomain": "google.com", @@ -120,6 +120,13 @@ "sessionId": { "type": "string", "description": "Session ID which should be passed in the following verifyAssertion request." + }, + "signinMethods": { + "type": "array", + "description": "All sign-in methods this user has used.", + "items": { + "type": "string" + } } } }, @@ -158,6 +165,43 @@ } } }, + "EmailLinkSigninResponse": { + "id": "EmailLinkSigninResponse", + "type": "object", + "description": "Response of email signIn.", + "properties": { + "email": { + "type": "string", + "description": "The user's email." + }, + "expiresIn": { + "type": "string", + "description": "Expiration time of STS id token in seconds.", + "format": "int64" + }, + "idToken": { + "type": "string", + "description": "The STS id token to login the newly signed in user." + }, + "isNewUser": { + "type": "boolean", + "description": "Whether the user is new." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#EmailLinkSigninResponse\".", + "default": "identitytoolkit#EmailLinkSigninResponse" + }, + "localId": { + "type": "string", + "description": "The RP local ID of the user." + }, + "refreshToken": { + "type": "string", + "description": "The refresh token for the signed in user." + } + } + }, "EmailTemplate": { "id": "EmailTemplate", "type": "object", @@ -360,6 +404,25 @@ } } }, + "IdentitytoolkitRelyingpartyEmailLinkSigninRequest": { + "id": "IdentitytoolkitRelyingpartyEmailLinkSigninRequest", + "type": "object", + "description": "Request to sign in with email.", + "properties": { + "email": { + "type": "string", + "description": "The email address of the user." + }, + "idToken": { + "type": "string", + "description": "Token for linking flow." + }, + "oobCode": { + "type": "string", + "description": "The confirmation code." + } + } + }, "IdentitytoolkitRelyingpartyGetAccountInfoRequest": { "id": "IdentitytoolkitRelyingpartyGetAccountInfoRequest", "type": "object", @@ -1751,6 +1814,21 @@ "https://www.googleapis.com/auth/firebase" ] }, + "emailLinkSignin": { + "id": "identitytoolkit.relyingparty.emailLinkSignin", + "path": "emailLinkSignin", + "httpMethod": "POST", + "description": "Reset password for a user.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyEmailLinkSigninRequest" + }, + "response": { + "$ref": "EmailLinkSigninResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getAccountInfo": { "id": "identitytoolkit.relyingparty.getAccountInfo", "path": "getAccountInfo", diff --git a/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-gen.go b/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-gen.go index 3ef58a5d2..40d5f7270 100644 --- a/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-gen.go +++ b/vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-gen.go @@ -118,6 +118,9 @@ type CreateAuthUriResponse struct { // verifyAssertion request. SessionId string `json:"sessionId,omitempty"` + // SigninMethods: All sign-in methods this user has used. + SigninMethods []string `json:"signinMethods,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -216,6 +219,56 @@ func (s *DownloadAccountResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// EmailLinkSigninResponse: Response of email signIn. +type EmailLinkSigninResponse struct { + // Email: The user's email. + Email string `json:"email,omitempty"` + + // ExpiresIn: Expiration time of STS id token in seconds. + ExpiresIn int64 `json:"expiresIn,omitempty,string"` + + // IdToken: The STS id token to login the newly signed in user. + IdToken string `json:"idToken,omitempty"` + + // IsNewUser: Whether the user is new. + IsNewUser bool `json:"isNewUser,omitempty"` + + // Kind: The fixed string "identitytoolkit#EmailLinkSigninResponse". + Kind string `json:"kind,omitempty"` + + // LocalId: The RP local ID of the user. + LocalId string `json:"localId,omitempty"` + + // RefreshToken: The refresh token for the signed in user. + RefreshToken string `json:"refreshToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Email") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Email") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *EmailLinkSigninResponse) MarshalJSON() ([]byte, error) { + type noMethod EmailLinkSigninResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // EmailTemplate: Template for an email template. type EmailTemplate struct { // Body: Email body. @@ -536,6 +589,41 @@ func (s *IdentitytoolkitRelyingpartyDownloadAccountRequest) MarshalJSON() ([]byt return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// IdentitytoolkitRelyingpartyEmailLinkSigninRequest: Request to sign in +// with email. +type IdentitytoolkitRelyingpartyEmailLinkSigninRequest struct { + // Email: The email address of the user. + Email string `json:"email,omitempty"` + + // IdToken: Token for linking flow. + IdToken string `json:"idToken,omitempty"` + + // OobCode: The confirmation code. + OobCode string `json:"oobCode,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Email") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Email") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *IdentitytoolkitRelyingpartyEmailLinkSigninRequest) MarshalJSON() ([]byte, error) { + type noMethod IdentitytoolkitRelyingpartyEmailLinkSigninRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // IdentitytoolkitRelyingpartyGetAccountInfoRequest: Request to get the // account information. type IdentitytoolkitRelyingpartyGetAccountInfoRequest struct { @@ -2603,6 +2691,123 @@ func (c *RelyingpartyDownloadAccountCall) Pages(ctx context.Context, f func(*Dow } } +// method id "identitytoolkit.relyingparty.emailLinkSignin": + +type RelyingpartyEmailLinkSigninCall struct { + s *Service + identitytoolkitrelyingpartyemaillinksigninrequest *IdentitytoolkitRelyingpartyEmailLinkSigninRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// EmailLinkSignin: Reset password for a user. +func (r *RelyingpartyService) EmailLinkSignin(identitytoolkitrelyingpartyemaillinksigninrequest *IdentitytoolkitRelyingpartyEmailLinkSigninRequest) *RelyingpartyEmailLinkSigninCall { + c := &RelyingpartyEmailLinkSigninCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.identitytoolkitrelyingpartyemaillinksigninrequest = identitytoolkitrelyingpartyemaillinksigninrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RelyingpartyEmailLinkSigninCall) Fields(s ...googleapi.Field) *RelyingpartyEmailLinkSigninCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RelyingpartyEmailLinkSigninCall) Context(ctx context.Context) *RelyingpartyEmailLinkSigninCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RelyingpartyEmailLinkSigninCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RelyingpartyEmailLinkSigninCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.identitytoolkitrelyingpartyemaillinksigninrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "emailLinkSignin") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "identitytoolkit.relyingparty.emailLinkSignin" call. +// Exactly one of *EmailLinkSigninResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *EmailLinkSigninResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *RelyingpartyEmailLinkSigninCall) Do(opts ...googleapi.CallOption) (*EmailLinkSigninResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &EmailLinkSigninResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Reset password for a user.", + // "httpMethod": "POST", + // "id": "identitytoolkit.relyingparty.emailLinkSignin", + // "path": "emailLinkSignin", + // "request": { + // "$ref": "IdentitytoolkitRelyingpartyEmailLinkSigninRequest" + // }, + // "response": { + // "$ref": "EmailLinkSigninResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "identitytoolkit.relyingparty.getAccountInfo": type RelyingpartyGetAccountInfoCall struct { diff --git a/vendor/google.golang.org/api/kgsearch/v1/kgsearch-api.json b/vendor/google.golang.org/api/kgsearch/v1/kgsearch-api.json index 295092817..e3f27f717 100644 --- a/vendor/google.golang.org/api/kgsearch/v1/kgsearch-api.json +++ b/vendor/google.golang.org/api/kgsearch/v1/kgsearch-api.json @@ -1,4 +1,6 @@ { + "basePath": "", + "ownerDomain": "google.com", "name": "kgsearch", "batchPath": "batch", "id": "kgsearch:v1", @@ -12,33 +14,18 @@ "entities": { "methods": { "search": { + "description": "Searches Knowledge Graph for entities that match the constraints.\nA list of matched entities will be returned in response, which will be in\nJSON-LD format and compatible with http://schema.org", "response": { "$ref": "SearchResponse" }, "parameterOrder": [], "httpMethod": "GET", "parameters": { - "limit": { - "format": "int32", - "description": "Limits the number of entities to be returned.", - "type": "integer", - "location": "query" - }, - "prefix": { - "location": "query", - "description": "Enables prefix match against names and aliases of entities", - "type": "boolean" - }, - "query": { - "location": "query", - "description": "The literal query string for search.", - "type": "string" - }, "types": { - "description": "Restricts returned entities with these types, e.g. Person\n(as defined in http://schema.org/Person). If multiple types are specified,\nreturned entities will contain one or more of these types.", - "type": "string", "repeated": true, - "location": "query" + "location": "query", + "description": "Restricts returned entities with these types, e.g. Person\n(as defined in http://schema.org/Person). If multiple types are specified,\nreturned entities will contain one or more of these types.", + "type": "string" }, "indent": { "location": "query", @@ -46,78 +33,56 @@ "type": "boolean" }, "languages": { - "description": "The list of language codes (defined in ISO 693) to run the query with,\ne.g. 'en'.", - "type": "string", "repeated": true, - "location": "query" + "location": "query", + "description": "The list of language codes (defined in ISO 693) to run the query with,\ne.g. 'en'.", + "type": "string" }, "ids": { "repeated": true, "location": "query", "description": "The list of entity id to be used for search instead of query string.\nTo specify multiple ids in the HTTP request, repeat the parameter in the\nURL as in ...?ids=A&ids=B", "type": "string" + }, + "limit": { + "format": "int32", + "description": "Limits the number of entities to be returned.", + "type": "integer", + "location": "query" + }, + "prefix": { + "description": "Enables prefix match against names and aliases of entities", + "type": "boolean", + "location": "query" + }, + "query": { + "location": "query", + "description": "The literal query string for search.", + "type": "string" } }, "flatPath": "v1/entities:search", "id": "kgsearch.entities.search", - "path": "v1/entities:search", - "description": "Searches Knowledge Graph for entities that match the constraints.\nA list of matched entities will be returned in response, which will be in\nJSON-LD format and compatible with http://schema.org" + "path": "v1/entities:search" } } } }, "parameters": { - "alt": { - "location": "query", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ] - }, - "access_token": { - "description": "OAuth access token.", + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, "bearer_token": { "location": "query", "description": "OAuth bearer token.", "type": "string" }, "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string", - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + "location": "query" }, "prettyPrint": { "location": "query", @@ -125,22 +90,23 @@ "default": "true", "type": "boolean" }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, "uploadType": { "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string" }, - "fields": { - "type": "string", - "location": "query", - "description": "Selector specifying which fields to include in a partial response." - }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "$.xgafv": { + "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", @@ -150,8 +116,44 @@ "enum": [ "1", "2" + ] + }, + "alt": { + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" ], - "description": "V1 error format." + "location": "query", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "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.", + "type": "string", + "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" } }, "schemas": { @@ -188,7 +190,5 @@ "kind": "discovery#restDescription", "description": "Searches the Google Knowledge Graph for entities.", "servicePath": "", - "rootUrl": "https://kgsearch.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com" + "rootUrl": "https://kgsearch.googleapis.com/" } diff --git a/vendor/google.golang.org/api/language/v1/language-api.json b/vendor/google.golang.org/api/language/v1/language-api.json index b3fecdead..c23722a55 100644 --- a/vendor/google.golang.org/api/language/v1/language-api.json +++ b/vendor/google.golang.org/api/language/v1/language-api.json @@ -1,722 +1,100 @@ { - "ownerName": "Google", - "resources": { - "documents": { - "methods": { - "analyzeEntities": { - "response": { - "$ref": "AnalyzeEntitiesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/documents:analyzeEntities", - "id": "language.documents.analyzeEntities", - "path": "v1/documents:analyzeEntities", - "description": "Finds named entities (currently proper names and common nouns) in the text\nalong with entity types, salience, mentions for each entity, and\nother properties.", - "request": { - "$ref": "AnalyzeEntitiesRequest" - } - }, - "analyzeSyntax": { - "response": { - "$ref": "AnalyzeSyntaxResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/documents:analyzeSyntax", - "id": "language.documents.analyzeSyntax", - "path": "v1/documents:analyzeSyntax", - "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties.", - "request": { - "$ref": "AnalyzeSyntaxRequest" - } - }, - "analyzeSentiment": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "AnalyzeSentimentResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/documents:analyzeSentiment", - "path": "v1/documents:analyzeSentiment", - "id": "language.documents.analyzeSentiment", - "description": "Analyzes the sentiment of the provided text.", - "request": { - "$ref": "AnalyzeSentimentRequest" - } - }, - "annotateText": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v1/documents:annotateText", - "path": "v1/documents:annotateText", - "id": "language.documents.annotateText", - "request": { - "$ref": "AnnotateTextRequest" - }, - "description": "A convenience method that provides all the features that analyzeSentiment,\nanalyzeEntities, and analyzeSyntax provide in one call.", - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "AnnotateTextResponse" - } - }, - "analyzeEntitySentiment": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v1/documents:analyzeEntitySentiment", - "id": "language.documents.analyzeEntitySentiment", - "path": "v1/documents:analyzeEntitySentiment", - "request": { - "$ref": "AnalyzeEntitySentimentRequest" - }, - "description": "Finds entities, similar to AnalyzeEntities in the text and analyzes\nsentiment associated with each entity and its mentions.", - "response": { - "$ref": "AnalyzeEntitySentimentResponse" - }, - "parameterOrder": [], - "httpMethod": "POST" - } - } - } - }, - "parameters": { - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - } - }, - "version": "v1", - "baseUrl": "https://language.googleapis.com/", - "servicePath": "", - "description": "Provides natural language understanding technologies to developers. Examples include sentiment analysis, entity recognition, entity sentiment analysis, and text annotations.", - "kind": "discovery#restDescription", "basePath": "", - "revision": "20170926", - "documentationLink": "https://cloud.google.com/natural-language/", "id": "language:v1", + "documentationLink": "https://cloud.google.com/natural-language/", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { - "PartOfSpeech": { - "id": "PartOfSpeech", - "description": "Represents part of speech information for a token. Parts of speech\nare as defined in\nhttp://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf", - "type": "object", - "properties": { - "tense": { - "enumDescriptions": [ - "Tense is not applicable in the analyzed language or is not predicted.", - "Conditional", - "Future", - "Past", - "Present", - "Imperfect", - "Pluperfect" - ], - "enum": [ - "TENSE_UNKNOWN", - "CONDITIONAL_TENSE", - "FUTURE", - "PAST", - "PRESENT", - "IMPERFECT", - "PLUPERFECT" - ], - "description": "The grammatical tense.", - "type": "string" - }, - "reciprocity": { - "description": "The grammatical reciprocity.", - "type": "string", - "enumDescriptions": [ - "Reciprocity is not applicable in the analyzed language or is not\npredicted.", - "Reciprocal", - "Non-reciprocal" - ], - "enum": [ - "RECIPROCITY_UNKNOWN", - "RECIPROCAL", - "NON_RECIPROCAL" - ] - }, - "form": { - "enumDescriptions": [ - "Form is not applicable in the analyzed language or is not predicted.", - "Adnomial", - "Auxiliary", - "Complementizer", - "Final ending", - "Gerund", - "Realis", - "Irrealis", - "Short form", - "Long form", - "Order form", - "Specific form" - ], - "enum": [ - "FORM_UNKNOWN", - "ADNOMIAL", - "AUXILIARY", - "COMPLEMENTIZER", - "FINAL_ENDING", - "GERUND", - "REALIS", - "IRREALIS", - "SHORT", - "LONG", - "ORDER", - "SPECIFIC" - ], - "description": "The grammatical form.", - "type": "string" - }, - "number": { - "enumDescriptions": [ - "Number is not applicable in the analyzed language or is not predicted.", - "Singular", - "Plural", - "Dual" - ], - "enum": [ - "NUMBER_UNKNOWN", - "SINGULAR", - "PLURAL", - "DUAL" - ], - "description": "The grammatical number.", - "type": "string" - }, - "voice": { - "description": "The grammatical voice.", - "type": "string", - "enumDescriptions": [ - "Voice is not applicable in the analyzed language or is not predicted.", - "Active", - "Causative", - "Passive" - ], - "enum": [ - "VOICE_UNKNOWN", - "ACTIVE", - "CAUSATIVE", - "PASSIVE" - ] - }, - "aspect": { - "enumDescriptions": [ - "Aspect is not applicable in the analyzed language or is not predicted.", - "Perfective", - "Imperfective", - "Progressive" - ], - "enum": [ - "ASPECT_UNKNOWN", - "PERFECTIVE", - "IMPERFECTIVE", - "PROGRESSIVE" - ], - "description": "The grammatical aspect.", - "type": "string" - }, - "mood": { - "enumDescriptions": [ - "Mood is not applicable in the analyzed language or is not predicted.", - "Conditional", - "Imperative", - "Indicative", - "Interrogative", - "Jussive", - "Subjunctive" - ], - "enum": [ - "MOOD_UNKNOWN", - "CONDITIONAL_MOOD", - "IMPERATIVE", - "INDICATIVE", - "INTERROGATIVE", - "JUSSIVE", - "SUBJUNCTIVE" - ], - "description": "The grammatical mood.", - "type": "string" - }, - "tag": { - "enumDescriptions": [ - "Unknown", - "Adjective", - "Adposition (preposition and postposition)", - "Adverb", - "Conjunction", - "Determiner", - "Noun (common and proper)", - "Cardinal number", - "Pronoun", - "Particle or other function word", - "Punctuation", - "Verb (all tenses and modes)", - "Other: foreign words, typos, abbreviations", - "Affix" - ], - "enum": [ - "UNKNOWN", - "ADJ", - "ADP", - "ADV", - "CONJ", - "DET", - "NOUN", - "NUM", - "PRON", - "PRT", - "PUNCT", - "VERB", - "X", - "AFFIX" - ], - "description": "The part of speech tag.", - "type": "string" - }, - "gender": { - "description": "The grammatical gender.", - "type": "string", - "enumDescriptions": [ - "Gender is not applicable in the analyzed language or is not predicted.", - "Feminine", - "Masculine", - "Neuter" - ], - "enum": [ - "GENDER_UNKNOWN", - "FEMININE", - "MASCULINE", - "NEUTER" - ] - }, - "person": { - "description": "The grammatical person.", - "type": "string", - "enumDescriptions": [ - "Person is not applicable in the analyzed language or is not predicted.", - "First", - "Second", - "Third", - "Reflexive" - ], - "enum": [ - "PERSON_UNKNOWN", - "FIRST", - "SECOND", - "THIRD", - "REFLEXIVE_PERSON" - ] - }, - "proper": { - "enumDescriptions": [ - "Proper is not applicable in the analyzed language or is not predicted.", - "Proper", - "Not proper" - ], - "enum": [ - "PROPER_UNKNOWN", - "PROPER", - "NOT_PROPER" - ], - "description": "The grammatical properness.", - "type": "string" - }, - "case": { - "description": "The grammatical case.", - "type": "string", - "enumDescriptions": [ - "Case is not applicable in the analyzed language or is not predicted.", - "Accusative", - "Adverbial", - "Complementive", - "Dative", - "Genitive", - "Instrumental", - "Locative", - "Nominative", - "Oblique", - "Partitive", - "Prepositional", - "Reflexive", - "Relative", - "Vocative" - ], - "enum": [ - "CASE_UNKNOWN", - "ACCUSATIVE", - "ADVERBIAL", - "COMPLEMENTIVE", - "DATIVE", - "GENITIVE", - "INSTRUMENTAL", - "LOCATIVE", - "NOMINATIVE", - "OBLIQUE", - "PARTITIVE", - "PREPOSITIONAL", - "REFLEXIVE_CASE", - "RELATIVE_CASE", - "VOCATIVE" - ] - } - } - }, - "AnalyzeSyntaxRequest": { - "id": "AnalyzeSyntaxRequest", - "description": "The syntax analysis request message.", - "type": "object", - "properties": { - "encodingType": { - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ], - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], - "description": "The encoding type used by the API to calculate offsets.", - "type": "string" - }, - "document": { - "$ref": "Document", - "description": "Input document." - } - } - }, - "AnalyzeSentimentResponse": { - "id": "AnalyzeSentimentResponse", - "description": "The sentiment analysis response message.", - "type": "object", - "properties": { - "language": { - "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", - "type": "string" - }, - "sentences": { - "description": "The sentiment for all the sentences in the document.", - "items": { - "$ref": "Sentence" - }, - "type": "array" - }, - "documentSentiment": { - "$ref": "Sentiment", - "description": "The overall sentiment of the input document." - } - } - }, - "AnalyzeEntitiesResponse": { - "description": "The entity analysis response message.", - "type": "object", - "properties": { - "language": { - "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", - "type": "string" - }, - "entities": { - "description": "The recognized entities in the input document.", - "items": { - "$ref": "Entity" - }, - "type": "array" - } - }, - "id": "AnalyzeEntitiesResponse" - }, - "AnalyzeSyntaxResponse": { - "description": "The syntax analysis response message.", - "type": "object", - "properties": { - "language": { - "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", - "type": "string" - }, - "sentences": { - "description": "Sentences in the input document.", - "items": { - "$ref": "Sentence" - }, - "type": "array" - }, - "tokens": { - "description": "Tokens, along with their syntactic information, in the input document.", - "items": { - "$ref": "Token" - }, - "type": "array" - } - }, - "id": "AnalyzeSyntaxResponse" - }, - "Entity": { - "description": "Represents a phrase in the text that is a known entity, such as\na person, an organization, or location. The API associates information, such\nas salience and mentions, with entities.", - "type": "object", - "properties": { - "name": { - "description": "The representative name for the entity.", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "Unknown", - "Person", - "Location", - "Organization", - "Event", - "Work of art", - "Consumer goods", - "Other types" - ], - "enum": [ - "UNKNOWN", - "PERSON", - "LOCATION", - "ORGANIZATION", - "EVENT", - "WORK_OF_ART", - "CONSUMER_GOOD", - "OTHER" - ], - "description": "The entity type.", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively.", - "type": "object" - }, - "salience": { - "format": "float", - "description": "The salience score associated with the entity in the [0, 1.0] range.\n\nThe salience score for an entity provides information about the\nimportance or centrality of that entity to the entire document text.\nScores closer to 0 are less salient, while scores closer to 1.0 are highly\nsalient.", - "type": "number" - }, - "sentiment": { - "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the aggregate sentiment expressed for this\nentity in the provided document.", - "$ref": "Sentiment" - }, - "mentions": { - "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions.", - "items": { - "$ref": "EntityMention" - }, - "type": "array" - } - }, - "id": "Entity" - }, - "AnnotateTextRequest": { - "description": "The request message for the text annotation API, which can perform multiple\nanalysis types (sentiment, entities, and syntax) in one call.", - "type": "object", - "properties": { - "encodingType": { - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ], - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], - "description": "The encoding type used by the API to calculate offsets.", - "type": "string" - }, - "document": { - "description": "Input document.", - "$ref": "Document" - }, - "features": { - "description": "The enabled features.", - "$ref": "Features" - } - }, - "id": "AnnotateTextRequest" - }, - "AnnotateTextResponse": { - "description": "The text annotations response message.", - "type": "object", - "properties": { - "language": { - "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", - "type": "string" - }, - "sentences": { - "description": "Sentences in the input document. Populated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", - "items": { - "$ref": "Sentence" - }, - "type": "array" - }, - "tokens": { - "description": "Tokens, along with their syntactic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", - "items": { - "$ref": "Token" - }, - "type": "array" - }, - "entities": { - "description": "Entities, along with their semantic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_entities.", - "items": { - "$ref": "Entity" - }, - "type": "array" - }, - "documentSentiment": { - "$ref": "Sentiment", - "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment." - } - }, - "id": "AnnotateTextResponse" - }, - "AnalyzeSentimentRequest": { - "id": "AnalyzeSentimentRequest", - "description": "The sentiment analysis request message.", - "type": "object", - "properties": { - "encodingType": { - "description": "The encoding type used by the API to calculate sentence offsets.", - "type": "string", - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ], - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ] - }, - "document": { - "$ref": "Document", - "description": "Input document." - } - } - }, "DependencyEdge": { - "description": "Represents dependency parse tree information for a token. (For more\ninformation on dependency labels, see\nhttp://www.aclweb.org/anthology/P13-2017", "type": "object", "properties": { "label": { + "enum": [ + "UNKNOWN", + "ABBREV", + "ACOMP", + "ADVCL", + "ADVMOD", + "AMOD", + "APPOS", + "ATTR", + "AUX", + "AUXPASS", + "CC", + "CCOMP", + "CONJ", + "CSUBJ", + "CSUBJPASS", + "DEP", + "DET", + "DISCOURSE", + "DOBJ", + "EXPL", + "GOESWITH", + "IOBJ", + "MARK", + "MWE", + "MWV", + "NEG", + "NN", + "NPADVMOD", + "NSUBJ", + "NSUBJPASS", + "NUM", + "NUMBER", + "P", + "PARATAXIS", + "PARTMOD", + "PCOMP", + "POBJ", + "POSS", + "POSTNEG", + "PRECOMP", + "PRECONJ", + "PREDET", + "PREF", + "PREP", + "PRONL", + "PRT", + "PS", + "QUANTMOD", + "RCMOD", + "RCMODREL", + "RDROP", + "REF", + "REMNANT", + "REPARANDUM", + "ROOT", + "SNUM", + "SUFF", + "TMOD", + "TOPIC", + "VMOD", + "VOCATIVE", + "XCOMP", + "SUFFIX", + "TITLE", + "ADVPHMOD", + "AUXCAUS", + "AUXVV", + "DTMOD", + "FOREIGN", + "KW", + "LIST", + "NOMC", + "NOMCSUBJ", + "NOMCSUBJPASS", + "NUMC", + "COP", + "DISLOCATED", + "ASP", + "GMOD", + "GOBJ", + "INFMOD", + "MES", + "NCOMP" + ], "description": "The parse label for the token.", "type": "string", "enumDescriptions": [ @@ -803,91 +181,6 @@ "Infinitival modifier", "Measure", "Nominal complement of a noun" - ], - "enum": [ - "UNKNOWN", - "ABBREV", - "ACOMP", - "ADVCL", - "ADVMOD", - "AMOD", - "APPOS", - "ATTR", - "AUX", - "AUXPASS", - "CC", - "CCOMP", - "CONJ", - "CSUBJ", - "CSUBJPASS", - "DEP", - "DET", - "DISCOURSE", - "DOBJ", - "EXPL", - "GOESWITH", - "IOBJ", - "MARK", - "MWE", - "MWV", - "NEG", - "NN", - "NPADVMOD", - "NSUBJ", - "NSUBJPASS", - "NUM", - "NUMBER", - "P", - "PARATAXIS", - "PARTMOD", - "PCOMP", - "POBJ", - "POSS", - "POSTNEG", - "PRECOMP", - "PRECONJ", - "PREDET", - "PREF", - "PREP", - "PRONL", - "PRT", - "PS", - "QUANTMOD", - "RCMOD", - "RCMODREL", - "RDROP", - "REF", - "REMNANT", - "REPARANDUM", - "ROOT", - "SNUM", - "SUFF", - "TMOD", - "TOPIC", - "VMOD", - "VOCATIVE", - "XCOMP", - "SUFFIX", - "TITLE", - "ADVPHMOD", - "AUXCAUS", - "AUXVV", - "DTMOD", - "FOREIGN", - "KW", - "LIST", - "NOMC", - "NOMCSUBJ", - "NOMCSUBJPASS", - "NUMC", - "COP", - "DISLOCATED", - "ASP", - "GMOD", - "GOBJ", - "INFMOD", - "MES", - "NCOMP" ] }, "headTokenIndex": { @@ -896,32 +189,29 @@ "type": "integer" } }, - "id": "DependencyEdge" + "id": "DependencyEdge", + "description": "Represents dependency parse tree information for a token. (For more\ninformation on dependency labels, see\nhttp://www.aclweb.org/anthology/P13-2017" }, "TextSpan": { - "description": "Represents an output piece of text.", "type": "object", "properties": { "beginOffset": { + "type": "integer", "format": "int32", - "description": "The API calculates the beginning offset of the content in the original\ndocument according to the EncodingType specified in the API request.", - "type": "integer" + "description": "The API calculates the beginning offset of the content in the original\ndocument according to the EncodingType specified in the API request." }, "content": { "description": "The content of the output text.", "type": "string" } }, - "id": "TextSpan" + "id": "TextSpan", + "description": "Represents an output piece of text." }, "Token": { "description": "Represents the smallest syntactic building block of the text.", "type": "object", "properties": { - "partOfSpeech": { - "$ref": "PartOfSpeech", - "description": "Parts of speech tag for this token." - }, "dependencyEdge": { "$ref": "DependencyEdge", "description": "Dependency tree parse for this token." @@ -931,8 +221,12 @@ "description": "The token text." }, "lemma": { - "description": "[Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.", - "type": "string" + "type": "string", + "description": "[Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token." + }, + "partOfSpeech": { + "$ref": "PartOfSpeech", + "description": "Parts of speech tag for this token." } }, "id": "Token" @@ -941,11 +235,6 @@ "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" @@ -960,41 +249,16 @@ } }, "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" } }, "id": "Status" }, - "EntityMention": { - "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported.", - "type": "object", - "properties": { - "type": { - "enumDescriptions": [ - "Unknown", - "Proper name", - "Common noun (or noun compound)" - ], - "enum": [ - "TYPE_UNKNOWN", - "PROPER", - "COMMON" - ], - "description": "The type of the entity mention.", - "type": "string" - }, - "text": { - "$ref": "TextSpan", - "description": "The mention text." - }, - "sentiment": { - "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the sentiment expressed for this mention of\nthe entity in the provided document.", - "$ref": "Sentiment" - } - }, - "id": "EntityMention" - }, "Features": { - "id": "Features", "description": "All available features for sentiment, syntax, and semantic analysis.\nSetting each one to true will enable that specific analysis for the input.", "type": "object", "properties": { @@ -1011,35 +275,60 @@ "type": "boolean" }, "extractSyntax": { - "description": "Extract syntax information.", - "type": "boolean" + "type": "boolean", + "description": "Extract syntax information." } - } + }, + "id": "Features" + }, + "EntityMention": { + "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported.", + "type": "object", + "properties": { + "type": { + "description": "The type of the entity mention.", + "type": "string", + "enumDescriptions": [ + "Unknown", + "Proper name", + "Common noun (or noun compound)" + ], + "enum": [ + "TYPE_UNKNOWN", + "PROPER", + "COMMON" + ] + }, + "text": { + "$ref": "TextSpan", + "description": "The mention text." + }, + "sentiment": { + "$ref": "Sentiment", + "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the sentiment expressed for this mention of\nthe entity in the provided document." + } + }, + "id": "EntityMention" }, "Sentence": { - "id": "Sentence", - "description": "Represents a sentence in the input document.", "type": "object", "properties": { "text": { - "$ref": "TextSpan", - "description": "The sentence text." + "description": "The sentence text.", + "$ref": "TextSpan" }, "sentiment": { - "description": "For calls to AnalyzeSentiment or if\nAnnotateTextRequest.Features.extract_document_sentiment is set to\ntrue, this field will contain the sentiment for the sentence.", - "$ref": "Sentiment" + "$ref": "Sentiment", + "description": "For calls to AnalyzeSentiment or if\nAnnotateTextRequest.Features.extract_document_sentiment is set to\ntrue, this field will contain the sentiment for the sentence." } - } + }, + "id": "Sentence", + "description": "Represents a sentence in the input document." }, "Document": { - "id": "Document", "description": "################################################################ #\n\nRepresents the input to API methods.", "type": "object", "properties": { - "language": { - "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned.", - "type": "string" - }, "content": { "description": "The content of the input in string format.", "type": "string" @@ -1061,13 +350,371 @@ "gcsContentUri": { "description": "The Google Cloud Storage URI where the file content is located.\nThis URI must be of the form: gs://bucket_name/object_name. For more\ndetails, see https://cloud.google.com/storage/docs/reference-uris.\nNOTE: Cloud Storage object versioning is not supported.", "type": "string" + }, + "language": { + "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned.", + "type": "string" } - } + }, + "id": "Document" + }, + "Sentiment": { + "type": "object", + "properties": { + "score": { + "format": "float", + "description": "Sentiment score between -1.0 (negative sentiment) and 1.0\n(positive sentiment).", + "type": "number" + }, + "magnitude": { + "type": "number", + "format": "float", + "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative)." + } + }, + "id": "Sentiment", + "description": "Represents the feeling associated with the entire text or entities in\nthe text." }, "AnalyzeEntitiesRequest": { - "id": "AnalyzeEntitiesRequest", - "description": "The entity analysis request message.", "type": "object", + "properties": { + "encodingType": { + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ], + "description": "The encoding type used by the API to calculate offsets.", + "type": "string" + }, + "document": { + "$ref": "Document", + "description": "Input document." + } + }, + "id": "AnalyzeEntitiesRequest", + "description": "The entity analysis request message." + }, + "AnalyzeEntitySentimentResponse": { + "description": "The entity-level sentiment analysis response message.", + "type": "object", + "properties": { + "entities": { + "description": "The recognized entities in the input document with associated sentiments.", + "items": { + "$ref": "Entity" + }, + "type": "array" + }, + "language": { + "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", + "type": "string" + } + }, + "id": "AnalyzeEntitySentimentResponse" + }, + "AnalyzeEntitySentimentRequest": { + "properties": { + "encodingType": { + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ], + "description": "The encoding type used by the API to calculate offsets.", + "type": "string", + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ] + }, + "document": { + "$ref": "Document", + "description": "Input document." + } + }, + "id": "AnalyzeEntitySentimentRequest", + "description": "The entity-level sentiment analysis request message.", + "type": "object" + }, + "PartOfSpeech": { + "description": "Represents part of speech information for a token. Parts of speech\nare as defined in\nhttp://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf", + "type": "object", + "properties": { + "form": { + "description": "The grammatical form.", + "type": "string", + "enumDescriptions": [ + "Form is not applicable in the analyzed language or is not predicted.", + "Adnomial", + "Auxiliary", + "Complementizer", + "Final ending", + "Gerund", + "Realis", + "Irrealis", + "Short form", + "Long form", + "Order form", + "Specific form" + ], + "enum": [ + "FORM_UNKNOWN", + "ADNOMIAL", + "AUXILIARY", + "COMPLEMENTIZER", + "FINAL_ENDING", + "GERUND", + "REALIS", + "IRREALIS", + "SHORT", + "LONG", + "ORDER", + "SPECIFIC" + ] + }, + "number": { + "enum": [ + "NUMBER_UNKNOWN", + "SINGULAR", + "PLURAL", + "DUAL" + ], + "description": "The grammatical number.", + "type": "string", + "enumDescriptions": [ + "Number is not applicable in the analyzed language or is not predicted.", + "Singular", + "Plural", + "Dual" + ] + }, + "voice": { + "enumDescriptions": [ + "Voice is not applicable in the analyzed language or is not predicted.", + "Active", + "Causative", + "Passive" + ], + "enum": [ + "VOICE_UNKNOWN", + "ACTIVE", + "CAUSATIVE", + "PASSIVE" + ], + "description": "The grammatical voice.", + "type": "string" + }, + "aspect": { + "description": "The grammatical aspect.", + "type": "string", + "enumDescriptions": [ + "Aspect is not applicable in the analyzed language or is not predicted.", + "Perfective", + "Imperfective", + "Progressive" + ], + "enum": [ + "ASPECT_UNKNOWN", + "PERFECTIVE", + "IMPERFECTIVE", + "PROGRESSIVE" + ] + }, + "mood": { + "type": "string", + "enumDescriptions": [ + "Mood is not applicable in the analyzed language or is not predicted.", + "Conditional", + "Imperative", + "Indicative", + "Interrogative", + "Jussive", + "Subjunctive" + ], + "enum": [ + "MOOD_UNKNOWN", + "CONDITIONAL_MOOD", + "IMPERATIVE", + "INDICATIVE", + "INTERROGATIVE", + "JUSSIVE", + "SUBJUNCTIVE" + ], + "description": "The grammatical mood." + }, + "tag": { + "description": "The part of speech tag.", + "type": "string", + "enumDescriptions": [ + "Unknown", + "Adjective", + "Adposition (preposition and postposition)", + "Adverb", + "Conjunction", + "Determiner", + "Noun (common and proper)", + "Cardinal number", + "Pronoun", + "Particle or other function word", + "Punctuation", + "Verb (all tenses and modes)", + "Other: foreign words, typos, abbreviations", + "Affix" + ], + "enum": [ + "UNKNOWN", + "ADJ", + "ADP", + "ADV", + "CONJ", + "DET", + "NOUN", + "NUM", + "PRON", + "PRT", + "PUNCT", + "VERB", + "X", + "AFFIX" + ] + }, + "gender": { + "enumDescriptions": [ + "Gender is not applicable in the analyzed language or is not predicted.", + "Feminine", + "Masculine", + "Neuter" + ], + "enum": [ + "GENDER_UNKNOWN", + "FEMININE", + "MASCULINE", + "NEUTER" + ], + "description": "The grammatical gender.", + "type": "string" + }, + "person": { + "description": "The grammatical person.", + "type": "string", + "enumDescriptions": [ + "Person is not applicable in the analyzed language or is not predicted.", + "First", + "Second", + "Third", + "Reflexive" + ], + "enum": [ + "PERSON_UNKNOWN", + "FIRST", + "SECOND", + "THIRD", + "REFLEXIVE_PERSON" + ] + }, + "proper": { + "enumDescriptions": [ + "Proper is not applicable in the analyzed language or is not predicted.", + "Proper", + "Not proper" + ], + "enum": [ + "PROPER_UNKNOWN", + "PROPER", + "NOT_PROPER" + ], + "description": "The grammatical properness.", + "type": "string" + }, + "case": { + "enumDescriptions": [ + "Case is not applicable in the analyzed language or is not predicted.", + "Accusative", + "Adverbial", + "Complementive", + "Dative", + "Genitive", + "Instrumental", + "Locative", + "Nominative", + "Oblique", + "Partitive", + "Prepositional", + "Reflexive", + "Relative", + "Vocative" + ], + "enum": [ + "CASE_UNKNOWN", + "ACCUSATIVE", + "ADVERBIAL", + "COMPLEMENTIVE", + "DATIVE", + "GENITIVE", + "INSTRUMENTAL", + "LOCATIVE", + "NOMINATIVE", + "OBLIQUE", + "PARTITIVE", + "PREPOSITIONAL", + "REFLEXIVE_CASE", + "RELATIVE_CASE", + "VOCATIVE" + ], + "description": "The grammatical case.", + "type": "string" + }, + "tense": { + "enumDescriptions": [ + "Tense is not applicable in the analyzed language or is not predicted.", + "Conditional", + "Future", + "Past", + "Present", + "Imperfect", + "Pluperfect" + ], + "enum": [ + "TENSE_UNKNOWN", + "CONDITIONAL_TENSE", + "FUTURE", + "PAST", + "PRESENT", + "IMPERFECT", + "PLUPERFECT" + ], + "description": "The grammatical tense.", + "type": "string" + }, + "reciprocity": { + "enum": [ + "RECIPROCITY_UNKNOWN", + "RECIPROCAL", + "NON_RECIPROCAL" + ], + "description": "The grammatical reciprocity.", + "type": "string", + "enumDescriptions": [ + "Reciprocity is not applicable in the analyzed language or is not\npredicted.", + "Reciprocal", + "Non-reciprocal" + ] + } + }, + "id": "PartOfSpeech" + }, + "AnalyzeSyntaxRequest": { "properties": { "encodingType": { "description": "The encoding type used by the API to calculate offsets.", @@ -1089,46 +736,136 @@ "$ref": "Document", "description": "Input document." } - } + }, + "id": "AnalyzeSyntaxRequest", + "description": "The syntax analysis request message.", + "type": "object" }, - "Sentiment": { - "id": "Sentiment", - "description": "Represents the feeling associated with the entire text or entities in\nthe text.", + "AnalyzeSentimentResponse": { + "description": "The sentiment analysis response message.", "type": "object", "properties": { - "score": { - "format": "float", - "description": "Sentiment score between -1.0 (negative sentiment) and 1.0\n(positive sentiment).", - "type": "number" + "sentences": { + "description": "The sentiment for all the sentences in the document.", + "items": { + "$ref": "Sentence" + }, + "type": "array" + }, + "documentSentiment": { + "$ref": "Sentiment", + "description": "The overall sentiment of the input document." }, - "magnitude": { - "format": "float", - "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative).", - "type": "number" - } - } - }, - "AnalyzeEntitySentimentResponse": { - "id": "AnalyzeEntitySentimentResponse", - "description": "The entity-level sentiment analysis response message.", - "type": "object", - "properties": { "language": { "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", "type": "string" - }, + } + }, + "id": "AnalyzeSentimentResponse" + }, + "AnalyzeEntitiesResponse": { + "id": "AnalyzeEntitiesResponse", + "description": "The entity analysis response message.", + "type": "object", + "properties": { "entities": { - "description": "The recognized entities in the input document with associated sentiments.", + "description": "The recognized entities in the input document.", "items": { "$ref": "Entity" }, "type": "array" + }, + "language": { + "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", + "type": "string" } } }, - "AnalyzeEntitySentimentRequest": { - "id": "AnalyzeEntitySentimentRequest", - "description": "The entity-level sentiment analysis request message.", + "AnalyzeSyntaxResponse": { + "type": "object", + "properties": { + "language": { + "type": "string", + "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details." + }, + "sentences": { + "description": "Sentences in the input document.", + "items": { + "$ref": "Sentence" + }, + "type": "array" + }, + "tokens": { + "description": "Tokens, along with their syntactic information, in the input document.", + "items": { + "$ref": "Token" + }, + "type": "array" + } + }, + "id": "AnalyzeSyntaxResponse", + "description": "The syntax analysis response message." + }, + "Entity": { + "description": "Represents a phrase in the text that is a known entity, such as\na person, an organization, or location. The API associates information, such\nas salience and mentions, with entities.", + "type": "object", + "properties": { + "sentiment": { + "$ref": "Sentiment", + "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the aggregate sentiment expressed for this\nentity in the provided document." + }, + "mentions": { + "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions.", + "items": { + "$ref": "EntityMention" + }, + "type": "array" + }, + "name": { + "description": "The representative name for the entity.", + "type": "string" + }, + "salience": { + "format": "float", + "description": "The salience score associated with the entity in the [0, 1.0] range.\n\nThe salience score for an entity provides information about the\nimportance or centrality of that entity to the entire document text.\nScores closer to 0 are less salient, while scores closer to 1.0 are highly\nsalient.", + "type": "number" + }, + "type": { + "type": "string", + "enumDescriptions": [ + "Unknown", + "Person", + "Location", + "Organization", + "Event", + "Work of art", + "Consumer goods", + "Other types" + ], + "enum": [ + "UNKNOWN", + "PERSON", + "LOCATION", + "ORGANIZATION", + "EVENT", + "WORK_OF_ART", + "CONSUMER_GOOD", + "OTHER" + ], + "description": "The entity type." + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively.", + "type": "object" + } + }, + "id": "Entity" + }, + "AnnotateTextRequest": { + "description": "The request message for the text annotation API, which can perform multiple\nanalysis types (sentiment, entities, and syntax) in one call.", "type": "object", "properties": { "encodingType": { @@ -1150,15 +887,83 @@ "document": { "description": "Input document.", "$ref": "Document" + }, + "features": { + "$ref": "Features", + "description": "The enabled features." } - } + }, + "id": "AnnotateTextRequest" + }, + "AnalyzeSentimentRequest": { + "description": "The sentiment analysis request message.", + "type": "object", + "properties": { + "encodingType": { + "description": "The encoding type used by the API to calculate sentence offsets.", + "type": "string", + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ] + }, + "document": { + "description": "Input document.", + "$ref": "Document" + } + }, + "id": "AnalyzeSentimentRequest" + }, + "AnnotateTextResponse": { + "description": "The text annotations response message.", + "type": "object", + "properties": { + "language": { + "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", + "type": "string" + }, + "sentences": { + "description": "Sentences in the input document. Populated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", + "items": { + "$ref": "Sentence" + }, + "type": "array" + }, + "tokens": { + "description": "Tokens, along with their syntactic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", + "items": { + "$ref": "Token" + }, + "type": "array" + }, + "entities": { + "items": { + "$ref": "Entity" + }, + "type": "array", + "description": "Entities, along with their semantic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_entities." + }, + "documentSentiment": { + "$ref": "Sentiment", + "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment." + } + }, + "id": "AnnotateTextResponse" } }, - "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, + "protocol": "rest", "canonicalName": "Cloud Natural Language", "auth": { "oauth2": { @@ -1176,5 +981,200 @@ "ownerDomain": "google.com", "name": "language", "batchPath": "batch", - "title": "Google Cloud Natural Language API" + "title": "Google Cloud Natural Language API", + "ownerName": "Google", + "resources": { + "documents": { + "methods": { + "analyzeEntitySentiment": { + "response": { + "$ref": "AnalyzeEntitySentimentResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/documents:analyzeEntitySentiment", + "id": "language.documents.analyzeEntitySentiment", + "path": "v1/documents:analyzeEntitySentiment", + "description": "Finds entities, similar to AnalyzeEntities in the text and analyzes\nsentiment associated with each entity and its mentions.", + "request": { + "$ref": "AnalyzeEntitySentimentRequest" + } + }, + "analyzeEntities": { + "response": { + "$ref": "AnalyzeEntitiesResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/documents:analyzeEntities", + "id": "language.documents.analyzeEntities", + "path": "v1/documents:analyzeEntities", + "request": { + "$ref": "AnalyzeEntitiesRequest" + }, + "description": "Finds named entities (currently proper names and common nouns) in the text\nalong with entity types, salience, mentions for each entity, and\nother properties." + }, + "analyzeSyntax": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "AnalyzeSyntaxResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/documents:analyzeSyntax", + "path": "v1/documents:analyzeSyntax", + "id": "language.documents.analyzeSyntax", + "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties.", + "request": { + "$ref": "AnalyzeSyntaxRequest" + } + }, + "analyzeSentiment": { + "response": { + "$ref": "AnalyzeSentimentResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/documents:analyzeSentiment", + "id": "language.documents.analyzeSentiment", + "path": "v1/documents:analyzeSentiment", + "description": "Analyzes the sentiment of the provided text.", + "request": { + "$ref": "AnalyzeSentimentRequest" + } + }, + "annotateText": { + "response": { + "$ref": "AnnotateTextResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/documents:annotateText", + "id": "language.documents.annotateText", + "path": "v1/documents:annotateText", + "request": { + "$ref": "AnnotateTextRequest" + }, + "description": "A convenience method that provides all the features that analyzeSentiment,\nanalyzeEntities, and analyzeSyntax provide in one call." + } + } + } + }, + "parameters": { + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "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.", + "type": "string", + "location": "query" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + } + }, + "version": "v1", + "baseUrl": "https://language.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Provides natural language understanding technologies to developers. Examples include sentiment analysis, entity recognition, entity sentiment analysis, and text annotations.", + "servicePath": "" } diff --git a/vendor/google.golang.org/api/language/v1beta1/language-api.json b/vendor/google.golang.org/api/language/v1beta1/language-api.json index e719c0413..8d1d2ecc8 100644 --- a/vendor/google.golang.org/api/language/v1beta1/language-api.json +++ b/vendor/google.golang.org/api/language/v1beta1/language-api.json @@ -1,325 +1,23 @@ { + "version": "v1beta1", + "baseUrl": "https://language.googleapis.com/", + "description": "Provides natural language understanding technologies to developers. Examples include sentiment analysis, entity recognition, entity sentiment analysis, and text annotations.", + "kind": "discovery#restDescription", + "servicePath": "", + "basePath": "", + "id": "language:v1beta1", + "documentationLink": "https://cloud.google.com/natural-language/", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { - "Features": { - "id": "Features", - "description": "All available features for sentiment, syntax, and semantic analysis.\nSetting each one to true will enable that specific analysis for the input.", - "type": "object", - "properties": { - "extractDocumentSentiment": { - "description": "Extract document-level sentiment.", - "type": "boolean" - }, - "extractSyntax": { - "description": "Extract syntax information.", - "type": "boolean" - }, - "extractEntities": { - "description": "Extract entities.", - "type": "boolean" - } - } - }, - "EntityMention": { - "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported.", - "type": "object", - "properties": { - "type": { - "enum": [ - "TYPE_UNKNOWN", - "PROPER", - "COMMON" - ], - "description": "The type of the entity mention.", - "type": "string", - "enumDescriptions": [ - "Unknown", - "Proper name", - "Common noun (or noun compound)" - ] - }, - "text": { - "$ref": "TextSpan", - "description": "The mention text." - } - }, - "id": "EntityMention" - }, - "Document": { - "properties": { - "gcsContentUri": { - "description": "The Google Cloud Storage URI where the file content is located.\nThis URI must be of the form: gs://bucket_name/object_name. For more\ndetails, see https://cloud.google.com/storage/docs/reference-uris.\nNOTE: Cloud Storage object versioning is not supported.", - "type": "string" - }, - "language": { - "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned.", - "type": "string" - }, - "content": { - "description": "The content of the input in string format.", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "The content type is not specified.", - "Plain text", - "HTML" - ], - "enum": [ - "TYPE_UNSPECIFIED", - "PLAIN_TEXT", - "HTML" - ], - "description": "Required. If the type is not set or is `TYPE_UNSPECIFIED`,\nreturns an `INVALID_ARGUMENT` error.", - "type": "string" - } - }, - "id": "Document", - "description": "################################################################ #\n\nRepresents the input to API methods.", - "type": "object" - }, - "Sentence": { - "type": "object", - "properties": { - "text": { - "description": "The sentence text.", - "$ref": "TextSpan" - }, - "sentiment": { - "description": "For calls to AnalyzeSentiment or if\nAnnotateTextRequest.Features.extract_document_sentiment is set to\ntrue, this field will contain the sentiment for the sentence.", - "$ref": "Sentiment" - } - }, - "id": "Sentence", - "description": "Represents a sentence in the input document." - }, - "Sentiment": { - "properties": { - "score": { - "type": "number", - "format": "float", - "description": "Sentiment score between -1.0 (negative sentiment) and 1.0\n(positive sentiment)." - }, - "polarity": { - "format": "float", - "description": "DEPRECATED FIELD - This field is being deprecated in\nfavor of score. Please refer to our documentation at\nhttps://cloud.google.com/natural-language/docs for more information.", - "type": "number" - }, - "magnitude": { - "format": "float", - "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative).", - "type": "number" - } - }, - "id": "Sentiment", - "description": "Represents the feeling associated with the entire text or entities in\nthe text.", - "type": "object" - }, - "AnalyzeEntitiesRequest": { - "description": "The entity analysis request message.", - "type": "object", - "properties": { - "encodingType": { - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ], - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], - "description": "The encoding type used by the API to calculate offsets.", - "type": "string" - }, - "document": { - "$ref": "Document", - "description": "Input document." - } - }, - "id": "AnalyzeEntitiesRequest" - }, "PartOfSpeech": { "description": "Represents part of speech information for a token.", "type": "object", "properties": { - "form": { - "enumDescriptions": [ - "Form is not applicable in the analyzed language or is not predicted.", - "Adnomial", - "Auxiliary", - "Complementizer", - "Final ending", - "Gerund", - "Realis", - "Irrealis", - "Short form", - "Long form", - "Order form", - "Specific form" - ], - "enum": [ - "FORM_UNKNOWN", - "ADNOMIAL", - "AUXILIARY", - "COMPLEMENTIZER", - "FINAL_ENDING", - "GERUND", - "REALIS", - "IRREALIS", - "SHORT", - "LONG", - "ORDER", - "SPECIFIC" - ], - "description": "The grammatical form.", - "type": "string" - }, - "number": { - "enum": [ - "NUMBER_UNKNOWN", - "SINGULAR", - "PLURAL", - "DUAL" - ], - "description": "The grammatical number.", - "type": "string", - "enumDescriptions": [ - "Number is not applicable in the analyzed language or is not predicted.", - "Singular", - "Plural", - "Dual" - ] - }, - "voice": { - "type": "string", - "enumDescriptions": [ - "Voice is not applicable in the analyzed language or is not predicted.", - "Active", - "Causative", - "Passive" - ], - "enum": [ - "VOICE_UNKNOWN", - "ACTIVE", - "CAUSATIVE", - "PASSIVE" - ], - "description": "The grammatical voice." - }, - "aspect": { - "enum": [ - "ASPECT_UNKNOWN", - "PERFECTIVE", - "IMPERFECTIVE", - "PROGRESSIVE" - ], - "description": "The grammatical aspect.", - "type": "string", - "enumDescriptions": [ - "Aspect is not applicable in the analyzed language or is not predicted.", - "Perfective", - "Imperfective", - "Progressive" - ] - }, - "mood": { - "type": "string", - "enumDescriptions": [ - "Mood is not applicable in the analyzed language or is not predicted.", - "Conditional", - "Imperative", - "Indicative", - "Interrogative", - "Jussive", - "Subjunctive" - ], - "enum": [ - "MOOD_UNKNOWN", - "CONDITIONAL_MOOD", - "IMPERATIVE", - "INDICATIVE", - "INTERROGATIVE", - "JUSSIVE", - "SUBJUNCTIVE" - ], - "description": "The grammatical mood." - }, - "tag": { - "type": "string", - "enumDescriptions": [ - "Unknown", - "Adjective", - "Adposition (preposition and postposition)", - "Adverb", - "Conjunction", - "Determiner", - "Noun (common and proper)", - "Cardinal number", - "Pronoun", - "Particle or other function word", - "Punctuation", - "Verb (all tenses and modes)", - "Other: foreign words, typos, abbreviations", - "Affix" - ], - "enum": [ - "UNKNOWN", - "ADJ", - "ADP", - "ADV", - "CONJ", - "DET", - "NOUN", - "NUM", - "PRON", - "PRT", - "PUNCT", - "VERB", - "X", - "AFFIX" - ], - "description": "The part of speech tag." - }, - "gender": { - "description": "The grammatical gender.", - "type": "string", - "enumDescriptions": [ - "Gender is not applicable in the analyzed language or is not predicted.", - "Feminine", - "Masculine", - "Neuter" - ], - "enum": [ - "GENDER_UNKNOWN", - "FEMININE", - "MASCULINE", - "NEUTER" - ] - }, - "person": { - "enum": [ - "PERSON_UNKNOWN", - "FIRST", - "SECOND", - "THIRD", - "REFLEXIVE_PERSON" - ], - "description": "The grammatical person.", - "type": "string", - "enumDescriptions": [ - "Person is not applicable in the analyzed language or is not predicted.", - "First", - "Second", - "Third", - "Reflexive" - ] - }, "proper": { + "description": "The grammatical properness.", + "type": "string", "enumDescriptions": [ "Proper is not applicable in the analyzed language or is not predicted.", "Proper", @@ -329,13 +27,9 @@ "PROPER_UNKNOWN", "PROPER", "NOT_PROPER" - ], - "description": "The grammatical properness.", - "type": "string" + ] }, "case": { - "description": "The grammatical case.", - "type": "string", "enumDescriptions": [ "Case is not applicable in the analyzed language or is not predicted.", "Accusative", @@ -369,11 +63,11 @@ "REFLEXIVE_CASE", "RELATIVE_CASE", "VOCATIVE" - ] + ], + "description": "The grammatical case.", + "type": "string" }, "tense": { - "description": "The grammatical tense.", - "type": "string", "enumDescriptions": [ "Tense is not applicable in the analyzed language or is not predicted.", "Conditional", @@ -391,26 +85,201 @@ "PRESENT", "IMPERFECT", "PLUPERFECT" - ] + ], + "description": "The grammatical tense.", + "type": "string" }, "reciprocity": { - "enum": [ - "RECIPROCITY_UNKNOWN", - "RECIPROCAL", - "NON_RECIPROCAL" - ], "description": "The grammatical reciprocity.", "type": "string", "enumDescriptions": [ "Reciprocity is not applicable in the analyzed language or is not\npredicted.", "Reciprocal", "Non-reciprocal" + ], + "enum": [ + "RECIPROCITY_UNKNOWN", + "RECIPROCAL", + "NON_RECIPROCAL" + ] + }, + "form": { + "description": "The grammatical form.", + "type": "string", + "enumDescriptions": [ + "Form is not applicable in the analyzed language or is not predicted.", + "Adnomial", + "Auxiliary", + "Complementizer", + "Final ending", + "Gerund", + "Realis", + "Irrealis", + "Short form", + "Long form", + "Order form", + "Specific form" + ], + "enum": [ + "FORM_UNKNOWN", + "ADNOMIAL", + "AUXILIARY", + "COMPLEMENTIZER", + "FINAL_ENDING", + "GERUND", + "REALIS", + "IRREALIS", + "SHORT", + "LONG", + "ORDER", + "SPECIFIC" + ] + }, + "number": { + "enumDescriptions": [ + "Number is not applicable in the analyzed language or is not predicted.", + "Singular", + "Plural", + "Dual" + ], + "enum": [ + "NUMBER_UNKNOWN", + "SINGULAR", + "PLURAL", + "DUAL" + ], + "description": "The grammatical number.", + "type": "string" + }, + "voice": { + "description": "The grammatical voice.", + "type": "string", + "enumDescriptions": [ + "Voice is not applicable in the analyzed language or is not predicted.", + "Active", + "Causative", + "Passive" + ], + "enum": [ + "VOICE_UNKNOWN", + "ACTIVE", + "CAUSATIVE", + "PASSIVE" + ] + }, + "aspect": { + "enum": [ + "ASPECT_UNKNOWN", + "PERFECTIVE", + "IMPERFECTIVE", + "PROGRESSIVE" + ], + "description": "The grammatical aspect.", + "type": "string", + "enumDescriptions": [ + "Aspect is not applicable in the analyzed language or is not predicted.", + "Perfective", + "Imperfective", + "Progressive" + ] + }, + "mood": { + "enum": [ + "MOOD_UNKNOWN", + "CONDITIONAL_MOOD", + "IMPERATIVE", + "INDICATIVE", + "INTERROGATIVE", + "JUSSIVE", + "SUBJUNCTIVE" + ], + "description": "The grammatical mood.", + "type": "string", + "enumDescriptions": [ + "Mood is not applicable in the analyzed language or is not predicted.", + "Conditional", + "Imperative", + "Indicative", + "Interrogative", + "Jussive", + "Subjunctive" + ] + }, + "tag": { + "description": "The part of speech tag.", + "type": "string", + "enumDescriptions": [ + "Unknown", + "Adjective", + "Adposition (preposition and postposition)", + "Adverb", + "Conjunction", + "Determiner", + "Noun (common and proper)", + "Cardinal number", + "Pronoun", + "Particle or other function word", + "Punctuation", + "Verb (all tenses and modes)", + "Other: foreign words, typos, abbreviations", + "Affix" + ], + "enum": [ + "UNKNOWN", + "ADJ", + "ADP", + "ADV", + "CONJ", + "DET", + "NOUN", + "NUM", + "PRON", + "PRT", + "PUNCT", + "VERB", + "X", + "AFFIX" + ] + }, + "gender": { + "enumDescriptions": [ + "Gender is not applicable in the analyzed language or is not predicted.", + "Feminine", + "Masculine", + "Neuter" + ], + "enum": [ + "GENDER_UNKNOWN", + "FEMININE", + "MASCULINE", + "NEUTER" + ], + "description": "The grammatical gender.", + "type": "string" + }, + "person": { + "enum": [ + "PERSON_UNKNOWN", + "FIRST", + "SECOND", + "THIRD", + "REFLEXIVE_PERSON" + ], + "description": "The grammatical person.", + "type": "string", + "enumDescriptions": [ + "Person is not applicable in the analyzed language or is not predicted.", + "First", + "Second", + "Third", + "Reflexive" ] } }, "id": "PartOfSpeech" }, "AnalyzeSyntaxRequest": { + "type": "object", "properties": { "encodingType": { "enumDescriptions": [ @@ -434,13 +303,14 @@ } }, "id": "AnalyzeSyntaxRequest", - "description": "The syntax analysis request message.", - "type": "object" + "description": "The syntax analysis request message." }, "AnalyzeSentimentResponse": { - "description": "The sentiment analysis response message.", - "type": "object", "properties": { + "documentSentiment": { + "$ref": "Sentiment", + "description": "The overall sentiment of the input document." + }, "language": { "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", "type": "string" @@ -451,15 +321,14 @@ "$ref": "Sentence" }, "type": "array" - }, - "documentSentiment": { - "description": "The overall sentiment of the input document.", - "$ref": "Sentiment" } }, - "id": "AnalyzeSentimentResponse" + "id": "AnalyzeSentimentResponse", + "description": "The sentiment analysis response message.", + "type": "object" }, "AnalyzeEntitiesResponse": { + "description": "The entity analysis response message.", "type": "object", "properties": { "language": { @@ -474,11 +343,9 @@ "type": "array" } }, - "id": "AnalyzeEntitiesResponse", - "description": "The entity analysis response message." + "id": "AnalyzeEntitiesResponse" }, "AnalyzeSyntaxResponse": { - "description": "The syntax analysis response message.", "type": "object", "properties": { "language": { @@ -500,24 +367,36 @@ "type": "array" } }, - "id": "AnalyzeSyntaxResponse" + "id": "AnalyzeSyntaxResponse", + "description": "The syntax analysis response message." }, "Entity": { "id": "Entity", "description": "Represents a phrase in the text that is a known entity, such as\na person, an organization, or location. The API associates information, such\nas salience and mentions, with entities.", "type": "object", "properties": { + "mentions": { + "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions.", + "items": { + "$ref": "EntityMention" + }, + "type": "array" + }, + "name": { + "description": "The representative name for the entity.", + "type": "string" + }, "salience": { "format": "float", "description": "The salience score associated with the entity in the [0, 1.0] range.\n\nThe salience score for an entity provides information about the\nimportance or centrality of that entity to the entire document text.\nScores closer to 0 are less salient, while scores closer to 1.0 are highly\nsalient.", "type": "number" }, "metadata": { - "type": "object", "additionalProperties": { "type": "string" }, - "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively." + "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively.", + "type": "object" }, "type": { "enumDescriptions": [ @@ -542,17 +421,6 @@ ], "description": "The entity type.", "type": "string" - }, - "mentions": { - "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions.", - "items": { - "$ref": "EntityMention" - }, - "type": "array" - }, - "name": { - "description": "The representative name for the entity.", - "type": "string" } } }, @@ -577,12 +445,12 @@ ] }, "document": { - "description": "Input document.", - "$ref": "Document" + "$ref": "Document", + "description": "Input document." }, "features": { - "description": "The enabled features.", - "$ref": "Features" + "$ref": "Features", + "description": "The enabled features." } }, "id": "AnnotateTextRequest" @@ -591,6 +459,10 @@ "description": "The text annotations response message.", "type": "object", "properties": { + "documentSentiment": { + "$ref": "Sentiment", + "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment." + }, "language": { "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", "type": "string" @@ -615,10 +487,6 @@ "$ref": "Entity" }, "type": "array" - }, - "documentSentiment": { - "$ref": "Sentiment", - "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment." } }, "id": "AnnotateTextResponse" @@ -628,7 +496,6 @@ "type": "object", "properties": { "encodingType": { - "type": "string", "enumDescriptions": [ "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", @@ -641,7 +508,8 @@ "UTF16", "UTF32" ], - "description": "The encoding type used by the API to calculate sentence offsets for the\nsentence sentiment." + "description": "The encoding type used by the API to calculate sentence offsets for the\nsentence sentiment.", + "type": "string" }, "document": { "description": "Input document.", @@ -651,8 +519,6 @@ "id": "AnalyzeSentimentRequest" }, "DependencyEdge": { - "description": "Represents dependency parse tree information for a token.", - "type": "object", "properties": { "label": { "enum": [ @@ -834,32 +700,36 @@ "type": "integer" } }, - "id": "DependencyEdge" + "id": "DependencyEdge", + "description": "Represents dependency parse tree information for a token.", + "type": "object" }, "Token": { + "id": "Token", "description": "Represents the smallest syntactic building block of the text.", "type": "object", "properties": { + "partOfSpeech": { + "$ref": "PartOfSpeech", + "description": "Parts of speech tag for this token." + }, "dependencyEdge": { - "description": "Dependency tree parse for this token.", - "$ref": "DependencyEdge" + "$ref": "DependencyEdge", + "description": "Dependency tree parse for this token." }, "text": { - "$ref": "TextSpan", - "description": "The token text." + "description": "The token text.", + "$ref": "TextSpan" }, "lemma": { "description": "[Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.", "type": "string" - }, - "partOfSpeech": { - "$ref": "PartOfSpeech", - "description": "Parts of speech tag for this token." } - }, - "id": "Token" + } }, "TextSpan": { + "description": "Represents an output piece of text.", + "type": "object", "properties": { "content": { "description": "The content of the output text.", @@ -871,14 +741,13 @@ "type": "integer" } }, - "id": "TextSpan", - "description": "Represents an output piece of text.", - "type": "object" + "id": "TextSpan" }, "Status": { "type": "object", "properties": { "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "items": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -886,8 +755,7 @@ }, "type": "object" }, - "type": "array", - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." + "type": "array" }, "code": { "format": "int32", @@ -901,13 +769,154 @@ }, "id": "Status", "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "Features": { + "description": "All available features for sentiment, syntax, and semantic analysis.\nSetting each one to true will enable that specific analysis for the input.", + "type": "object", + "properties": { + "extractEntities": { + "type": "boolean", + "description": "Extract entities." + }, + "extractDocumentSentiment": { + "description": "Extract document-level sentiment.", + "type": "boolean" + }, + "extractSyntax": { + "description": "Extract syntax information.", + "type": "boolean" + } + }, + "id": "Features" + }, + "EntityMention": { + "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported.", + "type": "object", + "properties": { + "type": { + "enumDescriptions": [ + "Unknown", + "Proper name", + "Common noun (or noun compound)" + ], + "enum": [ + "TYPE_UNKNOWN", + "PROPER", + "COMMON" + ], + "description": "The type of the entity mention.", + "type": "string" + }, + "text": { + "description": "The mention text.", + "$ref": "TextSpan" + } + }, + "id": "EntityMention" + }, + "Document": { + "description": "################################################################ #\n\nRepresents the input to API methods.", + "type": "object", + "properties": { + "language": { + "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned.", + "type": "string" + }, + "content": { + "description": "The content of the input in string format.", + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "PLAIN_TEXT", + "HTML" + ], + "description": "Required. If the type is not set or is `TYPE_UNSPECIFIED`,\nreturns an `INVALID_ARGUMENT` error.", + "type": "string", + "enumDescriptions": [ + "The content type is not specified.", + "Plain text", + "HTML" + ] + }, + "gcsContentUri": { + "description": "The Google Cloud Storage URI where the file content is located.\nThis URI must be of the form: gs://bucket_name/object_name. For more\ndetails, see https://cloud.google.com/storage/docs/reference-uris.\nNOTE: Cloud Storage object versioning is not supported.", + "type": "string" + } + }, + "id": "Document" + }, + "Sentence": { + "description": "Represents a sentence in the input document.", + "type": "object", + "properties": { + "text": { + "$ref": "TextSpan", + "description": "The sentence text." + }, + "sentiment": { + "$ref": "Sentiment", + "description": "For calls to AnalyzeSentiment or if\nAnnotateTextRequest.Features.extract_document_sentiment is set to\ntrue, this field will contain the sentiment for the sentence." + } + }, + "id": "Sentence" + }, + "Sentiment": { + "id": "Sentiment", + "description": "Represents the feeling associated with the entire text or entities in\nthe text.", + "type": "object", + "properties": { + "score": { + "format": "float", + "description": "Sentiment score between -1.0 (negative sentiment) and 1.0\n(positive sentiment).", + "type": "number" + }, + "polarity": { + "type": "number", + "format": "float", + "description": "DEPRECATED FIELD - This field is being deprecated in\nfavor of score. Please refer to our documentation at\nhttps://cloud.google.com/natural-language/docs for more information." + }, + "magnitude": { + "type": "number", + "format": "float", + "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative)." + } + } + }, + "AnalyzeEntitiesRequest": { + "type": "object", + "properties": { + "document": { + "$ref": "Document", + "description": "Input document." + }, + "encodingType": { + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ], + "description": "The encoding type used by the API to calculate offsets.", + "type": "string" + } + }, + "id": "AnalyzeEntitiesRequest", + "description": "The entity analysis request message." } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "canonicalName": "Cloud Natural Language", "auth": { "oauth2": { @@ -931,25 +940,31 @@ "documents": { "methods": { "analyzeSentiment": { - "request": { - "$ref": "AnalyzeSentimentRequest" - }, - "description": "Analyzes the sentiment of the provided text.", - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "AnalyzeSentimentResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-language", "https://www.googleapis.com/auth/cloud-platform" ], "parameters": {}, "flatPath": "v1beta1/documents:analyzeSentiment", + "id": "language.documents.analyzeSentiment", "path": "v1beta1/documents:analyzeSentiment", - "id": "language.documents.analyzeSentiment" + "request": { + "$ref": "AnalyzeSentimentRequest" + }, + "description": "Analyzes the sentiment of the provided text." }, "annotateText": { + "id": "language.documents.annotateText", + "path": "v1beta1/documents:annotateText", + "request": { + "$ref": "AnnotateTextRequest" + }, + "description": "A convenience method that provides all the features that analyzeSentiment,\nanalyzeEntities, and analyzeSyntax provide in one call.", "response": { "$ref": "AnnotateTextResponse" }, @@ -960,60 +975,54 @@ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": {}, - "flatPath": "v1beta1/documents:annotateText", - "id": "language.documents.annotateText", - "path": "v1beta1/documents:annotateText", - "request": { - "$ref": "AnnotateTextRequest" - }, - "description": "A convenience method that provides all the features that analyzeSentiment,\nanalyzeEntities, and analyzeSyntax provide in one call." + "flatPath": "v1beta1/documents:annotateText" }, "analyzeEntities": { - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "AnalyzeEntitiesResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-language", "https://www.googleapis.com/auth/cloud-platform" ], "parameters": {}, "flatPath": "v1beta1/documents:analyzeEntities", - "path": "v1beta1/documents:analyzeEntities", "id": "language.documents.analyzeEntities", + "path": "v1beta1/documents:analyzeEntities", "request": { "$ref": "AnalyzeEntitiesRequest" }, "description": "Finds named entities (currently proper names and common nouns) in the text\nalong with entity types, salience, mentions for each entity, and\nother properties." }, "analyzeSyntax": { - "path": "v1beta1/documents:analyzeSyntax", - "id": "language.documents.analyzeSyntax", - "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties.", - "request": { - "$ref": "AnalyzeSyntaxRequest" - }, "httpMethod": "POST", "parameterOrder": [], "response": { "$ref": "AnalyzeSyntaxResponse" }, - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-language", "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1beta1/documents:analyzeSyntax" + "parameters": {}, + "flatPath": "v1beta1/documents:analyzeSyntax", + "path": "v1beta1/documents:analyzeSyntax", + "id": "language.documents.analyzeSyntax", + "request": { + "$ref": "AnalyzeSyntaxRequest" + }, + "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties." } } } }, "parameters": { "upload_protocol": { + "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "prettyPrint": { "location": "query", @@ -1021,41 +1030,35 @@ "default": "true", "type": "boolean" }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, "fields": { "location": "query", "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, - "uploadType": { + "callback": { "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "description": "JSONP", "type": "string" }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, "$.xgafv": { - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], "location": "query", "enum": [ "1", "2" ], - "description": "V1 error format." + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] }, "alt": { - "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", "description": "Data format for response.", "default": "json", "enum": [ @@ -1063,47 +1066,44 @@ "media", "proto" ], - "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.", "type": "string", + "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" }, "access_token": { - "description": "OAuth access token.", "type": "string", - "location": "query" + "location": "query", + "description": "OAuth access token." + }, + "key": { + "location": "query", + "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.", + "type": "string" }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { - "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query" }, "oauth_token": { - "description": "OAuth 2.0 token for the current user.", "type": "string", - "location": "query" + "location": "query", + "description": "OAuth 2.0 token for the current user." }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" } - }, - "version": "v1beta1", - "baseUrl": "https://language.googleapis.com/", - "servicePath": "", - "description": "Provides natural language understanding technologies to developers. Examples include sentiment analysis, entity recognition, entity sentiment analysis, and text annotations.", - "kind": "discovery#restDescription", - "basePath": "", - "id": "language:v1beta1", - "documentationLink": "https://cloud.google.com/natural-language/", - "revision": "20170926" + } } diff --git a/vendor/google.golang.org/api/language/v1beta2/language-api.json b/vendor/google.golang.org/api/language/v1beta2/language-api.json index 3942c1a20..2c1905628 100644 --- a/vendor/google.golang.org/api/language/v1beta2/language-api.json +++ b/vendor/google.golang.org/api/language/v1beta2/language-api.json @@ -1,215 +1,4 @@ { - "batchPath": "batch", - "title": "Google Cloud Natural Language API", - "ownerName": "Google", - "resources": { - "documents": { - "methods": { - "analyzeSyntax": { - "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties.", - "request": { - "$ref": "AnalyzeSyntaxRequest" - }, - "response": { - "$ref": "AnalyzeSyntaxResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/documents:analyzeSyntax", - "id": "language.documents.analyzeSyntax", - "path": "v1beta2/documents:analyzeSyntax" - }, - "annotateText": { - "flatPath": "v1beta2/documents:annotateText", - "id": "language.documents.annotateText", - "path": "v1beta2/documents:annotateText", - "request": { - "$ref": "AnnotateTextRequest" - }, - "description": "A convenience method that provides all syntax, sentiment, entity, and\nclassification features in one call.", - "response": { - "$ref": "AnnotateTextResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {} - }, - "classifyText": { - "response": { - "$ref": "ClassifyTextResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/documents:classifyText", - "id": "language.documents.classifyText", - "path": "v1beta2/documents:classifyText", - "description": "Classifies a document into categories.", - "request": { - "$ref": "ClassifyTextRequest" - } - }, - "analyzeSentiment": { - "response": { - "$ref": "AnalyzeSentimentResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/documents:analyzeSentiment", - "id": "language.documents.analyzeSentiment", - "path": "v1beta2/documents:analyzeSentiment", - "description": "Analyzes the sentiment of the provided text.", - "request": { - "$ref": "AnalyzeSentimentRequest" - } - }, - "analyzeEntitySentiment": { - "response": { - "$ref": "AnalyzeEntitySentimentResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v1beta2/documents:analyzeEntitySentiment", - "id": "language.documents.analyzeEntitySentiment", - "path": "v1beta2/documents:analyzeEntitySentiment", - "request": { - "$ref": "AnalyzeEntitySentimentRequest" - }, - "description": "Finds entities, similar to AnalyzeEntities in the text and analyzes\nsentiment associated with each entity and its mentions." - }, - "analyzeEntities": { - "response": { - "$ref": "AnalyzeEntitiesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-language", - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta2/documents:analyzeEntities", - "id": "language.documents.analyzeEntities", - "path": "v1beta2/documents:analyzeEntities", - "description": "Finds named entities (currently proper names and common nouns) in the text\nalong with entity types, salience, mentions for each entity, and\nother properties.", - "request": { - "$ref": "AnalyzeEntitiesRequest" - } - } - } - } - }, - "parameters": { - "alt": { - "location": "query", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ] - }, - "access_token": { - "type": "string", - "location": "query", - "description": "OAuth access token." - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "quotaUser": { - "type": "string", - "location": "query", - "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." - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "type": "string", - "location": "query", - "description": "Selector specifying which fields to include in a partial response." - }, - "callback": { - "type": "string", - "location": "query", - "description": "JSONP" - }, - "$.xgafv": { - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format." - } - }, "version": "v1beta2", "baseUrl": "https://language.googleapis.com/", "kind": "discovery#restDescription", @@ -217,432 +6,29 @@ "servicePath": "", "basePath": "", "id": "language:v1beta2", - "revision": "20170926", "documentationLink": "https://cloud.google.com/natural-language/", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { - "AnalyzeEntitySentimentRequest": { - "description": "The entity-level sentiment analysis request message.", - "type": "object", - "properties": { - "encodingType": { - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], - "description": "The encoding type used by the API to calculate offsets.", - "type": "string", - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ] - }, - "document": { - "$ref": "Document", - "description": "Input document." - } - }, - "id": "AnalyzeEntitySentimentRequest" - }, - "PartOfSpeech": { - "type": "object", - "properties": { - "aspect": { - "enum": [ - "ASPECT_UNKNOWN", - "PERFECTIVE", - "IMPERFECTIVE", - "PROGRESSIVE" - ], - "description": "The grammatical aspect.", - "type": "string", - "enumDescriptions": [ - "Aspect is not applicable in the analyzed language or is not predicted.", - "Perfective", - "Imperfective", - "Progressive" - ] - }, - "mood": { - "enum": [ - "MOOD_UNKNOWN", - "CONDITIONAL_MOOD", - "IMPERATIVE", - "INDICATIVE", - "INTERROGATIVE", - "JUSSIVE", - "SUBJUNCTIVE" - ], - "description": "The grammatical mood.", - "type": "string", - "enumDescriptions": [ - "Mood is not applicable in the analyzed language or is not predicted.", - "Conditional", - "Imperative", - "Indicative", - "Interrogative", - "Jussive", - "Subjunctive" - ] - }, - "tag": { - "type": "string", - "enumDescriptions": [ - "Unknown", - "Adjective", - "Adposition (preposition and postposition)", - "Adverb", - "Conjunction", - "Determiner", - "Noun (common and proper)", - "Cardinal number", - "Pronoun", - "Particle or other function word", - "Punctuation", - "Verb (all tenses and modes)", - "Other: foreign words, typos, abbreviations", - "Affix" - ], - "enum": [ - "UNKNOWN", - "ADJ", - "ADP", - "ADV", - "CONJ", - "DET", - "NOUN", - "NUM", - "PRON", - "PRT", - "PUNCT", - "VERB", - "X", - "AFFIX" - ], - "description": "The part of speech tag." - }, - "gender": { - "enum": [ - "GENDER_UNKNOWN", - "FEMININE", - "MASCULINE", - "NEUTER" - ], - "description": "The grammatical gender.", - "type": "string", - "enumDescriptions": [ - "Gender is not applicable in the analyzed language or is not predicted.", - "Feminine", - "Masculine", - "Neuter" - ] - }, - "person": { - "enum": [ - "PERSON_UNKNOWN", - "FIRST", - "SECOND", - "THIRD", - "REFLEXIVE_PERSON" - ], - "description": "The grammatical person.", - "type": "string", - "enumDescriptions": [ - "Person is not applicable in the analyzed language or is not predicted.", - "First", - "Second", - "Third", - "Reflexive" - ] - }, - "proper": { - "type": "string", - "enumDescriptions": [ - "Proper is not applicable in the analyzed language or is not predicted.", - "Proper", - "Not proper" - ], - "enum": [ - "PROPER_UNKNOWN", - "PROPER", - "NOT_PROPER" - ], - "description": "The grammatical properness." - }, - "case": { - "type": "string", - "enumDescriptions": [ - "Case is not applicable in the analyzed language or is not predicted.", - "Accusative", - "Adverbial", - "Complementive", - "Dative", - "Genitive", - "Instrumental", - "Locative", - "Nominative", - "Oblique", - "Partitive", - "Prepositional", - "Reflexive", - "Relative", - "Vocative" - ], - "enum": [ - "CASE_UNKNOWN", - "ACCUSATIVE", - "ADVERBIAL", - "COMPLEMENTIVE", - "DATIVE", - "GENITIVE", - "INSTRUMENTAL", - "LOCATIVE", - "NOMINATIVE", - "OBLIQUE", - "PARTITIVE", - "PREPOSITIONAL", - "REFLEXIVE_CASE", - "RELATIVE_CASE", - "VOCATIVE" - ], - "description": "The grammatical case." - }, - "tense": { - "type": "string", - "enumDescriptions": [ - "Tense is not applicable in the analyzed language or is not predicted.", - "Conditional", - "Future", - "Past", - "Present", - "Imperfect", - "Pluperfect" - ], - "enum": [ - "TENSE_UNKNOWN", - "CONDITIONAL_TENSE", - "FUTURE", - "PAST", - "PRESENT", - "IMPERFECT", - "PLUPERFECT" - ], - "description": "The grammatical tense." - }, - "reciprocity": { - "type": "string", - "enumDescriptions": [ - "Reciprocity is not applicable in the analyzed language or is not\npredicted.", - "Reciprocal", - "Non-reciprocal" - ], - "enum": [ - "RECIPROCITY_UNKNOWN", - "RECIPROCAL", - "NON_RECIPROCAL" - ], - "description": "The grammatical reciprocity." - }, - "form": { - "enum": [ - "FORM_UNKNOWN", - "ADNOMIAL", - "AUXILIARY", - "COMPLEMENTIZER", - "FINAL_ENDING", - "GERUND", - "REALIS", - "IRREALIS", - "SHORT", - "LONG", - "ORDER", - "SPECIFIC" - ], - "description": "The grammatical form.", - "type": "string", - "enumDescriptions": [ - "Form is not applicable in the analyzed language or is not predicted.", - "Adnomial", - "Auxiliary", - "Complementizer", - "Final ending", - "Gerund", - "Realis", - "Irrealis", - "Short form", - "Long form", - "Order form", - "Specific form" - ] - }, - "number": { - "type": "string", - "enumDescriptions": [ - "Number is not applicable in the analyzed language or is not predicted.", - "Singular", - "Plural", - "Dual" - ], - "enum": [ - "NUMBER_UNKNOWN", - "SINGULAR", - "PLURAL", - "DUAL" - ], - "description": "The grammatical number." - }, - "voice": { - "type": "string", - "enumDescriptions": [ - "Voice is not applicable in the analyzed language or is not predicted.", - "Active", - "Causative", - "Passive" - ], - "enum": [ - "VOICE_UNKNOWN", - "ACTIVE", - "CAUSATIVE", - "PASSIVE" - ], - "description": "The grammatical voice." - } - }, - "id": "PartOfSpeech", - "description": "Represents part of speech information for a token." - }, - "ClassificationCategory": { - "description": "Represents a category returned from the text classifier.", - "type": "object", - "properties": { - "confidence": { - "type": "number", - "format": "float", - "description": "The classifier's confidence of the category. Number represents how certain\nthe classifier is that this category represents the given text." - }, - "name": { - "type": "string", - "description": "The name of the category representing the document." - } - }, - "id": "ClassificationCategory" - }, - "AnalyzeSyntaxRequest": { - "description": "The syntax analysis request message.", - "type": "object", - "properties": { - "encodingType": { - "type": "string", - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ], - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], - "description": "The encoding type used by the API to calculate offsets." - }, - "document": { - "$ref": "Document", - "description": "Input document." - } - }, - "id": "AnalyzeSyntaxRequest" - }, - "AnalyzeEntitiesResponse": { - "description": "The entity analysis response message.", - "type": "object", - "properties": { - "language": { - "type": "string", - "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details." - }, - "entities": { - "items": { - "$ref": "Entity" - }, - "type": "array", - "description": "The recognized entities in the input document." - } - }, - "id": "AnalyzeEntitiesResponse" - }, - "Entity": { - "description": "Represents a phrase in the text that is a known entity, such as\na person, an organization, or location. The API associates information, such\nas salience and mentions, with entities.", - "type": "object", - "properties": { - "mentions": { - "items": { - "$ref": "EntityMention" - }, - "type": "array", - "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions." - }, - "name": { - "description": "The representative name for the entity.", - "type": "string" - }, - "type": { - "type": "string", - "enumDescriptions": [ - "Unknown", - "Person", - "Location", - "Organization", - "Event", - "Work of art", - "Consumer goods", - "Other types" - ], - "enum": [ - "UNKNOWN", - "PERSON", - "LOCATION", - "ORGANIZATION", - "EVENT", - "WORK_OF_ART", - "CONSUMER_GOOD", - "OTHER" - ], - "description": "The entity type." - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively.", - "type": "object" - }, - "salience": { - "type": "number", - "format": "float", - "description": "The salience score associated with the entity in the [0, 1.0] range.\n\nThe salience score for an entity provides information about the\nimportance or centrality of that entity to the entire document text.\nScores closer to 0 are less salient, while scores closer to 1.0 are highly\nsalient." - }, - "sentiment": { - "$ref": "Sentiment", - "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the aggregate sentiment expressed for this\nentity in the provided document." - } - }, - "id": "Entity" - }, "AnnotateTextRequest": { "type": "object", "properties": { + "document": { + "description": "Input document.", + "$ref": "Document" + }, "features": { - "$ref": "Features", - "description": "The enabled features." + "description": "The enabled features.", + "$ref": "Features" }, "encodingType": { + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], "enum": [ "NONE", "UTF8", @@ -650,17 +36,7 @@ "UTF32" ], "description": "The encoding type used by the API to calculate offsets.", - "type": "string", - "enumDescriptions": [ - "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", - "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." - ] - }, - "document": { - "$ref": "Document", - "description": "Input document." + "type": "string" } }, "id": "AnnotateTextRequest", @@ -671,12 +47,6 @@ "type": "object", "properties": { "encodingType": { - "enum": [ - "NONE", - "UTF8", - "UTF16", - "UTF32" - ], "description": "The encoding type used by the API to calculate sentence offsets for the\nsentence sentiment.", "type": "string", "enumDescriptions": [ @@ -684,6 +54,12 @@ "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" ] }, "document": { @@ -694,36 +70,49 @@ "id": "AnalyzeSentimentRequest" }, "Status": { + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, "message": { "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" }, "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", "items": { "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" }, "type": "object" - }, - "type": "array" + } + }, + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" } - }, - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + } }, "Features": { + "id": "Features", "description": "All available features for sentiment, syntax, and semantic analysis.\nSetting each one to true will enable that specific analysis for the input.", "type": "object", "properties": { + "extractSyntax": { + "description": "Extract syntax information.", + "type": "boolean" + }, + "extractDocumentSentiment": { + "description": "Extract document-level sentiment.", + "type": "boolean" + }, + "extractEntitySentiment": { + "description": "Extract entities and their associated sentiment.", + "type": "boolean" + }, "extractEntities": { "description": "Extract entities.", "type": "boolean" @@ -731,54 +120,41 @@ "classifyText": { "description": "Classify the full document into categories.", "type": "boolean" - }, - "extractEntitySentiment": { - "description": "Extract entities and their associated sentiment.", - "type": "boolean" - }, - "extractDocumentSentiment": { - "type": "boolean", - "description": "Extract document-level sentiment." - }, - "extractSyntax": { - "description": "Extract syntax information.", - "type": "boolean" } - }, - "id": "Features" + } }, "Document": { + "description": "################################################################ #\n\nRepresents the input to API methods.", "type": "object", "properties": { - "content": { - "description": "The content of the input in string format.", - "type": "string" - }, "type": { - "type": "string", - "enumDescriptions": [ - "The content type is not specified.", - "Plain text", - "HTML" - ], "enum": [ "TYPE_UNSPECIFIED", "PLAIN_TEXT", "HTML" ], - "description": "Required. If the type is not set or is `TYPE_UNSPECIFIED`,\nreturns an `INVALID_ARGUMENT` error." + "description": "Required. If the type is not set or is `TYPE_UNSPECIFIED`,\nreturns an `INVALID_ARGUMENT` error.", + "type": "string", + "enumDescriptions": [ + "The content type is not specified.", + "Plain text", + "HTML" + ] + }, + "content": { + "description": "The content of the input in string format.", + "type": "string" }, "gcsContentUri": { "description": "The Google Cloud Storage URI where the file content is located.\nThis URI must be of the form: gs://bucket_name/object_name. For more\ndetails, see https://cloud.google.com/storage/docs/reference-uris.\nNOTE: Cloud Storage object versioning is not supported.", "type": "string" }, "language": { - "type": "string", - "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned." + "description": "The language of the document (if not specified, the language is\nautomatically detected). Both ISO and BCP-47 language codes are\naccepted.\u003cbr\u003e\n[Language Support](/natural-language/docs/languages)\nlists currently supported languages for each API method.\nIf the language (either specified by the caller or automatically detected)\nis not supported by the called API method, an `INVALID_ARGUMENT` error\nis returned.", + "type": "string" } }, - "id": "Document", - "description": "################################################################ #\n\nRepresents the input to API methods." + "id": "Document" }, "AnalyzeEntitiesRequest": { "type": "object", @@ -808,15 +184,15 @@ "description": "The entity analysis request message." }, "ClassifyTextRequest": { + "description": "The document classification request message.", "type": "object", "properties": { "document": { - "$ref": "Document", - "description": "Input document." + "description": "Input document.", + "$ref": "Document" } }, - "id": "ClassifyTextRequest", - "description": "The document classification request message." + "id": "ClassifyTextRequest" }, "AnalyzeEntitySentimentResponse": { "description": "The entity-level sentiment analysis response message.", @@ -827,16 +203,17 @@ "type": "string" }, "entities": { + "description": "The recognized entities in the input document with associated sentiments.", + "type": "array", "items": { "$ref": "Entity" - }, - "type": "array", - "description": "The recognized entities in the input document with associated sentiments." + } } }, "id": "AnalyzeEntitySentimentResponse" }, "AnalyzeSentimentResponse": { + "description": "The sentiment analysis response message.", "type": "object", "properties": { "documentSentiment": { @@ -849,16 +226,16 @@ }, "sentences": { "description": "The sentiment for all the sentences in the document.", + "type": "array", "items": { "$ref": "Sentence" - }, - "type": "array" + } } }, - "id": "AnalyzeSentimentResponse", - "description": "The sentiment analysis response message." + "id": "AnalyzeSentimentResponse" }, "AnalyzeSyntaxResponse": { + "description": "The syntax analysis response message.", "type": "object", "properties": { "language": { @@ -867,160 +244,72 @@ }, "sentences": { "description": "Sentences in the input document.", + "type": "array", "items": { "$ref": "Sentence" - }, - "type": "array" + } }, "tokens": { + "description": "Tokens, along with their syntactic information, in the input document.", + "type": "array", "items": { "$ref": "Token" - }, - "type": "array", - "description": "Tokens, along with their syntactic information, in the input document." + } } }, - "id": "AnalyzeSyntaxResponse", - "description": "The syntax analysis response message." + "id": "AnalyzeSyntaxResponse" }, "AnnotateTextResponse": { + "description": "The text annotations response message.", "type": "object", "properties": { + "entities": { + "description": "Entities, along with their semantic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_entities.", + "type": "array", + "items": { + "$ref": "Entity" + } + }, + "sentences": { + "description": "Sentences in the input document. Populated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", + "type": "array", + "items": { + "$ref": "Sentence" + } + }, "tokens": { + "description": "Tokens, along with their syntactic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", + "type": "array", "items": { "$ref": "Token" - }, - "type": "array", - "description": "Tokens, along with their syntactic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_syntax." + } }, "categories": { "description": "Categories identified in the input document.", + "type": "array", "items": { "$ref": "ClassificationCategory" - }, - "type": "array" + } }, "documentSentiment": { - "$ref": "Sentiment", - "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment." + "description": "The overall sentiment for the document. Populated if the user enables\nAnnotateTextRequest.Features.extract_document_sentiment.", + "$ref": "Sentiment" }, "language": { "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", "type": "string" - }, - "entities": { - "items": { - "$ref": "Entity" - }, - "type": "array", - "description": "Entities, along with their semantic information, in the input document.\nPopulated if the user enables\nAnnotateTextRequest.Features.extract_entities." - }, - "sentences": { - "description": "Sentences in the input document. Populated if the user enables\nAnnotateTextRequest.Features.extract_syntax.", - "items": { - "$ref": "Sentence" - }, - "type": "array" } }, - "id": "AnnotateTextResponse", - "description": "The text annotations response message." + "id": "AnnotateTextResponse" }, "DependencyEdge": { - "type": "object", "properties": { "headTokenIndex": { - "format": "int32", "description": "Represents the head of this token in the dependency tree.\nThis is the index of the token which has an arc going to this token.\nThe index is the position of the token in the array of tokens returned\nby the API method. If this token is a root token, then the\n`head_token_index` is its own index.", + "format": "int32", "type": "integer" }, "label": { - "enum": [ - "UNKNOWN", - "ABBREV", - "ACOMP", - "ADVCL", - "ADVMOD", - "AMOD", - "APPOS", - "ATTR", - "AUX", - "AUXPASS", - "CC", - "CCOMP", - "CONJ", - "CSUBJ", - "CSUBJPASS", - "DEP", - "DET", - "DISCOURSE", - "DOBJ", - "EXPL", - "GOESWITH", - "IOBJ", - "MARK", - "MWE", - "MWV", - "NEG", - "NN", - "NPADVMOD", - "NSUBJ", - "NSUBJPASS", - "NUM", - "NUMBER", - "P", - "PARATAXIS", - "PARTMOD", - "PCOMP", - "POBJ", - "POSS", - "POSTNEG", - "PRECOMP", - "PRECONJ", - "PREDET", - "PREF", - "PREP", - "PRONL", - "PRT", - "PS", - "QUANTMOD", - "RCMOD", - "RCMODREL", - "RDROP", - "REF", - "REMNANT", - "REPARANDUM", - "ROOT", - "SNUM", - "SUFF", - "TMOD", - "TOPIC", - "VMOD", - "VOCATIVE", - "XCOMP", - "SUFFIX", - "TITLE", - "ADVPHMOD", - "AUXCAUS", - "AUXVV", - "DTMOD", - "FOREIGN", - "KW", - "LIST", - "NOMC", - "NOMCSUBJ", - "NOMCSUBJPASS", - "NUMC", - "COP", - "DISLOCATED", - "ASP", - "GMOD", - "GOBJ", - "INFMOD", - "MES", - "NCOMP" - ], - "description": "The parse label for the token.", "type": "string", "enumDescriptions": [ "Unknown", @@ -1106,54 +395,146 @@ "Infinitival modifier", "Measure", "Nominal complement of a noun" - ] + ], + "enum": [ + "UNKNOWN", + "ABBREV", + "ACOMP", + "ADVCL", + "ADVMOD", + "AMOD", + "APPOS", + "ATTR", + "AUX", + "AUXPASS", + "CC", + "CCOMP", + "CONJ", + "CSUBJ", + "CSUBJPASS", + "DEP", + "DET", + "DISCOURSE", + "DOBJ", + "EXPL", + "GOESWITH", + "IOBJ", + "MARK", + "MWE", + "MWV", + "NEG", + "NN", + "NPADVMOD", + "NSUBJ", + "NSUBJPASS", + "NUM", + "NUMBER", + "P", + "PARATAXIS", + "PARTMOD", + "PCOMP", + "POBJ", + "POSS", + "POSTNEG", + "PRECOMP", + "PRECONJ", + "PREDET", + "PREF", + "PREP", + "PRONL", + "PRT", + "PS", + "QUANTMOD", + "RCMOD", + "RCMODREL", + "RDROP", + "REF", + "REMNANT", + "REPARANDUM", + "ROOT", + "SNUM", + "SUFF", + "TMOD", + "TOPIC", + "VMOD", + "VOCATIVE", + "XCOMP", + "SUFFIX", + "TITLE", + "ADVPHMOD", + "AUXCAUS", + "AUXVV", + "DTMOD", + "FOREIGN", + "KW", + "LIST", + "NOMC", + "NOMCSUBJ", + "NOMCSUBJPASS", + "NUMC", + "COP", + "DISLOCATED", + "ASP", + "GMOD", + "GOBJ", + "INFMOD", + "MES", + "NCOMP" + ], + "description": "The parse label for the token." } }, "id": "DependencyEdge", - "description": "Represents dependency parse tree information for a token." + "description": "Represents dependency parse tree information for a token.", + "type": "object" + }, + "TextSpan": { + "type": "object", + "properties": { + "beginOffset": { + "type": "integer", + "description": "The API calculates the beginning offset of the content in the original\ndocument according to the EncodingType specified in the API request.", + "format": "int32" + }, + "content": { + "description": "The content of the output text.", + "type": "string" + } + }, + "id": "TextSpan", + "description": "Represents an output piece of text." }, "Token": { "description": "Represents the smallest syntactic building block of the text.", "type": "object", "properties": { - "dependencyEdge": { - "$ref": "DependencyEdge", - "description": "Dependency tree parse for this token." - }, "text": { "$ref": "TextSpan", "description": "The token text." }, + "dependencyEdge": { + "description": "Dependency tree parse for this token.", + "$ref": "DependencyEdge" + }, "lemma": { - "type": "string", - "description": "[Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token." + "description": "[Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.", + "type": "string" }, "partOfSpeech": { - "$ref": "PartOfSpeech", - "description": "Parts of speech tag for this token." + "description": "Parts of speech tag for this token.", + "$ref": "PartOfSpeech" } }, "id": "Token" }, - "TextSpan": { - "description": "Represents an output piece of text.", - "type": "object", - "properties": { - "content": { - "description": "The content of the output text.", - "type": "string" - }, - "beginOffset": { - "format": "int32", - "description": "The API calculates the beginning offset of the content in the original\ndocument according to the EncodingType specified in the API request.", - "type": "integer" - } - }, - "id": "TextSpan" - }, "EntityMention": { + "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported.", "type": "object", "properties": { + "text": { + "$ref": "TextSpan", + "description": "The mention text." + }, "type": { "type": "string", "enumDescriptions": [ @@ -1168,31 +549,26 @@ ], "description": "The type of the entity mention." }, - "text": { - "$ref": "TextSpan", - "description": "The mention text." - }, "sentiment": { "$ref": "Sentiment", "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the sentiment expressed for this mention of\nthe entity in the provided document." } }, - "id": "EntityMention", - "description": "Represents a mention for an entity in the text. Currently, proper noun\nmentions are supported." + "id": "EntityMention" }, "ClassifyTextResponse": { + "id": "ClassifyTextResponse", + "description": "The document classification response message.", "type": "object", "properties": { "categories": { "description": "Categories representing the input document.", + "type": "array", "items": { "$ref": "ClassificationCategory" - }, - "type": "array" + } } - }, - "id": "ClassifyTextResponse", - "description": "The document classification response message." + } }, "Sentence": { "description": "Represents a sentence in the input document.", @@ -1214,24 +590,437 @@ "type": "object", "properties": { "score": { - "format": "float", "description": "Sentiment score between -1.0 (negative sentiment) and 1.0\n(positive sentiment).", + "format": "float", "type": "number" }, "magnitude": { - "type": "number", + "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative).", "format": "float", - "description": "A non-negative number in the [0, +inf) range, which represents\nthe absolute magnitude of sentiment regardless of score (positive or\nnegative)." + "type": "number" } }, "id": "Sentiment" + }, + "AnalyzeEntitySentimentRequest": { + "description": "The entity-level sentiment analysis request message.", + "type": "object", + "properties": { + "encodingType": { + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ], + "description": "The encoding type used by the API to calculate offsets.", + "type": "string", + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ] + }, + "document": { + "description": "Input document.", + "$ref": "Document" + } + }, + "id": "AnalyzeEntitySentimentRequest" + }, + "ClassificationCategory": { + "properties": { + "confidence": { + "type": "number", + "description": "The classifier's confidence of the category. Number represents how certain\nthe classifier is that this category represents the given text.", + "format": "float" + }, + "name": { + "type": "string", + "description": "The name of the category representing the document." + } + }, + "id": "ClassificationCategory", + "description": "Represents a category returned from the text classifier.", + "type": "object" + }, + "PartOfSpeech": { + "description": "Represents part of speech information for a token.", + "type": "object", + "properties": { + "tag": { + "description": "The part of speech tag.", + "type": "string", + "enumDescriptions": [ + "Unknown", + "Adjective", + "Adposition (preposition and postposition)", + "Adverb", + "Conjunction", + "Determiner", + "Noun (common and proper)", + "Cardinal number", + "Pronoun", + "Particle or other function word", + "Punctuation", + "Verb (all tenses and modes)", + "Other: foreign words, typos, abbreviations", + "Affix" + ], + "enum": [ + "UNKNOWN", + "ADJ", + "ADP", + "ADV", + "CONJ", + "DET", + "NOUN", + "NUM", + "PRON", + "PRT", + "PUNCT", + "VERB", + "X", + "AFFIX" + ] + }, + "gender": { + "description": "The grammatical gender.", + "type": "string", + "enumDescriptions": [ + "Gender is not applicable in the analyzed language or is not predicted.", + "Feminine", + "Masculine", + "Neuter" + ], + "enum": [ + "GENDER_UNKNOWN", + "FEMININE", + "MASCULINE", + "NEUTER" + ] + }, + "person": { + "enum": [ + "PERSON_UNKNOWN", + "FIRST", + "SECOND", + "THIRD", + "REFLEXIVE_PERSON" + ], + "description": "The grammatical person.", + "type": "string", + "enumDescriptions": [ + "Person is not applicable in the analyzed language or is not predicted.", + "First", + "Second", + "Third", + "Reflexive" + ] + }, + "proper": { + "enum": [ + "PROPER_UNKNOWN", + "PROPER", + "NOT_PROPER" + ], + "description": "The grammatical properness.", + "type": "string", + "enumDescriptions": [ + "Proper is not applicable in the analyzed language or is not predicted.", + "Proper", + "Not proper" + ] + }, + "case": { + "enumDescriptions": [ + "Case is not applicable in the analyzed language or is not predicted.", + "Accusative", + "Adverbial", + "Complementive", + "Dative", + "Genitive", + "Instrumental", + "Locative", + "Nominative", + "Oblique", + "Partitive", + "Prepositional", + "Reflexive", + "Relative", + "Vocative" + ], + "enum": [ + "CASE_UNKNOWN", + "ACCUSATIVE", + "ADVERBIAL", + "COMPLEMENTIVE", + "DATIVE", + "GENITIVE", + "INSTRUMENTAL", + "LOCATIVE", + "NOMINATIVE", + "OBLIQUE", + "PARTITIVE", + "PREPOSITIONAL", + "REFLEXIVE_CASE", + "RELATIVE_CASE", + "VOCATIVE" + ], + "description": "The grammatical case.", + "type": "string" + }, + "tense": { + "description": "The grammatical tense.", + "type": "string", + "enumDescriptions": [ + "Tense is not applicable in the analyzed language or is not predicted.", + "Conditional", + "Future", + "Past", + "Present", + "Imperfect", + "Pluperfect" + ], + "enum": [ + "TENSE_UNKNOWN", + "CONDITIONAL_TENSE", + "FUTURE", + "PAST", + "PRESENT", + "IMPERFECT", + "PLUPERFECT" + ] + }, + "reciprocity": { + "enumDescriptions": [ + "Reciprocity is not applicable in the analyzed language or is not\npredicted.", + "Reciprocal", + "Non-reciprocal" + ], + "enum": [ + "RECIPROCITY_UNKNOWN", + "RECIPROCAL", + "NON_RECIPROCAL" + ], + "description": "The grammatical reciprocity.", + "type": "string" + }, + "form": { + "enum": [ + "FORM_UNKNOWN", + "ADNOMIAL", + "AUXILIARY", + "COMPLEMENTIZER", + "FINAL_ENDING", + "GERUND", + "REALIS", + "IRREALIS", + "SHORT", + "LONG", + "ORDER", + "SPECIFIC" + ], + "description": "The grammatical form.", + "type": "string", + "enumDescriptions": [ + "Form is not applicable in the analyzed language or is not predicted.", + "Adnomial", + "Auxiliary", + "Complementizer", + "Final ending", + "Gerund", + "Realis", + "Irrealis", + "Short form", + "Long form", + "Order form", + "Specific form" + ] + }, + "number": { + "description": "The grammatical number.", + "type": "string", + "enumDescriptions": [ + "Number is not applicable in the analyzed language or is not predicted.", + "Singular", + "Plural", + "Dual" + ], + "enum": [ + "NUMBER_UNKNOWN", + "SINGULAR", + "PLURAL", + "DUAL" + ] + }, + "voice": { + "enumDescriptions": [ + "Voice is not applicable in the analyzed language or is not predicted.", + "Active", + "Causative", + "Passive" + ], + "enum": [ + "VOICE_UNKNOWN", + "ACTIVE", + "CAUSATIVE", + "PASSIVE" + ], + "description": "The grammatical voice.", + "type": "string" + }, + "aspect": { + "enumDescriptions": [ + "Aspect is not applicable in the analyzed language or is not predicted.", + "Perfective", + "Imperfective", + "Progressive" + ], + "enum": [ + "ASPECT_UNKNOWN", + "PERFECTIVE", + "IMPERFECTIVE", + "PROGRESSIVE" + ], + "description": "The grammatical aspect.", + "type": "string" + }, + "mood": { + "type": "string", + "enumDescriptions": [ + "Mood is not applicable in the analyzed language or is not predicted.", + "Conditional", + "Imperative", + "Indicative", + "Interrogative", + "Jussive", + "Subjunctive" + ], + "enum": [ + "MOOD_UNKNOWN", + "CONDITIONAL_MOOD", + "IMPERATIVE", + "INDICATIVE", + "INTERROGATIVE", + "JUSSIVE", + "SUBJUNCTIVE" + ], + "description": "The grammatical mood." + } + }, + "id": "PartOfSpeech" + }, + "AnalyzeSyntaxRequest": { + "description": "The syntax analysis request message.", + "type": "object", + "properties": { + "encodingType": { + "description": "The encoding type used by the API to calculate offsets.", + "type": "string", + "enumDescriptions": [ + "If `EncodingType` is not specified, encoding-dependent information (such as\n`begin_offset`) will be set at `-1`.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-8 encoding of the input. C++ and Go are examples of languages\nthat use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-16 encoding of the input. Java and Javascript are examples of\nlanguages that use this encoding natively.", + "Encoding-dependent information (such as `begin_offset`) is calculated based\non the UTF-32 encoding of the input. Python is an example of a language\nthat uses this encoding natively." + ], + "enum": [ + "NONE", + "UTF8", + "UTF16", + "UTF32" + ] + }, + "document": { + "description": "Input document.", + "$ref": "Document" + } + }, + "id": "AnalyzeSyntaxRequest" + }, + "AnalyzeEntitiesResponse": { + "id": "AnalyzeEntitiesResponse", + "description": "The entity analysis response message.", + "type": "object", + "properties": { + "entities": { + "description": "The recognized entities in the input document.", + "type": "array", + "items": { + "$ref": "Entity" + } + }, + "language": { + "description": "The language of the text, which will be the same as the language specified\nin the request or, if not specified, the automatically-detected language.\nSee Document.language field for more details.", + "type": "string" + } + } + }, + "Entity": { + "description": "Represents a phrase in the text that is a known entity, such as\na person, an organization, or location. The API associates information, such\nas salience and mentions, with entities.", + "type": "object", + "properties": { + "mentions": { + "description": "The mentions of this entity in the input document. The API currently\nsupports proper noun mentions.", + "type": "array", + "items": { + "$ref": "EntityMention" + } + }, + "name": { + "description": "The representative name for the entity.", + "type": "string" + }, + "type": { + "enumDescriptions": [ + "Unknown", + "Person", + "Location", + "Organization", + "Event", + "Work of art", + "Consumer goods", + "Other types" + ], + "enum": [ + "UNKNOWN", + "PERSON", + "LOCATION", + "ORGANIZATION", + "EVENT", + "WORK_OF_ART", + "CONSUMER_GOOD", + "OTHER" + ], + "description": "The entity type.", + "type": "string" + }, + "metadata": { + "description": "Metadata associated with the entity.\n\nCurrently, Wikipedia URLs and Knowledge Graph MIDs are provided, if\navailable. The associated keys are \"wikipedia_url\" and \"mid\", respectively.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "salience": { + "description": "The salience score associated with the entity in the [0, 1.0] range.\n\nThe salience score for an entity provides information about the\nimportance or centrality of that entity to the entire document text.\nScores closer to 0 are less salient, while scores closer to 1.0 are highly\nsalient.", + "format": "float", + "type": "number" + }, + "sentiment": { + "description": "For calls to AnalyzeEntitySentiment or if\nAnnotateTextRequest.Features.extract_entity_sentiment is set to\ntrue, this field will contain the aggregate sentiment expressed for this\nentity in the provided document.", + "$ref": "Sentiment" + } + }, + "id": "Entity" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "canonicalName": "Cloud Natural Language", "auth": { "oauth2": { @@ -1247,5 +1036,216 @@ }, "rootUrl": "https://language.googleapis.com/", "ownerDomain": "google.com", - "name": "language" + "name": "language", + "batchPath": "batch", + "title": "Google Cloud Natural Language API", + "ownerName": "Google", + "resources": { + "documents": { + "methods": { + "classifyText": { + "description": "Classifies a document into categories.", + "request": { + "$ref": "ClassifyTextRequest" + }, + "response": { + "$ref": "ClassifyTextResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1beta2/documents:classifyText", + "path": "v1beta2/documents:classifyText", + "id": "language.documents.classifyText" + }, + "analyzeSentiment": { + "flatPath": "v1beta2/documents:analyzeSentiment", + "id": "language.documents.analyzeSentiment", + "path": "v1beta2/documents:analyzeSentiment", + "request": { + "$ref": "AnalyzeSentimentRequest" + }, + "description": "Analyzes the sentiment of the provided text.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "AnalyzeSentimentResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "analyzeEntitySentiment": { + "request": { + "$ref": "AnalyzeEntitySentimentRequest" + }, + "description": "Finds entities, similar to AnalyzeEntities in the text and analyzes\nsentiment associated with each entity and its mentions.", + "response": { + "$ref": "AnalyzeEntitySentimentResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/documents:analyzeEntitySentiment", + "path": "v1beta2/documents:analyzeEntitySentiment", + "id": "language.documents.analyzeEntitySentiment" + }, + "analyzeEntities": { + "response": { + "$ref": "AnalyzeEntitiesResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/documents:analyzeEntities", + "path": "v1beta2/documents:analyzeEntities", + "id": "language.documents.analyzeEntities", + "request": { + "$ref": "AnalyzeEntitiesRequest" + }, + "description": "Finds named entities (currently proper names and common nouns) in the text\nalong with entity types, salience, mentions for each entity, and\nother properties." + }, + "analyzeSyntax": { + "response": { + "$ref": "AnalyzeSyntaxResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta2/documents:analyzeSyntax", + "path": "v1beta2/documents:analyzeSyntax", + "id": "language.documents.analyzeSyntax", + "request": { + "$ref": "AnalyzeSyntaxRequest" + }, + "description": "Analyzes the syntax of the text and provides sentence boundaries and\ntokenization along with part of speech tags, dependency trees, and other\nproperties." + }, + "annotateText": { + "description": "A convenience method that provides all syntax, sentiment, entity, and\nclassification features in one call.", + "request": { + "$ref": "AnnotateTextRequest" + }, + "response": { + "$ref": "AnnotateTextResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-language", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1beta2/documents:annotateText", + "path": "v1beta2/documents:annotateText", + "id": "language.documents.annotateText" + } + } + } + }, + "parameters": { + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "type": "boolean", + "default": "true", + "location": "query", + "description": "Pretty-print response." + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + } + } } diff --git a/vendor/google.golang.org/api/logging/v2/logging-api.json b/vendor/google.golang.org/api/logging/v2/logging-api.json index 29586870a..710ffa0d5 100644 --- a/vendor/google.golang.org/api/logging/v2/logging-api.json +++ b/vendor/google.golang.org/api/logging/v2/logging-api.json @@ -1,10 +1,498 @@ { + "ownerDomain": "google.com", + "name": "logging", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Stackdriver Logging API", + "ownerName": "Google", "resources": { "folders": { + "resources": { + "exclusions": { + "methods": { + "create": { + "response": { + "$ref": "LogExclusion" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\"." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/exclusions", + "id": "logging.folders.exclusions.create", + "path": "v2/{+parent}/exclusions", + "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", + "request": { + "$ref": "LogExclusion" + } + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of an existing exclusion to delete:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\"." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}", + "id": "logging.folders.exclusions.delete", + "path": "v2/{+name}", + "description": "Deletes an exclusion." + }, + "patch": { + "path": "v2/{+name}", + "id": "logging.folders.exclusions.patch", + "description": "Changes one or more properties of an existing exclusion.", + "request": { + "$ref": "LogExclusion" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "LogExclusion" + }, + "parameters": { + "name": { + "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/exclusions/[^/]+$", + "location": "path" + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}" + }, + "get": { + "httpMethod": "GET", + "response": { + "$ref": "LogExclusion" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "pattern": "^folders/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true + } + }, + "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" + ], + "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}", + "path": "v2/{+name}", + "id": "logging.folders.exclusions.get", + "description": "Gets the description of an exclusion." + }, + "list": { + "description": "Lists all the exclusions in a parent resource.", + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListExclusionsResponse" + }, + "parameters": { + "pageSize": { + "format": "int32", + "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.", + "type": "integer", + "location": "query" + }, + "parent": { + "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path" + }, + "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.", + "type": "string", + "location": "query" + } + }, + "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" + ], + "flatPath": "v2/folders/{foldersId}/exclusions", + "path": "v2/{+parent}/exclusions", + "id": "logging.folders.exclusions.list" + } + } + }, + "sinks": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "sinkName" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "sinkName": { + "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/sinks/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", + "path": "v2/{+sinkName}", + "id": "logging.folders.sinks.delete", + "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted." + }, + "list": { + "path": "v2/{+parent}/sinks", + "id": "logging.folders.sinks.list", + "description": "Lists sinks.", + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListSinksResponse" + }, + "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" + ], + "parameters": { + "pageToken": { + "location": "query", + "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.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2/folders/{foldersId}/sinks" + }, + "create": { + "response": { + "$ref": "LogSink" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "parameters": { + "parent": { + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", + "type": "string", + "required": true + }, + "uniqueWriterIdentity": { + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "type": "boolean", + "location": "query" + } + }, + "flatPath": "v2/folders/{foldersId}/sinks", + "id": "logging.folders.sinks.create", + "path": "v2/{+parent}/sinks", + "request": { + "$ref": "LogSink" + }, + "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink." + }, + "get": { + "id": "logging.folders.sinks.get", + "path": "v2/{+sinkName}", + "description": "Gets a sink.", + "response": { + "$ref": "LogSink" + }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "GET", + "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" + ], + "parameters": { + "sinkName": { + "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/sinks/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}" + }, + "patch": { + "path": "v2/{+sinkName}", + "id": "logging.folders.sinks.patch", + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "request": { + "$ref": "LogSink" + }, + "httpMethod": "PATCH", + "parameterOrder": [ + "sinkName" + ], + "response": { + "$ref": "LogSink" + }, + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", + "type": "string" + }, + "uniqueWriterIdentity": { + "location": "query", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", + "type": "boolean" + }, + "sinkName": { + "pattern": "^folders/[^/]+/sinks/[^/]+$", + "location": "path", + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}" + }, + "update": { + "path": "v2/{+sinkName}", + "id": "logging.folders.sinks.update", + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "request": { + "$ref": "LogSink" + }, + "httpMethod": "PUT", + "parameterOrder": [ + "sinkName" + ], + "response": { + "$ref": "LogSink" + }, + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", + "type": "string", + "location": "query" + }, + "uniqueWriterIdentity": { + "type": "boolean", + "location": "query", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false." + }, + "sinkName": { + "location": "path", + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/sinks/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}" + } + } + }, + "logs": { + "methods": { + "delete": { + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "logName" + ], + "httpMethod": "DELETE", + "parameters": { + "logName": { + "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", + "type": "string", + "required": true, + "pattern": "^folders/[^/]+/logs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/folders/{foldersId}/logs/{logsId}", + "id": "logging.folders.logs.delete", + "path": "v2/{+logName}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListLogsResponse" + }, + "parameters": { + "parent": { + "type": "string", + "required": true, + "pattern": "^folders/[^/]+$", + "location": "path", + "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "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.", + "type": "integer", + "location": "query" + } + }, + "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" + ], + "flatPath": "v2/folders/{foldersId}/logs", + "path": "v2/{+parent}/logs", + "id": "logging.folders.logs.list", + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed." + } + } + } + } + }, + "monitoredResourceDescriptors": { + "methods": { + "list": { + "description": "Lists the descriptors for monitored resource types used by Stackdriver Logging.", + "httpMethod": "GET", + "response": { + "$ref": "ListMonitoredResourceDescriptorsResponse" + }, + "parameterOrder": [], + "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" + ], + "parameters": { + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "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.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/monitoredResourceDescriptors", + "path": "v2/monitoredResourceDescriptors", + "id": "logging.monitoredResourceDescriptors.list" + } + } + }, + "organizations": { "resources": { "sinks": { "methods": { "get": { + "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", + "id": "logging.organizations.sinks.get", + "path": "v2/{+sinkName}", "description": "Gets a sink.", "response": { "$ref": "LogSink" @@ -15,11 +503,11 @@ "httpMethod": "GET", "parameters": { "sinkName": { - "location": "path", "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", "required": true, - "pattern": "^folders/[^/]+/sinks/[^/]+$" + "pattern": "^organizations/[^/]+/sinks/[^/]+$", + "location": "path" } }, "scopes": [ @@ -27,12 +515,11 @@ "https://www.googleapis.com/auth/cloud-platform.read-only", "https://www.googleapis.com/auth/logging.admin", "https://www.googleapis.com/auth/logging.read" - ], - "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", - "id": "logging.folders.sinks.get", - "path": "v2/{+sinkName}" + ] }, "patch": { + "id": "logging.organizations.sinks.patch", + "path": "v2/{+sinkName}", "request": { "$ref": "LogSink" }, @@ -56,30 +543,35 @@ "location": "query" }, "uniqueWriterIdentity": { + "location": "query", "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean", - "location": "query" + "type": "boolean" }, "sinkName": { + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", "required": true, - "pattern": "^folders/[^/]+/sinks/[^/]+$", - "location": "path", - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\"." + "pattern": "^organizations/[^/]+/sinks/[^/]+$", + "location": "path" } }, - "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", - "id": "logging.folders.sinks.patch", - "path": "v2/{+sinkName}" + "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}" }, "update": { - "response": { + "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", + "path": "v2/{+sinkName}", + "id": "logging.organizations.sinks.update", + "request": { "$ref": "LogSink" }, + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "httpMethod": "PUT", "parameterOrder": [ "sinkName" ], - "httpMethod": "PUT", + "response": { + "$ref": "LogSink" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" @@ -97,25 +589,15 @@ "type": "boolean" }, "sinkName": { - "pattern": "^folders/[^/]+/sinks/[^/]+$", "location": "path", "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", - "required": true + "required": true, + "pattern": "^organizations/[^/]+/sinks/[^/]+$" } - }, - "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", - "id": "logging.folders.sinks.update", - "path": "v2/{+sinkName}", - "request": { - "$ref": "LogSink" - }, - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field." + } }, "delete": { - "id": "logging.folders.sinks.delete", - "path": "v2/{+sinkName}", - "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.", "response": { "$ref": "Empty" }, @@ -127,371 +609,6 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ], - "parameters": { - "sinkName": { - "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+/sinks/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}" - }, - "list": { - "description": "Lists sinks.", - "response": { - "$ref": "ListSinksResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "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" - ], - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "flatPath": "v2/folders/{foldersId}/sinks", - "id": "logging.folders.sinks.list", - "path": "v2/{+parent}/sinks" - }, - "create": { - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", - "request": { - "$ref": "LogSink" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "LogSink" - }, - "parameters": { - "parent": { - "location": "path", - "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$" - }, - "uniqueWriterIdentity": { - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", - "type": "boolean", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/folders/{foldersId}/sinks", - "path": "v2/{+parent}/sinks", - "id": "logging.folders.sinks.create" - } - } - }, - "logs": { - "methods": { - "delete": { - "parameters": { - "logName": { - "location": "path", - "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+/logs/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/folders/{foldersId}/logs/{logsId}", - "path": "v2/{+logName}", - "id": "logging.folders.logs.delete", - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", - "httpMethod": "DELETE", - "parameterOrder": [ - "logName" - ], - "response": { - "$ref": "Empty" - } - }, - "list": { - "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", - "httpMethod": "GET", - "response": { - "$ref": "ListLogsResponse" - }, - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "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" - ], - "flatPath": "v2/folders/{foldersId}/logs", - "path": "v2/{+parent}/logs", - "id": "logging.folders.logs.list" - } - } - }, - "exclusions": { - "methods": { - "delete": { - "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.folders.exclusions.delete", - "description": "Deletes an exclusion.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "name": { - "pattern": "^folders/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of an existing exclusion to delete:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true - } - } - }, - "patch": { - "request": { - "$ref": "LogExclusion" - }, - "description": "Changes one or more properties of an existing exclusion.", - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^folders/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\"." - }, - "updateMask": { - "type": "string", - "location": "query", - "format": "google-fieldmask", - "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\"." - } - }, - "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}", - "id": "logging.folders.exclusions.patch", - "path": "v2/{+name}" - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "name" - ], - "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" - ], - "parameters": { - "name": { - "location": "path", - "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+/exclusions/[^/]+$" - } - }, - "flatPath": "v2/folders/{foldersId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.folders.exclusions.get", - "description": "Gets the description of an exclusion." - }, - "list": { - "flatPath": "v2/folders/{foldersId}/exclusions", - "id": "logging.folders.exclusions.list", - "path": "v2/{+parent}/exclusions", - "description": "Lists all the exclusions in a parent resource.", - "response": { - "$ref": "ListExclusionsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "parent": { - "pattern": "^folders/[^/]+$", - "location": "path", - "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "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" - ] - }, - "create": { - "id": "logging.folders.exclusions.create", - "path": "v2/{+parent}/exclusions", - "request": { - "$ref": "LogExclusion" - }, - "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "parent": { - "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true, - "pattern": "^folders/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2/folders/{foldersId}/exclusions" - } - } - } - } - }, - "monitoredResourceDescriptors": { - "methods": { - "list": { - "description": "Lists the descriptors for monitored resource types used by Stackdriver Logging.", - "response": { - "$ref": "ListMonitoredResourceDescriptorsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "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.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "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" - ], - "flatPath": "v2/monitoredResourceDescriptors", - "id": "logging.monitoredResourceDescriptors.list", - "path": "v2/monitoredResourceDescriptors" - } - } - }, - "organizations": { - "resources": { - "sinks": { - "methods": { - "delete": { - "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "sinkName" - ], "parameters": { "sinkName": { "pattern": "^organizations/[^/]+/sinks/[^/]+$", @@ -501,37 +618,24 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", + "id": "logging.organizations.sinks.delete", "path": "v2/{+sinkName}", - "id": "logging.organizations.sinks.delete" + "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted." }, "list": { - "flatPath": "v2/organizations/{organizationsId}/sinks", - "path": "v2/{+parent}/sinks", - "id": "logging.organizations.sinks.list", - "description": "Lists sinks.", - "httpMethod": "GET", "response": { "$ref": "ListSinksResponse" }, "parameterOrder": [ "parent" ], - "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" - ], + "httpMethod": "GET", "parameters": { "pageToken": { + "type": "string", "location": "query", - "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.", - "type": "string" + "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." }, "pageSize": { "location": "query", @@ -546,495 +650,15 @@ "required": true, "pattern": "^organizations/[^/]+$" } - } - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "LogSink" - }, - "parameters": { - "uniqueWriterIdentity": { - "location": "query", - "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", - "type": "boolean" - }, - "parent": { - "location": "path", - "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$" - } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.read" ], "flatPath": "v2/organizations/{organizationsId}/sinks", - "path": "v2/{+parent}/sinks", - "id": "logging.organizations.sinks.create", - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", - "request": { - "$ref": "LogSink" - } - }, - "get": { - "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", - "id": "logging.organizations.sinks.get", - "path": "v2/{+sinkName}", - "description": "Gets a sink.", - "parameterOrder": [ - "sinkName" - ], - "httpMethod": "GET", - "response": { - "$ref": "LogSink" - }, - "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" - ], - "parameters": { - "sinkName": { - "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/sinks/[^/]+$", - "location": "path" - } - } - }, - "patch": { - "httpMethod": "PATCH", - "parameterOrder": [ - "sinkName" - ], - "response": { - "$ref": "LogSink" - }, - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", - "type": "string" - }, - "uniqueWriterIdentity": { - "location": "query", - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean" - }, - "sinkName": { - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/sinks/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", - "path": "v2/{+sinkName}", - "id": "logging.organizations.sinks.patch", - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", - "request": { - "$ref": "LogSink" - } - }, - "update": { - "response": { - "$ref": "LogSink" - }, - "parameterOrder": [ - "sinkName" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", - "type": "string" - }, - "uniqueWriterIdentity": { - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean", - "location": "query" - }, - "sinkName": { - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/sinks/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", - "id": "logging.organizations.sinks.update", - "path": "v2/{+sinkName}", - "request": { - "$ref": "LogSink" - }, - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field." - } - } - }, - "logs": { - "methods": { - "delete": { - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "logName" - ], - "httpMethod": "DELETE", - "parameters": { - "logName": { - "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/logs/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/organizations/{organizationsId}/logs/{logsId}", - "id": "logging.organizations.logs.delete", - "path": "v2/{+logName}" - }, - "list": { - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "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" - ], - "parameters": { - "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.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - }, - "parent": { - "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2/organizations/{organizationsId}/logs", - "id": "logging.organizations.logs.list", - "path": "v2/{+parent}/logs", - "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed." - } - } - }, - "exclusions": { - "methods": { - "delete": { - "description": "Deletes an exclusion.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "pattern": "^organizations/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of an existing exclusion to delete:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.organizations.exclusions.delete" - }, - "patch": { - "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}", - "id": "logging.organizations.exclusions.patch", - "path": "v2/{+name}", - "request": { - "$ref": "LogExclusion" - }, - "description": "Changes one or more properties of an existing exclusion.", - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", - "type": "string" - }, - "name": { - "pattern": "^organizations/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true - } - } - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "LogExclusion" - }, - "parameters": { - "name": { - "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+/exclusions/[^/]+$", - "location": "path" - } - }, - "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" - ], - "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.organizations.exclusions.get", - "description": "Gets the description of an exclusion." - }, - "list": { - "description": "Lists all the exclusions in a parent resource.", - "response": { - "$ref": "ListExclusionsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "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." - }, - "pageSize": { - "format": "int32", - "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.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$" - } - }, - "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" - ], - "flatPath": "v2/organizations/{organizationsId}/exclusions", - "id": "logging.organizations.exclusions.list", - "path": "v2/{+parent}/exclusions" - }, - "create": { - "id": "logging.organizations.exclusions.create", - "path": "v2/{+parent}/exclusions", - "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", - "request": { - "$ref": "LogExclusion" - }, - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true, - "pattern": "^organizations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/organizations/{organizationsId}/exclusions" - } - } - } - } - }, - "entries": { - "methods": { - "list": { - "request": { - "$ref": "ListLogEntriesRequest" - }, - "description": "Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs.", - "response": { - "$ref": "ListLogEntriesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "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" - ], - "parameters": {}, - "flatPath": "v2/entries:list", - "id": "logging.entries.list", - "path": "v2/entries:list" - }, - "write": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "WriteLogEntriesResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" - ], - "flatPath": "v2/entries:write", - "path": "v2/entries:write", - "id": "logging.entries.write", - "description": "Log entry resourcesWrites log entries to Stackdriver Logging. This API method is the only way to send log entries to Stackdriver Logging. This method is used, directly or indirectly, by the Stackdriver Logging agent (fluentd) and all logging libraries configured to use Stackdriver Logging.", - "request": { - "$ref": "WriteLogEntriesRequest" - } - } - } - }, - "projects": { - "resources": { - "sinks": { - "methods": { - "delete": { - "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", - "id": "logging.projects.sinks.delete", - "path": "v2/{+sinkName}", - "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "sinkName" - ], - "httpMethod": "DELETE", - "parameters": { - "sinkName": { - "location": "path", - "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/sinks/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ] - }, - "list": { - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "response": { - "$ref": "ListSinksResponse" - }, - "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" - ], - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "flatPath": "v2/projects/{projectsId}/sinks", - "id": "logging.projects.sinks.list", + "id": "logging.organizations.sinks.list", "path": "v2/{+parent}/sinks", "description": "Lists sinks." }, @@ -1060,7 +684,7 @@ "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", "type": "string", "required": true, - "pattern": "^projects/[^/]+$", + "pattern": "^organizations/[^/]+$", "location": "path" } }, @@ -1068,117 +692,9 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ], - "flatPath": "v2/projects/{projectsId}/sinks", - "id": "logging.projects.sinks.create", + "flatPath": "v2/organizations/{organizationsId}/sinks", + "id": "logging.organizations.sinks.create", "path": "v2/{+parent}/sinks" - }, - "patch": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", - "request": { - "$ref": "LogSink" - }, - "response": { - "$ref": "LogSink" - }, - "parameterOrder": [ - "sinkName" - ], - "httpMethod": "PATCH", - "parameters": { - "updateMask": { - "type": "string", - "location": "query", - "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter." - }, - "uniqueWriterIdentity": { - "location": "query", - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean" - }, - "sinkName": { - "location": "path", - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/sinks/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", - "id": "logging.projects.sinks.patch", - "path": "v2/{+sinkName}" - }, - "get": { - "description": "Gets a sink.", - "httpMethod": "GET", - "parameterOrder": [ - "sinkName" - ], - "response": { - "$ref": "LogSink" - }, - "parameters": { - "sinkName": { - "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/sinks/[^/]+$", - "location": "path" - } - }, - "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" - ], - "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", - "path": "v2/{+sinkName}", - "id": "logging.projects.sinks.get" - }, - "update": { - "httpMethod": "PUT", - "parameterOrder": [ - "sinkName" - ], - "response": { - "$ref": "LogSink" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "updateMask": { - "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", - "type": "string", - "location": "query" - }, - "uniqueWriterIdentity": { - "location": "query", - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean" - }, - "sinkName": { - "location": "path", - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/sinks/[^/]+$" - } - }, - "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", - "path": "v2/{+sinkName}", - "id": "logging.projects.sinks.update", - "request": { - "$ref": "LogSink" - }, - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field." } } }, @@ -1192,81 +708,44 @@ "parent" ], "httpMethod": "GET", - "parameters": { - "parent": { - "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "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." - } - }, "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" ], - "flatPath": "v2/projects/{projectsId}/logs", - "id": "logging.projects.logs.list", + "parameters": { + "pageToken": { + "location": "query", + "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.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" + }, + "parent": { + "type": "string", + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" + } + }, + "flatPath": "v2/organizations/{organizationsId}/logs", + "id": "logging.organizations.logs.list", "path": "v2/{+parent}/logs", "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed." }, "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "logName" - ], "parameters": { "logName": { - "pattern": "^projects/[^/]+/logs/[^/]+$", - "location": "path", "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2/projects/{projectsId}/logs/{logsId}", - "path": "v2/{+logName}", - "id": "logging.projects.logs.delete", - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted." - } - } - }, - "exclusions": { - "methods": { - "create": { - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", "required": true, - "pattern": "^projects/[^/]+$", + "pattern": "^organizations/[^/]+/logs/[^/]+$", "location": "path" } }, @@ -1274,22 +753,30 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ], - "flatPath": "v2/projects/{projectsId}/exclusions", - "id": "logging.projects.exclusions.create", - "path": "v2/{+parent}/exclusions", - "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", - "request": { - "$ref": "LogExclusion" - } - }, - "delete": { + "flatPath": "v2/organizations/{organizationsId}/logs/{logsId}", + "path": "v2/{+logName}", + "id": "logging.organizations.logs.delete", + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", "httpMethod": "DELETE", "parameterOrder": [ - "name" + "logName" ], + "response": { + "$ref": "Empty" + } + } + } + }, + "exclusions": { + "methods": { + "delete": { "response": { "$ref": "Empty" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" @@ -1299,19 +786,16 @@ "description": "Required. The resource name of an existing exclusion to delete:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", "type": "string", "required": true, - "pattern": "^projects/[^/]+/exclusions/[^/]+$", + "pattern": "^organizations/[^/]+/exclusions/[^/]+$", "location": "path" } }, - "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", + "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}", + "id": "logging.organizations.exclusions.delete", "path": "v2/{+name}", - "id": "logging.projects.exclusions.delete", "description": "Deletes an exclusion." }, "patch": { - "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.projects.exclusions.patch", "request": { "$ref": "LogExclusion" }, @@ -1328,52 +812,53 @@ "https://www.googleapis.com/auth/logging.admin" ], "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", - "type": "string" - }, "name": { "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", "type": "string", "required": true, - "pattern": "^projects/[^/]+/exclusions/[^/]+$", + "pattern": "^organizations/[^/]+/exclusions/[^/]+$", "location": "path" + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", + "type": "string", + "location": "query" } - } + }, + "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}", + "path": "v2/{+name}", + "id": "logging.organizations.exclusions.patch" }, "get": { - "httpMethod": "GET", + "id": "logging.organizations.exclusions.get", + "path": "v2/{+name}", + "description": "Gets the description of an exclusion.", "response": { "$ref": "LogExclusion" }, "parameterOrder": [ "name" ], - "parameters": { - "name": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\"." - } - }, + "httpMethod": "GET", "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" ], - "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", - "path": "v2/{+name}", - "id": "logging.projects.exclusions.get", - "description": "Gets the description of an exclusion." + "parameters": { + "name": { + "pattern": "^organizations/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true + } + }, + "flatPath": "v2/organizations/{organizationsId}/exclusions/{exclusionsId}" }, "list": { - "path": "v2/{+parent}/exclusions", - "id": "logging.projects.exclusions.list", "description": "Lists all the exclusions in a parent resource.", "httpMethod": "GET", "parameterOrder": [ @@ -1383,23 +868,23 @@ "$ref": "ListExclusionsResponse" }, "parameters": { - "pageToken": { - "type": "string", - "location": "query", - "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." - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - }, "parent": { - "location": "path", - "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", "type": "string", "required": true, - "pattern": "^projects/[^/]+$" + "pattern": "^organizations/[^/]+$", + "location": "path", + "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "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.", + "type": "integer", + "location": "query" } }, "scopes": [ @@ -1408,22 +893,17 @@ "https://www.googleapis.com/auth/logging.admin", "https://www.googleapis.com/auth/logging.read" ], - "flatPath": "v2/projects/{projectsId}/exclusions" - } - } - }, - "metrics": { - "methods": { + "flatPath": "v2/organizations/{organizationsId}/exclusions", + "path": "v2/{+parent}/exclusions", + "id": "logging.organizations.exclusions.list" + }, "create": { - "flatPath": "v2/projects/{projectsId}/metrics", - "id": "logging.projects.metrics.create", - "path": "v2/{+parent}/metrics", "request": { - "$ref": "LogMetric" + "$ref": "LogExclusion" }, - "description": "Creates a logs-based metric.", + "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", "response": { - "$ref": "LogMetric" + "$ref": "LogExclusion" }, "parameterOrder": [ "parent" @@ -1431,25 +911,75 @@ "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" + "https://www.googleapis.com/auth/logging.admin" ], "parameters": { "parent": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The resource name of the project in which to create the metric:\n\"projects/[PROJECT_ID]\"\nThe new metric must be provided in the request.", + "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", "type": "string", - "required": true + "required": true, + "pattern": "^organizations/[^/]+$", + "location": "path" } - } - }, + }, + "flatPath": "v2/organizations/{organizationsId}/exclusions", + "id": "logging.organizations.exclusions.create", + "path": "v2/{+parent}/exclusions" + } + } + } + } + }, + "entries": { + "methods": { + "list": { + "id": "logging.entries.list", + "path": "v2/entries:list", + "description": "Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs.", + "request": { + "$ref": "ListLogEntriesRequest" + }, + "response": { + "$ref": "ListLogEntriesResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "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" + ], + "flatPath": "v2/entries:list" + }, + "write": { + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], + "flatPath": "v2/entries:write", + "id": "logging.entries.write", + "path": "v2/entries:write", + "description": "Log entry resourcesWrites log entries to Stackdriver Logging. This API method is the only way to send log entries to Stackdriver Logging. This method is used, directly or indirectly, by the Stackdriver Logging agent (fluentd) and all logging libraries configured to use Stackdriver Logging.", + "request": { + "$ref": "WriteLogEntriesRequest" + }, + "response": { + "$ref": "WriteLogEntriesResponse" + }, + "parameterOrder": [], + "httpMethod": "POST" + } + } + }, + "projects": { + "resources": { + "metrics": { + "methods": { "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" - ], "parameters": { "metricName": { "location": "path", @@ -1459,26 +989,24 @@ "pattern": "^projects/[^/]+/metrics/[^/]+$" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], "flatPath": "v2/projects/{projectsId}/metrics/{metricsId}", - "id": "logging.projects.metrics.delete", "path": "v2/{+metricName}", + "id": "logging.projects.metrics.delete", "description": "Deletes a logs-based metric.", + "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ "metricName" - ], - "httpMethod": "DELETE" + ] }, "get": { - "httpMethod": "GET", - "parameterOrder": [ - "metricName" - ], - "response": { - "$ref": "LogMetric" - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only", @@ -1487,17 +1015,24 @@ ], "parameters": { "metricName": { + "location": "path", "description": "The resource name of the desired metric:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\n", "type": "string", "required": true, - "pattern": "^projects/[^/]+/metrics/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+/metrics/[^/]+$" } }, "flatPath": "v2/projects/{projectsId}/metrics/{metricsId}", "path": "v2/{+metricName}", "id": "logging.projects.metrics.get", - "description": "Gets a logs-based metric." + "description": "Gets a logs-based metric.", + "httpMethod": "GET", + "parameterOrder": [ + "metricName" + ], + "response": { + "$ref": "LogMetric" + } }, "list": { "path": "v2/{+parent}/metrics", @@ -1512,11 +1047,11 @@ ], "parameters": { "parent": { - "location": "path", "description": "Required. The name of the project containing the metrics:\n\"projects/[PROJECT_ID]\"\n", "type": "string", "required": true, - "pattern": "^projects/[^/]+$" + "pattern": "^projects/[^/]+$", + "location": "path" }, "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.", @@ -1539,6 +1074,21 @@ "flatPath": "v2/projects/{projectsId}/metrics" }, "update": { + "parameters": { + "metricName": { + "description": "The resource name of the metric to update:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\nThe updated metric must be provided in the request and it's name field must be the same as [METRIC_ID] If the metric does not exist in [PROJECT_ID], then a new metric is created.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/metrics/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], + "flatPath": "v2/projects/{projectsId}/metrics/{metricsId}", "path": "v2/{+metricName}", "id": "logging.projects.metrics.update", "description": "Creates or updates a logs-based metric.", @@ -1551,36 +1101,297 @@ ], "response": { "$ref": "LogMetric" + } + }, + "create": { + "flatPath": "v2/projects/{projectsId}/metrics", + "id": "logging.projects.metrics.create", + "path": "v2/{+parent}/metrics", + "description": "Creates a logs-based metric.", + "request": { + "$ref": "LogMetric" }, + "response": { + "$ref": "LogMetric" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", "parameters": { - "metricName": { - "pattern": "^projects/[^/]+/metrics/[^/]+$", - "location": "path", - "description": "The resource name of the metric to update:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\nThe updated metric must be provided in the request and it's name field must be the same as [METRIC_ID] If the metric does not exist in [PROJECT_ID], then a new metric is created.", + "parent": { + "description": "The resource name of the project in which to create the metric:\n\"projects/[PROJECT_ID]\"\nThe new metric must be provided in the request.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin", "https://www.googleapis.com/auth/logging.write" - ], - "flatPath": "v2/projects/{projectsId}/metrics/{metricsId}" + ] } } - } - } - }, - "billingAccounts": { - "resources": { + }, "sinks": { "methods": { + "create": { + "id": "logging.projects.sinks.create", + "path": "v2/{+parent}/sinks", + "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "request": { + "$ref": "LogSink" + }, + "response": { + "$ref": "LogSink" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", + "type": "string", + "required": true + }, + "uniqueWriterIdentity": { + "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", + "type": "boolean", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/projects/{projectsId}/sinks" + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "sinkName" + ], + "response": { + "$ref": "LogSink" + }, + "parameters": { + "sinkName": { + "location": "path", + "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/sinks/[^/]+$" + } + }, + "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" + ], + "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", + "path": "v2/{+sinkName}", + "id": "logging.projects.sinks.get", + "description": "Gets a sink." + }, + "patch": { + "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", + "id": "logging.projects.sinks.patch", + "path": "v2/{+sinkName}", + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "request": { + "$ref": "LogSink" + }, + "response": { + "$ref": "LogSink" + }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "type": "string", + "location": "query", + "format": "google-fieldmask", + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter." + }, + "uniqueWriterIdentity": { + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", + "type": "boolean", + "location": "query" + }, + "sinkName": { + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/sinks/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "update": { + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "request": { + "$ref": "LogSink" + }, + "response": { + "$ref": "LogSink" + }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "PUT", + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", + "type": "string", + "location": "query" + }, + "uniqueWriterIdentity": { + "type": "boolean", + "location": "query", + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false." + }, + "sinkName": { + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/sinks/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", + "id": "logging.projects.sinks.update", + "path": "v2/{+sinkName}" + }, "delete": { + "response": { + "$ref": "Empty" + }, "parameterOrder": [ "sinkName" ], "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "parameters": { + "sinkName": { + "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/sinks/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", + "id": "logging.projects.sinks.delete", + "path": "v2/{+sinkName}", + "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted." + }, + "list": { + "description": "Lists sinks.", + "response": { + "$ref": "ListSinksResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "parent": { + "location": "path", + "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "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.", + "type": "integer", + "location": "query" + } + }, + "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" + ], + "flatPath": "v2/projects/{projectsId}/sinks", + "id": "logging.projects.sinks.list", + "path": "v2/{+parent}/sinks" + } + } + }, + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", + "response": { + "$ref": "ListLogsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "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" + ], + "parameters": { + "pageToken": { + "location": "query", + "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.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "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.", + "type": "integer", + "location": "query" + }, + "parent": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true + } + }, + "flatPath": "v2/projects/{projectsId}/logs", + "id": "logging.projects.logs.list", + "path": "v2/{+parent}/logs" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "logName" + ], "response": { "$ref": "Empty" }, @@ -1589,37 +1400,95 @@ "https://www.googleapis.com/auth/logging.admin" ], "parameters": { - "sinkName": { + "logName": { + "pattern": "^projects/[^/]+/logs/[^/]+$", "location": "path", - "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+/sinks/[^/]+$" + "required": true } }, - "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", - "id": "logging.billingAccounts.sinks.delete", - "path": "v2/{+sinkName}", - "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted." - }, - "list": { - "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks", - "path": "v2/{+parent}/sinks", - "id": "logging.billingAccounts.sinks.list", - "description": "Lists sinks.", - "httpMethod": "GET", + "flatPath": "v2/projects/{projectsId}/logs/{logsId}", + "path": "v2/{+logName}", + "id": "logging.projects.logs.delete", + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted." + } + } + }, + "exclusions": { + "methods": { + "patch": { + "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", + "id": "logging.projects.exclusions.patch", + "path": "v2/{+name}", + "description": "Changes one or more properties of an existing exclusion.", + "request": { + "$ref": "LogExclusion" + }, "response": { - "$ref": "ListSinksResponse" + "$ref": "LogExclusion" }, "parameterOrder": [ - "parent" + "name" ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "type": "string", + "location": "query", + "format": "google-fieldmask", + "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\"." + }, + "name": { + "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/exclusions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + }, + "get": { + "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", + "path": "v2/{+name}", + "id": "logging.projects.exclusions.get", + "description": "Gets the description of an exclusion.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "LogExclusion" + }, "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" ], + "parameters": { + "name": { + "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/exclusions/[^/]+$", + "location": "path" + } + } + }, + "list": { + "description": "Lists all the exclusions in a parent resource.", + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListExclusionsResponse" + }, "parameters": { "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.", @@ -1633,37 +1502,105 @@ "location": "query" }, "parent": { + "pattern": "^projects/[^/]+$", "location": "path", - "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+$" + "required": true } - } + }, + "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" + ], + "flatPath": "v2/projects/{projectsId}/exclusions", + "path": "v2/{+parent}/exclusions", + "id": "logging.projects.exclusions.list" }, "create": { - "request": { - "$ref": "LogSink" - }, - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", "response": { - "$ref": "LogSink" + "$ref": "LogExclusion" }, "parameterOrder": [ "parent" ], "httpMethod": "POST", + "parameters": { + "parent": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\"." + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ], + "flatPath": "v2/projects/{projectsId}/exclusions", + "id": "logging.projects.exclusions.create", + "path": "v2/{+parent}/exclusions", + "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", + "request": { + "$ref": "LogExclusion" + } + }, + "delete": { + "flatPath": "v2/projects/{projectsId}/exclusions/{exclusionsId}", + "id": "logging.projects.exclusions.delete", + "path": "v2/{+name}", + "description": "Deletes an exclusion.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of an existing exclusion to delete:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\"." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ] + } + } + } + } + }, + "billingAccounts": { + "resources": { + "sinks": { + "methods": { + "create": { + "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "request": { + "$ref": "LogSink" + }, + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "LogSink" + }, "parameters": { "parent": { + "type": "string", + "required": true, "pattern": "^billingAccounts/[^/]+$", "location": "path", - "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true + "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\"." }, "uniqueWriterIdentity": { "location": "query", @@ -1671,19 +1608,23 @@ "type": "boolean" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks", - "id": "logging.billingAccounts.sinks.create", - "path": "v2/{+parent}/sinks" + "path": "v2/{+parent}/sinks", + "id": "logging.billingAccounts.sinks.create" }, "get": { "description": "Gets a sink.", "httpMethod": "GET", - "parameterOrder": [ - "sinkName" - ], "response": { "$ref": "LogSink" }, + "parameterOrder": [ + "sinkName" + ], "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only", @@ -1704,56 +1645,23 @@ "id": "logging.billingAccounts.sinks.get" }, "patch": { - "request": { - "$ref": "LogSink" - }, - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", - "httpMethod": "PATCH", - "parameterOrder": [ - "sinkName" - ], "response": { "$ref": "LogSink" }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "PATCH", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" ], "parameters": { "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", - "type": "string" - }, - "uniqueWriterIdentity": { - "location": "query", - "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean" - }, - "sinkName": { - "location": "path", - "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+/sinks/[^/]+$" - } - }, - "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", - "path": "v2/{+sinkName}", - "id": "logging.billingAccounts.sinks.patch" - }, - "update": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "updateMask": { "location": "query", "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", - "type": "string" + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter." }, "uniqueWriterIdentity": { "location": "query", @@ -1769,41 +1677,66 @@ } }, "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", - "id": "logging.billingAccounts.sinks.update", + "id": "logging.billingAccounts.sinks.patch", "path": "v2/{+sinkName}", "request": { "$ref": "LogSink" }, - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field." + }, + "update": { "response": { "$ref": "LogSink" }, "parameterOrder": [ "sinkName" ], - "httpMethod": "PUT" - } - } - }, - "logs": { - "methods": { - "delete": { - "flatPath": "v2/billingAccounts/{billingAccountsId}/logs/{logsId}", - "path": "v2/{+logName}", - "id": "logging.billingAccounts.logs.delete", - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", - "httpMethod": "DELETE", - "parameterOrder": [ - "logName" + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" ], + "parameters": { + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", + "type": "string" + }, + "uniqueWriterIdentity": { + "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", + "type": "boolean", + "location": "query" + }, + "sinkName": { + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+/sinks/[^/]+$", + "location": "path", + "description": "Required. The full resource name of the sink to update, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\"." + } + }, + "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", + "id": "logging.billingAccounts.sinks.update", + "path": "v2/{+sinkName}", + "request": { + "$ref": "LogSink" + }, + "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter. The updated sink might also have a new writer_identity; see the unique_writer_identity field." + }, + "delete": { "response": { "$ref": "Empty" }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "DELETE", "parameters": { - "logName": { - "pattern": "^billingAccounts/[^/]+/logs/[^/]+$", + "sinkName": { + "pattern": "^billingAccounts/[^/]+/sinks/[^/]+$", "location": "path", - "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", + "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", "required": true } @@ -1811,34 +1744,82 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/logging.admin" - ] + ], + "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", + "id": "logging.billingAccounts.sinks.delete", + "path": "v2/{+sinkName}", + "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted." }, "list": { - "httpMethod": "GET", + "id": "logging.billingAccounts.sinks.list", + "path": "v2/{+parent}/sinks", + "description": "Lists sinks.", + "response": { + "$ref": "ListSinksResponse" + }, "parameterOrder": [ "parent" ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "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.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+$", + "location": "path" + } + }, + "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" + ], + "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks" + } + } + }, + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", "response": { "$ref": "ListLogsResponse" }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", "parameters": { "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.", "type": "string", - "location": "query" + "location": "query", + "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." }, "pageSize": { + "location": "query", "format": "int32", "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.", - "type": "integer", - "location": "query" + "type": "integer" }, "parent": { - "pattern": "^billingAccounts/[^/]+$", - "location": "path", "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", "type": "string", - "required": true + "required": true, + "pattern": "^billingAccounts/[^/]+$", + "location": "path" } }, "scopes": [ @@ -1848,15 +1829,173 @@ "https://www.googleapis.com/auth/logging.read" ], "flatPath": "v2/billingAccounts/{billingAccountsId}/logs", - "path": "v2/{+parent}/logs", "id": "logging.billingAccounts.logs.list", - "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed." + "path": "v2/{+parent}/logs" + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "parameters": { + "logName": { + "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+/logs/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2/billingAccounts/{billingAccountsId}/logs/{logsId}", + "id": "logging.billingAccounts.logs.delete", + "path": "v2/{+logName}", + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "logName" + ], + "httpMethod": "DELETE" } } }, "exclusions": { "methods": { + "patch": { + "description": "Changes one or more properties of an existing exclusion.", + "request": { + "$ref": "LogExclusion" + }, + "response": { + "$ref": "LogExclusion" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", + "type": "string", + "location": "query" + }, + "name": { + "pattern": "^billingAccounts/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}", + "id": "logging.billingAccounts.exclusions.patch", + "path": "v2/{+name}" + }, + "get": { + "path": "v2/{+name}", + "id": "logging.billingAccounts.exclusions.get", + "description": "Gets the description of an exclusion.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "LogExclusion" + }, + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+/exclusions/[^/]+$", + "location": "path", + "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\"." + } + }, + "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" + ], + "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}" + }, + "list": { + "description": "Lists all the exclusions in a parent resource.", + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListExclusionsResponse" + }, + "parameters": { + "parent": { + "location": "path", + "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+$" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "type": "integer", + "location": "query", + "format": "int32", + "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." + } + }, + "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" + ], + "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions", + "path": "v2/{+parent}/exclusions", + "id": "logging.billingAccounts.exclusions.list" + }, + "create": { + "request": { + "$ref": "LogExclusion" + }, + "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", + "response": { + "$ref": "LogExclusion" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions", + "id": "logging.billingAccounts.exclusions.create", + "path": "v2/{+parent}/exclusions" + }, "delete": { + "id": "logging.billingAccounts.exclusions.delete", + "path": "v2/{+name}", "description": "Deletes an exclusion.", "response": { "$ref": "Empty" @@ -1878,140 +2017,7 @@ "pattern": "^billingAccounts/[^/]+/exclusions/[^/]+$" } }, - "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}", - "id": "logging.billingAccounts.exclusions.delete", - "path": "v2/{+name}" - }, - "patch": { - "request": { - "$ref": "LogExclusion" - }, - "description": "Changes one or more properties of an existing exclusion.", - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "name": { - "pattern": "^billingAccounts/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of the exclusion to update:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Required. A nonempty list of fields to change in the existing exclusion. New values for the fields are taken from the corresponding fields in the LogExclusion included in this request. Fields not mentioned in update_mask are not changed and are ignored in the request.For example, to change the filter and description of an exclusion, specify an update_mask of \"filter,description\".", - "type": "string" - } - }, - "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}", - "id": "logging.billingAccounts.exclusions.patch", - "path": "v2/{+name}" - }, - "get": { - "response": { - "$ref": "LogExclusion" - }, - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "pattern": "^billingAccounts/[^/]+/exclusions/[^/]+$", - "location": "path", - "description": "Required. The resource name of an existing exclusion:\n\"projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]\"\n\"organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]\"\n\"folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]\"\nExample: \"projects/my-project-id/exclusions/my-exclusion-id\".", - "type": "string", - "required": true - } - }, - "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" - ], - "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}", - "id": "logging.billingAccounts.exclusions.get", - "path": "v2/{+name}", - "description": "Gets the description of an exclusion." - }, - "list": { - "description": "Lists all the exclusions in a parent resource.", - "response": { - "$ref": "ListExclusionsResponse" - }, - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], - "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" - ], - "parameters": { - "parent": { - "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+$", - "location": "path", - "description": "Required. The parent resource whose exclusions are to be listed.\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n" - }, - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - } - }, - "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions", - "id": "logging.billingAccounts.exclusions.list", - "path": "v2/{+parent}/exclusions" - }, - "create": { - "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions", - "id": "logging.billingAccounts.exclusions.create", - "path": "v2/{+parent}/exclusions", - "description": "Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.", - "request": { - "$ref": "LogExclusion" - }, - "response": { - "$ref": "LogExclusion" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "location": "path", - "description": "Required. The parent resource in which to create the exclusion:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", - "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ] + "flatPath": "v2/billingAccounts/{billingAccountsId}/exclusions/{exclusionsId}" } } } @@ -2019,75 +2025,20 @@ } }, "parameters": { - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "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.", + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, "bearer_token": { - "location": "query", "description": "OAuth bearer token.", - "type": "string" + "type": "string", + "location": "query" }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", @@ -2096,14 +2047,69 @@ "location": "query" }, "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." + "location": "query" }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ] + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "key": { + "location": "query", + "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.", "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" } }, "version": "v2", @@ -2114,24 +2120,156 @@ "basePath": "", "id": "logging:v2", "documentationLink": "https://cloud.google.com/logging/docs/", - "revision": "20170926", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { + "LogExclusion": { + "description": "Specifies a set of log entries that are not to be stored in Stackdriver Logging. If your project receives a large volume of logs, you might be able to use exclusions to reduce your chargeable logs. Exclusions are processed after log sinks, so you can export log entries before they are excluded. Audit log entries and log entries from Amazon Web Services are never excluded.", + "type": "object", + "properties": { + "name": { + "description": "Required. A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "type": "string" + }, + "description": { + "description": "Optional. A description of this exclusion.", + "type": "string" + }, + "disabled": { + "description": "Optional. If set to True, then this exclusion is disabled and it does not exclude any log entries. You can use exclusions.patch to change the value of this field.", + "type": "boolean" + }, + "filter": { + "description": "Required. An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. For example, the following filter matches 99% of low-severity log entries from load balancers:\n\"resource.type=http_load_balancer severity\u003cERROR sample(insertId, 0.99)\"\n", + "type": "string" + } + }, + "id": "LogExclusion" + }, + "ListMonitoredResourceDescriptorsResponse": { + "properties": { + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", + "type": "string" + }, + "resourceDescriptors": { + "items": { + "$ref": "MonitoredResourceDescriptor" + }, + "type": "array", + "description": "A list of resource descriptors." + } + }, + "id": "ListMonitoredResourceDescriptorsResponse", + "description": "Result returned from ListMonitoredResourceDescriptors.", + "type": "object" + }, + "ListExclusionsResponse": { + "description": "Result returned from ListExclusions.", + "type": "object", + "properties": { + "exclusions": { + "description": "A list of exclusions.", + "items": { + "$ref": "LogExclusion" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", + "type": "string" + } + }, + "id": "ListExclusionsResponse" + }, + "LogEntryOperation": { + "properties": { + "last": { + "description": "Optional. Set this to True if this is the last log entry in the operation.", + "type": "boolean" + }, + "id": { + "description": "Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.", + "type": "string" + }, + "first": { + "type": "boolean", + "description": "Optional. Set this to True if this is the first log entry in the operation." + }, + "producer": { + "description": "Optional. An arbitrary producer identifier. The combination of id and producer must be globally unique. Examples for producer: \"MyDivision.MyBigCompany.com\", \"github.com/MyProject/MyApplication\".", + "type": "string" + } + }, + "id": "LogEntryOperation", + "description": "Additional information about a potentially long-running operation with which a log entry is associated.", + "type": "object" + }, + "LogMetric": { + "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 metric can also be used to extract values from logs and create a 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.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Required. The client-assigned metric identifier. Examples: \"error_count\", \"nginx/requests\".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: \"projects/my-project/metrics/nginx%2Frequests\"." + }, + "labelExtractors": { + "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.", + "type": "object" + }, + "metricDescriptor": { + "description": "Optional. The metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of \"1\". Such a metric counts the number of log entries matching the filter expression.The name, type, and description fields in the metric_descriptor are output only, and is constructed using the name and description field in the LogMetric.To create a logs-based metric that records a distribution of log values, a DELTA metric kind with a DISTRIBUTION value type must be used along with a value_extractor expression in the LogMetric.Each label in the metric descriptor must have a matching label name as the key and an extractor expression as the value in the label_extractors map.The metric_kind and value_type fields in the metric_descriptor cannot be updated once initially configured. New labels can be added in the metric_descriptor, but existing labels cannot be modified except for their description.", + "$ref": "MetricDescriptor" + }, + "version": { + "description": "Deprecated. The API version that created or updated this metric. The v2 format is used by default and cannot be changed.", + "type": "string", + "enumDescriptions": [ + "Stackdriver Logging API v2.", + "Stackdriver Logging API v1." + ], + "enum": [ + "V2", + "V1" + ] + }, + "filter": { + "description": "Required. An advanced logs filter which is used to match log entries. Example:\n\"resource.type=gae_app AND severity\u003e=ERROR\"\nThe maximum length of the filter is 20000 characters.", + "type": "string" + }, + "description": { + "type": "string", + "description": "Optional. A description of this metric, which is used in documentation." + }, + "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+).*\")", + "type": "string" + }, + "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.", + "$ref": "BucketOptions" + } + }, + "id": "LogMetric" + }, "MonitoredResource": { "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"instance_id\" and \"zone\":\n{ \"type\": \"gce_instance\",\n \"labels\": { \"instance_id\": \"12345678901234\",\n \"zone\": \"us-central1-a\" }}\n", "type": "object", "properties": { + "type": { + "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" }, "description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", "type": "object" - }, - "type": { - "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", - "type": "string" } }, "id": "MonitoredResource" @@ -2140,6 +2278,20 @@ "description": "Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.", "type": "object", "properties": { + "outputVersionFormat": { + "description": "Deprecated. The log entry format to use for this sink's exported log entries. The v2 format is used by default and cannot be changed.", + "type": "string", + "enumDescriptions": [ + "An unspecified format version that will default to V2.", + "LogEntry version 2 format.", + "LogEntry version 1 format." + ], + "enum": [ + "VERSION_FORMAT_UNSPECIFIED", + "V2", + "V1" + ] + }, "name": { "description": "Required. The client-assigned sink identifier, unique within the project. Example: \"my-syslog-errors-to-pubsub\". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.", "type": "string" @@ -2148,89 +2300,74 @@ "description": "Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:\nlogName:(\"projects/test-project1/\" OR \"projects/test-project2/\") AND\nresource.type=gce_instance\n", "type": "boolean" }, - "destination": { - "description": "Required. The export destination:\n\"storage.googleapis.com/[GCS_BUCKET]\"\n\"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"\n\"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\"\nThe sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs With Sinks.", - "type": "string" - }, "filter": { "description": "Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. For example:\nlogName=\"projects/[PROJECT_ID]/logs/[LOG_ID]\" AND severity\u003e=ERROR\n", "type": "string" }, - "endTime": { - "format": "google-datetime", - "description": "Deprecated. This field is ignored when creating or updating sinks.", + "destination": { + "description": "Required. The export destination:\n\"storage.googleapis.com/[GCS_BUCKET]\"\n\"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"\n\"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\"\nThe sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs With Sinks.", "type": "string" }, + "endTime": { + "type": "string", + "format": "google-datetime", + "description": "Deprecated. This field is ignored when creating or updating sinks." + }, "writerIdentity": { "description": "Output only. An IAM identity—a service account or group—under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting 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. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.", "type": "string" }, "startTime": { - "type": "string", "format": "google-datetime", - "description": "Deprecated. This field is ignored when creating or updating sinks." - }, - "outputVersionFormat": { - "enum": [ - "VERSION_FORMAT_UNSPECIFIED", - "V2", - "V1" - ], - "description": "Deprecated. The log entry format to use for this sink's exported log entries. The v2 format is used by default and cannot be changed.", - "type": "string", - "enumDescriptions": [ - "An unspecified format version that will default to V2.", - "LogEntry version 2 format.", - "LogEntry version 1 format." - ] + "description": "Deprecated. This field is ignored when creating or updating sinks.", + "type": "string" } }, "id": "LogSink" }, "ListLogsResponse": { + "id": "ListLogsResponse", "description": "Result returned from ListLogs.", "type": "object", "properties": { + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", + "type": "string" + }, "logNames": { "description": "A list of log names. For example, \"projects/my-project/syslog\" or \"organizations/123/cloudresourcemanager.googleapis.com%2Factivity\".", "items": { "type": "string" }, "type": "array" - }, - "nextPageToken": { - "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", - "type": "string" } - }, - "id": "ListLogsResponse" - }, - "ListSinksResponse": { - "description": "Result returned from ListSinks.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", - "type": "string" - }, - "sinks": { - "description": "A list of sinks.", - "items": { - "$ref": "LogSink" - }, - "type": "array" - } - }, - "id": "ListSinksResponse" + } }, "HttpRequest": { + "description": "A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message.", + "type": "object", "properties": { + "latency": { + "format": "google-duration", + "description": "The request processing latency on the server, from the time the request was received until the response was sent.", + "type": "string" + }, + "userAgent": { + "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\".", + "type": "string" + }, + "cacheFillBytes": { + "format": "int64", + "description": "The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.", + "type": "string" + }, "requestMethod": { "description": "The request method. Examples: \"GET\", \"HEAD\", \"PUT\", \"POST\".", "type": "string" }, - "protocol": { - "description": "Protocol used for the request. Examples: \"HTTP/1.1\", \"HTTP/2\", \"websocket\"", + "requestSize": { + "format": "int64", + "description": "The size of the HTTP request message in bytes, including the request headers and the request body.", "type": "string" }, "responseSize": { @@ -2238,30 +2375,29 @@ "description": "The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.", "type": "string" }, - "requestSize": { - "type": "string", - "format": "int64", - "description": "The size of the HTTP request message in bytes, including the request headers and the request body." + "protocol": { + "description": "Protocol used for the request. Examples: \"HTTP/1.1\", \"HTTP/2\", \"websocket\"", + "type": "string" }, "requestUrl": { - "type": "string", - "description": "The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: \"http://example.com/some/info?color=red\"." + "description": "The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: \"http://example.com/some/info?color=red\".", + "type": "string" + }, + "serverIp": { + "description": "The IP address (IPv4 or IPv6) of the origin server that the request was sent to.", + "type": "string" }, "remoteIp": { "description": "The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: \"192.168.1.1\", \"FE80::0202:B3FF:FE1E:8329\".", "type": "string" }, - "serverIp": { - "type": "string", - "description": "The IP address (IPv4 or IPv6) of the origin server that the request was sent to." - }, "cacheLookup": { - "type": "boolean", - "description": "Whether or not a cache lookup was attempted." + "description": "Whether or not a cache lookup was attempted.", + "type": "boolean" }, "cacheHit": { - "description": "Whether or not an entity was served from cache (with or without validation).", - "type": "boolean" + "type": "boolean", + "description": "Whether or not an entity was served from cache (with or without validation)." }, "cacheValidatedWithOriginServer": { "description": "Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.", @@ -2275,30 +2411,43 @@ "referer": { "description": "The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).", "type": "string" + } + }, + "id": "HttpRequest" + }, + "ListSinksResponse": { + "description": "Result returned from ListSinks.", + "type": "object", + "properties": { + "sinks": { + "description": "A list of sinks.", + "items": { + "$ref": "LogSink" + }, + "type": "array" }, - "userAgent": { - "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\".", - "type": "string" - }, - "latency": { - "format": "google-duration", - "description": "The request processing latency on the server, from the time the request was received until the response was sent.", - "type": "string" - }, - "cacheFillBytes": { - "format": "int64", - "description": "The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.", + "nextPageToken": { + "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", "type": "string" } }, - "id": "HttpRequest", - "description": "A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message.", - "type": "object" + "id": "ListSinksResponse" }, "MonitoredResourceDescriptor": { "description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of \"gce_instance\" and specifies the use of the labels \"instance_id\" and \"zone\" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.", "type": "object", "properties": { + "labels": { + "description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels \"database_id\" and \"zone\".", + "items": { + "$ref": "LabelDescriptor" + }, + "type": "array" + }, + "name": { + "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", + "type": "string" + }, "description": { "description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", "type": "string" @@ -2310,17 +2459,6 @@ "type": { "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.", "type": "string" - }, - "labels": { - "description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels \"database_id\" and \"zone\".", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - }, - "name": { - "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", - "type": "string" } }, "id": "MonitoredResourceDescriptor" @@ -2329,10 +2467,6 @@ "description": "Additional information about the source code location that produced the log entry.", "type": "object", "properties": { - "file": { - "description": "Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.", - "type": "string" - }, "function": { "description": "Optional. Human-readable name of the function or method being invoked, with optional context such as the class or package name. This information may be used in contexts such as the logs viewer, where a file and line number are less meaningful. The format can vary by language. For example: qual.if.ied.Class.method (Java), dir/package.func (Go), function (Python).", "type": "string" @@ -2341,22 +2475,26 @@ "format": "int64", "description": "Optional. Line within the source file. 1-based; 0 indicates no line number available.", "type": "string" + }, + "file": { + "description": "Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.", + "type": "string" } }, "id": "LogEntrySourceLocation" }, "ListLogEntriesResponse": { "properties": { + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.If a value for next_page_token appears and the entries field is empty, it means that the search found no log entries so far but it did not have time to search all the possible log entries. Retry the method with this value for page_token to continue the search. Alternatively, consider speeding up the search by changing your filter to specify a single log name or resource type, or to narrow the time range of the search.", + "type": "string" + }, "entries": { "items": { "$ref": "LogEntry" }, "type": "array", "description": "A list of log entries. If entries is empty, nextPageToken may still be returned, indicating that more entries may exist. See nextPageToken for more information." - }, - "nextPageToken": { - "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.If a value for next_page_token appears and the entries field is empty, it means that the search found no log entries so far but it did not have time to search all the possible log entries. Retry the method with this value for page_token to continue the search. Alternatively, consider speeding up the search by changing your filter to specify a single log name or resource type, or to narrow the time range of the search.", - "type": "string" } }, "id": "ListLogEntriesResponse", @@ -2364,6 +2502,7 @@ "type": "object" }, "LogLine": { + "id": "LogLine", "description": "Application log line emitted while processing a request.", "type": "object", "properties": { @@ -2398,18 +2537,19 @@ ] }, "sourceLocation": { - "$ref": "SourceLocation", - "description": "Where in the source code this log message was written." + "description": "Where in the source code this log message was written.", + "$ref": "SourceLocation" }, "time": { "format": "google-datetime", "description": "Approximate time when this log entry was made.", "type": "string" } - }, - "id": "LogLine" + } }, "Linear": { + "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): offset + (width * i). Lower bound (1 \u003c= i \u003c N): offset + (width * (i - 1)).", + "type": "object", "properties": { "width": { "format": "double", @@ -2427,9 +2567,7 @@ "type": "integer" } }, - "id": "Linear", - "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): offset + (width * i). Lower bound (1 \u003c= i \u003c N): offset + (width * (i - 1)).", - "type": "object" + "id": "Linear" }, "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", @@ -2461,18 +2599,9 @@ "description": "The parameters to ListLogEntries.", "type": "object", "properties": { - "pageToken": { - "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.", - "type": "integer" - }, "orderBy": { - "type": "string", - "description": "Optional. How the results should be sorted. Presently, the only permitted values are \"timestamp asc\" (default) and \"timestamp desc\". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values." + "description": "Optional. How the results should be sorted. Presently, the only permitted values are \"timestamp asc\" (default) and \"timestamp desc\". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.", + "type": "string" }, "resourceNames": { "description": "Required. Names of one or more parent resources from which to retrieve log entries:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nProjects listed in the project_ids field are added to this list.", @@ -2481,21 +2610,31 @@ }, "type": "array" }, + "projectIds": { + "description": "Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: \"my-project-1A\". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.", + "items": { + "type": "string" + }, + "type": "array" + }, "filter": { "description": "Optional. A filter that chooses which log entries to return. See Advanced Logs 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 listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.", "type": "string" }, - "projectIds": { - "description": "Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: \"my-project-1A\". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.", - "items": { - "type": "string" - }, - "type": "array" + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.", + "type": "integer" } }, "id": "ListLogEntriesRequest" }, "Explicit": { + "description": "Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): boundsi Lower bound (1 \u003c= i \u003c N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.", "type": "object", "properties": { "bounds": { @@ -2507,23 +2646,22 @@ "type": "array" } }, - "id": "Explicit", - "description": "Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): boundsi Lower bound (1 \u003c= i \u003c N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets." + "id": "Explicit" }, "SourceReference": { - "description": "A reference to a particular snapshot of the source tree used to build and deploy an application.", - "type": "object", "properties": { "repository": { "description": "Optional. A URI string identifying the repository. Example: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"", "type": "string" }, "revisionId": { - "description": "The canonical and persistent identifier of the deployed revision. Example (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"", - "type": "string" + "type": "string", + "description": "The canonical and persistent identifier of the deployed revision. Example (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"" } }, - "id": "SourceReference" + "id": "SourceReference", + "description": "A reference to a particular snapshot of the source tree used to build and deploy an application.", + "type": "object" }, "WriteLogEntriesResponse": { "id": "WriteLogEntriesResponse", @@ -2532,43 +2670,31 @@ "properties": {} }, "Exponential": { + "id": "Exponential", "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): scale * (growth_factor ^ i). Lower bound (1 \u003c= i \u003c N): scale * (growth_factor ^ (i - 1)).", "type": "object", "properties": { - "growthFactor": { - "type": "number", - "format": "double", - "description": "Must be greater than 1." - }, - "scale": { - "format": "double", - "description": "Must be greater than 0.", - "type": "number" - }, "numFiniteBuckets": { "format": "int32", "description": "Must be greater than 0.", "type": "integer" + }, + "growthFactor": { + "format": "double", + "description": "Must be greater than 1.", + "type": "number" + }, + "scale": { + "type": "number", + "format": "double", + "description": "Must be greater than 0." } - }, - "id": "Exponential" + } }, "WriteLogEntriesRequest": { - "id": "WriteLogEntriesRequest", "description": "The parameters to WriteLogEntries.", "type": "object", "properties": { - "labels": { - "description": "Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "resource": { - "description": "Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:\n{ \"type\": \"gce_instance\",\n \"labels\": {\n \"zone\": \"us-central1-a\", \"instance_id\": \"00000000000000000000\" }}\nSee LogEntry.", - "$ref": "MonitoredResource" - }, "entries": { "description": "Required. The log entries to send to Stackdriver Logging. The order of log entries in this list does not matter. Values supplied in this method's log_name, resource, and labels fields are copied into those log entries in this list that do not include values for their corresponding fields. For more information, see the LogEntry type.If the timestamp or insert_id fields are missing in log entries, then this method supplies the current time or a unique identifier, respectively. The supplied values are chosen so that, among the log entries that did not supply their own values, the entries earlier in the list will sort before the entries later in the list. See the entries.list method.Log entries with timestamps that are more than the logs retention period in the past or more than 24 hours in the future might be discarded. Discarding does not return an error.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should try to include several log entries in this list, rather than calling this method for each individual log entry.", "items": { @@ -2583,12 +2709,22 @@ "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.", "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.", + "type": "object" + }, + "resource": { + "$ref": "MonitoredResource", + "description": "Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:\n{ \"type\": \"gce_instance\",\n \"labels\": {\n \"zone\": \"us-central1-a\", \"instance_id\": \"00000000000000000000\" }}\nSee LogEntry." } - } + }, + "id": "WriteLogEntriesRequest" }, "LabelDescriptor": { - "description": "A description of a label.", - "type": "object", "properties": { "key": { "description": "The label key.", @@ -2613,23 +2749,25 @@ ] } }, - "id": "LabelDescriptor" + "id": "LabelDescriptor", + "description": "A description of a label.", + "type": "object" }, "BucketOptions": { "description": "BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i \u003e 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.", "type": "object", "properties": { "exponentialBuckets": { - "description": "The exponential buckets.", - "$ref": "Exponential" + "$ref": "Exponential", + "description": "The exponential buckets." }, "explicitBuckets": { "$ref": "Explicit", "description": "The explicit buckets." }, "linearBuckets": { - "description": "The linear bucket.", - "$ref": "Linear" + "$ref": "Linear", + "description": "The linear bucket." } }, "id": "BucketOptions" @@ -2639,32 +2777,26 @@ "type": "object", "properties": { "metrics": { + "description": "A list of logs-based metrics.", "items": { "$ref": "LogMetric" }, - "type": "array", - "description": "A list of logs-based metrics." + "type": "array" }, "nextPageToken": { - "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", - "type": "string" + "type": "string", + "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken." } }, "id": "ListLogMetricsResponse" }, "MetricDescriptor": { + "id": "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.", "type": "object", "properties": { - "labels": { - "description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - }, "name": { - "description": "The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:\n\"projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount\"\n", + "description": "The resource name of the metric descriptor.", "type": "string" }, "type": { @@ -2672,8 +2804,6 @@ "type": "string" }, "valueType": { - "description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.", - "type": "string", "enumDescriptions": [ "Do not use this default value.", "The value is a boolean. This value type can be used only if the metric kind is GAUGE.", @@ -2691,9 +2821,12 @@ "STRING", "DISTRIBUTION", "MONEY" - ] + ], + "description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.", + "type": "string" }, "metricKind": { + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.", "type": "string", "enumDescriptions": [ "Do not use this default value.", @@ -2706,57 +2839,66 @@ "GAUGE", "DELTA", "CUMULATIVE" - ], - "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported." - }, - "displayName": { - "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".", - "type": "string" + ] }, "description": { "description": "A detailed description of the metric, which can be used in documentation.", "type": "string" }, + "displayName": { + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", + "type": "string" + }, "unit": { "description": "The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)\nbit bit\nBy byte\ns second\nmin minute\nh hour\nd dayPrefixes (PREFIX)\nk kilo (10**3)\nM mega (10**6)\nG giga (10**9)\nT tera (10**12)\nP peta (10**15)\nE exa (10**18)\nZ zetta (10**21)\nY yotta (10**24)\nm milli (10**-3)\nu micro (10**-6)\nn nano (10**-9)\np pico (10**-12)\nf femto (10**-15)\na atto (10**-18)\nz zepto (10**-21)\ny yocto (10**-24)\nKi kibi (2**10)\nMi mebi (2**20)\nGi gibi (2**30)\nTi tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:\n/ division (as an infix operator, e.g. 1/s).\n. multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:\nExpression = Component { \".\" Component } { \"/\" Component } ;\n\nComponent = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\nAnnotation = \"{\" NAME \"}\" ;\nNotes:\nAnnotation is just a comment if it follows a UNIT and is equivalent to 1 if it is used alone. For examples, {requests}/s == 1/s, By{transmitted}/s == By/s.\nNAME is a sequence of non-blank printable ASCII characters not containing '{' or '}'.", "type": "string" + }, + "labels": { + "items": { + "$ref": "LabelDescriptor" + }, + "type": "array", + "description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed." } - }, - "id": "MetricDescriptor" + } }, "LogEntry": { "description": "An individual entry in a log.", "type": "object", "properties": { + "sourceLocation": { + "$ref": "LogEntrySourceLocation", + "description": "Optional. Source code location information associated with the log entry, if any." + }, "receiveTimestamp": { "format": "google-datetime", "description": "Output only. The time the log entry was received by Stackdriver Logging.", "type": "string" }, "timestamp": { - "type": "string", "format": "google-datetime", - "description": "Optional. The time the event described by the log entry occurred. This time is used to compute the log entry's age and to enforce the logs retention period. If this field is omitted in a new log entry, then Stackdriver Logging assigns it the current time.Incoming log entries should have timestamps that are no more than the logs retention period in the past, and no more than 24 hours in the future. See the entries.write API method for more information." + "description": "Optional. The time the event described by the log entry occurred. This time is used to compute the log entry's age and to enforce the logs retention period. If this field is omitted in a new log entry, then Stackdriver Logging assigns it the current time.Incoming log entries should have timestamps that are no more than the logs retention period in the past, and no more than 24 hours in the future. See the entries.write API method for more information.", + "type": "string" }, "logName": { - "type": "string", - "description": "Required. The resource name of the log to which this log entry belongs:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\nA project number may optionally be used in place of PROJECT_ID. The project number is translated to its corresponding PROJECT_ID internally and the log_name field will contain PROJECT_ID in queries and exports.[LOG_ID] must be URL-encoded within log_name. Example: \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results." - }, - "httpRequest": { - "$ref": "HttpRequest", - "description": "Optional. Information about the HTTP request associated with this log entry, if applicable." + "description": "Required. The resource name of the log to which this log entry belongs:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\nA project number may optionally be used in place of PROJECT_ID. The project number is translated to its corresponding PROJECT_ID internally and the log_name field will contain PROJECT_ID in queries and exports.[LOG_ID] must be URL-encoded within log_name. Example: \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.", + "type": "string" }, "resource": { - "$ref": "MonitoredResource", - "description": "Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error." + "description": "Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.", + "$ref": "MonitoredResource" + }, + "httpRequest": { + "description": "Optional. Information about the HTTP request associated with this log entry, if applicable.", + "$ref": "HttpRequest" }, "jsonPayload": { - "description": "The log entry payload, represented as a structure that is expressed as a JSON object.", - "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "description": "The log entry payload, represented as a structure that is expressed as a JSON object.", + "type": "object" }, "insertId": { "description": "Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging assigns its own unique identifier. The insert_id is also used to order log entries that have the same timestamp value.", @@ -2783,15 +2925,13 @@ "type": "string" }, "labels": { - "description": "Optional. A set of user-defined (key, value) data that provides additional information about the log entry.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optional. A set of user-defined (key, value) data that provides additional information about the log entry.", + "type": "object" }, "severity": { - "description": "Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.", - "type": "string", "enumDescriptions": [ "(0) The log entry has no assigned severity level.", "(100) Debug or trace information.", @@ -2813,20 +2953,54 @@ "CRITICAL", "ALERT", "EMERGENCY" - ] - }, - "sourceLocation": { - "$ref": "LogEntrySourceLocation", - "description": "Optional. Source code location information associated with the log entry, if any." + ], + "description": "Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.", + "type": "string" } }, "id": "LogEntry" }, "RequestLog": { - "id": "RequestLog", "description": "Complete log information about a single HTTP request to an App Engine application.", "type": "object", "properties": { + "versionId": { + "description": "Version of the application that handled this request.", + "type": "string" + }, + "moduleId": { + "description": "Module of the application that handled this request.", + "type": "string" + }, + "endTime": { + "type": "string", + "format": "google-datetime", + "description": "Time when the request finished." + }, + "userAgent": { + "type": "string", + "description": "User agent that made the request." + }, + "wasLoadingRequest": { + "description": "Whether this was a loading request for the instance.", + "type": "boolean" + }, + "sourceReference": { + "description": "Source code for the application that handled this request. There can be more than one source reference per deployed application if source code is distributed among multiple repositories.", + "items": { + "$ref": "SourceReference" + }, + "type": "array" + }, + "responseSize": { + "format": "int64", + "description": "Size in bytes sent back to client by request.", + "type": "string" + }, + "traceId": { + "type": "string", + "description": "Stackdriver Trace identifier for this request." + }, "line": { "description": "A list of log lines emitted by the application while serving this request.", "items": { @@ -2839,8 +3013,8 @@ "type": "string" }, "referrer": { - "type": "string", - "description": "Referrer URL of request." + "description": "Referrer URL of request.", + "type": "string" }, "requestId": { "description": "Globally unique identifier for a request, which is based on the request start time. Request IDs for requests which started later will compare greater as strings than those for requests which started earlier.", @@ -2850,44 +3024,44 @@ "description": "The logged-in user who made the request.Most likely, this is the part of the user's email before the @ sign. The field value is the same for different requests from the same user, but different users can have similar names. This information is also available to the application via the App Engine Users API.This field will be populated starting with App Engine 1.9.21.", "type": "string" }, - "status": { - "format": "int32", - "description": "HTTP response status code. Example: 200, 404.", - "type": "integer" - }, - "resource": { - "type": "string", - "description": "Contains the path and query portion of the URL that was requested. For example, if the URL was \"http://example.com/app?name=val\", the resource would be \"/app?name=val\". The fragment identifier, which is identified by the # character, is not included." - }, "pendingTime": { "format": "google-duration", "description": "Time this request spent in the pending request queue.", "type": "string" }, + "resource": { + "description": "Contains the path and query portion of the URL that was requested. For example, if the URL was \"http://example.com/app?name=val\", the resource would be \"/app?name=val\". The fragment identifier, which is identified by the # character, is not included.", + "type": "string" + }, + "status": { + "format": "int32", + "description": "HTTP response status code. Example: 200, 404.", + "type": "integer" + }, "taskName": { "description": "Task name of the request, in the case of an offline request.", "type": "string" }, "urlMapEntry": { - "description": "File or class that handled the request.", - "type": "string" + "type": "string", + "description": "File or class that handled the request." }, "instanceIndex": { "format": "int32", "description": "If the instance processing this request belongs to a manually scaled module, then this is the 0-based index of the instance. Otherwise, this value is -1.", "type": "integer" }, - "finished": { - "description": "Whether this request is finished or active.", - "type": "boolean" - }, "host": { "description": "Internet host and port number of the resource being requested.", "type": "string" }, + "finished": { + "description": "Whether this request is finished or active.", + "type": "boolean" + }, "httpVersion": { - "description": "HTTP version of request. Example: \"HTTP/1.1\".", - "type": "string" + "type": "string", + "description": "HTTP version of request. Example: \"HTTP/1.1\"." }, "startTime": { "format": "google-datetime", @@ -2900,8 +3074,8 @@ "type": "string" }, "ip": { - "description": "Origin IP address.", - "type": "string" + "type": "string", + "description": "Origin IP address." }, "appId": { "description": "Application that handled this request.", @@ -2932,177 +3106,9 @@ "first": { "description": "Whether this is the first RequestLog entry for this request. If an active request has several RequestLog entries written to Stackdriver Logging, then this field will be set for one of them.", "type": "boolean" - }, - "versionId": { - "description": "Version of the application that handled this request.", - "type": "string" - }, - "moduleId": { - "description": "Module of the application that handled this request.", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time when the request finished.", - "type": "string" - }, - "userAgent": { - "description": "User agent that made the request.", - "type": "string" - }, - "wasLoadingRequest": { - "description": "Whether this was a loading request for the instance.", - "type": "boolean" - }, - "sourceReference": { - "description": "Source code for the application that handled this request. There can be more than one source reference per deployed application if source code is distributed among multiple repositories.", - "items": { - "$ref": "SourceReference" - }, - "type": "array" - }, - "responseSize": { - "format": "int64", - "description": "Size in bytes sent back to client by request.", - "type": "string" - }, - "traceId": { - "description": "Stackdriver Trace identifier for this request.", - "type": "string" - } - } - }, - "LogExclusion": { - "description": "Specifies a set of log entries that are not to be stored in Stackdriver Logging. If your project receives a large volume of logs, you might be able to use exclusions to reduce your chargeable logs. Exclusions are processed after log sinks, so you can export log entries before they are excluded. Audit log entries and log entries from Amazon Web Services are never excluded.", - "type": "object", - "properties": { - "disabled": { - "description": "Optional. If set to True, then this exclusion is disabled and it does not exclude any log entries. You can use exclusions.patch to change the value of this field.", - "type": "boolean" - }, - "filter": { - "type": "string", - "description": "Required. An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. For example, the following filter matches 99% of low-severity log entries from load balancers:\n\"resource.type=http_load_balancer severity\u003cERROR sample(insertId, 0.99)\"\n" - }, - "name": { - "description": "Required. A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", - "type": "string" - }, - "description": { - "description": "Optional. A description of this exclusion.", - "type": "string" } }, - "id": "LogExclusion" - }, - "ListMonitoredResourceDescriptorsResponse": { - "description": "Result returned from ListMonitoredResourceDescriptors.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", - "type": "string" - }, - "resourceDescriptors": { - "description": "A list of resource descriptors.", - "items": { - "$ref": "MonitoredResourceDescriptor" - }, - "type": "array" - } - }, - "id": "ListMonitoredResourceDescriptorsResponse" - }, - "ListExclusionsResponse": { - "properties": { - "nextPageToken": { - "description": "If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.", - "type": "string" - }, - "exclusions": { - "description": "A list of exclusions.", - "items": { - "$ref": "LogExclusion" - }, - "type": "array" - } - }, - "id": "ListExclusionsResponse", - "description": "Result returned from ListExclusions.", - "type": "object" - }, - "LogMetric": { - "properties": { - "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." - }, - "valueExtractor": { - "type": "string", - "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+).*\")" - }, - "name": { - "description": "Required. The client-assigned metric identifier. Examples: \"error_count\", \"nginx/requests\".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: \"projects/my-project/metrics/nginx%2Frequests\".", - "type": "string" - }, - "labelExtractors": { - "type": "object", - "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." - }, - "version": { - "enum": [ - "V2", - "V1" - ], - "description": "Deprecated. The API version that created or updated this metric. The v2 format is used by default and cannot be changed.", - "type": "string", - "enumDescriptions": [ - "Stackdriver Logging API v2.", - "Stackdriver Logging API v1." - ] - }, - "metricDescriptor": { - "description": "Optional. The metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of \"1\". Such a metric counts the number of log entries matching the filter expression.The name, type, and description fields in the metric_descriptor are output only, and is constructed using the name and description field in the LogMetric.To create a logs-based metric that records a distribution of log values, a DELTA metric kind with a DISTRIBUTION value type must be used along with a value_extractor expression in the LogMetric.Each label in the metric descriptor must have a matching label name as the key and an extractor expression as the value in the label_extractors map.The metric_kind and value_type fields in the metric_descriptor cannot be updated once initially configured. New labels can be added in the metric_descriptor, but existing labels cannot be modified except for their description.", - "$ref": "MetricDescriptor" - }, - "filter": { - "description": "Required. An advanced logs filter which is used to match log entries. Example:\n\"resource.type=gae_app AND severity\u003e=ERROR\"\nThe maximum length of the filter is 20000 characters.", - "type": "string" - }, - "description": { - "description": "Optional. A description of this metric, which is used in documentation.", - "type": "string" - } - }, - "id": "LogMetric", - "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 metric can also be used to extract values from logs and create a 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.", - "type": "object" - }, - "LogEntryOperation": { - "properties": { - "first": { - "description": "Optional. Set this to True if this is the first log entry in the operation.", - "type": "boolean" - }, - "producer": { - "description": "Optional. An arbitrary producer identifier. The combination of id and producer must be globally unique. Examples for producer: \"MyDivision.MyBigCompany.com\", \"github.com/MyProject/MyApplication\".", - "type": "string" - }, - "last": { - "type": "boolean", - "description": "Optional. Set this to True if this is the last log entry in the operation." - }, - "id": { - "description": "Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.", - "type": "string" - } - }, - "id": "LogEntryOperation", - "description": "Additional information about a potentially long-running operation with which a log entry is associated.", - "type": "object" + "id": "RequestLog" } }, "protocol": "rest", @@ -3132,11 +3138,5 @@ } } }, - "rootUrl": "https://logging.googleapis.com/", - "ownerDomain": "google.com", - "name": "logging", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Stackdriver Logging API", - "ownerName": "Google" + "rootUrl": "https://logging.googleapis.com/" } diff --git a/vendor/google.golang.org/api/logging/v2/logging-gen.go b/vendor/google.golang.org/api/logging/v2/logging-gen.go index 4d4da8be3..dc76b33d4 100644 --- a/vendor/google.golang.org/api/logging/v2/logging-gen.go +++ b/vendor/google.golang.org/api/logging/v2/logging-gen.go @@ -1528,7 +1528,9 @@ type MetricDescriptor struct { // DisplayName: A concise name for the metric, which can be displayed in // user interfaces. Use sentence case without an ending period, for - // example "Request count". + // example "Request count". This field is optional but it is recommended + // to be set for any metrics associated with user-visible concepts, such + // as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a specific @@ -1553,16 +1555,7 @@ type MetricDescriptor struct { // zero and sets a new start time for the following points. MetricKind string `json:"metricKind,omitempty"` - // Name: The resource name of the metric descriptor. Depending on the - // implementation, the name typically includes: (1) the parent resource - // name that defines the scope of the metric type or of its data; and - // (2) the metric's URL-encoded type, which also appears in the type - // field of this descriptor. For example, following is the resource name - // of a custom metric within the GCP project - // my-project-id: - // "projects/my-project-id/metricDescriptors/custom.google - // apis.com%2Finvoice%2Fpaid%2Famount" - // + // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is not diff --git a/vendor/google.golang.org/api/logging/v2beta1/logging-api.json b/vendor/google.golang.org/api/logging/v2beta1/logging-api.json index 0ed3a838c..9bf6a8f3d 100644 --- a/vendor/google.golang.org/api/logging/v2beta1/logging-api.json +++ b/vendor/google.golang.org/api/logging/v2beta1/logging-api.json @@ -1,64 +1,24 @@ { - "version": "v2beta1", "baseUrl": "https://logging.googleapis.com/", "servicePath": "", "description": "Writes log entries and manages your Stackdriver Logging configuration.", "kind": "discovery#restDescription", "basePath": "", - "documentationLink": "https://cloud.google.com/logging/docs/", "id": "logging:v2beta1", - "revision": "20170926", + "documentationLink": "https://cloud.google.com/logging/docs/", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { - "WriteLogEntriesRequest": { - "description": "The parameters to WriteLogEntries.", - "type": "object", - "properties": { - "entries": { - "description": "Required. The log entries to send to Stackdriver Logging. The order of log entries in this list does not matter. Values supplied in this method's log_name, resource, and labels fields are copied into those log entries in this list that do not include values for their corresponding fields. For more information, see the LogEntry type.If the timestamp or insert_id fields are missing in log entries, then this method supplies the current time or a unique identifier, respectively. The supplied values are chosen so that, among the log entries that did not supply their own values, the entries earlier in the list will sort before the entries later in the list. See the entries.list method.Log entries with timestamps that are more than the logs retention period in the past or more than 24 hours in the future might be discarded. Discarding does not return an error.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should try to include several log entries in this list, rather than calling this method for each individual log entry.", - "items": { - "$ref": "LogEntry" - }, - "type": "array" - }, - "logName": { - "description": "Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\" or \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", - "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.", - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.", - "type": "object" - }, - "resource": { - "$ref": "MonitoredResource", - "description": "Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:\n{ \"type\": \"gce_instance\",\n \"labels\": {\n \"zone\": \"us-central1-a\", \"instance_id\": \"00000000000000000000\" }}\nSee LogEntry." - } - }, - "id": "WriteLogEntriesRequest" - }, "LabelDescriptor": { "description": "A description of a label.", "type": "object", "properties": { - "key": { - "description": "The label key.", - "type": "string" - }, "description": { - "description": "A human-readable description for the label.", - "type": "string" + "type": "string", + "description": "A human-readable description for the label." }, "valueType": { - "description": "The type of data that can be assigned to the label.", - "type": "string", "enumDescriptions": [ "A variable-length string. This is the default.", "Boolean; true or false.", @@ -68,7 +28,13 @@ "STRING", "BOOL", "INT64" - ] + ], + "description": "The type of data that can be assigned to the label.", + "type": "string" + }, + "key": { + "description": "The label key.", + "type": "string" } }, "id": "LabelDescriptor" @@ -77,6 +43,10 @@ "description": "BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i \u003e 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.", "type": "object", "properties": { + "exponentialBuckets": { + "$ref": "Exponential", + "description": "The exponential buckets." + }, "explicitBuckets": { "$ref": "Explicit", "description": "The explicit buckets." @@ -84,10 +54,6 @@ "linearBuckets": { "$ref": "Linear", "description": "The linear bucket." - }, - "exponentialBuckets": { - "$ref": "Exponential", - "description": "The exponential buckets." } }, "id": "BucketOptions" @@ -111,16 +77,17 @@ "id": "ListLogMetricsResponse" }, "MetricDescriptor": { + "id": "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.", "type": "object", "properties": { "name": { - "description": "The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:\n\"projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount\"\n", + "description": "The resource name of the metric descriptor.", "type": "string" }, "type": { - "type": "string", - "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:\n\"custom.googleapis.com/invoice/paid/amount\"\n\"appengine.googleapis.com/http/server/response_latencies\"\n" + "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:\n\"custom.googleapis.com/invoice/paid/amount\"\n\"appengine.googleapis.com/http/server/response_latencies\"\n", + "type": "string" }, "valueType": { "enumDescriptions": [ @@ -145,6 +112,7 @@ "type": "string" }, "metricKind": { + "type": "string", "enumDescriptions": [ "Do not use this default value.", "An instantaneous measurement of a value.", @@ -157,17 +125,16 @@ "DELTA", "CUMULATIVE" ], - "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.", - "type": "string" - }, - "displayName": { - "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".", - "type": "string" + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported." }, "description": { "description": "A detailed description of the metric, which can be used in documentation.", "type": "string" }, + "displayName": { + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", + "type": "string" + }, "unit": { "description": "The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)\nbit bit\nBy byte\ns second\nmin minute\nh hour\nd dayPrefixes (PREFIX)\nk kilo (10**3)\nM mega (10**6)\nG giga (10**9)\nT tera (10**12)\nP peta (10**15)\nE exa (10**18)\nZ zetta (10**21)\nY yotta (10**24)\nm milli (10**-3)\nu micro (10**-6)\nn nano (10**-9)\np pico (10**-12)\nf femto (10**-15)\na atto (10**-18)\nz zepto (10**-21)\ny yocto (10**-24)\nKi kibi (2**10)\nMi mebi (2**20)\nGi gibi (2**30)\nTi tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:\n/ division (as an infix operator, e.g. 1/s).\n. multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:\nExpression = Component { \".\" Component } { \"/\" Component } ;\n\nComponent = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\nAnnotation = \"{\" NAME \"}\" ;\nNotes:\nAnnotation is just a comment if it follows a UNIT and is equivalent to 1 if it is used alone. For examples, {requests}/s == 1/s, By{transmitted}/s == By/s.\nNAME is a sequence of non-blank printable ASCII characters not containing '{' or '}'.", "type": "string" @@ -179,11 +146,9 @@ }, "type": "array" } - }, - "id": "MetricDescriptor" + } }, "LogEntry": { - "id": "LogEntry", "description": "An individual entry in a log.", "type": "object", "properties": { @@ -191,13 +156,13 @@ "description": "Required. The resource name of the log to which this log entry belongs:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\nA project number may optionally be used in place of PROJECT_ID. The project number is translated to its corresponding PROJECT_ID internally and the log_name field will contain PROJECT_ID in queries and exports.[LOG_ID] must be URL-encoded within log_name. Example: \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.", "type": "string" }, - "httpRequest": { - "$ref": "HttpRequest", - "description": "Optional. Information about the HTTP request associated with this log entry, if applicable." - }, "resource": { - "description": "Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.", - "$ref": "MonitoredResource" + "$ref": "MonitoredResource", + "description": "Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error." + }, + "httpRequest": { + "description": "Optional. Information about the HTTP request associated with this log entry, if applicable.", + "$ref": "HttpRequest" }, "jsonPayload": { "description": "The log entry payload, represented as a structure that is expressed as a JSON object.", @@ -207,40 +172,38 @@ "type": "any" } }, - "operation": { - "$ref": "LogEntryOperation", - "description": "Optional. Information about an operation associated with the log entry, if applicable." - }, "insertId": { "description": "Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging assigns its own unique identifier. The insert_id is also used to order log entries that have the same timestamp value.", "type": "string" }, + "operation": { + "description": "Optional. Information about an operation associated with the log entry, if applicable.", + "$ref": "LogEntryOperation" + }, "textPayload": { "description": "The log entry payload, represented as a Unicode string (UTF-8).", "type": "string" }, "protoPayload": { - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads." + "description": "The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.", + "type": "object" }, "labels": { - "description": "Optional. A set of user-defined (key, value) data that provides additional information about the log entry.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Optional. A set of user-defined (key, value) data that provides additional information about the log entry.", + "type": "object" }, "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", "type": "string" }, "severity": { - "description": "Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.", - "type": "string", "enumDescriptions": [ "(0) The log entry has no assigned severity level.", "(100) Debug or trace information.", @@ -262,32 +225,87 @@ "CRITICAL", "ALERT", "EMERGENCY" - ] + ], + "description": "Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.", + "type": "string" }, "sourceLocation": { - "description": "Optional. Source code location information associated with the log entry, if any.", - "$ref": "LogEntrySourceLocation" + "$ref": "LogEntrySourceLocation", + "description": "Optional. Source code location information associated with the log entry, if any." + }, + "receiveTimestamp": { + "format": "google-datetime", + "description": "Output only. The time the log entry was received by Stackdriver Logging.", + "type": "string" }, "timestamp": { "format": "google-datetime", "description": "Optional. The time the event described by the log entry occurred. This time is used to compute the log entry's age and to enforce the logs retention period. If this field is omitted in a new log entry, then Stackdriver Logging assigns it the current time.Incoming log entries should have timestamps that are no more than the logs retention period in the past, and no more than 24 hours in the future. See the entries.write API method for more information.", "type": "string" - }, - "receiveTimestamp": { - "type": "string", - "format": "google-datetime", - "description": "Output only. The time the log entry was received by Stackdriver Logging." } - } + }, + "id": "LogEntry" }, "RequestLog": { "description": "Complete log information about a single HTTP request to an App Engine application.", "type": "object", "properties": { - "requestId": { - "description": "Globally unique identifier for a request, which is based on the request start time. Request IDs for requests which started later will compare greater as strings than those for requests which started earlier.", + "versionId": { + "description": "Version of the application that handled this request.", "type": "string" }, + "moduleId": { + "description": "Module of the application that handled this request.", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Time when the request finished.", + "type": "string" + }, + "userAgent": { + "description": "User agent that made the request.", + "type": "string" + }, + "wasLoadingRequest": { + "description": "Whether this was a loading request for the instance.", + "type": "boolean" + }, + "sourceReference": { + "description": "Source code for the application that handled this request. There can be more than one source reference per deployed application if source code is distributed among multiple repositories.", + "items": { + "$ref": "SourceReference" + }, + "type": "array" + }, + "responseSize": { + "format": "int64", + "description": "Size in bytes sent back to client by request.", + "type": "string" + }, + "traceId": { + "description": "Stackdriver Trace identifier for this request.", + "type": "string" + }, + "line": { + "description": "A list of log lines emitted by the application while serving this request.", + "items": { + "$ref": "LogLine" + }, + "type": "array" + }, + "taskQueueName": { + "description": "Queue name of the request, in the case of an offline request.", + "type": "string" + }, + "referrer": { + "type": "string", + "description": "Referrer URL of request." + }, + "requestId": { + "type": "string", + "description": "Globally unique identifier for a request, which is based on the request start time. Request IDs for requests which started later will compare greater as strings than those for requests which started earlier." + }, "nickname": { "description": "The logged-in user who made the request.Most likely, this is the part of the user's email before the @ sign. The field value is the same for different requests from the same user, but different users can have similar names. This information is also available to the application via the App Engine Users API.This field will be populated starting with App Engine 1.9.21.", "type": "string" @@ -297,15 +315,15 @@ "description": "HTTP response status code. Example: 200, 404.", "type": "integer" }, + "resource": { + "description": "Contains the path and query portion of the URL that was requested. For example, if the URL was \"http://example.com/app?name=val\", the resource would be \"/app?name=val\". The fragment identifier, which is identified by the # character, is not included.", + "type": "string" + }, "pendingTime": { "format": "google-duration", "description": "Time this request spent in the pending request queue.", "type": "string" }, - "resource": { - "type": "string", - "description": "Contains the path and query portion of the URL that was requested. For example, if the URL was \"http://example.com/app?name=val\", the resource would be \"/app?name=val\". The fragment identifier, which is identified by the # character, is not included." - }, "taskName": { "description": "Task name of the request, in the case of an offline request.", "type": "string" @@ -337,9 +355,9 @@ "type": "string" }, "latency": { - "type": "string", "format": "google-duration", - "description": "Latency of the request." + "description": "Latency of the request.", + "type": "string" }, "ip": { "description": "Origin IP address.", @@ -363,8 +381,8 @@ "type": "number" }, "instanceId": { - "type": "string", - "description": "An identifier for the instance that handled the request." + "description": "An identifier for the instance that handled the request.", + "type": "string" }, "megaCycles": { "format": "int64", @@ -374,137 +392,35 @@ "first": { "description": "Whether this is the first RequestLog entry for this request. If an active request has several RequestLog entries written to Stackdriver Logging, then this field will be set for one of them.", "type": "boolean" - }, - "versionId": { - "type": "string", - "description": "Version of the application that handled this request." - }, - "moduleId": { - "description": "Module of the application that handled this request.", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Time when the request finished.", - "type": "string" - }, - "userAgent": { - "description": "User agent that made the request.", - "type": "string" - }, - "wasLoadingRequest": { - "description": "Whether this was a loading request for the instance.", - "type": "boolean" - }, - "sourceReference": { - "items": { - "$ref": "SourceReference" - }, - "type": "array", - "description": "Source code for the application that handled this request. There can be more than one source reference per deployed application if source code is distributed among multiple repositories." - }, - "responseSize": { - "format": "int64", - "description": "Size in bytes sent back to client by request.", - "type": "string" - }, - "traceId": { - "description": "Stackdriver Trace identifier for this request.", - "type": "string" - }, - "line": { - "description": "A list of log lines emitted by the application while serving this request.", - "items": { - "$ref": "LogLine" - }, - "type": "array" - }, - "referrer": { - "description": "Referrer URL of request.", - "type": "string" - }, - "taskQueueName": { - "description": "Queue name of the request, in the case of an offline request.", - "type": "string" } }, "id": "RequestLog" }, "ListMonitoredResourceDescriptorsResponse": { - "id": "ListMonitoredResourceDescriptorsResponse", "description": "Result returned from ListMonitoredResourceDescriptors.", "type": "object", "properties": { - "nextPageToken": { - "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", - "type": "string" - }, "resourceDescriptors": { "items": { "$ref": "MonitoredResourceDescriptor" }, "type": "array", "description": "A list of resource descriptors." - } - } - }, - "LogMetric": { - "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 metric can also be used to extract values from logs and create a 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.", - "type": "object", - "properties": { - "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+).*\")", - "type": "string" }, - "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.", - "$ref": "BucketOptions" - }, - "name": { - "description": "Required. The client-assigned metric identifier. Examples: \"error_count\", \"nginx/requests\".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: \"projects/my-project/metrics/nginx%2Frequests\".", - "type": "string" - }, - "labelExtractors": { - "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.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "metricDescriptor": { - "description": "Optional. The metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of \"1\". Such a metric counts the number of log entries matching the filter expression.The name, type, and description fields in the metric_descriptor are output only, and is constructed using the name and description field in the LogMetric.To create a logs-based metric that records a distribution of log values, a DELTA metric kind with a DISTRIBUTION value type must be used along with a value_extractor expression in the LogMetric.Each label in the metric descriptor must have a matching label name as the key and an extractor expression as the value in the label_extractors map.The metric_kind and value_type fields in the metric_descriptor cannot be updated once initially configured. New labels can be added in the metric_descriptor, but existing labels cannot be modified except for their description.", - "$ref": "MetricDescriptor" - }, - "version": { - "type": "string", - "enumDescriptions": [ - "Stackdriver Logging API v2.", - "Stackdriver Logging API v1." - ], - "enum": [ - "V2", - "V1" - ], - "description": "Deprecated. The API version that created or updated this metric. The v2 format is used by default and cannot be changed." - }, - "filter": { - "description": "Required. An advanced logs filter which is used to match log entries. Example:\n\"resource.type=gae_app AND severity\u003e=ERROR\"\nThe maximum length of the filter is 20000 characters.", - "type": "string" - }, - "description": { - "description": "Optional. A description of this metric, which is used in documentation.", + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", "type": "string" } }, - "id": "LogMetric" + "id": "ListMonitoredResourceDescriptorsResponse" }, "LogEntryOperation": { "description": "Additional information about a potentially long-running operation with which a log entry is associated.", "type": "object", "properties": { "last": { - "type": "boolean", - "description": "Optional. Set this to True if this is the last log entry in the operation." + "description": "Optional. Set this to True if this is the last log entry in the operation.", + "type": "boolean" }, "id": { "description": "Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.", @@ -521,41 +437,76 @@ }, "id": "LogEntryOperation" }, - "MonitoredResource": { + "LogMetric": { + "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 metric can also be used to extract values from logs and create a 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.", "type": "object", "properties": { + "name": { + "description": "Required. The client-assigned metric identifier. Examples: \"error_count\", \"nginx/requests\".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: \"projects/my-project/metrics/nginx%2Frequests\".", + "type": "string" + }, + "labelExtractors": { + "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.", + "type": "object" + }, + "metricDescriptor": { + "description": "Optional. The metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of \"1\". Such a metric counts the number of log entries matching the filter expression.The name, type, and description fields in the metric_descriptor are output only, and is constructed using the name and description field in the LogMetric.To create a logs-based metric that records a distribution of log values, a DELTA metric kind with a DISTRIBUTION value type must be used along with a value_extractor expression in the LogMetric.Each label in the metric descriptor must have a matching label name as the key and an extractor expression as the value in the label_extractors map.The metric_kind and value_type fields in the metric_descriptor cannot be updated once initially configured. New labels can be added in the metric_descriptor, but existing labels cannot be modified except for their description.", + "$ref": "MetricDescriptor" + }, + "version": { + "enumDescriptions": [ + "Stackdriver Logging API v2.", + "Stackdriver Logging API v1." + ], + "enum": [ + "V2", + "V1" + ], + "description": "Deprecated. The API version that created or updated this metric. The v2 format is used by default and cannot be changed.", + "type": "string" + }, + "filter": { + "description": "Required. An advanced logs filter which is used to match log entries. Example:\n\"resource.type=gae_app AND severity\u003e=ERROR\"\nThe maximum length of the filter is 20000 characters.", + "type": "string" + }, + "description": { + "description": "Optional. A description of this metric, which is used in documentation.", + "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+).*\")", + "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." + } + }, + "id": "LogMetric" + }, + "MonitoredResource": { + "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"instance_id\" and \"zone\":\n{ \"type\": \"gce_instance\",\n \"labels\": { \"instance_id\": \"12345678901234\",\n \"zone\": \"us-central1-a\" }}\n", + "type": "object", + "properties": { + "type": { + "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", + "type": "string" + }, "labels": { "description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", "type": "object", "additionalProperties": { "type": "string" } - }, - "type": { - "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", - "type": "string" } }, - "id": "MonitoredResource", - "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"instance_id\" and \"zone\":\n{ \"type\": \"gce_instance\",\n \"labels\": { \"instance_id\": \"12345678901234\",\n \"zone\": \"us-central1-a\" }}\n" + "id": "MonitoredResource" }, "LogSink": { - "description": "Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.", - "type": "object", "properties": { - "filter": { - "description": "Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. For example:\nlogName=\"projects/[PROJECT_ID]/logs/[LOG_ID]\" AND severity\u003e=ERROR\n", - "type": "string" - }, - "destination": { - "description": "Required. The export destination:\n\"storage.googleapis.com/[GCS_BUCKET]\"\n\"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"\n\"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\"\nThe sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs With Sinks.", - "type": "string" - }, - "endTime": { - "format": "google-datetime", - "description": "Deprecated. This field is ignored when creating or updating sinks.", - "type": "string" - }, "writerIdentity": { "description": "Output only. An IAM identity—a service account or group—under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting 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. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.", "type": "string" @@ -586,27 +537,42 @@ "includeChildren": { "description": "Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:\nlogName:(\"projects/test-project1/\" OR \"projects/test-project2/\") AND\nresource.type=gce_instance\n", "type": "boolean" - } - }, - "id": "LogSink" - }, - "ListLogsResponse": { - "description": "Result returned from ListLogs.", - "type": "object", - "properties": { - "logNames": { - "description": "A list of log names. For example, \"projects/my-project/syslog\" or \"organizations/123/cloudresourcemanager.googleapis.com%2Factivity\".", - "items": { - "type": "string" - }, - "type": "array" }, - "nextPageToken": { - "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", + "filter": { + "description": "Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. For example:\nlogName=\"projects/[PROJECT_ID]/logs/[LOG_ID]\" AND severity\u003e=ERROR\n", + "type": "string" + }, + "destination": { + "description": "Required. The export destination:\n\"storage.googleapis.com/[GCS_BUCKET]\"\n\"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"\n\"pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]\"\nThe sink's writer_identity, set when the sink is created, must have permission to write to the destination or else the log entries are not exported. For more information, see Exporting Logs With Sinks.", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "Deprecated. This field is ignored when creating or updating sinks.", "type": "string" } }, - "id": "ListLogsResponse" + "id": "LogSink", + "description": "Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.", + "type": "object" + }, + "ListLogsResponse": { + "properties": { + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.", + "type": "string" + }, + "logNames": { + "items": { + "type": "string" + }, + "type": "array", + "description": "A list of log names. For example, \"projects/my-project/syslog\" or \"organizations/123/cloudresourcemanager.googleapis.com%2Factivity\"." + } + }, + "id": "ListLogsResponse", + "description": "Result returned from ListLogs.", + "type": "object" }, "ListSinksResponse": { "description": "Result returned from ListSinks.", @@ -627,9 +593,17 @@ "id": "ListSinksResponse" }, "HttpRequest": { - "description": "A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message.", "type": "object", "properties": { + "userAgent": { + "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\".", + "type": "string" + }, + "latency": { + "type": "string", + "format": "google-duration", + "description": "The request processing latency on the server, from the time the request was received until the response was sent." + }, "cacheFillBytes": { "format": "int64", "description": "The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.", @@ -644,15 +618,15 @@ "description": "The size of the HTTP request message in bytes, including the request headers and the request body.", "type": "string" }, - "protocol": { - "type": "string", - "description": "Protocol used for the request. Examples: \"HTTP/1.1\", \"HTTP/2\", \"websocket\"" - }, "responseSize": { "format": "int64", "description": "The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.", "type": "string" }, + "protocol": { + "description": "Protocol used for the request. Examples: \"HTTP/1.1\", \"HTTP/2\", \"websocket\"", + "type": "string" + }, "requestUrl": { "description": "The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: \"http://example.com/some/info?color=red\".", "type": "string" @@ -666,8 +640,8 @@ "type": "string" }, "cacheLookup": { - "type": "boolean", - "description": "Whether or not a cache lookup was attempted." + "description": "Whether or not a cache lookup was attempted.", + "type": "boolean" }, "cacheHit": { "description": "Whether or not an entity was served from cache (with or without validation).", @@ -678,59 +652,49 @@ "type": "boolean" }, "status": { + "type": "integer", "format": "int32", - "description": "The response code indicating the status of response. Examples: 200, 404.", - "type": "integer" + "description": "The response code indicating the status of response. Examples: 200, 404." }, "referer": { "description": "The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).", "type": "string" - }, - "latency": { - "format": "google-duration", - "description": "The request processing latency on the server, from the time the request was received until the response was sent.", - "type": "string" - }, - "userAgent": { - "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\".", - "type": "string" } }, - "id": "HttpRequest" + "id": "HttpRequest", + "description": "A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message." }, "MonitoredResourceDescriptor": { "type": "object", "properties": { - "type": { - "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.", + "name": { + "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", "type": "string" }, + "description": { + "description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", + "type": "string" + }, + "displayName": { + "description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, \"Google Cloud SQL Database\".", + "type": "string" + }, + "type": { + "type": "string", + "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters." + }, "labels": { "description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels \"database_id\" and \"zone\".", "items": { "$ref": "LabelDescriptor" }, "type": "array" - }, - "name": { - "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", - "type": "string" - }, - "description": { - "type": "string", - "description": "Optional. A detailed description of the monitored resource type that might be used in documentation." - }, - "displayName": { - "description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, \"Google Cloud SQL Database\".", - "type": "string" } }, "id": "MonitoredResourceDescriptor", "description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of \"gce_instance\" and specifies the use of the labels \"instance_id\" and \"zone\" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API." }, "LogEntrySourceLocation": { - "id": "LogEntrySourceLocation", - "description": "Additional information about the source code location that produced the log entry.", "type": "object", "properties": { "file": { @@ -742,11 +706,13 @@ "type": "string" }, "line": { - "type": "string", "format": "int64", - "description": "Optional. Line within the source file. 1-based; 0 indicates no line number available." + "description": "Optional. Line within the source file. 1-based; 0 indicates no line number available.", + "type": "string" } - } + }, + "id": "LogEntrySourceLocation", + "description": "Additional information about the source code location that produced the log entry." }, "ListLogEntriesResponse": { "properties": { @@ -767,6 +733,7 @@ "type": "object" }, "LogLine": { + "id": "LogLine", "description": "Application log line emitted while processing a request.", "type": "object", "properties": { @@ -805,31 +772,30 @@ "description": "Where in the source code this log message was written." }, "time": { - "type": "string", "format": "google-datetime", - "description": "Approximate time when this log entry was made." + "description": "Approximate time when this log entry was made.", + "type": "string" } - }, - "id": "LogLine" + } }, "Linear": { "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): offset + (width * i). Lower bound (1 \u003c= i \u003c N): offset + (width * (i - 1)).", "type": "object", "properties": { - "numFiniteBuckets": { - "format": "int32", - "description": "Must be greater than 0.", - "type": "integer" - }, "width": { - "type": "number", "format": "double", - "description": "Must be greater than 0." + "description": "Must be greater than 0.", + "type": "number" }, "offset": { "format": "double", "description": "Lower bound of the first bucket.", "type": "number" + }, + "numFiniteBuckets": { + "format": "int32", + "description": "Must be greater than 0.", + "type": "integer" } }, "id": "Linear" @@ -845,12 +811,12 @@ "type": "object", "properties": { "file": { - "type": "string", - "description": "Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name." + "description": "Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.", + "type": "string" }, "functionName": { - "description": "Human-readable name of the function or method being invoked, with optional context such as the class or package name. This information is used in contexts such as the logs viewer, where a file and line number are less meaningful. The format can vary by language. For example: qual.if.ied.Class.method (Java), dir/package.func (Go), function (Python).", - "type": "string" + "type": "string", + "description": "Human-readable name of the function or method being invoked, with optional context such as the class or package name. This information is used in contexts such as the logs viewer, where a file and line number are less meaningful. The format can vary by language. For example: qual.if.ied.Class.method (Java), dir/package.func (Go), function (Python)." }, "line": { "format": "int64", @@ -861,7 +827,17 @@ "id": "SourceLocation" }, "ListLogEntriesRequest": { + "type": "object", "properties": { + "pageToken": { + "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.", + "type": "integer" + }, "orderBy": { "description": "Optional. How the results should be sorted. Presently, the only permitted values are \"timestamp asc\" (default) and \"timestamp desc\". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.", "type": "string" @@ -881,63 +857,58 @@ "type": "array" }, "filter": { - "description": "Optional. A filter that chooses which log entries to return. See Advanced Logs 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 listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.", - "type": "string" - }, - "pageToken": { - "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.", - "type": "integer" + "type": "string", + "description": "Optional. A filter that chooses which log entries to return. See Advanced Logs 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 listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters." } }, "id": "ListLogEntriesRequest", - "description": "The parameters to ListLogEntries.", - "type": "object" + "description": "The parameters to ListLogEntries." }, "Explicit": { - "description": "Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): boundsi Lower bound (1 \u003c= i \u003c N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.", "type": "object", "properties": { "bounds": { + "description": "The values must be monotonically increasing.", "items": { "format": "double", "type": "number" }, - "type": "array", - "description": "The values must be monotonically increasing." + "type": "array" } }, - "id": "Explicit" + "id": "Explicit", + "description": "Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): boundsi Lower bound (1 \u003c= i \u003c N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets." }, "SourceReference": { "description": "A reference to a particular snapshot of the source tree used to build and deploy an application.", "type": "object", "properties": { + "repository": { + "description": "Optional. A URI string identifying the repository. Example: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"", + "type": "string" + }, "revisionId": { "description": "The canonical and persistent identifier of the deployed revision. Example (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"", "type": "string" - }, - "repository": { - "type": "string", - "description": "Optional. A URI string identifying the repository. Example: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"" } }, "id": "SourceReference" }, "WriteLogEntriesResponse": { - "id": "WriteLogEntriesResponse", "description": "Result returned from WriteLogEntries. empty", "type": "object", - "properties": {} + "properties": {}, + "id": "WriteLogEntriesResponse" }, "Exponential": { "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): scale * (growth_factor ^ i). Lower bound (1 \u003c= i \u003c N): scale * (growth_factor ^ (i - 1)).", "type": "object", "properties": { + "scale": { + "type": "number", + "format": "double", + "description": "Must be greater than 0." + }, "numFiniteBuckets": { "format": "int32", "description": "Must be greater than 0.", @@ -947,14 +918,42 @@ "format": "double", "description": "Must be greater than 1.", "type": "number" - }, - "scale": { - "format": "double", - "description": "Must be greater than 0.", - "type": "number" } }, "id": "Exponential" + }, + "WriteLogEntriesRequest": { + "description": "The parameters to WriteLogEntries.", + "type": "object", + "properties": { + "entries": { + "description": "Required. The log entries to send to Stackdriver Logging. The order of log entries in this list does not matter. Values supplied in this method's log_name, resource, and labels fields are copied into those log entries in this list that do not include values for their corresponding fields. For more information, see the LogEntry type.If the timestamp or insert_id fields are missing in log entries, then this method supplies the current time or a unique identifier, respectively. The supplied values are chosen so that, among the log entries that did not supply their own values, the entries earlier in the list will sort before the entries later in the list. See the entries.list method.Log entries with timestamps that are more than the logs retention period in the past or more than 24 hours in the future might be discarded. Discarding does not return an error.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should try to include several log entries in this list, rather than calling this method for each individual log entry.", + "items": { + "$ref": "LogEntry" + }, + "type": "array" + }, + "logName": { + "description": "Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\" or \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", + "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.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.", + "type": "object" + }, + "resource": { + "description": "Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:\n{ \"type\": \"gce_instance\",\n \"labels\": {\n \"zone\": \"us-central1-a\", \"instance_id\": \"00000000000000000000\" }}\nSee LogEntry.", + "$ref": "MonitoredResource" + } + }, + "id": "WriteLogEntriesRequest" } }, "icons": { @@ -992,87 +991,18 @@ "title": "Stackdriver Logging API", "ownerName": "Google", "resources": { - "billingAccounts": { - "resources": { - "logs": { - "methods": { - "list": { - "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", - "response": { - "$ref": "ListLogsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "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.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+$" - } - }, - "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" - ], - "flatPath": "v2beta1/billingAccounts/{billingAccountsId}/logs", - "id": "logging.billingAccounts.logs.list", - "path": "v2beta1/{+parent}/logs" - }, - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "logName" - ], - "parameters": { - "logName": { - "location": "path", - "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", - "type": "string", - "required": true, - "pattern": "^billingAccounts/[^/]+/logs/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2beta1/billingAccounts/{billingAccountsId}/logs/{logsId}", - "path": "v2beta1/{+logName}", - "id": "logging.billingAccounts.logs.delete", - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted." - } - } - } - } - }, "monitoredResourceDescriptors": { "methods": { "list": { - "httpMethod": "GET", - "parameterOrder": [], + "flatPath": "v2beta1/monitoredResourceDescriptors", + "id": "logging.monitoredResourceDescriptors.list", + "path": "v2beta1/monitoredResourceDescriptors", + "description": "Lists the descriptors for monitored resource types used by Stackdriver Logging.", "response": { "$ref": "ListMonitoredResourceDescriptorsResponse" }, + "parameterOrder": [], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only", @@ -1081,21 +1011,17 @@ ], "parameters": { "pageToken": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "pageSize": { + "location": "query", "format": "int32", "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.", - "type": "integer", - "location": "query" + "type": "integer" } - }, - "flatPath": "v2beta1/monitoredResourceDescriptors", - "path": "v2beta1/monitoredResourceDescriptors", - "id": "logging.monitoredResourceDescriptors.list", - "description": "Lists the descriptors for monitored resource types used by Stackdriver Logging." + } } } }, @@ -1104,13 +1030,13 @@ "logs": { "methods": { "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "logName" - ], "response": { "$ref": "Empty" }, + "parameterOrder": [ + "logName" + ], + "httpMethod": "DELETE", "parameters": { "logName": { "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", @@ -1125,48 +1051,48 @@ "https://www.googleapis.com/auth/logging.admin" ], "flatPath": "v2beta1/organizations/{organizationsId}/logs/{logsId}", - "path": "v2beta1/{+logName}", "id": "logging.organizations.logs.delete", + "path": "v2beta1/{+logName}", "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted." }, "list": { - "flatPath": "v2beta1/organizations/{organizationsId}/logs", - "path": "v2beta1/{+parent}/logs", "id": "logging.organizations.logs.list", + "path": "v2beta1/{+parent}/logs", "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], "response": { "$ref": "ListLogsResponse" }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "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" + ], "parameters": { - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "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.", - "type": "integer" - }, "parent": { "location": "path", "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", "type": "string", "required": true, "pattern": "^organizations/[^/]+$" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" } }, - "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" - ] + "flatPath": "v2beta1/organizations/{organizationsId}/logs" } } } @@ -1174,35 +1100,7 @@ }, "entries": { "methods": { - "list": { - "response": { - "$ref": "ListLogEntriesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "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" - ], - "parameters": {}, - "flatPath": "v2beta1/entries:list", - "id": "logging.entries.list", - "path": "v2beta1/entries:list", - "request": { - "$ref": "ListLogEntriesRequest" - }, - "description": "Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs." - }, "write": { - "flatPath": "v2beta1/entries:write", - "id": "logging.entries.write", - "path": "v2beta1/entries:write", - "request": { - "$ref": "WriteLogEntriesRequest" - }, - "description": "Log entry resourcesWrites log entries to Stackdriver Logging. This API method is the only way to send log entries to Stackdriver Logging. This method is used, directly or indirectly, by the Stackdriver Logging agent (fluentd) and all logging libraries configured to use Stackdriver Logging.", "response": { "$ref": "WriteLogEntriesResponse" }, @@ -1213,15 +1111,230 @@ "https://www.googleapis.com/auth/logging.admin", "https://www.googleapis.com/auth/logging.write" ], - "parameters": {} + "parameters": {}, + "flatPath": "v2beta1/entries:write", + "id": "logging.entries.write", + "path": "v2beta1/entries:write", + "request": { + "$ref": "WriteLogEntriesRequest" + }, + "description": "Log entry resourcesWrites log entries to Stackdriver Logging. This API method is the only way to send log entries to Stackdriver Logging. This method is used, directly or indirectly, by the Stackdriver Logging agent (fluentd) and all logging libraries configured to use Stackdriver Logging." + }, + "list": { + "response": { + "$ref": "ListLogEntriesResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "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" + ], + "flatPath": "v2beta1/entries:list", + "id": "logging.entries.list", + "path": "v2beta1/entries:list", + "description": "Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs.", + "request": { + "$ref": "ListLogEntriesRequest" + } } } }, "projects": { "resources": { + "metrics": { + "methods": { + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "metricName" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], + "parameters": { + "metricName": { + "pattern": "^projects/[^/]+/metrics/[^/]+$", + "location": "path", + "description": "The resource name of the metric to delete:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\n", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", + "path": "v2beta1/{+metricName}", + "id": "logging.projects.metrics.delete", + "description": "Deletes a logs-based metric." + }, + "get": { + "description": "Gets a logs-based metric.", + "httpMethod": "GET", + "parameterOrder": [ + "metricName" + ], + "response": { + "$ref": "LogMetric" + }, + "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" + ], + "parameters": { + "metricName": { + "description": "The resource name of the desired metric:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/metrics/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", + "path": "v2beta1/{+metricName}", + "id": "logging.projects.metrics.get" + }, + "list": { + "response": { + "$ref": "ListLogMetricsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "parent": { + "description": "Required. The name of the project containing the metrics:\n\"projects/[PROJECT_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "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.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" + } + }, + "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" + ], + "flatPath": "v2beta1/projects/{projectsId}/metrics", + "id": "logging.projects.metrics.list", + "path": "v2beta1/{+parent}/metrics", + "description": "Lists logs-based metrics." + }, + "update": { + "response": { + "$ref": "LogMetric" + }, + "parameterOrder": [ + "metricName" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], + "parameters": { + "metricName": { + "description": "The resource name of the metric to update:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\nThe updated metric must be provided in the request and it's name field must be the same as [METRIC_ID] If the metric does not exist in [PROJECT_ID], then a new metric is created.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/metrics/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", + "id": "logging.projects.metrics.update", + "path": "v2beta1/{+metricName}", + "request": { + "$ref": "LogMetric" + }, + "description": "Creates or updates a logs-based metric." + }, + "create": { + "request": { + "$ref": "LogMetric" + }, + "description": "Creates a logs-based metric.", + "response": { + "$ref": "LogMetric" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin", + "https://www.googleapis.com/auth/logging.write" + ], + "parameters": { + "parent": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "The resource name of the project in which to create the metric:\n\"projects/[PROJECT_ID]\"\nThe new metric must be provided in the request.", + "type": "string", + "required": true + } + }, + "flatPath": "v2beta1/projects/{projectsId}/metrics", + "id": "logging.projects.metrics.create", + "path": "v2beta1/{+parent}/metrics" + } + } + }, "sinks": { "methods": { + "delete": { + "id": "logging.projects.sinks.delete", + "path": "v2beta1/{+sinkName}", + "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "sinkName" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/logging.admin" + ], + "parameters": { + "sinkName": { + "location": "path", + "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/sinks/[^/]+$" + } + }, + "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}" + }, "get": { + "path": "v2beta1/{+sinkName}", + "id": "logging.projects.sinks.get", + "description": "Gets a sink.", "httpMethod": "GET", "response": { "$ref": "LogSink" @@ -1231,66 +1344,61 @@ ], "parameters": { "sinkName": { - "pattern": "^projects/[^/]+/sinks/[^/]+$", - "location": "path", "description": "Required. The resource name of the sink:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", "type": "string", - "required": true - } - }, - "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" - ], - "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}", - "path": "v2beta1/{+sinkName}", - "id": "logging.projects.sinks.get", - "description": "Gets a sink." - }, - "list": { - "path": "v2beta1/{+parent}/sinks", - "id": "logging.projects.sinks.list", - "description": "Lists sinks.", - "httpMethod": "GET", - "response": { - "$ref": "ListSinksResponse" - }, - "parameterOrder": [ - "parent" - ], - "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" - ], - "parameters": { - "pageToken": { - "location": "query", - "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.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "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.", - "type": "integer", - "location": "query" - }, - "parent": { - "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", - "type": "string", "required": true, - "pattern": "^projects/[^/]+$", + "pattern": "^projects/[^/]+/sinks/[^/]+$", "location": "path" } }, - "flatPath": "v2beta1/projects/{projectsId}/sinks" + "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" + ], + "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListSinksResponse" + }, + "parameters": { + "parent": { + "location": "path", + "description": "Required. The parent resource whose sinks are to be listed:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + }, + "pageToken": { + "type": "string", + "location": "query", + "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." + }, + "pageSize": { + "location": "query", + "format": "int32", + "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.", + "type": "integer" + } + }, + "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" + ], + "flatPath": "v2beta1/projects/{projectsId}/sinks", + "path": "v2beta1/{+parent}/sinks", + "id": "logging.projects.sinks.list", + "description": "Lists sinks." }, "update": { - "id": "logging.projects.sinks.update", - "path": "v2beta1/{+sinkName}", "request": { "$ref": "LogSink" }, @@ -1308,15 +1416,15 @@ ], "parameters": { "updateMask": { - "type": "string", "location": "query", "format": "google-fieldmask", - "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter." + "description": "Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes: destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmaskExample: updateMask=filter.", + "type": "string" }, "uniqueWriterIdentity": { + "location": "query", "description": "Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:\nIf the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.\nIf the old value is false and the new value is true, then writer_identity is changed to a unique service account.\nIt is an error if the old value is true and the new value is set to false or defaulted to false.", - "type": "boolean", - "location": "query" + "type": "boolean" }, "sinkName": { "location": "path", @@ -1326,9 +1434,15 @@ "pattern": "^projects/[^/]+/sinks/[^/]+$" } }, - "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}" + "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}", + "id": "logging.projects.sinks.update", + "path": "v2beta1/{+sinkName}" }, "create": { + "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", + "request": { + "$ref": "LogSink" + }, "response": { "$ref": "LogSink" }, @@ -1338,16 +1452,16 @@ "httpMethod": "POST", "parameters": { "parent": { - "pattern": "^projects/[^/]+$", - "location": "path", "description": "Required. The resource in which to create the sink:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\nExamples: \"projects/my-logging-project\", \"organizations/123456789\".", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" }, "uniqueWriterIdentity": { + "location": "query", "description": "Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.", - "type": "boolean", - "location": "query" + "type": "boolean" } }, "scopes": [ @@ -1356,77 +1470,23 @@ ], "flatPath": "v2beta1/projects/{projectsId}/sinks", "id": "logging.projects.sinks.create", - "path": "v2beta1/{+parent}/sinks", - "description": "Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.", - "request": { - "$ref": "LogSink" - } - }, - "delete": { - "description": "Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.", - "httpMethod": "DELETE", - "parameterOrder": [ - "sinkName" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "parameters": { - "sinkName": { - "description": "Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:\n\"projects/[PROJECT_ID]/sinks/[SINK_ID]\"\n\"organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]\"\n\"folders/[FOLDER_ID]/sinks/[SINK_ID]\"\nExample: \"projects/my-project-id/sinks/my-sink-id\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/sinks/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta1/projects/{projectsId}/sinks/{sinksId}", - "path": "v2beta1/{+sinkName}", - "id": "logging.projects.sinks.delete" + "path": "v2beta1/{+parent}/sinks" } } }, "logs": { "methods": { - "delete": { - "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", - "httpMethod": "DELETE", - "parameterOrder": [ - "logName" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "logName": { - "pattern": "^projects/[^/]+/logs/[^/]+$", - "location": "path", - "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin" - ], - "flatPath": "v2beta1/projects/{projectsId}/logs/{logsId}", - "path": "v2beta1/{+logName}", - "id": "logging.projects.logs.delete" - }, "list": { + "path": "v2beta1/{+parent}/logs", + "id": "logging.projects.logs.list", "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", - "response": { - "$ref": "ListLogsResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "parent" ], - "httpMethod": "GET", + "response": { + "$ref": "ListLogsResponse" + }, "parameters": { "parent": { "type": "string", @@ -1453,72 +1513,74 @@ "https://www.googleapis.com/auth/logging.admin", "https://www.googleapis.com/auth/logging.read" ], - "flatPath": "v2beta1/projects/{projectsId}/logs", - "id": "logging.projects.logs.list", - "path": "v2beta1/{+parent}/logs" - } - } - }, - "metrics": { - "methods": { + "flatPath": "v2beta1/projects/{projectsId}/logs" + }, "delete": { "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ - "metricName" + "logName" ], "parameters": { - "metricName": { - "description": "The resource name of the metric to delete:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\n", + "logName": { + "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/metrics/[^/]+$", + "pattern": "^projects/[^/]+/logs/[^/]+$", "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" - ], - "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", - "path": "v2beta1/{+metricName}", - "id": "logging.projects.metrics.delete", - "description": "Deletes a logs-based metric." - }, - "get": { - "description": "Gets a logs-based metric.", - "httpMethod": "GET", - "parameterOrder": [ - "metricName" + "https://www.googleapis.com/auth/logging.admin" ], + "flatPath": "v2beta1/projects/{projectsId}/logs/{logsId}", + "path": "v2beta1/{+logName}", + "id": "logging.projects.logs.delete", + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted." + } + } + } + } + }, + "billingAccounts": { + "resources": { + "logs": { + "methods": { + "delete": { + "description": "Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.", "response": { - "$ref": "LogMetric" - }, - "parameters": { - "metricName": { - "pattern": "^projects/[^/]+/metrics/[^/]+$", - "location": "path", - "description": "The resource name of the desired metric:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\n", - "type": "string", - "required": true - } + "$ref": "Empty" }, + "parameterOrder": [ + "logName" + ], + "httpMethod": "DELETE", "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" + "https://www.googleapis.com/auth/logging.admin" ], - "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", - "path": "v2beta1/{+metricName}", - "id": "logging.projects.metrics.get" + "parameters": { + "logName": { + "description": "Required. The resource name of the log to delete:\n\"projects/[PROJECT_ID]/logs/[LOG_ID]\"\n\"organizations/[ORGANIZATION_ID]/logs/[LOG_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]\"\n\"folders/[FOLDER_ID]/logs/[LOG_ID]\"\n[LOG_ID] must be URL-encoded. For example, \"projects/my-project-id/logs/syslog\", \"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity\". For more information about log names, see LogEntry.", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+/logs/[^/]+$", + "location": "path" + } + }, + "flatPath": "v2beta1/billingAccounts/{billingAccountsId}/logs/{logsId}", + "id": "logging.billingAccounts.logs.delete", + "path": "v2beta1/{+logName}" }, "list": { + "id": "logging.billingAccounts.logs.list", + "path": "v2beta1/{+parent}/logs", + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", "response": { - "$ref": "ListLogMetricsResponse" + "$ref": "ListLogsResponse" }, "parameterOrder": [ "parent" @@ -1531,89 +1593,26 @@ "https://www.googleapis.com/auth/logging.read" ], "parameters": { + "parent": { + "location": "path", + "description": "Required. The resource name that owns the logs:\n\"projects/[PROJECT_ID]\"\n\"organizations/[ORGANIZATION_ID]\"\n\"billingAccounts/[BILLING_ACCOUNT_ID]\"\n\"folders/[FOLDER_ID]\"\n", + "type": "string", + "required": true, + "pattern": "^billingAccounts/[^/]+$" + }, + "pageToken": { + "location": "query", + "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.", + "type": "string" + }, "pageSize": { "location": "query", "format": "int32", "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.", "type": "integer" - }, - "parent": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "Required. The name of the project containing the metrics:\n\"projects/[PROJECT_ID]\"\n", - "type": "string", - "required": true - }, - "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.", - "type": "string", - "location": "query" } }, - "flatPath": "v2beta1/projects/{projectsId}/metrics", - "id": "logging.projects.metrics.list", - "path": "v2beta1/{+parent}/metrics", - "description": "Lists logs-based metrics." - }, - "update": { - "request": { - "$ref": "LogMetric" - }, - "description": "Creates or updates a logs-based metric.", - "httpMethod": "PUT", - "parameterOrder": [ - "metricName" - ], - "response": { - "$ref": "LogMetric" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" - ], - "parameters": { - "metricName": { - "description": "The resource name of the metric to update:\n\"projects/[PROJECT_ID]/metrics/[METRIC_ID]\"\nThe updated metric must be provided in the request and it's name field must be the same as [METRIC_ID] If the metric does not exist in [PROJECT_ID], then a new metric is created.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/metrics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v2beta1/projects/{projectsId}/metrics/{metricsId}", - "path": "v2beta1/{+metricName}", - "id": "logging.projects.metrics.update" - }, - "create": { - "description": "Creates a logs-based metric.", - "request": { - "$ref": "LogMetric" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "LogMetric" - }, - "parameters": { - "parent": { - "description": "The resource name of the project in which to create the metric:\n\"projects/[PROJECT_ID]\"\nThe new metric must be provided in the request.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/logging.admin", - "https://www.googleapis.com/auth/logging.write" - ], - "flatPath": "v2beta1/projects/{projectsId}/metrics", - "path": "v2beta1/{+parent}/metrics", - "id": "logging.projects.metrics.create" + "flatPath": "v2beta1/billingAccounts/{billingAccountsId}/logs" } } } @@ -1621,21 +1620,47 @@ } }, "parameters": { + "alt": { + "type": "string", + "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", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ] + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, "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.", "type": "string", "location": "query" }, "pp": { - "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query" }, "oauth_token": { + "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" + "type": "string" }, "bearer_token": { "location": "query", @@ -1643,9 +1668,9 @@ "type": "string" }, "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string", - "location": "query" + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", @@ -1659,14 +1684,14 @@ "location": "query" }, "fields": { - "type": "string", "location": "query", - "description": "Selector specifying which fields to include in a partial response." + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "$.xgafv": { "enum": [ @@ -1680,32 +1705,7 @@ "v2 error format" ], "location": "query" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" } - } + }, + "version": "v2beta1" } diff --git a/vendor/google.golang.org/api/logging/v2beta1/logging-gen.go b/vendor/google.golang.org/api/logging/v2beta1/logging-gen.go index 047739635..c724e3a4e 100644 --- a/vendor/google.golang.org/api/logging/v2beta1/logging-gen.go +++ b/vendor/google.golang.org/api/logging/v2beta1/logging-gen.go @@ -1324,7 +1324,9 @@ type MetricDescriptor struct { // DisplayName: A concise name for the metric, which can be displayed in // user interfaces. Use sentence case without an ending period, for - // example "Request count". + // example "Request count". This field is optional but it is recommended + // to be set for any metrics associated with user-visible concepts, such + // as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a specific @@ -1349,16 +1351,7 @@ type MetricDescriptor struct { // zero and sets a new start time for the following points. MetricKind string `json:"metricKind,omitempty"` - // Name: The resource name of the metric descriptor. Depending on the - // implementation, the name typically includes: (1) the parent resource - // name that defines the scope of the metric type or of its data; and - // (2) the metric's URL-encoded type, which also appears in the type - // field of this descriptor. For example, following is the resource name - // of a custom metric within the GCP project - // my-project-id: - // "projects/my-project-id/metricDescriptors/custom.google - // apis.com%2Finvoice%2Fpaid%2Famount" - // + // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is not diff --git a/vendor/google.golang.org/api/manufacturers/v1/manufacturers-api.json b/vendor/google.golang.org/api/manufacturers/v1/manufacturers-api.json index f2c5a556a..f6c5954e6 100644 --- a/vendor/google.golang.org/api/manufacturers/v1/manufacturers-api.json +++ b/vendor/google.golang.org/api/manufacturers/v1/manufacturers-api.json @@ -1,32 +1,18 @@ { - "basePath": "", - "revision": "20170808", "documentationLink": "https://developers.google.com/manufacturers/", + "revision": "20171011", "id": "manufacturers:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { - "ListProductsResponse": { - "type": "object", - "properties": { - "products": { - "description": "List of the products.", - "items": { - "$ref": "Product" - }, - "type": "array" - }, - "nextPageToken": { - "description": "The token for the retrieval of the next page of product statuses.", - "type": "string" - } - }, - "id": "ListProductsResponse" - }, "ProductDetail": { "description": "A product detail of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#productdetail.", "type": "object", "properties": { + "attributeValue": { + "description": "The value of the attribute.", + "type": "string" + }, "sectionName": { "description": "A short section name that can be reused between multiple product details.", "type": "string" @@ -34,30 +20,34 @@ "attributeName": { "description": "The name of the attribute.", "type": "string" - }, - "attributeValue": { - "description": "The value of the attribute.", - "type": "string" } }, "id": "ProductDetail" }, + "FeatureDescription": { + "properties": { + "headline": { + "description": "A short description of the feature.", + "type": "string" + }, + "text": { + "description": "A detailed description of the feature.", + "type": "string" + }, + "image": { + "description": "An optional image describing the feature.", + "$ref": "Image" + } + }, + "id": "FeatureDescription", + "description": "A feature description of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#featuredesc.", + "type": "object" + }, "Issue": { "description": "Product issue.", "type": "object", "properties": { - "attribute": { - "description": "If present, the attribute that triggered the issue. For more information\nabout attributes, see\nhttps://support.google.com/manufacturers/answer/6124116.", - "type": "string" - }, - "timestamp": { - "format": "google-datetime", - "description": "The timestamp when this issue appeared.", - "type": "string" - }, "severity": { - "description": "The severity of the issue.", - "type": "string", "enumDescriptions": [ "Unspecified severity, never used.", "Error severity. The issue prevents the usage of the whole item.", @@ -69,7 +59,9 @@ "ERROR", "WARNING", "INFO" - ] + ], + "description": "The severity of the issue.", + "type": "string" }, "description": { "description": "Description of the issue.", @@ -78,29 +70,19 @@ "type": { "description": "The server-generated type of the issue, for example,\n“INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.", "type": "string" + }, + "attribute": { + "description": "If present, the attribute that triggered the issue. For more information\nabout attributes, see\nhttps://support.google.com/manufacturers/answer/6124116.", + "type": "string" + }, + "timestamp": { + "format": "google-datetime", + "description": "The timestamp when this issue appeared.", + "type": "string" } }, "id": "Issue" }, - "FeatureDescription": { - "description": "A feature description of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#featuredesc.", - "type": "object", - "properties": { - "headline": { - "description": "A short description of the feature.", - "type": "string" - }, - "text": { - "description": "A detailed description of the feature.", - "type": "string" - }, - "image": { - "$ref": "Image", - "description": "An optional image describing the feature." - } - }, - "id": "FeatureDescription" - }, "Price": { "description": "A price.", "type": "object", @@ -117,23 +99,37 @@ "id": "Price" }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", "properties": {}, - "id": "Empty" + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" }, "Image": { "description": "An image.", "type": "object", "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "CRAWLED", + "UPLOADED" + ], + "description": "The type of the image, i.e., crawled or uploaded.\n@OutputOnly", + "type": "string", + "enumDescriptions": [ + "Type is unspecified. Should not be used.", + "The image was crawled from a provided URL.", + "The image was uploaded." + ] + }, "imageUrl": { "description": "The URL of the image. For crawled images, this is the provided URL. For\nuploaded images, this is a serving URL from Google if the image has been\nprocessed successfully.", "type": "string" }, "status": { "enumDescriptions": [ - "Status is unspecified. Should not be used.", - "Image was uploaded and is being processed.", + "The image status is unspecified. Should not be used.", + "The image was uploaded and is being processed.", "The image crawl is still pending.", "The image was processed and it meets the requirements.", "The image URL is protected by robots.txt file and cannot be crawled.", @@ -142,7 +138,9 @@ "The image cannot be processed.", "The image cannot be decoded.", "The image is too big.", - "The image was manually overridden and will not be crawled." + "The image was manually overridden and will not be crawled.", + "The image crawl was postponed to avoid overloading the host.", + "The image URL returned a \"404 Not Found\" error." ], "enum": [ "STATUS_UNSPECIFIED", @@ -155,75 +153,18 @@ "PROCESSING_ERROR", "DECODING_ERROR", "TOO_BIG", - "CRAWL_SKIPPED" + "CRAWL_SKIPPED", + "HOSTLOADED", + "HTTP_404" ], "description": "The status of the image.\n@OutputOnly", "type": "string" - }, - "type": { - "enumDescriptions": [ - "Type is unspecified. Should not be used.", - "The image was crawled from a provided URL.", - "The image was uploaded." - ], - "enum": [ - "TYPE_UNSPECIFIED", - "CRAWLED", - "UPLOADED" - ], - "description": "The type of the image, i.e., crawled or uploaded.\n@OutputOnly", - "type": "string" } }, "id": "Image" }, "Attributes": { "properties": { - "sizeSystem": { - "description": "The size system of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#sizesystem.", - "type": "string" - }, - "theme": { - "description": "The theme of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#theme.", - "type": "string" - }, - "pattern": { - "description": "The pattern of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#pattern.", - "type": "string" - }, - "imageLink": { - "$ref": "Image", - "description": "The image of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#image." - }, - "productType": { - "description": "The category of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#producttype.", - "items": { - "type": "string" - }, - "type": "array" - }, - "format": { - "description": "The format of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#format.", - "type": "string" - }, - "additionalImageLink": { - "description": "The additional images of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#addlimage.", - "items": { - "$ref": "Image" - }, - "type": "array" - }, - "videoLink": { - "description": "The videos of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#video.", - "items": { - "type": "string" - }, - "type": "array" - }, - "color": { - "description": "The color of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#color.", - "type": "string" - }, "productName": { "description": "The canonical name of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#productname.", "type": "string" @@ -243,11 +184,6 @@ }, "type": "array" }, - "targetAccountId": { - "format": "int64", - "description": "The target account id. Should only be used in the accounts of the data\npartners.", - "type": "string" - }, "size": { "description": "The size of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#size.", "type": "string" @@ -264,14 +200,14 @@ "description": "The brand name of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#brand.", "type": "string" }, - "material": { - "description": "The material of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#material.", - "type": "string" - }, "disclosureDate": { "description": "The disclosure date of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#disclosure.", "type": "string" }, + "material": { + "description": "The material of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#material.", + "type": "string" + }, "scent": { "description": "The scent of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#scent.", "type": "string" @@ -291,14 +227,14 @@ "description": "The flavor of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#flavor.", "type": "string" }, - "productPageUrl": { - "description": "The URL of the detail page of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#productpage.", - "type": "string" - }, "mpn": { "description": "The Manufacturer Part Number (MPN) of the product. For more information,\nsee https://support.google.com/manufacturers/answer/6124116#mpn.", "type": "string" }, + "productPageUrl": { + "description": "The URL of the detail page of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#productpage.", + "type": "string" + }, "releaseDate": { "description": "The release date of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#release.", "type": "string" @@ -329,6 +265,55 @@ "gender": { "description": "The target gender of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#gender.", "type": "string" + }, + "sizeSystem": { + "description": "The size system of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#sizesystem.", + "type": "string" + }, + "theme": { + "description": "The theme of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#theme.", + "type": "string" + }, + "targetClientId": { + "description": "The target client id. Should only be used in the accounts of the data\npartners.", + "type": "string" + }, + "pattern": { + "description": "The pattern of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#pattern.", + "type": "string" + }, + "imageLink": { + "description": "The image of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#image.", + "$ref": "Image" + }, + "productType": { + "description": "The type or category of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#producttype.", + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "description": "The format of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#format.", + "type": "string" + }, + "additionalImageLink": { + "description": "The additional images of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#addlimage.", + "items": { + "$ref": "Image" + }, + "type": "array" + }, + "videoLink": { + "description": "The videos of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#video.", + "items": { + "type": "string" + }, + "type": "array" + }, + "color": { + "description": "The color of the product. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#color.", + "type": "string" } }, "id": "Attributes", @@ -336,8 +321,6 @@ "type": "object" }, "Count": { - "description": "The number of products in a single package. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#count.", - "type": "object", "properties": { "unit": { "description": "The unit in which these products are counted.", @@ -349,33 +332,16 @@ "type": "string" } }, - "id": "Count" + "id": "Count", + "description": "The number of products in a single package. For more information, see\nhttps://support.google.com/manufacturers/answer/6124116#count.", + "type": "object" }, "Product": { "properties": { - "manuallyProvidedAttributes": { - "description": "Attributes of the product provided manually via the Manufacturer Center UI.\n@OutputOnly", - "$ref": "Attributes" - }, - "targetCountry": { - "description": "The target country of the product as a CLDR territory code (for example,\nUS).\n@OutputOnly", - "type": "string" - }, - "contentLanguage": { - "description": "The content language of the product as a two-letter ISO 639-1 language code\n(for example, en).\n@OutputOnly", - "type": "string" - }, "name": { "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.\n@OutputOnly", "type": "string" }, - "manuallyDeletedAttributes": { - "description": "Names of the attributes of the product deleted manually via the\nManufacturer Center UI.\n@OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, "issues": { "description": "A server-generated list of issues associated with the product.\n@OutputOnly", "items": { @@ -383,6 +349,13 @@ }, "type": "array" }, + "manuallyDeletedAttributes": { + "description": "Names of the attributes of the product deleted manually via the\nManufacturer Center UI.\n@OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, "finalAttributes": { "description": "Final attributes of the product. The final attributes are obtained by\noverriding the uploaded attributes with the manually provided and deleted\nattributes. Google systems only process, evaluate, review, and/or use final\nattributes.\n@OutputOnly", "$ref": "Attributes" @@ -398,6 +371,18 @@ "parent": { "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.\n@OutputOnly", "type": "string" + }, + "manuallyProvidedAttributes": { + "description": "Attributes of the product provided manually via the Manufacturer Center UI.\n@OutputOnly", + "$ref": "Attributes" + }, + "targetCountry": { + "description": "The target country of the product as a CLDR territory code (for example,\nUS).\n@OutputOnly", + "type": "string" + }, + "contentLanguage": { + "description": "The content language of the product as a two-letter ISO 639-1 language code\n(for example, en).\n@OutputOnly", + "type": "string" } }, "id": "Product", @@ -419,6 +404,23 @@ } }, "id": "Capacity" + }, + "ListProductsResponse": { + "type": "object", + "properties": { + "nextPageToken": { + "description": "The token for the retrieval of the next page of product statuses.", + "type": "string" + }, + "products": { + "description": "List of the products.", + "items": { + "$ref": "Product" + }, + "type": "array" + } + }, + "id": "ListProductsResponse" } }, "protocol": "rest", @@ -456,31 +458,32 @@ "name" ], "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/manufacturercenter" - ], "parameters": { - "name": { - "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - }, "parent": { "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", "type": "string", "required": true, "pattern": "^accounts/[^/]+$", "location": "path" + }, + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", + "type": "string", + "required": true } }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ], "flatPath": "v1/accounts/{accountsId}/products/{productsId}", "id": "manufacturers.accounts.products.delete", "path": "v1/{+parent}/products/{+name}", "description": "Deletes the product from a Manufacturer Center account." }, "get": { + "httpMethod": "GET", "response": { "$ref": "Product" }, @@ -488,44 +491,46 @@ "parent", "name" ], - "httpMethod": "GET", "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", + "type": "string", + "required": true + }, "parent": { "pattern": "^accounts/[^/]+$", "location": "path", "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", "type": "string", "required": true - }, - "name": { - "location": "path", - "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", - "type": "string", - "required": true, - "pattern": "^[^/]+$" } }, "scopes": [ "https://www.googleapis.com/auth/manufacturercenter" ], "flatPath": "v1/accounts/{accountsId}/products/{productsId}", - "id": "manufacturers.accounts.products.get", "path": "v1/{+parent}/products/{+name}", + "id": "manufacturers.accounts.products.get", "description": "Gets the product from a Manufacturer Center account, including product\nissues.\n\nA recently updated product takes around 15 minutes to process. Changes are\nonly visible after it has been processed. While some issues may be\navailable once the product has been processed, other issues may take days\nto appear." }, "list": { - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], + "id": "manufacturers.accounts.products.list", + "path": "v1/{+parent}/products", + "description": "Lists all the products in a Manufacturer Center account.", "response": { "$ref": "ListProductsResponse" }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", "parameters": { "pageToken": { - "location": "query", "description": "The token returned by the previous request.", - "type": "string" + "type": "string", + "location": "query" }, "pageSize": { "location": "query", @@ -533,6 +538,36 @@ "description": "Maximum number of product statuses to return in the response, used for\npaging.", "type": "integer" }, + "parent": { + "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", + "type": "string", + "required": true, + "pattern": "^accounts/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/manufacturercenter" + ], + "flatPath": "v1/accounts/{accountsId}/products" + }, + "update": { + "response": { + "$ref": "Product" + }, + "parameterOrder": [ + "parent", + "name" + ], + "httpMethod": "PUT", + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", + "type": "string", + "required": true + }, "parent": { "pattern": "^accounts/[^/]+$", "location": "path", @@ -544,46 +579,13 @@ "scopes": [ "https://www.googleapis.com/auth/manufacturercenter" ], - "flatPath": "v1/accounts/{accountsId}/products", - "path": "v1/{+parent}/products", - "id": "manufacturers.accounts.products.list", - "description": "Lists all the products in a Manufacturer Center account." - }, - "update": { - "httpMethod": "PUT", - "parameterOrder": [ - "parent", - "name" - ], - "response": { - "$ref": "Product" - }, - "scopes": [ - "https://www.googleapis.com/auth/manufacturercenter" - ], - "parameters": { - "parent": { - "location": "path", - "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", - "type": "string", - "required": true, - "pattern": "^accounts/[^/]+$" - }, - "name": { - "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - } - }, "flatPath": "v1/accounts/{accountsId}/products/{productsId}", - "path": "v1/{+parent}/products/{+name}", "id": "manufacturers.accounts.products.update", + "path": "v1/{+parent}/products/{+name}", + "description": "Inserts or updates the product in a Manufacturer Center account.\n\nThe checks at upload time are minimal. All required attributes need to be\npresent for a product to be valid. Issues may show up later\nafter the API has accepted an update for a product and it is possible to\noverwrite an existing valid product with an invalid product. To detect\nthis, you should retrieve the product and check it for issues once the\nupdated version is available.\n\nInserted or updated products first need to be processed before they can be\nretrieved. Until then, new products will be unavailable, and retrieval\nof updated products will return the original state of the product.", "request": { "$ref": "Product" - }, - "description": "Inserts or updates the product in a Manufacturer Center account.\n\nThe checks at upload time are minimal. All required attributes need to be\npresent for a product to be valid. Issues may show up later\nafter the API has accepted an update for a product and it is possible to\noverwrite an existing valid product with an invalid product. To detect\nthis, you should retrieve the product and check it for issues once the\nupdated version is available.\n\nInserted or updated products first need to be processed before they can be\nretrieved. Until then, new products will be unavailable, and retrieval\nof updated products will return the original state of the product." + } } } } @@ -591,15 +593,26 @@ } }, "parameters": { + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" }, "oauth_token": { + "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" + "type": "string" }, "upload_protocol": { "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", @@ -613,15 +626,15 @@ "type": "boolean" }, "uploadType": { - "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, "$.xgafv": { "enum": [ "1", @@ -641,6 +654,12 @@ "location": "query" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -648,13 +667,7 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string" + "default": "json" }, "access_token": { "description": "OAuth access token.", @@ -662,25 +675,15 @@ "location": "query" }, "key": { - "location": "query", "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.", - "type": "string" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" + "type": "string", + "location": "query" } }, "version": "v1", "baseUrl": "https://manufacturers.googleapis.com/", - "kind": "discovery#restDescription", + "servicePath": "", "description": "Public API for managing Manufacturer Center related data.", - "servicePath": "" + "kind": "discovery#restDescription", + "basePath": "" } diff --git a/vendor/google.golang.org/api/manufacturers/v1/manufacturers-gen.go b/vendor/google.golang.org/api/manufacturers/v1/manufacturers-gen.go index 50c8f5ba2..840000ab6 100644 --- a/vendor/google.golang.org/api/manufacturers/v1/manufacturers-gen.go +++ b/vendor/google.golang.org/api/manufacturers/v1/manufacturers-gen.go @@ -224,7 +224,8 @@ type Attributes struct { // e. ProductPageUrl string `json:"productPageUrl,omitempty"` - // ProductType: The category of the product. For more information, + // ProductType: The type or category of the product. For more + // information, // see // https://support.google.com/manufacturers/answer/6124116#producttyp // e. @@ -260,10 +261,10 @@ type Attributes struct { // see https://support.google.com/manufacturers/answer/6124116#price. SuggestedRetailPrice *Price `json:"suggestedRetailPrice,omitempty"` - // TargetAccountId: The target account id. Should only be used in the + // TargetClientId: The target client id. Should only be used in the // accounts of the data // partners. - TargetAccountId int64 `json:"targetAccountId,omitempty,string"` + TargetClientId string `json:"targetClientId,omitempty"` // Theme: The theme of the product. For more information, // see @@ -440,8 +441,10 @@ type Image struct { // @OutputOnly // // Possible values: - // "STATUS_UNSPECIFIED" - Status is unspecified. Should not be used. - // "PENDING_PROCESSING" - Image was uploaded and is being processed. + // "STATUS_UNSPECIFIED" - The image status is unspecified. Should not + // be used. + // "PENDING_PROCESSING" - The image was uploaded and is being + // processed. // "PENDING_CRAWL" - The image crawl is still pending. // "OK" - The image was processed and it meets the requirements. // "ROBOTED" - The image URL is protected by robots.txt file and @@ -454,6 +457,9 @@ type Image struct { // "TOO_BIG" - The image is too big. // "CRAWL_SKIPPED" - The image was manually overridden and will not be // crawled. + // "HOSTLOADED" - The image crawl was postponed to avoid overloading + // the host. + // "HTTP_404" - The image URL returned a "404 Not Found" error. Status string `json:"status,omitempty"` // Type: The type of the image, i.e., crawled or uploaded. diff --git a/vendor/google.golang.org/api/ml/v1/ml-api.json b/vendor/google.golang.org/api/ml/v1/ml-api.json index 0b1974e87..67971725d 100644 --- a/vendor/google.golang.org/api/ml/v1/ml-api.json +++ b/vendor/google.golang.org/api/ml/v1/ml-api.json @@ -1,7 +1,172 @@ { + "id": "ml:v1", + "revision": "20170928", + "documentationLink": "https://cloud.google.com/ml/", "discoveryVersion": "v1", "version_module": true, "schemas": { + "GoogleApi__HttpBody": { + "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.", + "type": "object", + "properties": { + "data": { + "format": "byte", + "description": "HTTP body binary data.", + "type": "string" + }, + "contentType": { + "description": "The HTTP Content-Type string representing the content type of the body.", + "type": "string" + }, + "extensions": { + "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.", + "items": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "type": "object" + }, + "type": "array" + } + }, + "id": "GoogleApi__HttpBody" + }, + "GoogleCloudMlV1__GetConfigResponse": { + "properties": { + "serviceAccountProject": { + "format": "int64", + "description": "The project number for `service_account`.", + "type": "string" + }, + "serviceAccount": { + "description": "The service account Cloud ML uses to access resources in the project.", + "type": "string" + } + }, + "id": "GoogleCloudMlV1__GetConfigResponse", + "description": "Returns service account information associated with a project.", + "type": "object" + }, + "GoogleIamV1__TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "GoogleIamV1__TestIamPermissionsResponse" + }, + "GoogleCloudMlV1__HyperparameterOutput": { + "description": "Represents the result of a single hyperparameter tuning trial from a\ntraining job. The TrainingOutput object that is returned on successful\ncompletion of a training job with hyperparameter tuning includes a list\nof HyperparameterOutput objects, one for each successful trial.", + "type": "object", + "properties": { + "allMetrics": { + "description": "All recorded object metrics for this trial. This field is not currently\npopulated.", + "items": { + "$ref": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric" + }, + "type": "array" + }, + "finalMetric": { + "description": "The final objective metric seen for this trial.", + "$ref": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric" + }, + "hyperparameters": { + "additionalProperties": { + "type": "string" + }, + "description": "The hyperparameters given to this trial.", + "type": "object" + }, + "trialId": { + "type": "string", + "description": "The trial id for these results." + } + }, + "id": "GoogleCloudMlV1__HyperparameterOutput" + }, + "GoogleIamV1__SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "$ref": "GoogleIamV1__Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + }, + "updateMask": { + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "type": "string" + } + }, + "id": "GoogleIamV1__SetIamPolicyRequest" + }, + "GoogleCloudMlV1__PredictionOutput": { + "properties": { + "nodeHours": { + "format": "double", + "description": "Node hours used by the batch prediction job.", + "type": "number" + }, + "outputPath": { + "description": "The output Google Cloud Storage location provided at the job creation time.", + "type": "string" + }, + "predictionCount": { + "format": "int64", + "description": "The number of generated predictions.", + "type": "string" + }, + "errorCount": { + "format": "int64", + "description": "The number of data instances which resulted in errors.", + "type": "string" + } + }, + "id": "GoogleCloudMlV1__PredictionOutput", + "description": "Represents results of a prediction job.", + "type": "object" + }, + "GoogleIamV1__Policy": { + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object", + "properties": { + "etag": { + "format": "byte", + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "type": "string" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "Version of the `Policy`. The default version is 0." + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "GoogleIamV1__AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "items": { + "$ref": "GoogleIamV1__Binding" + }, + "type": "array" + }, + "iamOwned": { + "type": "boolean" + } + }, + "id": "GoogleIamV1__Policy" + }, "GoogleLongrunning__ListOperationsResponse": { "properties": { "nextPageToken": { @@ -21,8 +186,6 @@ "type": "object" }, "GoogleCloudMlV1__ManualScaling": { - "description": "Options for manually scaling a model.", - "type": "object", "properties": { "nodes": { "format": "int32", @@ -30,9 +193,34 @@ "type": "integer" } }, - "id": "GoogleCloudMlV1__ManualScaling" + "id": "GoogleCloudMlV1__ManualScaling", + "description": "Options for manually scaling a model.", + "type": "object" + }, + "GoogleIamV1__Binding": { + "properties": { + "condition": { + "$ref": "GoogleType__Expr", + "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." + }, + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "GoogleIamV1__Binding", + "description": "Associates `members` with a `role`.", + "type": "object" }, "GoogleCloudMlV1__TrainingOutput": { + "id": "GoogleCloudMlV1__TrainingOutput", "description": "Represents results of a training job. Output only.", "type": "object", "properties": { @@ -57,65 +245,81 @@ }, "type": "array" } - }, - "id": "GoogleCloudMlV1__TrainingOutput" - }, - "GoogleIamV1__Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - }, - "condition": { - "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL.", - "$ref": "GoogleType__Expr" - } - }, - "id": "GoogleIamV1__Binding" + } }, "GoogleCloudMlV1__PredictRequest": { "description": "Request for predictions to be issued against a trained model.\n\nThe body of the request is a single JSON object with a single top-level\nfield:\n\n\u003cdl\u003e\n \u003cdt\u003einstances\u003c/dt\u003e\n \u003cdd\u003eA JSON array containing values representing the instances to use for\n prediction.\u003c/dd\u003e\n\u003c/dl\u003e\n\nThe structure of each element of the instances list is determined by your\nmodel's input definition. Instances can include named inputs or can contain\nonly unlabeled values.\n\nNot all data includes named inputs. Some instances will be simple\nJSON values (boolean, number, or string). However, instances are often lists\nof simple values, or complex nested lists. Here are some examples of request\nbodies:\n\nCSV data with each row encoded as a string value:\n\u003cpre\u003e\n{\"instances\": [\"1.0,true,\\\\\"x\\\\\"\", \"-2.0,false,\\\\\"y\\\\\"\"]}\n\u003c/pre\u003e\nPlain text:\n\u003cpre\u003e\n{\"instances\": [\"the quick brown fox\", \"la bruja le dio\"]}\n\u003c/pre\u003e\nSentences encoded as lists of words (vectors of strings):\n\u003cpre\u003e\n{\n \"instances\": [\n [\"the\",\"quick\",\"brown\"],\n [\"la\",\"bruja\",\"le\"],\n ...\n ]\n}\n\u003c/pre\u003e\nFloating point scalar values:\n\u003cpre\u003e\n{\"instances\": [0.0, 1.1, 2.2]}\n\u003c/pre\u003e\nVectors of integers:\n\u003cpre\u003e\n{\n \"instances\": [\n [0, 1, 2],\n [3, 4, 5],\n ...\n ]\n}\n\u003c/pre\u003e\nTensors (in this case, two-dimensional tensors):\n\u003cpre\u003e\n{\n \"instances\": [\n [\n [0, 1, 2],\n [3, 4, 5]\n ],\n ...\n ]\n}\n\u003c/pre\u003e\nImages can be represented different ways. In this encoding scheme the first\ntwo dimensions represent the rows and columns of the image, and the third\ncontains lists (vectors) of the R, G, and B values for each pixel.\n\u003cpre\u003e\n{\n \"instances\": [\n [\n [\n [138, 30, 66],\n [130, 20, 56],\n ...\n ],\n [\n [126, 38, 61],\n [122, 24, 57],\n ...\n ],\n ...\n ],\n ...\n ]\n}\n\u003c/pre\u003e\nJSON strings must be encoded as UTF-8. To send binary data, you must\nbase64-encode the data and mark it as binary. To mark a JSON string\nas binary, replace it with a JSON object with a single attribute named `b64`:\n\u003cpre\u003e{\"b64\": \"...\"} \u003c/pre\u003e\nFor example:\n\nTwo Serialized tf.Examples (fake data, for illustrative purposes only):\n\u003cpre\u003e\n{\"instances\": [{\"b64\": \"X5ad6u\"}, {\"b64\": \"IA9j4nx\"}]}\n\u003c/pre\u003e\nTwo JPEG image byte strings (fake data, for illustrative purposes only):\n\u003cpre\u003e\n{\"instances\": [{\"b64\": \"ASa8asdf\"}, {\"b64\": \"JLK7ljk3\"}]}\n\u003c/pre\u003e\nIf your data includes named references, format each instance as a JSON object\nwith the named references as the keys:\n\nJSON input data to be preprocessed:\n\u003cpre\u003e\n{\n \"instances\": [\n {\n \"a\": 1.0,\n \"b\": true,\n \"c\": \"x\"\n },\n {\n \"a\": -2.0,\n \"b\": false,\n \"c\": \"y\"\n }\n ]\n}\n\u003c/pre\u003e\nSome models have an underlying TensorFlow graph that accepts multiple input\ntensors. In this case, you should use the names of JSON name/value pairs to\nidentify the input tensors, as shown in the following exmaples:\n\nFor a graph with input tensor aliases \"tag\" (string) and \"image\"\n(base64-encoded string):\n\u003cpre\u003e\n{\n \"instances\": [\n {\n \"tag\": \"beach\",\n \"image\": {\"b64\": \"ASa8asdf\"}\n },\n {\n \"tag\": \"car\",\n \"image\": {\"b64\": \"JLK7ljk3\"}\n }\n ]\n}\n\u003c/pre\u003e\nFor a graph with input tensor aliases \"tag\" (string) and \"image\"\n(3-dimensional array of 8-bit ints):\n\u003cpre\u003e\n{\n \"instances\": [\n {\n \"tag\": \"beach\",\n \"image\": [\n [\n [138, 30, 66],\n [130, 20, 56],\n ...\n ],\n [\n [126, 38, 61],\n [122, 24, 57],\n ...\n ],\n ...\n ]\n },\n {\n \"tag\": \"car\",\n \"image\": [\n [\n [255, 0, 102],\n [255, 0, 97],\n ...\n ],\n [\n [254, 1, 101],\n [254, 2, 93],\n ...\n ],\n ...\n ]\n },\n ...\n ]\n}\n\u003c/pre\u003e\nIf the call is successful, the response body will contain one prediction\nentry per instance in the request body. If prediction fails for any\ninstance, the response body will contain no predictions and will contian\na single error entry instead.", "type": "object", "properties": { "httpBody": { - "description": "\nRequired. The prediction request body.", - "$ref": "GoogleApi__HttpBody" + "$ref": "GoogleApi__HttpBody", + "description": "\nRequired. The prediction request body." } }, "id": "GoogleCloudMlV1__PredictRequest" }, "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric": { - "id": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric", "description": "An observed value of a metric.", "type": "object", "properties": { - "objectiveValue": { - "format": "double", - "description": "The objective value at this training step.", - "type": "number" - }, "trainingStep": { "format": "int64", "description": "The global training step for this metric.", "type": "string" + }, + "objectiveValue": { + "format": "double", + "description": "The objective value at this training step.", + "type": "number" } - } + }, + "id": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric" }, "GoogleCloudMlV1__Version": { "description": "Represents a version of the model.\n\nEach version is a trained model deployed in the cloud, ready to handle\nprediction requests. A model can have multiple versions. You can get\ninformation about all of the versions of a given model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).\n\nNext ID: 19\nLINT.IfChange", "type": "object", "properties": { - "runtimeVersion": { - "description": "Optional. The Google Cloud ML runtime version to use for this deployment.\nIf not set, Google Cloud ML will choose a version.", + "isDefault": { + "description": "Output only. If true, this version will be used to handle prediction\nrequests that do not specify a version.\n\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).", + "type": "boolean" + }, + "autoScaling": { + "description": "Automatically scale the number of nodes used to serve the model in\nresponse to increases and decreases in traffic. Care should be\ntaken to ramp up traffic according to the model's ability to scale\nor you will start seeing increases in latency and 429 response codes.", + "$ref": "GoogleCloudMlV1__AutoScaling" + }, + "createTime": { + "format": "google-datetime", + "description": "Output only. The time the version was created.", + "type": "string" + }, + "state": { + "enum": [ + "UNKNOWN", + "READY", + "CREATING", + "FAILED", + "DELETING" + ], + "description": "Output only. The state of a version.", + "type": "string", + "enumDescriptions": [ + "The version state is unspecified.", + "The version is ready for prediction.", + "The version is in the process of creation.", + "The version failed to be created, possibly cancelled.\n`error_message` should contain the details of the failure.", + "The version is in the process of deletion." + ] + }, + "manualScaling": { + "$ref": "GoogleCloudMlV1__ManualScaling", + "description": "Manually select the number of nodes to use for serving the\nmodel. You should generally use `auto_scaling` with an appropriate\n`min_nodes` instead, but this option is available if you want more\npredictable billing. Beware that latency and error rates will increase\nif the traffic exceeds that capability of the system to serve it based\non the selected number of nodes." + }, + "name": { + "description": "Required.The name specified for the version when it was created.\n\nThe version name must be unique within the model it is created in.", + "type": "string" + }, + "errorMessage": { + "description": "Output only. The details of a failure or a cancellation.", "type": "string" }, "lastUseTime": { @@ -123,6 +327,10 @@ "description": "Output only. The time the version was last used for prediction.", "type": "string" }, + "runtimeVersion": { + "description": "Optional. The Google Cloud ML runtime version to use for this deployment.\nIf not set, Google Cloud ML will choose a version.", + "type": "string" + }, "description": { "description": "Optional. The description specified for the version when it was created.", "type": "string" @@ -130,55 +338,26 @@ "deploymentUri": { "description": "Required. The Google Cloud Storage location of the trained model used to\ncreate the version. See the\n[overview of model\ndeployment](/ml-engine/docs/concepts/deployment-overview) for more\ninformation.\n\nWhen passing Version to\n[projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)\nthe model service uses the specified location as the source of the model.\nOnce deployed, the model version is hosted by the prediction service, so\nthis location is useful only as a historical record.\nThe total number of model files can't exceed 1000.", "type": "string" - }, - "autoScaling": { - "description": "Automatically scale the number of nodes used to serve the model in\nresponse to increases and decreases in traffic. Care should be\ntaken to ramp up traffic according to the model's ability to scale\nor you will start seeing increases in latency and 429 response codes.", - "$ref": "GoogleCloudMlV1__AutoScaling" - }, - "isDefault": { - "type": "boolean", - "description": "Output only. If true, this version will be used to handle prediction\nrequests that do not specify a version.\n\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault)." - }, - "createTime": { - "format": "google-datetime", - "description": "Output only. The time the version was created.", - "type": "string" - }, - "state": { - "enumDescriptions": [ - "The version state is unspecified.", - "The version is ready for prediction.", - "The version is in the process of creation.", - "The version failed to be created, possibly cancelled.\n`error_message` should contain the details of the failure.", - "The version is in the process of deletion." - ], - "enum": [ - "UNKNOWN", - "READY", - "CREATING", - "FAILED", - "DELETING" - ], - "description": "Output only. The state of a version.", - "type": "string" - }, - "manualScaling": { - "description": "Manually select the number of nodes to use for serving the\nmodel. You should generally use `auto_scaling` with an appropriate\n`min_nodes` instead, but this option is available if you want more\npredictable billing. Beware that latency and error rates will increase\nif the traffic exceeds that capability of the system to serve it based\non the selected number of nodes.", - "$ref": "GoogleCloudMlV1__ManualScaling" - }, - "name": { - "description": "Required.The name specified for the version when it was created.\n\nThe version name must be unique within the model it is created in.", - "type": "string" - }, - "errorMessage": { - "description": "Output only. The details of a failure or a cancellation.", - "type": "string" } }, "id": "GoogleCloudMlV1__Version" }, "GoogleCloudMlV1__ParameterSpec": { + "id": "GoogleCloudMlV1__ParameterSpec", + "description": "Represents a single hyperparameter to optimize.", + "type": "object", "properties": { + "categoricalValues": { + "description": "Required if type is `CATEGORICAL`. The list of possible categories.", + "items": { + "type": "string" + }, + "type": "array" + }, + "parameterName": { + "description": "Required. The parameter name must be unique amongst all ParameterConfigs in\na HyperparameterSpec message. E.g., \"learning_rate\".", + "type": "string" + }, "minValue": { "format": "double", "description": "Required if type is `DOUBLE` or `INTEGER`. This field\nshould be unset if type is `CATEGORICAL`. This value should be integers if\ntype is INTEGER.", @@ -192,7 +371,18 @@ }, "type": "array" }, + "maxValue": { + "format": "double", + "description": "Required if typeis `DOUBLE` or `INTEGER`. This field\nshould be unset if type is `CATEGORICAL`. This value should be integers if\ntype is `INTEGER`.", + "type": "number" + }, "scaleType": { + "enumDescriptions": [ + "By default, no scaling is applied.", + "Scales the feasible space to (0, 1) linearly.", + "Scales the feasible space logarithmically to (0, 1). The entire feasible\nspace must be strictly positive.", + "Scales the feasible space \"reverse\" logarithmically to (0, 1). The result\nis that values close to the top of the feasible space are spread out more\nthan points near the bottom. The entire feasible space must be strictly\npositive." + ], "enum": [ "NONE", "UNIT_LINEAR_SCALE", @@ -200,20 +390,16 @@ "UNIT_REVERSE_LOG_SCALE" ], "description": "Optional. How the parameter should be scaled to the hypercube.\nLeave unset for categorical parameters.\nSome kind of scaling is strongly recommended for real or integral\nparameters (e.g., `UNIT_LINEAR_SCALE`).", - "type": "string", - "enumDescriptions": [ - "By default, no scaling is applied.", - "Scales the feasible space to (0, 1) linearly.", - "Scales the feasible space logarithmically to (0, 1). The entire feasible\nspace must be strictly positive.", - "Scales the feasible space \"reverse\" logarithmically to (0, 1). The result\nis that values close to the top of the feasible space are spread out more\nthan points near the bottom. The entire feasible space must be strictly\npositive." - ] - }, - "maxValue": { - "format": "double", - "description": "Required if typeis `DOUBLE` or `INTEGER`. This field\nshould be unset if type is `CATEGORICAL`. This value should be integers if\ntype is `INTEGER`.", - "type": "number" + "type": "string" }, "type": { + "enumDescriptions": [ + "You must specify a valid type. Using this unspecified type will result in\nan error.", + "Type for real-valued parameters.", + "Type for integral parameters.", + "The parameter is categorical, with a value chosen from the categories\nfield.", + "The parameter is real valued, with a fixed set of feasible points. If\n`type==DISCRETE`, feasible_points must be provided, and\n{`min_value`, `max_value`} will be ignored." + ], "enum": [ "PARAMETER_TYPE_UNSPECIFIED", "DOUBLE", @@ -222,35 +408,35 @@ "DISCRETE" ], "description": "Required. The type of the parameter.", - "type": "string", - "enumDescriptions": [ - "You must specify a valid type. Using this unspecified type will result in\nan error.", - "Type for real-valued parameters.", - "Type for integral parameters.", - "The parameter is categorical, with a value chosen from the categories\nfield.", - "The parameter is real valued, with a fixed set of feasible points. If\n`type==DISCRETE`, feasible_points must be provided, and\n{`min_value`, `max_value`} will be ignored." - ] - }, - "parameterName": { - "type": "string", - "description": "Required. The parameter name must be unique amongst all ParameterConfigs in\na HyperparameterSpec message. E.g., \"learning_rate\"." - }, - "categoricalValues": { - "description": "Required if type is `CATEGORICAL`. The list of possible categories.", - "items": { - "type": "string" - }, - "type": "array" + "type": "string" } - }, - "id": "GoogleCloudMlV1__ParameterSpec", - "description": "Represents a single hyperparameter to optimize.", - "type": "object" + } }, "GoogleCloudMlV1__PredictionInput": { "description": "Represents input parameters for a prediction job.", "type": "object", "properties": { + "versionName": { + "description": "Use this field if you want to specify a version of the model to use. The\nstring is formatted the same way as `model_version`, with the addition\nof the version information:\n\n`\"projects/\u003cvar\u003e[YOUR_PROJECT]\u003c/var\u003e/models/\u003cvar\u003eYOUR_MODEL/versions/\u003cvar\u003e[YOUR_VERSION]\u003c/var\u003e\"`", + "type": "string" + }, + "modelName": { + "description": "Use this field if you want to use the default version for the specified\nmodel. The string must use the following format:\n\n`\"projects/\u003cvar\u003e[YOUR_PROJECT]\u003c/var\u003e/models/\u003cvar\u003e[YOUR_MODEL]\u003c/var\u003e\"`", + "type": "string" + }, + "outputPath": { + "description": "Required. The output Google Cloud Storage location.", + "type": "string" + }, + "maxWorkerCount": { + "format": "int64", + "description": "Optional. The maximum number of workers to be used for parallel processing.\nDefaults to 10 if not specified.", + "type": "string" + }, + "uri": { + "description": "Use this field if you want to specify a Google Cloud Storage path for\nthe model to use.", + "type": "string" + }, "dataFormat": { "enum": [ "DATA_FORMAT_UNSPECIFIED", @@ -286,63 +472,68 @@ "region": { "description": "Required. The Google Compute Engine region to run the prediction job in.", "type": "string" - }, - "versionName": { - "description": "Use this field if you want to specify a version of the model to use. The\nstring is formatted the same way as `model_version`, with the addition\nof the version information:\n\n`\"projects/\u003cvar\u003e[YOUR_PROJECT]\u003c/var\u003e/models/\u003cvar\u003eYOUR_MODEL/versions/\u003cvar\u003e[YOUR_VERSION]\u003c/var\u003e\"`", - "type": "string" - }, - "modelName": { - "description": "Use this field if you want to use the default version for the specified\nmodel. The string must use the following format:\n\n`\"projects/\u003cvar\u003e[YOUR_PROJECT]\u003c/var\u003e/models/\u003cvar\u003e[YOUR_MODEL]\u003c/var\u003e\"`", - "type": "string" - }, - "outputPath": { - "description": "Required. The output Google Cloud Storage location.", - "type": "string" - }, - "maxWorkerCount": { - "format": "int64", - "description": "Optional. The maximum number of workers to be used for parallel processing.\nDefaults to 10 if not specified.", - "type": "string" - }, - "uri": { - "description": "Use this field if you want to specify a Google Cloud Storage path for\nthe model to use.", - "type": "string" } }, "id": "GoogleCloudMlV1__PredictionInput" }, - "GoogleType__Expr": { - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", + "GoogleCloudMlV1__OperationMetadata": { + "id": "GoogleCloudMlV1__OperationMetadata", + "description": "Represents the metadata of the long-running operation.\n\nNext ID: 9", "type": "object", "properties": { - "location": { - "type": "string", - "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file." - }, - "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", + "modelName": { + "description": "Contains the name of the model associated with the operation.", "type": "string" }, - "description": { - "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", + "version": { + "$ref": "GoogleCloudMlV1__Version", + "description": "Contains the version associated with the operation." + }, + "endTime": { + "format": "google-datetime", + "description": "The time operation processing completed.", "type": "string" }, - "expression": { + "operationType": { "type": "string", - "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported." + "enumDescriptions": [ + "Unspecified operation type.", + "An operation to create a new version.", + "An operation to delete an existing version.", + "An operation to delete an existing model.", + "An operation to update an existing model.", + "An operation to update an existing version." + ], + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "CREATE_VERSION", + "DELETE_VERSION", + "DELETE_MODEL", + "UPDATE_MODEL", + "UPDATE_VERSION" + ], + "description": "The operation type." + }, + "startTime": { + "format": "google-datetime", + "description": "The time operation processing started.", + "type": "string" + }, + "isCancellationRequested": { + "description": "Indicates whether a request to cancel this operation has been made.", + "type": "boolean" + }, + "createTime": { + "format": "google-datetime", + "description": "The time the operation was submitted.", + "type": "string" } - }, - "id": "GoogleType__Expr" + } }, "GoogleIamV1__AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object", "properties": { - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" - }, "logType": { "enumDescriptions": [ "Default case. Should never be this.", @@ -358,97 +549,46 @@ ], "description": "The log type that this config enables.", "type": "string" + }, + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" } }, - "id": "GoogleIamV1__AuditLogConfig", - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object" + "id": "GoogleIamV1__AuditLogConfig" }, - "GoogleCloudMlV1__OperationMetadata": { + "GoogleType__Expr": { + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", "type": "object", "properties": { - "isCancellationRequested": { - "description": "Indicates whether a request to cancel this operation has been made.", - "type": "boolean" - }, - "createTime": { - "format": "google-datetime", - "description": "The time the operation was submitted.", + "location": { + "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", "type": "string" }, - "modelName": { - "description": "Contains the name of the model associated with the operation.", + "title": { + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", "type": "string" }, - "version": { - "description": "Contains the version associated with the operation.", - "$ref": "GoogleCloudMlV1__Version" - }, - "endTime": { - "format": "google-datetime", - "description": "The time operation processing completed.", + "description": { + "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", "type": "string" }, - "operationType": { - "enum": [ - "OPERATION_TYPE_UNSPECIFIED", - "CREATE_VERSION", - "DELETE_VERSION", - "DELETE_MODEL", - "UPDATE_MODEL", - "UPDATE_VERSION" - ], - "description": "The operation type.", - "type": "string", - "enumDescriptions": [ - "Unspecified operation type.", - "An operation to create a new version.", - "An operation to delete an existing version.", - "An operation to delete an existing model.", - "An operation to update an existing model.", - "An operation to update an existing version." - ] - }, - "startTime": { - "type": "string", - "format": "google-datetime", - "description": "The time operation processing started." + "expression": { + "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", + "type": "string" } }, - "id": "GoogleCloudMlV1__OperationMetadata", - "description": "Represents the metadata of the long-running operation.\n\nNext ID: 9" + "id": "GoogleType__Expr" }, "GoogleCloudMlV1__HyperparameterSpec": { - "description": "Represents a set of hyperparameters to optimize.", - "type": "object", "properties": { - "maxParallelTrials": { + "maxTrials": { "type": "integer", "format": "int32", - "description": "Optional. The number of training trials to run concurrently.\nYou can reduce the time it takes to perform hyperparameter tuning by adding\ntrials in parallel. However, each trail only benefits from the information\ngained in completed trials. That means that a trial does not get access to\nthe results of trials running at the same time, which could reduce the\nquality of the overall optimization.\n\nEach trial will use the same scale tier and machine types.\n\nDefaults to one." - }, - "hyperparameterMetricTag": { - "type": "string", - "description": "Optional. The Tensorflow summary tag name to use for optimizing trials. For\ncurrent versions of Tensorflow, this tag name should exactly match what is\nshown in Tensorboard, including all scopes. For versions of Tensorflow\nprior to 0.12, this should be only the tag passed to tf.Summary.\nBy default, \"training/hptuning/metric\" will be used." - }, - "goal": { - "enumDescriptions": [ - "Goal Type will default to maximize.", - "Maximize the goal metric.", - "Minimize the goal metric." - ], - "enum": [ - "GOAL_TYPE_UNSPECIFIED", - "MAXIMIZE", - "MINIMIZE" - ], - "description": "Required. The type of goal to use for tuning. Available types are\n`MAXIMIZE` and `MINIMIZE`.\n\nDefaults to `MAXIMIZE`.", - "type": "string" - }, - "maxTrials": { - "format": "int32", - "description": "Optional. How many training trials should be attempted to optimize\nthe specified hyperparameters.\n\nDefaults to one.", - "type": "integer" + "description": "Optional. How many training trials should be attempted to optimize\nthe specified hyperparameters.\n\nDefaults to one." }, "params": { "description": "Required. The set of parameters to tune.", @@ -456,24 +596,49 @@ "$ref": "GoogleCloudMlV1__ParameterSpec" }, "type": "array" + }, + "maxParallelTrials": { + "format": "int32", + "description": "Optional. The number of training trials to run concurrently.\nYou can reduce the time it takes to perform hyperparameter tuning by adding\ntrials in parallel. However, each trail only benefits from the information\ngained in completed trials. That means that a trial does not get access to\nthe results of trials running at the same time, which could reduce the\nquality of the overall optimization.\n\nEach trial will use the same scale tier and machine types.\n\nDefaults to one.", + "type": "integer" + }, + "hyperparameterMetricTag": { + "description": "Optional. The Tensorflow summary tag name to use for optimizing trials. For\ncurrent versions of Tensorflow, this tag name should exactly match what is\nshown in Tensorboard, including all scopes. For versions of Tensorflow\nprior to 0.12, this should be only the tag passed to tf.Summary.\nBy default, \"training/hptuning/metric\" will be used.", + "type": "string" + }, + "goal": { + "enum": [ + "GOAL_TYPE_UNSPECIFIED", + "MAXIMIZE", + "MINIMIZE" + ], + "description": "Required. The type of goal to use for tuning. Available types are\n`MAXIMIZE` and `MINIMIZE`.\n\nDefaults to `MAXIMIZE`.", + "type": "string", + "enumDescriptions": [ + "Goal Type will default to maximize.", + "Maximize the goal metric.", + "Minimize the goal metric." + ] } }, - "id": "GoogleCloudMlV1__HyperparameterSpec" + "id": "GoogleCloudMlV1__HyperparameterSpec", + "description": "Represents a set of hyperparameters to optimize.", + "type": "object" }, "GoogleCloudMlV1__ListJobsResponse": { "description": "Response message for the ListJobs method.", "type": "object", "properties": { - "jobs": { - "description": "The list of jobs.", - "items": { - "$ref": "GoogleCloudMlV1__Job" - }, - "type": "array" - }, "nextPageToken": { "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.", "type": "string" + }, + "jobs": { + "items": { + "$ref": "GoogleCloudMlV1__Job" + }, + "type": "array", + "description": "The list of jobs." } }, "id": "GoogleCloudMlV1__ListJobsResponse" @@ -485,8 +650,21 @@ "id": "GoogleCloudMlV1__SetDefaultVersionRequest" }, "GoogleLongrunning__Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { + "error": { + "$ref": "GoogleRpc__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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", "type": "boolean" @@ -502,22 +680,9 @@ "name": { "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", "type": "string" - }, - "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "GoogleRpc__Status" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" } }, - "id": "GoogleLongrunning__Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." + "id": "GoogleLongrunning__Operation" }, "GoogleIamV1__AuditConfig": { "type": "object", @@ -544,19 +709,9 @@ "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging." }, "GoogleCloudMlV1__Model": { + "description": "Represents a machine learning solution.\n\nA model can have multiple versions, each of which is a deployed, trained\nmodel ready to receive prediction requests. The model itself is just a\ncontainer.\n\nNext ID: 8", "type": "object", "properties": { - "defaultVersion": { - "description": "Output only. The default version of the model. This version will be used to\nhandle prediction requests that do not specify a version.\n\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).", - "$ref": "GoogleCloudMlV1__Version" - }, - "regions": { - "description": "Optional. The list of regions where the model is going to be deployed.\nCurrently only one region per model is supported.\nDefaults to 'us-central1' if nothing is set.\nNote:\n* No matter where a model is deployed, it can always be accessed by\n users from anywhere, both for online and batch prediction.\n* The region for a batch prediction job is set by the region field when\n submitting the batch prediction job and does not take its value from\n this field.", - "items": { - "type": "string" - }, - "type": "array" - }, "name": { "description": "Required. The name specified for the model when it was created.\n\nThe model name must be unique within the project it is created in.", "type": "string" @@ -568,16 +723,50 @@ "onlinePredictionLogging": { "description": "Optional. If true, enables StackDriver Logging for online prediction.\nDefault is false.", "type": "boolean" + }, + "defaultVersion": { + "description": "Output only. The default version of the model. This version will be used to\nhandle prediction requests that do not specify a version.\n\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).", + "$ref": "GoogleCloudMlV1__Version" + }, + "regions": { + "description": "Optional. The list of regions where the model is going to be deployed.\nCurrently only one region per model is supported.\nDefaults to 'us-central1' if nothing is set.\nNote:\n* No matter where a model is deployed, it can always be accessed by\n users from anywhere, both for online and batch prediction.\n* The region for a batch prediction job is set by the region field when\n submitting the batch prediction job and does not take its value from\n this field.", + "items": { + "type": "string" + }, + "type": "array" } }, - "id": "GoogleCloudMlV1__Model", - "description": "Represents a machine learning solution.\n\nA model can have multiple versions, each of which is a deployed, trained\nmodel ready to receive prediction requests. The model itself is just a\ncontainer.\n\nNext ID: 8" + "id": "GoogleCloudMlV1__Model" }, "GoogleProtobuf__Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", "properties": {}, - "id": "GoogleProtobuf__Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`." + "id": "GoogleProtobuf__Empty" + }, + "GoogleCloudMlV1__ListVersionsResponse": { + "description": "Response message for the ListVersions method.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.", + "type": "string" + }, + "versions": { + "description": "The list of versions.", + "items": { + "$ref": "GoogleCloudMlV1__Version" + }, + "type": "array" + } + }, + "id": "GoogleCloudMlV1__ListVersionsResponse" + }, + "GoogleCloudMlV1__CancelJobRequest": { + "description": "Request message for the CancelJob method.", + "type": "object", + "properties": {}, + "id": "GoogleCloudMlV1__CancelJobRequest" }, "GoogleIamV1__TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", @@ -593,30 +782,6 @@ }, "id": "GoogleIamV1__TestIamPermissionsRequest" }, - "GoogleCloudMlV1__CancelJobRequest": { - "description": "Request message for the CancelJob method.", - "type": "object", - "properties": {}, - "id": "GoogleCloudMlV1__CancelJobRequest" - }, - "GoogleCloudMlV1__ListVersionsResponse": { - "description": "Response message for the ListVersions method.", - "type": "object", - "properties": { - "versions": { - "description": "The list of versions.", - "items": { - "$ref": "GoogleCloudMlV1__Version" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.", - "type": "string" - } - }, - "id": "GoogleCloudMlV1__ListVersionsResponse" - }, "GoogleCloudMlV1__AutoScaling": { "description": "Options for automatically scaling a model.", "type": "object", @@ -650,94 +815,15 @@ "type": "integer" }, "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" + "type": "string", + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client." } }, "id": "GoogleRpc__Status" }, - "GoogleCloudMlV1__ListModelsResponse": { - "id": "GoogleCloudMlV1__ListModelsResponse", - "description": "Response message for the ListModels method.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.", - "type": "string" - }, - "models": { - "description": "The list of models.", - "items": { - "$ref": "GoogleCloudMlV1__Model" - }, - "type": "array" - } - } - }, "GoogleCloudMlV1__TrainingInput": { - "id": "GoogleCloudMlV1__TrainingInput", - "description": "Represents input parameters for a training job.", "type": "object", "properties": { - "region": { - "description": "Required. The Google Compute Engine region to run the training job in.", - "type": "string" - }, - "args": { - "description": "Optional. Command line arguments to pass to the program.", - "items": { - "type": "string" - }, - "type": "array" - }, - "workerType": { - "type": "string", - "description": "Optional. Specifies the type of virtual machine to use for your training\njob's worker nodes.\n\nThe supported values are the same as those described in the entry for\n`masterType`.\n\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`workerCount` is greater than zero." - }, - "parameterServerType": { - "type": "string", - "description": "Optional. Specifies the type of virtual machine to use for your training\njob's parameter server.\n\nThe supported values are the same as those described in the entry for\n`master_type`.\n\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`parameter_server_count` is greater than zero." - }, - "scaleTier": { - "enumDescriptions": [ - "A single worker instance. This tier is suitable for learning how to use\nCloud ML, and for experimenting with new models using small datasets.", - "Many workers and a few parameter servers.", - "A large number of workers with many parameter servers.", - "A single worker instance [with a\nGPU](/ml-engine/docs/how-tos/using-gpus).", - "A single worker instance with a [Cloud TPU](/tpu)", - "The CUSTOM tier is not a set tier, but rather enables you to use your\nown cluster specification. When you use this tier, set values to\nconfigure your processing cluster according to these guidelines:\n\n* You _must_ set `TrainingInput.masterType` to specify the type\n of machine to use for your master node. This is the only required\n setting.\n\n* You _may_ set `TrainingInput.workerCount` to specify the number of\n workers to use. If you specify one or more workers, you _must_ also\n set `TrainingInput.workerType` to specify the type of machine to use\n for your worker nodes.\n\n* You _may_ set `TrainingInput.parameterServerCount` to specify the\n number of parameter servers to use. If you specify one or more\n parameter servers, you _must_ also set\n `TrainingInput.parameterServerType` to specify the type of machine to\n use for your parameter servers.\n\nNote that all of your workers must use the same machine type, which can\nbe different from your parameter server type and master type. Your\nparameter servers must likewise use the same machine type, which can be\ndifferent from your worker type and master type." - ], - "enum": [ - "BASIC", - "STANDARD_1", - "PREMIUM_1", - "BASIC_GPU", - "BASIC_TPU", - "CUSTOM" - ], - "description": "Required. Specifies the machine types, the number of replicas for workers\nand parameter servers.", - "type": "string" - }, - "jobDir": { - "description": "Optional. A Google Cloud Storage path in which to store training outputs\nand other data needed for training. This path is passed to your TensorFlow\nprogram as the 'job_dir' command-line argument. The benefit of specifying\nthis field is that Cloud ML validates the path for use in training.", - "type": "string" - }, - "hyperparameters": { - "description": "Optional. The set of Hyperparameters to tune.", - "$ref": "GoogleCloudMlV1__HyperparameterSpec" - }, - "parameterServerCount": { - "format": "int64", - "description": "Optional. The number of parameter server replicas to use for the training\njob. Each replica in the cluster will be of the type specified in\n`parameter_server_type`.\n\nThis value can only be used when `scale_tier` is set to `CUSTOM`.If you\nset this value, you must also set `parameter_server_type`.", - "type": "string" - }, - "packageUris": { - "description": "Required. The Google Cloud Storage location of the packages with\nthe training program and any additional dependencies.\nThe maximum number of package URIs is 100.", - "items": { - "type": "string" - }, - "type": "array" - }, "workerCount": { "format": "int64", "description": "Optional. The number of worker replicas to use for the training job. Each\nreplica in the cluster will be of the type specified in `worker_type`.\n\nThis value can only be used when `scale_tier` is set to `CUSTOM`. If you\nset this value, you must also set `worker_type`.", @@ -754,23 +840,104 @@ "pythonModule": { "description": "Required. The Python module name to run after installing the packages.", "type": "string" + }, + "workerType": { + "description": "Optional. Specifies the type of virtual machine to use for your training\njob's worker nodes.\n\nThe supported values are the same as those described in the entry for\n`masterType`.\n\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`workerCount` is greater than zero.", + "type": "string" + }, + "args": { + "description": "Optional. Command line arguments to pass to the program.", + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "Required. The Google Compute Engine region to run the training job in.", + "type": "string" + }, + "parameterServerType": { + "description": "Optional. Specifies the type of virtual machine to use for your training\njob's parameter server.\n\nThe supported values are the same as those described in the entry for\n`master_type`.\n\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`parameter_server_count` is greater than zero.", + "type": "string" + }, + "scaleTier": { + "type": "string", + "enumDescriptions": [ + "A single worker instance. This tier is suitable for learning how to use\nCloud ML, and for experimenting with new models using small datasets.", + "Many workers and a few parameter servers.", + "A large number of workers with many parameter servers.", + "A single worker instance [with a\nGPU](/ml-engine/docs/how-tos/using-gpus).", + "A single worker instance with a [Cloud TPU](/tpu)", + "The CUSTOM tier is not a set tier, but rather enables you to use your\nown cluster specification. When you use this tier, set values to\nconfigure your processing cluster according to these guidelines:\n\n* You _must_ set `TrainingInput.masterType` to specify the type\n of machine to use for your master node. This is the only required\n setting.\n\n* You _may_ set `TrainingInput.workerCount` to specify the number of\n workers to use. If you specify one or more workers, you _must_ also\n set `TrainingInput.workerType` to specify the type of machine to use\n for your worker nodes.\n\n* You _may_ set `TrainingInput.parameterServerCount` to specify the\n number of parameter servers to use. If you specify one or more\n parameter servers, you _must_ also set\n `TrainingInput.parameterServerType` to specify the type of machine to\n use for your parameter servers.\n\nNote that all of your workers must use the same machine type, which can\nbe different from your parameter server type and master type. Your\nparameter servers must likewise use the same machine type, which can be\ndifferent from your worker type and master type." + ], + "enum": [ + "BASIC", + "STANDARD_1", + "PREMIUM_1", + "BASIC_GPU", + "BASIC_TPU", + "CUSTOM" + ], + "description": "Required. Specifies the machine types, the number of replicas for workers\nand parameter servers." + }, + "jobDir": { + "description": "Optional. A Google Cloud Storage path in which to store training outputs\nand other data needed for training. This path is passed to your TensorFlow\nprogram as the 'job_dir' command-line argument. The benefit of specifying\nthis field is that Cloud ML validates the path for use in training.", + "type": "string" + }, + "hyperparameters": { + "$ref": "GoogleCloudMlV1__HyperparameterSpec", + "description": "Optional. The set of Hyperparameters to tune." + }, + "parameterServerCount": { + "type": "string", + "format": "int64", + "description": "Optional. The number of parameter server replicas to use for the training\njob. Each replica in the cluster will be of the type specified in\n`parameter_server_type`.\n\nThis value can only be used when `scale_tier` is set to `CUSTOM`.If you\nset this value, you must also set `parameter_server_type`." + }, + "packageUris": { + "description": "Required. The Google Cloud Storage location of the packages with\nthe training program and any additional dependencies.\nThe maximum number of package URIs is 100.", + "items": { + "type": "string" + }, + "type": "array" } - } + }, + "id": "GoogleCloudMlV1__TrainingInput", + "description": "Represents input parameters for a training job." + }, + "GoogleCloudMlV1__ListModelsResponse": { + "description": "Response message for the ListModels method.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.", + "type": "string" + }, + "models": { + "description": "The list of models.", + "items": { + "$ref": "GoogleCloudMlV1__Model" + }, + "type": "array" + } + }, + "id": "GoogleCloudMlV1__ListModelsResponse" }, "GoogleCloudMlV1__Job": { + "description": "Represents a training or prediction job.\n\nNext ID: 16", + "type": "object", "properties": { "trainingOutput": { - "$ref": "GoogleCloudMlV1__TrainingOutput", - "description": "The current training job result." - }, - "trainingInput": { - "description": "Input parameters to create a training job.", - "$ref": "GoogleCloudMlV1__TrainingInput" + "description": "The current training job result.", + "$ref": "GoogleCloudMlV1__TrainingOutput" }, "createTime": { - "type": "string", "format": "google-datetime", - "description": "Output only. When the job was created." + "description": "Output only. When the job was created.", + "type": "string" + }, + "trainingInput": { + "$ref": "GoogleCloudMlV1__TrainingInput", + "description": "Input parameters to create a training job." }, "state": { "description": "Output only. The detailed state of a job.", @@ -800,14 +967,14 @@ "$ref": "GoogleCloudMlV1__PredictionInput", "description": "Input parameters to create a prediction job." }, - "errorMessage": { - "description": "Output only. The details of a failure or a cancellation.", - "type": "string" - }, "jobId": { "description": "Required. The user-specified id of the job.", "type": "string" }, + "errorMessage": { + "description": "Output only. The details of a failure or a cancellation.", + "type": "string" + }, "endTime": { "format": "google-datetime", "description": "Output only. When the job processing was completed.", @@ -819,175 +986,11 @@ "type": "string" }, "predictionOutput": { - "description": "The current prediction job result.", - "$ref": "GoogleCloudMlV1__PredictionOutput" + "$ref": "GoogleCloudMlV1__PredictionOutput", + "description": "The current prediction job result." } }, - "id": "GoogleCloudMlV1__Job", - "description": "Represents a training or prediction job.\n\nNext ID: 16", - "type": "object" - }, - "GoogleApi__HttpBody": { - "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.", - "type": "object", - "properties": { - "contentType": { - "description": "The HTTP Content-Type string representing the content type of the body.", - "type": "string" - }, - "extensions": { - "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "data": { - "format": "byte", - "description": "HTTP body binary data.", - "type": "string" - } - }, - "id": "GoogleApi__HttpBody" - }, - "GoogleCloudMlV1__GetConfigResponse": { - "id": "GoogleCloudMlV1__GetConfigResponse", - "description": "Returns service account information associated with a project.", - "type": "object", - "properties": { - "serviceAccountProject": { - "format": "int64", - "description": "The project number for `service_account`.", - "type": "string" - }, - "serviceAccount": { - "description": "The service account Cloud ML uses to access resources in the project.", - "type": "string" - } - } - }, - "GoogleIamV1__TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "GoogleIamV1__TestIamPermissionsResponse" - }, - "GoogleCloudMlV1__HyperparameterOutput": { - "description": "Represents the result of a single hyperparameter tuning trial from a\ntraining job. The TrainingOutput object that is returned on successful\ncompletion of a training job with hyperparameter tuning includes a list\nof HyperparameterOutput objects, one for each successful trial.", - "type": "object", - "properties": { - "allMetrics": { - "description": "All recorded object metrics for this trial. This field is not currently\npopulated.", - "items": { - "$ref": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric" - }, - "type": "array" - }, - "finalMetric": { - "$ref": "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric", - "description": "The final objective metric seen for this trial." - }, - "hyperparameters": { - "description": "The hyperparameters given to this trial.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "trialId": { - "description": "The trial id for these results.", - "type": "string" - } - }, - "id": "GoogleCloudMlV1__HyperparameterOutput" - }, - "GoogleIamV1__SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "GoogleIamV1__Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "GoogleIamV1__SetIamPolicyRequest" - }, - "GoogleCloudMlV1__PredictionOutput": { - "description": "Represents results of a prediction job.", - "type": "object", - "properties": { - "errorCount": { - "format": "int64", - "description": "The number of data instances which resulted in errors.", - "type": "string" - }, - "nodeHours": { - "format": "double", - "description": "Node hours used by the batch prediction job.", - "type": "number" - }, - "outputPath": { - "description": "The output Google Cloud Storage location provided at the job creation time.", - "type": "string" - }, - "predictionCount": { - "type": "string", - "format": "int64", - "description": "The number of generated predictions." - } - }, - "id": "GoogleCloudMlV1__PredictionOutput" - }, - "GoogleIamV1__Policy": { - "id": "GoogleIamV1__Policy", - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object", - "properties": { - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - }, - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "GoogleIamV1__AuditConfig" - }, - "type": "array" - }, - "bindings": { - "items": { - "$ref": "GoogleIamV1__Binding" - }, - "type": "array", - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error." - }, - "iamOwned": { - "type": "boolean" - } - } + "id": "GoogleCloudMlV1__Job" } }, "protocol": "rest", @@ -1014,7 +1017,36 @@ "resources": { "projects": { "methods": { + "predict": { + "request": { + "$ref": "GoogleCloudMlV1__PredictRequest" + }, + "description": "Performs prediction on the data in the request.\n\n**** REMOVE FROM GENERATED DOCUMENTATION", + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "GoogleApi__HttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "Required. The resource name of a model or a version.\n\nAuthorization: requires the `predict` permission on the specified resource.", + "type": "string", + "required": true, + "pattern": "^projects/.+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}:predict", + "path": "v1/{+name}:predict", + "id": "ml.projects.predict" + }, "getConfig": { + "flatPath": "v1/projects/{projectsId}:getConfig", "id": "ml.projects.getConfig", "path": "v1/{+name}:getConfig", "description": "Get the service account information associated with your project. You need\nthis information in order to grant the service account persmissions for\nthe Google Cloud Storage location where you put your model training code\nfor training the model with Google Cloud Machine Learning.", @@ -1034,35 +1066,6 @@ "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}:getConfig" - }, - "predict": { - "flatPath": "v1/projects/{projectsId}:predict", - "id": "ml.projects.predict", - "path": "v1/{+name}:predict", - "description": "Performs prediction on the data in the request.\n\n**** REMOVE FROM GENERATED DOCUMENTATION", - "request": { - "$ref": "GoogleCloudMlV1__PredictRequest" - }, - "response": { - "$ref": "GoogleApi__HttpBody" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "pattern": "^projects/.+$", - "location": "path", - "description": "Required. The resource name of a model or a version.\n\nAuthorization: requires the `predict` permission on the specified resource.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] @@ -1071,86 +1074,85 @@ "resources": { "models": { "methods": { - "delete": { - "httpMethod": "DELETE", + "testIamPermissions": { + "httpMethod": "POST", "parameterOrder": [ - "name" + "resource" ], "response": { - "$ref": "GoogleLongrunning__Operation" + "$ref": "GoogleIamV1__TestIamPermissionsResponse" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { - "name": { + "resource": { "location": "path", - "description": "Required. The name of the model.", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", "required": true, "pattern": "^projects/[^/]+/models/[^/]+$" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/models/{modelsId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "ml.projects.models.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "GoogleIamV1__TestIamPermissionsRequest" + } + }, + "delete": { + "description": "Deletes a model.\n\nYou can only delete a model if there are no versions in it. You can delete\nversions by calling\n[projects.models.versions.delete](/ml-engine/reference/rest/v1/projects.models.versions/delete).", + "httpMethod": "DELETE", + "response": { + "$ref": "GoogleLongrunning__Operation" + }, + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+$", + "location": "path", + "description": "Required. The name of the model." + } + }, "flatPath": "v1/projects/{projectsId}/models/{modelsId}", "path": "v1/{+name}", - "id": "ml.projects.models.delete", - "description": "Deletes a model.\n\nYou can only delete a model if there are no versions in it. You can delete\nversions by calling\n[projects.models.versions.delete](/ml-engine/reference/rest/v1/projects.models.versions/delete)." + "id": "ml.projects.models.delete" }, "list": { - "description": "Lists the models in a project.\n\nEach project can contain multiple models, and each model can have multiple\nversions.", + "httpMethod": "GET", "response": { "$ref": "GoogleCloudMlV1__ListModelsResponse" }, "parameterOrder": [ "parent" ], - "httpMethod": "GET", "parameters": { - "pageSize": { - "format": "int32", - "description": "Optional. The number of models to retrieve per \"page\" of results. If there\nare more remaining results than this number, the response message will\ncontain a valid value in the `next_page_token` field.\n\nThe default value is 20, and the maximum page size is 100.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "Required. The name of the project whose models are to be listed.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - }, "pageToken": { "location": "query", "description": "Optional. A page token to request the next page of results.\n\nYou get the token from the `next_page_token` field of the response from\nthe previous call.", "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/models", - "id": "ml.projects.models.list", - "path": "v1/{+parent}/models" - }, - "create": { - "description": "Creates a model which will later contain one or more versions.\n\nYou must add at least one version before you can request predictions from\nthe model. Add versions by calling\n[projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create).", - "request": { - "$ref": "GoogleCloudMlV1__Model" - }, - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "GoogleCloudMlV1__Model" - }, - "parameters": { + }, + "pageSize": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "Optional. The number of models to retrieve per \"page\" of results. If there\nare more remaining results than this number, the response message will\ncontain a valid value in the `next_page_token` field.\n\nThe default value is 20, and the maximum page size is 100." + }, "parent": { - "type": "string", - "required": true, "pattern": "^projects/[^/]+$", "location": "path", - "description": "Required. The project name." + "description": "Required. The name of the project whose models are to be listed.", + "type": "string", + "required": true } }, "scopes": [ @@ -1158,45 +1160,49 @@ ], "flatPath": "v1/projects/{projectsId}/models", "path": "v1/{+parent}/models", - "id": "ml.projects.models.create" + "id": "ml.projects.models.list", + "description": "Lists the models in a project.\n\nEach project can contain multiple models, and each model can have multiple\nversions." }, - "setIamPolicy": { + "create": { "request": { - "$ref": "GoogleIamV1__SetIamPolicyRequest" + "$ref": "GoogleCloudMlV1__Model" }, - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "description": "Creates a model which will later contain one or more versions.\n\nYou must add at least one version before you can request predictions from\nthe model. Add versions by calling\n[projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create).", "response": { - "$ref": "GoogleIamV1__Policy" + "$ref": "GoogleCloudMlV1__Model" }, "parameterOrder": [ - "resource" + "parent" ], "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "resource": { + "parent": { + "pattern": "^projects/[^/]+$", "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "description": "Required. The project name.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/models/[^/]+$" + "required": true } }, - "flatPath": "v1/projects/{projectsId}/models/{modelsId}:setIamPolicy", - "id": "ml.projects.models.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy" + "flatPath": "v1/projects/{projectsId}/models", + "id": "ml.projects.models.create", + "path": "v1/{+parent}/models" }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "response": { - "$ref": "GoogleIamV1__Policy" + "setIamPolicy": { + "request": { + "$ref": "GoogleIamV1__SetIamPolicyRequest" }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "httpMethod": "POST", "parameterOrder": [ "resource" ], - "httpMethod": "GET", + "response": { + "$ref": "GoogleIamV1__Policy" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], @@ -1204,19 +1210,75 @@ "resource": { "pattern": "^projects/[^/]+/models/[^/]+$", "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "type": "string", "required": true } }, - "flatPath": "v1/projects/{projectsId}/models/{modelsId}:getIamPolicy", + "flatPath": "v1/projects/{projectsId}/models/{modelsId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "ml.projects.models.setIamPolicy" + }, + "getIamPolicy": { + "path": "v1/{+resource}:getIamPolicy", "id": "ml.projects.models.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy" + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "httpMethod": "GET", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "GoogleIamV1__Policy" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/models/{modelsId}:getIamPolicy" + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "GoogleLongrunning__Operation" + }, + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+$", + "location": "path", + "description": "Required. The project name." + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Required. Specifies the path, relative to `Model`, of the field to update.\n\nFor example, to change the description of a model to \"foo\" and set its\ndefault version to \"version_1\", the `update_mask` parameter would be\nspecified as `description`, `default_version.name`, and the `PATCH`\nrequest body would specify the new value, as follows:\n {\n \"description\": \"foo\",\n \"defaultVersion\": {\n \"name\":\"version_1\"\n }\n }\nIn this example, the model is blindly overwritten since no etag is given.\n\nTo adopt etag mechanism, include `etag` field in the mask, and include the\n`etag` value in your model resource.\n\nCurrently the supported update masks are `description`,\n`default_version.name`, `labels`, and `etag`.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/models/{modelsId}", + "path": "v1/{+name}", + "id": "ml.projects.models.patch", + "description": "Updates a specific model resource.\n\nCurrently the only supported fields to update are `description` and\n`default_version.name`.", + "request": { + "$ref": "GoogleCloudMlV1__Model" + } }, "get": { - "path": "v1/{+name}", - "id": "ml.projects.models.get", - "description": "Gets information about a model, including its name, the description (if\nset), and the default version (if at least one version of the model has\nbeen deployed).", "httpMethod": "GET", "parameterOrder": [ "name" @@ -1229,58 +1291,34 @@ ], "parameters": { "name": { - "location": "path", - "description": "Required. The name of the model.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/models/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/models/{modelsId}" - }, - "testIamPermissions": { - "flatPath": "v1/projects/{projectsId}/models/{modelsId}:testIamPermissions", - "id": "ml.projects.models.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "GoogleIamV1__TestIamPermissionsRequest" - }, - "response": { - "$ref": "GoogleIamV1__TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { "pattern": "^projects/[^/]+/models/[^/]+$", "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "description": "Required. The name of the model.", "type": "string", "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "flatPath": "v1/projects/{projectsId}/models/{modelsId}", + "path": "v1/{+name}", + "id": "ml.projects.models.get", + "description": "Gets information about a model, including its name, the description (if\nset), and the default version (if at least one version of the model has\nbeen deployed)." } }, "resources": { "versions": { "methods": { "setDefault": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], + "description": "Designates a version to be the default for the model.\n\nThe default version is used for prediction requests made against the model\nthat don't specify a version.\n\nThe first version to be created for a model is automatically set as the\ndefault. You must make any subsequent changes to the default version\nsetting manually using this method.", + "request": { + "$ref": "GoogleCloudMlV1__SetDefaultVersionRequest" + }, "response": { "$ref": "GoogleCloudMlV1__Version" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "parameterOrder": [ + "name" ], + "httpMethod": "POST", "parameters": { "name": { "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", @@ -1290,76 +1328,57 @@ "required": true } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}:setDefault", - "path": "v1/{+name}:setDefault", "id": "ml.projects.models.versions.setDefault", - "request": { - "$ref": "GoogleCloudMlV1__SetDefaultVersionRequest" - }, - "description": "Designates a version to be the default for the model.\n\nThe default version is used for prediction requests made against the model\nthat don't specify a version.\n\nThe first version to be created for a model is automatically set as the\ndefault. You must make any subsequent changes to the default version\nsetting manually using this method." + "path": "v1/{+name}:setDefault" }, "delete": { - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], "response": { "$ref": "GoogleLongrunning__Operation" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "Required. The name of the version. You can get the names of all the\nversions of a model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}", - "path": "v1/{+name}", - "id": "ml.projects.models.versions.delete", - "description": "Deletes a model version.\n\nEach model can have multiple versions deployed and in use at any given\ntime. Use this method to remove a single version.\n\nNote: You cannot delete the version that is set as the default version\nof the model unless it is the only remaining version." - }, - "get": { - "description": "Gets information about a model version.\n\nModels can have multiple versions. You can call\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list)\nto get the same information that this method returns for all of the\nversions of a model.", - "httpMethod": "GET", - "response": { - "$ref": "GoogleCloudMlV1__Version" - }, "parameterOrder": [ "name" ], + "httpMethod": "DELETE", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", + "location": "path", + "description": "Required. The name of the version. You can get the names of all the\nversions of a model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).", + "type": "string", + "required": true + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "parameters": { - "name": { - "location": "path", - "description": "Required. The name of the version.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$" - } - }, "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}", + "id": "ml.projects.models.versions.delete", "path": "v1/{+name}", - "id": "ml.projects.models.versions.get" + "description": "Deletes a model version.\n\nEach model can have multiple versions deployed and in use at any given\ntime. Use this method to remove a single version.\n\nNote: You cannot delete the version that is set as the default version\nof the model unless it is the only remaining version." }, "list": { "response": { "$ref": "GoogleCloudMlV1__ListVersionsResponse" }, + "httpMethod": "GET", "parameterOrder": [ "parent" ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { + "parent": { + "description": "Required. The name of the model for which to list the version.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+$", + "location": "path" + }, "pageToken": { "location": "query", "description": "Optional. A page token to request the next page of results.\n\nYou get the token from the `next_page_token` field of the response from\nthe previous call.", @@ -1370,13 +1389,6 @@ "format": "int32", "description": "Optional. The number of versions to retrieve per \"page\" of results. If\nthere are more remaining results than this number, the response message\nwill contain a valid value in the `next_page_token` field.\n\nThe default value is 20, and the maximum page size is 100.", "type": "integer" - }, - "parent": { - "pattern": "^projects/[^/]+/models/[^/]+$", - "location": "path", - "description": "Required. The name of the model for which to list the version.", - "type": "string", - "required": true } }, "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions", @@ -1385,10 +1397,6 @@ "description": "Gets basic information about all the versions of a model.\n\nIf you expect that a model has a lot of versions, or if you need to handle\nonly a limited number of results at a time, you can request that the list\nbe retrieved in batches (called pages):" }, "create": { - "request": { - "$ref": "GoogleCloudMlV1__Version" - }, - "description": "Creates a new version of a model from a trained TensorFlow model.\n\nIf the version created in the cloud by this call is the first deployed\nversion of the specified model, it will be made the default version of the\nmodel. When you add a version to a model that already has one or more\nversions, the default version does not automatically change. If you want a\nnew version to be the default, you must call\n[projects.models.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).", "httpMethod": "POST", "parameterOrder": [ "parent" @@ -1396,21 +1404,84 @@ "response": { "$ref": "GoogleLongrunning__Operation" }, + "parameters": { + "parent": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+$", + "location": "path", + "description": "Required. The name of the model." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions", + "path": "v1/{+parent}/versions", + "id": "ml.projects.models.versions.create", + "description": "Creates a new version of a model from a trained TensorFlow model.\n\nIf the version created in the cloud by this call is the first deployed\nversion of the specified model, it will be made the default version of the\nmodel. When you add a version to a model that already has one or more\nversions, the default version does not automatically change. If you want a\nnew version to be the default, you must call\n[projects.models.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).", + "request": { + "$ref": "GoogleCloudMlV1__Version" + } + }, + "patch": { + "description": "Updates the specified Version resource.\n\nCurrently the only supported field to update is `description`.", + "request": { + "$ref": "GoogleCloudMlV1__Version" + }, + "response": { + "$ref": "GoogleLongrunning__Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "type": "string", + "location": "query", + "format": "google-fieldmask", + "description": "Required. Specifies the path, relative to `Version`, of the field to\nupdate. Must be present and non-empty.\n\nFor example, to change the description of a version to \"foo\", the\n`update_mask` parameter would be specified as `description`, and the\n`PATCH` request body would specify the new value, as follows:\n {\n \"description\": \"foo\"\n }\nIn this example, the version is blindly overwritten since no etag is given.\n\nTo adopt etag mechanism, include `etag` field in the mask, and include the\n`etag` value in your version resource.\n\nCurrently the only supported update masks are `description`, `labels`, and\n`etag`." + }, + "name": { + "description": "Required. The name of the model.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}", + "id": "ml.projects.models.versions.patch", + "path": "v1/{+name}" + }, + "get": { + "description": "Gets information about a model version.\n\nModels can have multiple versions. You can call\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list)\nto get the same information that this method returns for all of the\nversions of a model.", + "response": { + "$ref": "GoogleCloudMlV1__Version" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the model.", + "name": { + "description": "Required. The name of the version.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/models/[^/]+$" + "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", + "location": "path" } }, - "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions", - "path": "v1/{+parent}/versions", - "id": "ml.projects.models.versions.create" + "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}", + "id": "ml.projects.models.versions.get", + "path": "v1/{+name}" } } } @@ -1419,9 +1490,6 @@ "operations": { "methods": { "cancel": { - "flatPath": "v1/projects/{projectsId}/operations/{operationsId}:cancel", - "id": "ml.projects.operations.cancel", - "path": "v1/{+name}:cancel", "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", "response": { "$ref": "GoogleProtobuf__Empty" @@ -1441,9 +1509,13 @@ }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" - ] + ], + "flatPath": "v1/projects/{projectsId}/operations/{operationsId}:cancel", + "id": "ml.projects.operations.cancel", + "path": "v1/{+name}:cancel" }, "delete": { + "flatPath": "v1/projects/{projectsId}/operations/{operationsId}", "path": "v1/{+name}", "id": "ml.projects.operations.delete", "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", @@ -1454,9 +1526,6 @@ "response": { "$ref": "GoogleProtobuf__Empty" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], "parameters": { "name": { "pattern": "^projects/[^/]+/operations/[^/]+$", @@ -1466,12 +1535,11 @@ "required": true } }, - "flatPath": "v1/projects/{projectsId}/operations/{operationsId}" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] }, "get": { - "flatPath": "v1/projects/{projectsId}/operations/{operationsId}", - "id": "ml.projects.operations.get", - "path": "v1/{+name}", "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", "response": { "$ref": "GoogleLongrunning__Operation" @@ -1480,96 +1548,68 @@ "name" ], "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/operations/[^/]+$", - "location": "path", - "description": "The name of the operation resource.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" - ] + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/operations/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/operations/{operationsId}", + "id": "ml.projects.operations.get", + "path": "v1/{+name}" }, "list": { "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "response": { - "$ref": "GoogleLongrunning__ListOperationsResponse" - }, + "httpMethod": "GET", "parameterOrder": [ "name" ], - "httpMethod": "GET", + "response": { + "$ref": "GoogleLongrunning__ListOperationsResponse" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { "location": "query", - "description": "The standard list page token.", + "description": "The standard list filter.", "type": "string" }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, "name": { + "pattern": "^projects/[^/]+$", + "location": "path", "description": "The name of the operation's parent resource.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" + "required": true }, "pageSize": { + "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer", - "location": "query" + "type": "integer" } }, "flatPath": "v1/projects/{projectsId}/operations", - "id": "ml.projects.operations.list", - "path": "v1/{+name}/operations" + "path": "v1/{+name}/operations", + "id": "ml.projects.operations.list" } } }, "jobs": { "methods": { - "get": { - "response": { - "$ref": "GoogleCloudMlV1__Job" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/jobs/[^/]+$", - "location": "path", - "description": "Required. The name of the job to get the description of.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}", - "id": "ml.projects.jobs.get", - "path": "v1/{+name}", - "description": "Describes a job." - }, "testIamPermissions": { - "id": "ml.projects.jobs.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "GoogleIamV1__TestIamPermissionsRequest" - }, "response": { "$ref": "GoogleIamV1__TestIamPermissionsResponse" }, @@ -1579,26 +1619,25 @@ "httpMethod": "POST", "parameters": { "resource": { + "pattern": "^projects/[^/]+/jobs/[^/]+$", "location": "path", "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/jobs/[^/]+$" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:testIamPermissions" + "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:testIamPermissions", + "id": "ml.projects.jobs.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "GoogleIamV1__TestIamPermissionsRequest" + } }, "list": { - "response": { - "$ref": "GoogleCloudMlV1__ListJobsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], @@ -1622,43 +1661,22 @@ "location": "path" }, "filter": { - "location": "query", "description": "Optional. Specifies the subset of jobs to retrieve.", - "type": "string" + "type": "string", + "location": "query" } }, "flatPath": "v1/projects/{projectsId}/jobs", "id": "ml.projects.jobs.list", "path": "v1/{+parent}/jobs", - "description": "Lists the jobs in the project." - }, - "setIamPolicy": { - "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:setIamPolicy", - "id": "ml.projects.jobs.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "request": { - "$ref": "GoogleIamV1__SetIamPolicyRequest" - }, - "response": { - "$ref": "GoogleIamV1__Policy" - }, + "description": "Lists the jobs in the project.", "parameterOrder": [ - "resource" + "parent" ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/jobs/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "httpMethod": "GET", + "response": { + "$ref": "GoogleCloudMlV1__ListJobsResponse" + } }, "create": { "flatPath": "v1/projects/{projectsId}/jobs", @@ -1677,44 +1695,72 @@ }, "parameters": { "parent": { + "location": "path", "description": "Required. The project name.", "type": "string", "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+$" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, - "cancel": { - "path": "v1/{+name}:cancel", - "id": "ml.projects.jobs.cancel", - "description": "Cancels a running job.", - "request": { - "$ref": "GoogleCloudMlV1__CancelJobRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], + "setIamPolicy": { "response": { - "$ref": "GoogleProtobuf__Empty" - }, - "parameters": { - "name": { - "description": "Required. The name of the job to cancel.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/jobs/[^/]+$", - "location": "path" - } + "$ref": "GoogleIamV1__Policy" }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:cancel" + "parameters": { + "resource": { + "pattern": "^projects/[^/]+/jobs/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:setIamPolicy", + "id": "ml.projects.jobs.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "GoogleIamV1__SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy." + }, + "cancel": { + "request": { + "$ref": "GoogleCloudMlV1__CancelJobRequest" + }, + "description": "Cancels a running job.", + "response": { + "$ref": "GoogleProtobuf__Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "location": "path", + "description": "Required. The name of the job to cancel.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/jobs/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}:cancel", + "id": "ml.projects.jobs.cancel", + "path": "v1/{+name}:cancel" }, "getIamPolicy": { "httpMethod": "GET", @@ -1726,11 +1772,11 @@ }, "parameters": { "resource": { + "location": "path", "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/jobs/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+/jobs/[^/]+$" } }, "scopes": [ @@ -1740,6 +1786,31 @@ "path": "v1/{+resource}:getIamPolicy", "id": "ml.projects.jobs.getIamPolicy", "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." + }, + "get": { + "description": "Describes a job.", + "response": { + "$ref": "GoogleCloudMlV1__Job" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/jobs/[^/]+$", + "location": "path", + "description": "Required. The name of the job to get the description of.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/jobs/{jobsId}", + "id": "ml.projects.jobs.get", + "path": "v1/{+name}" } } } @@ -1747,27 +1818,6 @@ } }, "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", @@ -1780,9 +1830,9 @@ "type": "string" }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "$.xgafv": { "description": "V1 error format.", @@ -1803,6 +1853,11 @@ "type": "string" }, "alt": { + "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", "description": "Data format for response.", "default": "json", @@ -1811,17 +1866,12 @@ "media", "proto" ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ] + "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.", "type": "string", - "location": "query", - "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" }, "access_token": { "location": "query", @@ -1829,9 +1879,30 @@ "type": "string" }, "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.", + "type": "string", + "location": "query", + "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." + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "bearer_token": { + "description": "OAuth bearer token.", "type": "string", "location": "query" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" } }, "version": "v1", @@ -1839,8 +1910,5 @@ "kind": "discovery#restDescription", "description": "An API to enable creating and using machine learning models.", "servicePath": "", - "basePath": "", - "revision": "20170926", - "documentationLink": "https://cloud.google.com/ml/", - "id": "ml:v1" + "basePath": "" } diff --git a/vendor/google.golang.org/api/ml/v1/ml-gen.go b/vendor/google.golang.org/api/ml/v1/ml-gen.go index ef0ca099c..3451607cc 100644 --- a/vendor/google.golang.org/api/ml/v1/ml-gen.go +++ b/vendor/google.golang.org/api/ml/v1/ml-gen.go @@ -4592,6 +4592,182 @@ func (c *ProjectsModelsListCall) Pages(ctx context.Context, f func(*GoogleCloudM } } +// method id "ml.projects.models.patch": + +type ProjectsModelsPatchCall struct { + s *Service + name string + googlecloudmlv1__model *GoogleCloudMlV1__Model + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates a specific model resource. +// +// Currently the only supported fields to update are `description` +// and +// `default_version.name`. +func (r *ProjectsModelsService) Patch(name string, googlecloudmlv1__model *GoogleCloudMlV1__Model) *ProjectsModelsPatchCall { + c := &ProjectsModelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.googlecloudmlv1__model = googlecloudmlv1__model + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. +// Specifies the path, relative to `Model`, of the field to update. +// +// For example, to change the description of a model to "foo" and set +// its +// default version to "version_1", the `update_mask` parameter would +// be +// specified as `description`, `default_version.name`, and the +// `PATCH` +// request body would specify the new value, as follows: +// { +// "description": "foo", +// "defaultVersion": { +// "name":"version_1" +// } +// } +// In this example, the model is blindly overwritten since no etag is +// given. +// +// To adopt etag mechanism, include `etag` field in the mask, and +// include the +// `etag` value in your model resource. +// +// Currently the supported update masks are +// `description`, +// `default_version.name`, `labels`, and `etag`. +func (c *ProjectsModelsPatchCall) UpdateMask(updateMask string) *ProjectsModelsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsModelsPatchCall) Fields(s ...googleapi.Field) *ProjectsModelsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsModelsPatchCall) Context(ctx context.Context) *ProjectsModelsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsModelsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsModelsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudmlv1__model) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "ml.projects.models.patch" call. +// Exactly one of *GoogleLongrunning__Operation or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *GoogleLongrunning__Operation.ServerResponse.Header or (if a +// response was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsModelsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GoogleLongrunning__Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates a specific model resource.\n\nCurrently the only supported fields to update are `description` and\n`default_version.name`.", + // "flatPath": "v1/projects/{projectsId}/models/{modelsId}", + // "httpMethod": "PATCH", + // "id": "ml.projects.models.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The project name.", + // "location": "path", + // "pattern": "^projects/[^/]+/models/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "updateMask": { + // "description": "Required. Specifies the path, relative to `Model`, of the field to update.\n\nFor example, to change the description of a model to \"foo\" and set its\ndefault version to \"version_1\", the `update_mask` parameter would be\nspecified as `description`, `default_version.name`, and the `PATCH`\nrequest body would specify the new value, as follows:\n {\n \"description\": \"foo\",\n \"defaultVersion\": {\n \"name\":\"version_1\"\n }\n }\nIn this example, the model is blindly overwritten since no etag is given.\n\nTo adopt etag mechanism, include `etag` field in the mask, and include the\n`etag` value in your model resource.\n\nCurrently the supported update masks are `description`,\n`default_version.name`, `labels`, and `etag`.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "GoogleCloudMlV1__Model" + // }, + // "response": { + // "$ref": "GoogleLongrunning__Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "ml.projects.models.setIamPolicy": type ProjectsModelsSetIamPolicyCall struct { @@ -5505,6 +5681,176 @@ func (c *ProjectsModelsVersionsListCall) Pages(ctx context.Context, f func(*Goog } } +// method id "ml.projects.models.versions.patch": + +type ProjectsModelsVersionsPatchCall struct { + s *Service + name string + googlecloudmlv1__version *GoogleCloudMlV1__Version + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified Version resource. +// +// Currently the only supported field to update is `description`. +func (r *ProjectsModelsVersionsService) Patch(name string, googlecloudmlv1__version *GoogleCloudMlV1__Version) *ProjectsModelsVersionsPatchCall { + c := &ProjectsModelsVersionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.googlecloudmlv1__version = googlecloudmlv1__version + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. +// Specifies the path, relative to `Version`, of the field to +// update. Must be present and non-empty. +// +// For example, to change the description of a version to "foo", +// the +// `update_mask` parameter would be specified as `description`, and +// the +// `PATCH` request body would specify the new value, as follows: +// { +// "description": "foo" +// } +// In this example, the version is blindly overwritten since no etag is +// given. +// +// To adopt etag mechanism, include `etag` field in the mask, and +// include the +// `etag` value in your version resource. +// +// Currently the only supported update masks are `description`, +// `labels`, and +// `etag`. +func (c *ProjectsModelsVersionsPatchCall) UpdateMask(updateMask string) *ProjectsModelsVersionsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsModelsVersionsPatchCall) Fields(s ...googleapi.Field) *ProjectsModelsVersionsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsModelsVersionsPatchCall) Context(ctx context.Context) *ProjectsModelsVersionsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsModelsVersionsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsModelsVersionsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudmlv1__version) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "ml.projects.models.versions.patch" call. +// Exactly one of *GoogleLongrunning__Operation or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *GoogleLongrunning__Operation.ServerResponse.Header or (if a +// response was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsModelsVersionsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &GoogleLongrunning__Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates the specified Version resource.\n\nCurrently the only supported field to update is `description`.", + // "flatPath": "v1/projects/{projectsId}/models/{modelsId}/versions/{versionsId}", + // "httpMethod": "PATCH", + // "id": "ml.projects.models.versions.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the model.", + // "location": "path", + // "pattern": "^projects/[^/]+/models/[^/]+/versions/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "updateMask": { + // "description": "Required. Specifies the path, relative to `Version`, of the field to\nupdate. Must be present and non-empty.\n\nFor example, to change the description of a version to \"foo\", the\n`update_mask` parameter would be specified as `description`, and the\n`PATCH` request body would specify the new value, as follows:\n {\n \"description\": \"foo\"\n }\nIn this example, the version is blindly overwritten since no etag is given.\n\nTo adopt etag mechanism, include `etag` field in the mask, and include the\n`etag` value in your version resource.\n\nCurrently the only supported update masks are `description`, `labels`, and\n`etag`.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1/{+name}", + // "request": { + // "$ref": "GoogleCloudMlV1__Version" + // }, + // "response": { + // "$ref": "GoogleLongrunning__Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "ml.projects.models.versions.setDefault": type ProjectsModelsVersionsSetDefaultCall struct { diff --git a/vendor/google.golang.org/api/monitoring/v3/monitoring-api.json b/vendor/google.golang.org/api/monitoring/v3/monitoring-api.json index 9c81f80f3..6f85f8f4e 100644 --- a/vendor/google.golang.org/api/monitoring/v3/monitoring-api.json +++ b/vendor/google.golang.org/api/monitoring/v3/monitoring-api.json @@ -1,638 +1,115 @@ { - "servicePath": "", - "description": "Manages your Stackdriver Monitoring data and configurations. Most projects must be associated with a Stackdriver account, with a few exceptions as noted on the individual method pages.", + "version": "v3", + "baseUrl": "https://monitoring.googleapis.com/", "kind": "discovery#restDescription", + "description": "Manages your Stackdriver Monitoring data and configurations. Most projects must be associated with a Stackdriver account, with a few exceptions as noted on the individual method pages.", + "servicePath": "", "basePath": "", "id": "monitoring:v3", "documentationLink": "https://cloud.google.com/monitoring/api/", - "revision": "20170925", + "revision": "20171016", "discoveryVersion": "v1", "version_module": true, "schemas": { - "ListTimeSeriesResponse": { - "id": "ListTimeSeriesResponse", - "description": "The ListTimeSeries response.", + "ResourceGroup": { + "description": "The resource submessage for group checks. It can be used instead of a monitored resource, when multiple resources are being monitored.", "type": "object", "properties": { - "timeSeries": { - "description": "One or more time series that match the filter included in the request.", - "items": { - "$ref": "TimeSeries" - }, - "type": "array" - }, - "nextPageToken": { - "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", - "type": "string" - } - } - }, - "LabelDescriptor": { - "description": "A description of a label.", - "type": "object", - "properties": { - "key": { - "description": "The label key.", - "type": "string" - }, - "description": { - "description": "A human-readable description for the label.", - "type": "string" - }, - "valueType": { + "resourceType": { "enumDescriptions": [ - "A variable-length string. This is the default.", - "Boolean; true or false.", - "A 64-bit signed integer." + "Default value (not valid).", + "A group of instances (could be either GCE or AWS_EC2).", + "A group of AWS load balancers." ], "enum": [ - "STRING", - "BOOL", - "INT64" + "RESOURCE_TYPE_UNSPECIFIED", + "INSTANCE", + "AWS_ELB_LOAD_BALANCER" ], - "description": "The type of data that can be assigned to the label.", + "description": "The resource type of the group members.", + "type": "string" + }, + "groupId": { + "description": "The group of resources being monitored. Should be only the group_id, not projects/\u003cproject_id\u003e/groups/\u003cgroup_id\u003e.", "type": "string" } }, - "id": "LabelDescriptor" - }, - "Type": { - "type": "object", - "properties": { - "sourceContext": { - "description": "The source context.", - "$ref": "SourceContext" - }, - "syntax": { - "enumDescriptions": [ - "Syntax proto2.", - "Syntax proto3." - ], - "enum": [ - "SYNTAX_PROTO2", - "SYNTAX_PROTO3" - ], - "description": "The source syntax.", - "type": "string" - }, - "options": { - "description": "The protocol buffer options.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "fields": { - "items": { - "$ref": "Field" - }, - "type": "array", - "description": "The list of fields." - }, - "name": { - "description": "The fully qualified message name.", - "type": "string" - }, - "oneofs": { - "description": "The list of types appearing in oneof definitions in this type.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "Type", - "description": "A protocol buffer message type." - }, - "Group": { - "properties": { - "parentName": { - "description": "The name of the group's parent, if it has one. The format is \"projects/{project_id_or_number}/groups/{group_id}\". For groups with no parent, parentName is the empty string, \"\".", - "type": "string" - }, - "name": { - "type": "string", - "description": "Output only. The name of this group. The format is \"projects/{project_id_or_number}/groups/{group_id}\". When creating a group, this field is ignored and a new name is created consisting of the project specified in the call to CreateGroup and a unique {group_id} that is generated automatically." - }, - "displayName": { - "type": "string", - "description": "A user-assigned name for this group, used only for display purposes." - }, - "isCluster": { - "description": "If true, the members of this group are considered to be a cluster. The system can perform additional analysis on groups that are clusters.", - "type": "boolean" - }, - "filter": { - "description": "The filter used to determine which monitored resources belong to this group.", - "type": "string" - } - }, - "id": "Group", - "description": "The description of a dynamic collection of monitored resources. Each group has a filter that is matched against monitored resources and their associated metadata. If a group's filter matches an available monitored resource, then that resource is a member of that group. Groups can contain any number of monitored resources, and each monitored resource can be a member of any number of groups.Groups can be nested in parent-child hierarchies. The parentName field identifies an optional parent for each group. If a group has a parent, then the only monitored resources available to be matched by the group's filter are the resources contained in the parent group. In other words, a group contains the monitored resources that match its filter and the filters of all the group's ancestors. A group without a parent can contain any monitored resource.For example, consider an infrastructure running a set of instances with two user-defined tags: \"environment\" and \"role\". A parent group has a filter, environment=\"production\". A child of that parent group has a filter, role=\"transcoder\". The parent group contains all instances in the production environment, regardless of their roles. The child group contains instances that have the transcoder role and are in the production environment.The monitored resources contained in a group can change at any moment, depending on what resources exist and what filters are associated with the group and its ancestors.", - "type": "object" - }, - "BucketOptions": { - "description": "BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i \u003e 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.", - "type": "object", - "properties": { - "explicitBuckets": { - "$ref": "Explicit", - "description": "The explicit buckets." - }, - "linearBuckets": { - "$ref": "Linear", - "description": "The linear bucket." - }, - "exponentialBuckets": { - "$ref": "Exponential", - "description": "The exponential buckets." - } - }, - "id": "BucketOptions" - }, - "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "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" - }, - "details": { - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array", - "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use." - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - } - }, - "id": "Status" - }, - "CollectdValue": { - "description": "A single data point from a collectd-based plugin.", - "type": "object", - "properties": { - "value": { - "$ref": "TypedValue", - "description": "The measurement value." - }, - "dataSourceType": { - "enumDescriptions": [ - "An unspecified data source type. This corresponds to google.api.MetricDescriptor.MetricKind.METRIC_KIND_UNSPECIFIED.", - "An instantaneous measurement of a varying quantity. This corresponds to google.api.MetricDescriptor.MetricKind.GAUGE.", - "A cumulative value over time. This corresponds to google.api.MetricDescriptor.MetricKind.CUMULATIVE.", - "A rate of change of the measurement.", - "An amount of change since the last measurement interval. This corresponds to google.api.MetricDescriptor.MetricKind.DELTA." - ], - "enum": [ - "UNSPECIFIED_DATA_SOURCE_TYPE", - "GAUGE", - "COUNTER", - "DERIVE", - "ABSOLUTE" - ], - "description": "The type of measurement.", - "type": "string" - }, - "dataSourceName": { - "description": "The data source for the collectd value. For example there are two data sources for network measurements: \"rx\" and \"tx\".", - "type": "string" - } - }, - "id": "CollectdValue" - }, - "MetricDescriptor": { - "properties": { - "name": { - "description": "The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:\n\"projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount\"\n", - "type": "string" - }, - "type": { - "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:\n\"custom.googleapis.com/invoice/paid/amount\"\n\"appengine.googleapis.com/http/server/response_latencies\"\n", - "type": "string" - }, - "valueType": { - "type": "string", - "enumDescriptions": [ - "Do not use this default value.", - "The value is a boolean. This value type can be used only if the metric kind is GAUGE.", - "The value is a signed 64-bit integer.", - "The value is a double precision floating point number.", - "The value is a text string. This value type can be used only if the metric kind is GAUGE.", - "The value is a Distribution.", - "The value is money." - ], - "enum": [ - "VALUE_TYPE_UNSPECIFIED", - "BOOL", - "INT64", - "DOUBLE", - "STRING", - "DISTRIBUTION", - "MONEY" - ], - "description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported." - }, - "metricKind": { - "enum": [ - "METRIC_KIND_UNSPECIFIED", - "GAUGE", - "DELTA", - "CUMULATIVE" - ], - "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.", - "type": "string", - "enumDescriptions": [ - "Do not use this default value.", - "An instantaneous measurement of a value.", - "The change in a value during a time interval.", - "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." - ] - }, - "displayName": { - "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".", - "type": "string" - }, - "description": { - "description": "A detailed description of the metric, which can be used in documentation.", - "type": "string" - }, - "unit": { - "description": "The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)\nbit bit\nBy byte\ns second\nmin minute\nh hour\nd dayPrefixes (PREFIX)\nk kilo (10**3)\nM mega (10**6)\nG giga (10**9)\nT tera (10**12)\nP peta (10**15)\nE exa (10**18)\nZ zetta (10**21)\nY yotta (10**24)\nm milli (10**-3)\nu micro (10**-6)\nn nano (10**-9)\np pico (10**-12)\nf femto (10**-15)\na atto (10**-18)\nz zepto (10**-21)\ny yocto (10**-24)\nKi kibi (2**10)\nMi mebi (2**20)\nGi gibi (2**30)\nTi tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:\n/ division (as an infix operator, e.g. 1/s).\n. multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:\nExpression = Component { \".\" Component } { \"/\" Component } ;\n\nComponent = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\nAnnotation = \"{\" NAME \"}\" ;\nNotes:\nAnnotation is just a comment if it follows a UNIT and is equivalent to 1 if it is used alone. For examples, {requests}/s == 1/s, By{transmitted}/s == By/s.\nNAME is a sequence of non-blank printable ASCII characters not containing '{' or '}'.", - "type": "string" - }, - "labels": { - "description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - } - }, - "id": "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.", - "type": "object" - }, - "SourceContext": { - "description": "SourceContext represents information about the source of a protobuf element, like the file in which it is defined.", - "type": "object", - "properties": { - "fileName": { - "description": "The path-qualified name of the .proto file that contained the associated protobuf element. For example: \"google/protobuf/source_context.proto\".", - "type": "string" - } - }, - "id": "SourceContext" - }, - "Range": { - "description": "The range of the population values.", - "type": "object", - "properties": { - "min": { - "type": "number", - "format": "double", - "description": "The minimum of the population values." - }, - "max": { - "format": "double", - "description": "The maximum of the population values.", - "type": "number" - } - }, - "id": "Range" - }, - "ListGroupsResponse": { - "description": "The ListGroups response.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", - "type": "string" - }, - "group": { - "description": "The groups that match the specified filters.", - "items": { - "$ref": "Group" - }, - "type": "array" - } - }, - "id": "ListGroupsResponse" - }, - "ListGroupMembersResponse": { - "description": "The ListGroupMembers response.", - "type": "object", - "properties": { - "members": { - "description": "A set of monitored resources in the group.", - "items": { - "$ref": "MonitoredResource" - }, - "type": "array" - }, - "nextPageToken": { - "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", - "type": "string" - }, - "totalSize": { - "format": "int32", - "description": "The total number of elements matching this request.", - "type": "integer" - } - }, - "id": "ListGroupMembersResponse" - }, - "CreateCollectdTimeSeriesRequest": { - "description": "The CreateCollectdTimeSeries request.", - "type": "object", - "properties": { - "collectdPayloads": { - "description": "The collectd payloads representing the time series data. You must not include more than a single point for each time series, so no two payloads can have the same values for all of the fields plugin, plugin_instance, type, and type_instance.", - "items": { - "$ref": "CollectdPayload" - }, - "type": "array" - }, - "resource": { - "$ref": "MonitoredResource", - "description": "The monitored resource associated with the time series." - }, - "collectdVersion": { - "description": "The version of collectd that collected the data. Example: \"5.3.0-192.el6\".", - "type": "string" - } - }, - "id": "CreateCollectdTimeSeriesRequest" - }, - "ListMonitoredResourceDescriptorsResponse": { - "description": "The ListMonitoredResourceDescriptors response.", - "type": "object", - "properties": { - "resourceDescriptors": { - "description": "The monitored resource descriptors that are available to this project and that match filter, if present.", - "items": { - "$ref": "MonitoredResourceDescriptor" - }, - "type": "array" - }, - "nextPageToken": { - "type": "string", - "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method." - } - }, - "id": "ListMonitoredResourceDescriptorsResponse" - }, - "TimeSeries": { - "description": "A collection of data points that describes the time-varying values of a metric. A time series is identified by a combination of a fully-specified monitored resource and a fully-specified metric. This type is used for both listing and creating time series.", - "type": "object", - "properties": { - "valueType": { - "enumDescriptions": [ - "Do not use this default value.", - "The value is a boolean. This value type can be used only if the metric kind is GAUGE.", - "The value is a signed 64-bit integer.", - "The value is a double precision floating point number.", - "The value is a text string. This value type can be used only if the metric kind is GAUGE.", - "The value is a Distribution.", - "The value is money." - ], - "enum": [ - "VALUE_TYPE_UNSPECIFIED", - "BOOL", - "INT64", - "DOUBLE", - "STRING", - "DISTRIBUTION", - "MONEY" - ], - "description": "The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.", - "type": "string" - }, - "resource": { - "$ref": "MonitoredResource", - "description": "The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data." - }, - "metricKind": { - "enumDescriptions": [ - "Do not use this default value.", - "An instantaneous measurement of a value.", - "The change in a value during a time interval.", - "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." - ], - "enum": [ - "METRIC_KIND_UNSPECIFIED", - "GAUGE", - "DELTA", - "CUMULATIVE" - ], - "description": "The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric's descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.", - "type": "string" - }, - "points": { - "description": "The data points of this time series. When listing time series, the order of the points is specified by the list method.When creating a time series, this field must contain exactly one point and the point's type must be the same as the value type of the associated metric. If the associated metric's descriptor must be auto-created, then the value type of the descriptor is determined by the point's type, which must be BOOL, INT64, DOUBLE, or DISTRIBUTION.", - "items": { - "$ref": "Point" - }, - "type": "array" - }, - "metric": { - "description": "The associated metric. A fully-specified metric used to identify the time series.", - "$ref": "Metric" - } - }, - "id": "TimeSeries" - }, - "CreateTimeSeriesRequest": { - "id": "CreateTimeSeriesRequest", - "description": "The CreateTimeSeries request.", - "type": "object", - "properties": { - "timeSeries": { - "description": "The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource.", - "items": { - "$ref": "TimeSeries" - }, - "type": "array" - } - } - }, - "Distribution": { - "description": "Distribution contains summary statistics for a population of values. It optionally contains a histogram representing the distribution of those values across a set of buckets.The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values. The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by formulas for buckets of fixed or exponentially increasing widths.Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the mean and sum_of_squared_deviation fields meaningless.", - "type": "object", - "properties": { - "sumOfSquaredDeviation": { - "format": "double", - "description": "The sum of squared deviations from the mean of the values in the population. For values x_i this is:\nSum[i=1..n]((x_i - mean)^2)\nKnuth, \"The Art of Computer Programming\", Vol. 2, page 323, 3rd edition describes Welford's method for accumulating this sum in one pass.If count is zero then this field must be zero.", - "type": "number" - }, - "range": { - "$ref": "Range", - "description": "If specified, contains the range of the population values. The field must not be present if the count is zero. This field is presently ignored by the Stackdriver Monitoring API v3." - }, - "mean": { - "type": "number", - "format": "double", - "description": "The arithmetic mean of the values in the population. If count is zero then this field must be zero." - }, - "count": { - "format": "int64", - "description": "The number of values in the population. Must be non-negative. This value must equal the sum of the values in bucket_counts if a histogram is provided.", - "type": "string" - }, - "bucketCounts": { - "description": "Required in the Stackdriver Monitoring API v3. The values for each bucket specified in bucket_options. The sum of the values in bucketCounts must equal the value in the count field of the Distribution object. The order of the bucket counts follows the numbering schemes described for the three bucket types. The underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; and the overflow bucket has number N-1. The size of bucket_counts must not be greater than N. If the size is less than N, then the remaining buckets are assigned values of zero.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "bucketOptions": { - "$ref": "BucketOptions", - "description": "Required in the Stackdriver Monitoring API v3. Defines the histogram bucket boundaries." - } - }, - "id": "Distribution" - }, - "MonitoredResource": { - "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"instance_id\" and \"zone\":\n{ \"type\": \"gce_instance\",\n \"labels\": { \"instance_id\": \"12345678901234\",\n \"zone\": \"us-central1-a\" }}\n", - "type": "object", - "properties": { - "type": { - "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", - "type": "object" - } - }, - "id": "MonitoredResource" - }, - "ListMetricDescriptorsResponse": { - "properties": { - "nextPageToken": { - "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", - "type": "string" - }, - "metricDescriptors": { - "description": "The metric descriptors that are available to the project and that match the value of filter, if present.", - "items": { - "$ref": "MetricDescriptor" - }, - "type": "array" - } - }, - "id": "ListMetricDescriptorsResponse", - "description": "The ListMetricDescriptors response.", - "type": "object" - }, - "CollectdPayloadError": { - "type": "object", - "properties": { - "index": { - "format": "int32", - "description": "The zero-based index in CreateCollectdTimeSeriesRequest.collectd_payloads.", - "type": "integer" - }, - "valueErrors": { - "items": { - "$ref": "CollectdValueError" - }, - "type": "array", - "description": "Records the error status for values that were not written due to an error.Failed payloads for which nothing is written will not include partial value errors." - }, - "error": { - "$ref": "Status", - "description": "Records the error status for the payload. If this field is present, the partial errors for nested values won't be populated." - } - }, - "id": "CollectdPayloadError", - "description": "Describes the error status for payloads that were not written." - }, - "MonitoredResourceDescriptor": { - "description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of \"gce_instance\" and specifies the use of the labels \"instance_id\" and \"zone\" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.", - "type": "object", - "properties": { - "name": { - "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", - "type": "string" - }, - "description": { - "description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", - "type": "string" - }, - "displayName": { - "type": "string", - "description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, \"Google Cloud SQL Database\"." - }, - "type": { - "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.", - "type": "string" - }, - "labels": { - "description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels \"database_id\" and \"zone\".", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - } - }, - "id": "MonitoredResourceDescriptor" + "id": "ResourceGroup" }, "TypedValue": { + "description": "A single strongly-typed value.", + "type": "object", "properties": { "doubleValue": { - "type": "number", + "description": "A 64-bit double-precision floating-point number. Its magnitude is approximately ±10\u003csup\u003e±300\u003c/sup\u003e and it has 16 significant digits of precision.", "format": "double", - "description": "A 64-bit double-precision floating-point number. Its magnitude is approximately ±10\u003csup\u003e±300\u003c/sup\u003e and it has 16 significant digits of precision." + "type": "number" }, "int64Value": { - "format": "int64", "description": "A 64-bit integer. Its range is approximately ±9.2x10\u003csup\u003e18\u003c/sup\u003e.", + "format": "int64", "type": "string" }, "distributionValue": { "description": "A distribution value.", "$ref": "Distribution" }, - "stringValue": { - "description": "A variable-length string value.", - "type": "string" - }, "boolValue": { "description": "A Boolean value: true or false.", "type": "boolean" + }, + "stringValue": { + "description": "A variable-length string value.", + "type": "string" } }, - "id": "TypedValue", - "description": "A single strongly-typed value.", - "type": "object" + "id": "TypedValue" + }, + "UptimeCheckIp": { + "description": "Contains the region, location, and list of IP addresses where checkers in the location run from.", + "type": "object", + "properties": { + "region": { + "enumDescriptions": [ + "Default value if no region is specified. Will result in uptime checks running from all regions.", + "Allows checks to run from locations within the United States of America.", + "Allows checks to run from locations within the continent of Europe.", + "Allows checks to run from locations within the continent of South America.", + "Allows checks to run from locations within the Asia Pacific area (ex: Singapore)." + ], + "enum": [ + "REGION_UNSPECIFIED", + "USA", + "EUROPE", + "SOUTH_AMERICA", + "ASIA_PACIFIC" + ], + "description": "A broad region category in which the IP address is located.", + "type": "string" + }, + "location": { + "description": "A more specific location within the region that typically encodes a particular city/town/metro (and its containing state/province or country) within the broader umbrella region category.", + "type": "string" + }, + "ipAddress": { + "description": "The IP address from which the uptime check originates. This is a full IP address (not an IP address range). Most IP addresses, as of this publication, are in IPv4 format; however, one should not rely on the IP addresses being in IPv4 format indefinitely and should support interpreting this field in either IPv4 or IPv6 format.", + "type": "string" + } + }, + "id": "UptimeCheckIp" }, "CollectdValueError": { "description": "Describes the error status for values that were not written.", "type": "object", "properties": { - "index": { - "format": "int32", - "description": "The zero-based index in CollectdPayload.values within the parent CreateCollectdTimeSeriesRequest.collectd_payloads.", - "type": "integer" - }, "error": { - "$ref": "Status", - "description": "Records the error status for the value." + "description": "Records the error status for the value.", + "$ref": "Status" + }, + "index": { + "description": "The zero-based index in CollectdPayload.values within the parent CreateCollectdTimeSeriesRequest.collectd_payloads.", + "format": "int32", + "type": "integer" } }, "id": "CollectdValueError" @@ -641,17 +118,12 @@ "description": "A collection of data points sent from a collectd-based plugin. See the collectd documentation for more information.", "type": "object", "properties": { - "startTime": { - "type": "string", - "format": "google-datetime", - "description": "The start time of the interval." - }, "values": { "description": "The measured values during this time interval. Each value must have a different dataSourceName.", + "type": "array", "items": { "$ref": "CollectdValue" - }, - "type": "array" + } }, "typeInstance": { "description": "The measurement type instance. Example: \"used\".", @@ -677,55 +149,54 @@ "type": "string" }, "endTime": { - "type": "string", + "description": "The end time of the interval.", "format": "google-datetime", - "description": "The end time of the interval." + "type": "string" + }, + "startTime": { + "description": "The start time of the interval.", + "format": "google-datetime", + "type": "string" } }, "id": "CollectdPayload" }, "CreateCollectdTimeSeriesResponse": { + "description": "The CreateCollectdTimeSeries response.", + "type": "object", "properties": { "payloadErrors": { "description": "Records the error status for points that were not written due to an error.Failed requests for which nothing is written will return an error response instead.", + "type": "array", "items": { "$ref": "CollectdPayloadError" - }, - "type": "array" + } } }, - "id": "CreateCollectdTimeSeriesResponse", - "description": "The CreateCollectdTimeSeries response.", - "type": "object" + "id": "CreateCollectdTimeSeriesResponse" }, "Linear": { "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): offset + (width * i). Lower bound (1 \u003c= i \u003c N): offset + (width * (i - 1)).", "type": "object", "properties": { - "offset": { - "format": "double", - "description": "Lower bound of the first bucket.", - "type": "number" - }, "numFiniteBuckets": { - "format": "int32", "description": "Must be greater than 0.", + "format": "int32", "type": "integer" }, "width": { - "format": "double", "description": "Must be greater than 0.", + "format": "double", + "type": "number" + }, + "offset": { + "description": "Lower bound of the first bucket.", + "format": "double", "type": "number" } }, "id": "Linear" }, - "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", - "type": "object", - "properties": {}, - "id": "Empty" - }, "Option": { "description": "A protocol buffer option, which can be attached to a message, field, enumeration, etc.", "type": "object", @@ -734,8 +205,8 @@ "description": "The option's value packed in an Any message. If the value is a primitive, the corresponding wrapper type defined in google/protobuf/wrappers.proto should be used. If the value is an enum, it should be stored as an int32 value using the google.protobuf.Int32Value type.", "type": "object", "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" } }, "name": { @@ -745,61 +216,109 @@ }, "id": "Option" }, + "ContentMatcher": { + "description": "Used to perform string matching. Currently, this matches on the exact content. In the future, it can be expanded to allow for regular expressions and more complex matching.", + "type": "object", + "properties": { + "content": { + "description": "String content to match", + "type": "string" + } + }, + "id": "ContentMatcher" + }, + "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "TcpCheck": { + "description": "Information required for a TCP uptime check request.", + "type": "object", + "properties": { + "port": { + "description": "The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) to construct the full URL. Required.", + "format": "int32", + "type": "integer" + } + }, + "id": "TcpCheck" + }, "Explicit": { "description": "Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): boundsi Lower bound (1 \u003c= i \u003c N); boundsi - 1The bounds field must contain at least one element. If bounds has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.", "type": "object", "properties": { "bounds": { "description": "The values must be monotonically increasing.", + "type": "array", "items": { "format": "double", "type": "number" - }, - "type": "array" + } } }, "id": "Explicit" }, "TimeInterval": { + "description": "A time interval extending just after a start time through an end time. If the start time is the same as the end time, then the interval represents a single point in time.", "type": "object", "properties": { "endTime": { - "format": "google-datetime", "description": "Required. The end of the time interval.", + "format": "google-datetime", "type": "string" }, "startTime": { - "format": "google-datetime", "description": "Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.", + "format": "google-datetime", "type": "string" } }, - "id": "TimeInterval", - "description": "A time interval extending just after a start time through an end time. If the start time is the same as the end time, then the interval represents a single point in time." + "id": "TimeInterval" + }, + "ListUptimeCheckIpsResponse": { + "description": "The protocol for the ListUptimeCheckIps response.", + "type": "object", + "properties": { + "uptimeCheckIps": { + "description": "The returned list of IP addresses (including region and location) that the checkers run from.", + "type": "array", + "items": { + "$ref": "UptimeCheckIp" + } + }, + "nextPageToken": { + "description": "This field represents the pagination token to retrieve the next page of results. If the value is empty, it means no further results for the request. To retrieve the next page of results, the value of the next_page_token is passed to the subsequent List method call (in the request message's page_token field). NOTE: this field is not yet implemented", + "type": "string" + } + }, + "id": "ListUptimeCheckIpsResponse" }, "Exponential": { "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.There are num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 \u003c= i \u003c N-1): scale * (growth_factor ^ i). Lower bound (1 \u003c= i \u003c N): scale * (growth_factor ^ (i - 1)).", "type": "object", "properties": { + "numFiniteBuckets": { + "description": "Must be greater than 0.", + "format": "int32", + "type": "integer" + }, "growthFactor": { - "format": "double", "description": "Must be greater than 1.", + "format": "double", "type": "number" }, "scale": { - "format": "double", "description": "Must be greater than 0.", + "format": "double", "type": "number" - }, - "numFiniteBuckets": { - "type": "integer", - "format": "int32", - "description": "Must be greater than 0." } }, "id": "Exponential" }, "Point": { + "description": "A single data point in a time series.", "type": "object", "properties": { "value": { @@ -807,54 +326,52 @@ "description": "The value of the data point." }, "interval": { - "$ref": "TimeInterval", - "description": "The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." + "description": "The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.", + "$ref": "TimeInterval" } }, - "id": "Point", - "description": "A single data point in a time series." + "id": "Point" + }, + "Metric": { + "description": "A specific metric, identified by specifying values for all of the labels of a MetricDescriptor.", + "type": "object", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.", + "type": "object" + }, + "type": { + "description": "An existing metric type, see google.api.MetricDescriptor. For example, custom.googleapis.com/invoice/paid/amount.", + "type": "string" + } + }, + "id": "Metric" + }, + "ListUptimeCheckConfigsResponse": { + "description": "The protocol for the ListUptimeCheckConfigs response.", + "type": "object", + "properties": { + "uptimeCheckConfigs": { + "description": "The returned uptime check configurations.", + "type": "array", + "items": { + "$ref": "UptimeCheckConfig" + } + }, + "nextPageToken": { + "description": "This field represents the pagination token to retrieve the next page of results. If the value is empty, it means no further results for the request. To retrieve the next page of results, the value of the next_page_token is passed to the subsequent List method call (in the request message's page_token field).", + "type": "string" + } + }, + "id": "ListUptimeCheckConfigsResponse" }, "Field": { "description": "A single field of a message type.", "type": "object", "properties": { - "packed": { - "description": "Whether to use alternative packed wire representation.", - "type": "boolean" - }, - "cardinality": { - "description": "The field cardinality.", - "type": "string", - "enumDescriptions": [ - "For fields with unknown cardinality.", - "For optional fields.", - "For required fields. Proto2 syntax only.", - "For repeated fields." - ], - "enum": [ - "CARDINALITY_UNKNOWN", - "CARDINALITY_OPTIONAL", - "CARDINALITY_REQUIRED", - "CARDINALITY_REPEATED" - ] - }, - "defaultValue": { - "description": "The string value of the default value of this field. Proto2 syntax only.", - "type": "string" - }, - "name": { - "description": "The field name.", - "type": "string" - }, - "typeUrl": { - "description": "The field type URL, without the scheme, for message or enumeration types. Example: \"type.googleapis.com/google.protobuf.Timestamp\".", - "type": "string" - }, - "number": { - "format": "int32", - "description": "The field number.", - "type": "integer" - }, "jsonName": { "description": "The field JSON name.", "type": "string" @@ -907,42 +424,763 @@ }, "options": { "description": "The protocol buffer options.", + "type": "array", "items": { "$ref": "Option" - }, - "type": "array" + } }, "oneofIndex": { - "format": "int32", "description": "The index of the field type in Type.oneofs, for message or enumeration types. The first type has index 1; zero means the type is not in the list.", + "format": "int32", + "type": "integer" + }, + "cardinality": { + "enumDescriptions": [ + "For fields with unknown cardinality.", + "For optional fields.", + "For required fields. Proto2 syntax only.", + "For repeated fields." + ], + "enum": [ + "CARDINALITY_UNKNOWN", + "CARDINALITY_OPTIONAL", + "CARDINALITY_REQUIRED", + "CARDINALITY_REPEATED" + ], + "description": "The field cardinality.", + "type": "string" + }, + "packed": { + "description": "Whether to use alternative packed wire representation.", + "type": "boolean" + }, + "defaultValue": { + "description": "The string value of the default value of this field. Proto2 syntax only.", + "type": "string" + }, + "name": { + "description": "The field name.", + "type": "string" + }, + "typeUrl": { + "description": "The field type URL, without the scheme, for message or enumeration types. Example: \"type.googleapis.com/google.protobuf.Timestamp\".", + "type": "string" + }, + "number": { + "description": "The field number.", + "format": "int32", "type": "integer" } }, "id": "Field" }, - "Metric": { - "description": "A specific metric, identified by specifying values for all of the labels of a MetricDescriptor.", + "LabelDescriptor": { + "description": "A description of a label.", "type": "object", "properties": { + "key": { + "description": "The label key.", + "type": "string" + }, + "description": { + "description": "A human-readable description for the label.", + "type": "string" + }, + "valueType": { + "description": "The type of data that can be assigned to the label.", + "type": "string", + "enumDescriptions": [ + "A variable-length string. This is the default.", + "Boolean; true or false.", + "A 64-bit signed integer." + ], + "enum": [ + "STRING", + "BOOL", + "INT64" + ] + } + }, + "id": "LabelDescriptor" + }, + "ListTimeSeriesResponse": { + "description": "The ListTimeSeries response.", + "type": "object", + "properties": { + "timeSeries": { + "description": "One or more time series that match the filter included in the request.", + "type": "array", + "items": { + "$ref": "TimeSeries" + } + }, + "nextPageToken": { + "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", + "type": "string" + } + }, + "id": "ListTimeSeriesResponse" + }, + "Group": { + "description": "The description of a dynamic collection of monitored resources. Each group has a filter that is matched against monitored resources and their associated metadata. If a group's filter matches an available monitored resource, then that resource is a member of that group. Groups can contain any number of monitored resources, and each monitored resource can be a member of any number of groups.Groups can be nested in parent-child hierarchies. The parentName field identifies an optional parent for each group. If a group has a parent, then the only monitored resources available to be matched by the group's filter are the resources contained in the parent group. In other words, a group contains the monitored resources that match its filter and the filters of all the group's ancestors. A group without a parent can contain any monitored resource.For example, consider an infrastructure running a set of instances with two user-defined tags: \"environment\" and \"role\". A parent group has a filter, environment=\"production\". A child of that parent group has a filter, role=\"transcoder\". The parent group contains all instances in the production environment, regardless of their roles. The child group contains instances that have the transcoder role and are in the production environment.The monitored resources contained in a group can change at any moment, depending on what resources exist and what filters are associated with the group and its ancestors.", + "type": "object", + "properties": { + "filter": { + "description": "The filter used to determine which monitored resources belong to this group.", + "type": "string" + }, + "name": { + "description": "Output only. The name of this group. The format is \"projects/{project_id_or_number}/groups/{group_id}\". When creating a group, this field is ignored and a new name is created consisting of the project specified in the call to CreateGroup and a unique {group_id} that is generated automatically.", + "type": "string" + }, + "parentName": { + "description": "The name of the group's parent, if it has one. The format is \"projects/{project_id_or_number}/groups/{group_id}\". For groups with no parent, parentName is the empty string, \"\".", + "type": "string" + }, + "displayName": { + "description": "A user-assigned name for this group, used only for display purposes.", + "type": "string" + }, + "isCluster": { + "description": "If true, the members of this group are considered to be a cluster. The system can perform additional analysis on groups that are clusters.", + "type": "boolean" + } + }, + "id": "Group" + }, + "Type": { + "description": "A protocol buffer message type.", + "type": "object", + "properties": { + "fields": { + "description": "The list of fields.", + "type": "array", + "items": { + "$ref": "Field" + } + }, + "name": { + "description": "The fully qualified message name.", + "type": "string" + }, + "oneofs": { + "description": "The list of types appearing in oneof definitions in this type.", + "type": "array", + "items": { + "type": "string" + } + }, + "syntax": { + "enumDescriptions": [ + "Syntax proto2.", + "Syntax proto3." + ], + "enum": [ + "SYNTAX_PROTO2", + "SYNTAX_PROTO3" + ], + "description": "The source syntax.", + "type": "string" + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "The source context." + }, + "options": { + "description": "The protocol buffer options.", + "type": "array", + "items": { + "$ref": "Option" + } + } + }, + "id": "Type" + }, + "BasicAuthentication": { + "description": "A type of authentication to perform against the specified resource or URL that uses username and password. Currently, only Basic authentication is supported in Uptime Monitoring.", + "type": "object", + "properties": { + "password": { + "description": "The password to authenticate.", + "type": "string" + }, + "username": { + "description": "The username to authenticate.", + "type": "string" + } + }, + "id": "BasicAuthentication" + }, + "BucketOptions": { + "description": "BucketOptions describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. BucketOptions does not include the number of values in each bucket.A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i \u003e 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.", + "type": "object", + "properties": { + "linearBuckets": { + "$ref": "Linear", + "description": "The linear bucket." + }, + "explicitBuckets": { + "$ref": "Explicit", + "description": "The explicit buckets." + }, + "exponentialBuckets": { + "description": "The exponential buckets.", + "$ref": "Exponential" + } + }, + "id": "BucketOptions" + }, + "HttpCheck": { + "description": "Information involved in an HTTP/HTTPS uptime check request.", + "type": "object", + "properties": { + "useSsl": { + "description": "If true, use HTTPS instead of HTTP to run the check.", + "type": "boolean" + }, + "maskHeaders": { + "description": "Boolean specifiying whether to encrypt the header information. Encryption should be specified for any headers related to authentication that you do not wish to be seen when retrieving the configuration. The server will be responsible for encrypting the headers. On Get/List calls, if mask_headers is set to True then the headers will be obscured with ******.", + "type": "boolean" + }, + "authInfo": { + "description": "The authentication information. Optional when creating an HTTP check; defaults to empty.", + "$ref": "BasicAuthentication" + }, + "port": { + "description": "The port to the page to run the check against. Will be combined with host (specified within the MonitoredResource) and path to construct the full URL. Optional (defaults to 80 without SSL, or 443 with SSL).", + "format": "int32", + "type": "integer" + }, + "headers": { + "additionalProperties": { + "type": "string" + }, + "description": "The list of headers to send as part of the uptime check request. If two headers have the same key and different values, they should be entered as a single header, with the value being a comma-separated list of all the desired values as described at https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31). Entering two separate headers with the same key in a Create call will cause the first to be overwritten by the second.", + "type": "object" + }, + "path": { + "description": "The path to the page to run the check against. Will be combined with the host (specified within the MonitoredResource) and port to construct the full URL. Optional (defaults to \"/\").", + "type": "string" + } + }, + "id": "HttpCheck" + }, + "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "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. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status" + }, + "CollectdValue": { + "description": "A single data point from a collectd-based plugin.", + "type": "object", + "properties": { + "dataSourceType": { + "description": "The type of measurement.", + "type": "string", + "enumDescriptions": [ + "An unspecified data source type. This corresponds to google.api.MetricDescriptor.MetricKind.METRIC_KIND_UNSPECIFIED.", + "An instantaneous measurement of a varying quantity. This corresponds to google.api.MetricDescriptor.MetricKind.GAUGE.", + "A cumulative value over time. This corresponds to google.api.MetricDescriptor.MetricKind.CUMULATIVE.", + "A rate of change of the measurement.", + "An amount of change since the last measurement interval. This corresponds to google.api.MetricDescriptor.MetricKind.DELTA." + ], + "enum": [ + "UNSPECIFIED_DATA_SOURCE_TYPE", + "GAUGE", + "COUNTER", + "DERIVE", + "ABSOLUTE" + ] + }, + "dataSourceName": { + "description": "The data source for the collectd value. For example there are two data sources for network measurements: \"rx\" and \"tx\".", + "type": "string" + }, + "value": { + "$ref": "TypedValue", + "description": "The measurement value." + } + }, + "id": "CollectdValue" + }, + "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.", + "type": "object", + "properties": { + "labels": { + "description": "The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.", + "type": "array", + "items": { + "$ref": "LabelDescriptor" + } + }, + "name": { + "description": "The resource name of the metric descriptor.", + "type": "string" + }, + "type": { + "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:\n\"custom.googleapis.com/invoice/paid/amount\"\n\"appengine.googleapis.com/http/server/response_latencies\"\n", + "type": "string" + }, + "valueType": { + "enumDescriptions": [ + "Do not use this default value.", + "The value is a boolean. This value type can be used only if the metric kind is GAUGE.", + "The value is a signed 64-bit integer.", + "The value is a double precision floating point number.", + "The value is a text string. This value type can be used only if the metric kind is GAUGE.", + "The value is a Distribution.", + "The value is money." + ], + "enum": [ + "VALUE_TYPE_UNSPECIFIED", + "BOOL", + "INT64", + "DOUBLE", + "STRING", + "DISTRIBUTION", + "MONEY" + ], + "description": "Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.", + "type": "string" + }, + "metricKind": { + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.", + "type": "string", + "enumDescriptions": [ + "Do not use this default value.", + "An instantaneous measurement of a value.", + "The change in a value during a time interval.", + "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." + ], + "enum": [ + "METRIC_KIND_UNSPECIFIED", + "GAUGE", + "DELTA", + "CUMULATIVE" + ] + }, + "displayName": { + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.", + "type": "string" + }, + "description": { + "description": "A detailed description of the metric, which can be used in documentation.", + "type": "string" + }, + "unit": { + "description": "The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)\nbit bit\nBy byte\ns second\nmin minute\nh hour\nd dayPrefixes (PREFIX)\nk kilo (10**3)\nM mega (10**6)\nG giga (10**9)\nT tera (10**12)\nP peta (10**15)\nE exa (10**18)\nZ zetta (10**21)\nY yotta (10**24)\nm milli (10**-3)\nu micro (10**-6)\nn nano (10**-9)\np pico (10**-12)\nf femto (10**-15)\na atto (10**-18)\nz zepto (10**-21)\ny yocto (10**-24)\nKi kibi (2**10)\nMi mebi (2**20)\nGi gibi (2**30)\nTi tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:\n/ division (as an infix operator, e.g. 1/s).\n. multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:\nExpression = Component { \".\" Component } { \"/\" Component } ;\n\nComponent = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\nAnnotation = \"{\" NAME \"}\" ;\nNotes:\nAnnotation is just a comment if it follows a UNIT and is equivalent to 1 if it is used alone. For examples, {requests}/s == 1/s, By{transmitted}/s == By/s.\nNAME is a sequence of non-blank printable ASCII characters not containing '{' or '}'.", + "type": "string" + } + }, + "id": "MetricDescriptor" + }, + "SourceContext": { + "description": "SourceContext represents information about the source of a protobuf element, like the file in which it is defined.", + "type": "object", + "properties": { + "fileName": { + "description": "The path-qualified name of the .proto file that contained the associated protobuf element. For example: \"google/protobuf/source_context.proto\".", + "type": "string" + } + }, + "id": "SourceContext" + }, + "Range": { + "description": "The range of the population values.", + "type": "object", + "properties": { + "min": { + "description": "The minimum of the population values.", + "format": "double", + "type": "number" + }, + "max": { + "description": "The maximum of the population values.", + "format": "double", + "type": "number" + } + }, + "id": "Range" + }, + "UptimeCheckConfig": { + "description": "This message configures which resources and services to monitor for availability.", + "type": "object", + "properties": { + "selectedRegions": { + "enumDescriptions": [ + "Default value if no region is specified. Will result in uptime checks running from all regions.", + "Allows checks to run from locations within the United States of America.", + "Allows checks to run from locations within the continent of Europe.", + "Allows checks to run from locations within the continent of South America.", + "Allows checks to run from locations within the Asia Pacific area (ex: Singapore)." + ], + "description": "The list of regions from which the check will be run. If this field is specified, enough regions to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "REGION_UNSPECIFIED", + "USA", + "EUROPE", + "SOUTH_AMERICA", + "ASIA_PACIFIC" + ] + } + }, + "displayName": { + "description": "A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Account in order to make it easier to identify; however, uniqueness is not enforced. Required.", + "type": "string" + }, + "monitoredResource": { + "$ref": "MonitoredResource", + "description": "The monitored resource associated with the configuration." + }, + "contentMatchers": { + "description": "The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.", + "type": "array", + "items": { + "$ref": "ContentMatcher" + } + }, + "timeout": { + "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" + }, + "period": { + "description": "How often the uptime check is performed. Currently, only 1, 5, 10, and 15 minutes are supported. Required.", + "format": "google-duration", + "type": "string" + }, + "name": { + "description": "A unique resource name for this UptimeCheckConfig. The format is:projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].This field should be omitted when creating the uptime check configuration; on create, the resource name is assigned by the server and included in the response.", + "type": "string" + }, + "httpCheck": { + "$ref": "HttpCheck", + "description": "Contains information needed to make an HTTP or HTTPS check." + }, + "resourceGroup": { + "$ref": "ResourceGroup", + "description": "The group resource associated with the configuration." + }, + "tcpCheck": { + "description": "Contains information needed to make a TCP check.", + "$ref": "TcpCheck" + } + }, + "id": "UptimeCheckConfig" + }, + "ListGroupsResponse": { + "description": "The ListGroups response.", + "type": "object", + "properties": { + "group": { + "description": "The groups that match the specified filters.", + "type": "array", + "items": { + "$ref": "Group" + } + }, + "nextPageToken": { + "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", + "type": "string" + } + }, + "id": "ListGroupsResponse" + }, + "CreateCollectdTimeSeriesRequest": { + "description": "The CreateCollectdTimeSeries request.", + "type": "object", + "properties": { + "resource": { + "description": "The monitored resource associated with the time series.", + "$ref": "MonitoredResource" + }, + "collectdPayloads": { + "description": "The collectd payloads representing the time series data. You must not include more than a single point for each time series, so no two payloads can have the same values for all of the fields plugin, plugin_instance, type, and type_instance.", + "type": "array", + "items": { + "$ref": "CollectdPayload" + } + }, + "collectdVersion": { + "description": "The version of collectd that collected the data. Example: \"5.3.0-192.el6\".", + "type": "string" + } + }, + "id": "CreateCollectdTimeSeriesRequest" + }, + "ListGroupMembersResponse": { + "description": "The ListGroupMembers response.", + "type": "object", + "properties": { + "members": { + "description": "A set of monitored resources in the group.", + "type": "array", + "items": { + "$ref": "MonitoredResource" + } + }, + "nextPageToken": { + "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", + "type": "string" + }, + "totalSize": { + "description": "The total number of elements matching this request.", + "format": "int32", + "type": "integer" + } + }, + "id": "ListGroupMembersResponse" + }, + "ListMonitoredResourceDescriptorsResponse": { + "description": "The ListMonitoredResourceDescriptors response.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", + "type": "string" + }, + "resourceDescriptors": { + "description": "The monitored resource descriptors that are available to this project and that match filter, if present.", + "type": "array", + "items": { + "$ref": "MonitoredResourceDescriptor" + } + } + }, + "id": "ListMonitoredResourceDescriptorsResponse" + }, + "TimeSeries": { + "description": "A collection of data points that describes the time-varying values of a metric. A time series is identified by a combination of a fully-specified monitored resource and a fully-specified metric. This type is used for both listing and creating time series.", + "type": "object", + "properties": { + "metric": { + "description": "The associated metric. A fully-specified metric used to identify the time series.", + "$ref": "Metric" + }, + "points": { + "description": "The data points of this time series. When listing time series, the order of the points is specified by the list method.When creating a time series, this field must contain exactly one point and the point's type must be the same as the value type of the associated metric. If the associated metric's descriptor must be auto-created, then the value type of the descriptor is determined by the point's type, which must be BOOL, INT64, DOUBLE, or DISTRIBUTION.", + "type": "array", + "items": { + "$ref": "Point" + } + }, + "valueType": { + "enumDescriptions": [ + "Do not use this default value.", + "The value is a boolean. This value type can be used only if the metric kind is GAUGE.", + "The value is a signed 64-bit integer.", + "The value is a double precision floating point number.", + "The value is a text string. This value type can be used only if the metric kind is GAUGE.", + "The value is a Distribution.", + "The value is money." + ], + "enum": [ + "VALUE_TYPE_UNSPECIFIED", + "BOOL", + "INT64", + "DOUBLE", + "STRING", + "DISTRIBUTION", + "MONEY" + ], + "description": "The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.", + "type": "string" + }, + "resource": { + "$ref": "MonitoredResource", + "description": "The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data." + }, + "metricKind": { + "description": "The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric's descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE.", + "type": "string", + "enumDescriptions": [ + "Do not use this default value.", + "An instantaneous measurement of a value.", + "The change in a value during a time interval.", + "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points." + ], + "enum": [ + "METRIC_KIND_UNSPECIFIED", + "GAUGE", + "DELTA", + "CUMULATIVE" + ] + } + }, + "id": "TimeSeries" + }, + "CreateTimeSeriesRequest": { + "description": "The CreateTimeSeries request.", + "type": "object", + "properties": { + "timeSeries": { + "description": "The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource.", + "type": "array", + "items": { + "$ref": "TimeSeries" + } + } + }, + "id": "CreateTimeSeriesRequest" + }, + "Distribution": { + "description": "Distribution contains summary statistics for a population of values. It optionally contains a histogram representing the distribution of those values across a set of buckets.The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values. The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by formulas for buckets of fixed or exponentially increasing widths.Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the mean and sum_of_squared_deviation fields meaningless.", + "type": "object", + "properties": { + "sumOfSquaredDeviation": { + "description": "The sum of squared deviations from the mean of the values in the population. For values x_i this is:\nSum[i=1..n]((x_i - mean)^2)\nKnuth, \"The Art of Computer Programming\", Vol. 2, page 323, 3rd edition describes Welford's method for accumulating this sum in one pass.If count is zero then this field must be zero.", + "format": "double", + "type": "number" + }, + "range": { + "$ref": "Range", + "description": "If specified, contains the range of the population values. The field must not be present if the count is zero. This field is presently ignored by the Stackdriver Monitoring API v3." + }, + "count": { + "description": "The number of values in the population. Must be non-negative. This value must equal the sum of the values in bucket_counts if a histogram is provided.", + "format": "int64", + "type": "string" + }, + "mean": { + "description": "The arithmetic mean of the values in the population. If count is zero then this field must be zero.", + "format": "double", + "type": "number" + }, + "bucketCounts": { + "description": "Required in the Stackdriver Monitoring API v3. The values for each bucket specified in bucket_options. The sum of the values in bucketCounts must equal the value in the count field of the Distribution object. The order of the bucket counts follows the numbering schemes described for the three bucket types. The underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; and the overflow bucket has number N-1. The size of bucket_counts must not be greater than N. If the size is less than N, then the remaining buckets are assigned values of zero.", + "type": "array", + "items": { + "format": "int64", + "type": "string" + } + }, + "bucketOptions": { + "$ref": "BucketOptions", + "description": "Required in the Stackdriver Monitoring API v3. Defines the histogram bucket boundaries." + } + }, + "id": "Distribution" + }, + "MonitoredResource": { + "description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"instance_id\" and \"zone\":\n{ \"type\": \"gce_instance\",\n \"labels\": { \"instance_id\": \"12345678901234\",\n \"zone\": \"us-central1-a\" }}\n", + "type": "object", + "properties": { + "type": { + "description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.", + "description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", "type": "object" + } + }, + "id": "MonitoredResource" + }, + "ListMetricDescriptorsResponse": { + "description": "The ListMetricDescriptors response.", + "type": "object", + "properties": { + "metricDescriptors": { + "description": "The metric descriptors that are available to the project and that match the value of filter, if present.", + "type": "array", + "items": { + "$ref": "MetricDescriptor" + } }, - "type": { - "description": "An existing metric type, see google.api.MetricDescriptor. For example, custom.googleapis.com/invoice/paid/amount.", + "nextPageToken": { + "description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.", "type": "string" } }, - "id": "Metric" + "id": "ListMetricDescriptorsResponse" + }, + "CollectdPayloadError": { + "description": "Describes the error status for payloads that were not written.", + "type": "object", + "properties": { + "error": { + "$ref": "Status", + "description": "Records the error status for the payload. If this field is present, the partial errors for nested values won't be populated." + }, + "valueErrors": { + "description": "Records the error status for values that were not written due to an error.Failed payloads for which nothing is written will not include partial value errors.", + "type": "array", + "items": { + "$ref": "CollectdValueError" + } + }, + "index": { + "description": "The zero-based index in CreateCollectdTimeSeriesRequest.collectd_payloads.", + "format": "int32", + "type": "integer" + } + }, + "id": "CollectdPayloadError" + }, + "MonitoredResourceDescriptor": { + "description": "An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of \"gce_instance\" and specifies the use of the labels \"instance_id\" and \"zone\" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.", + "type": "object", + "properties": { + "labels": { + "description": "Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels \"database_id\" and \"zone\".", + "type": "array", + "items": { + "$ref": "LabelDescriptor" + } + }, + "name": { + "description": "Optional. The resource name of the monitored resource descriptor: \"projects/{project_id}/monitoredResourceDescriptors/{type}\" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format \"monitoredResourceDescriptors/{type}\".", + "type": "string" + }, + "displayName": { + "description": "Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, \"Google Cloud SQL Database\".", + "type": "string" + }, + "description": { + "description": "Optional. A detailed description of the monitored resource type that might be used in documentation.", + "type": "string" + }, + "type": { + "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.", + "type": "string" + } + }, + "id": "MonitoredResourceDescriptor" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "canonicalName": "Monitoring", "auth": { @@ -954,11 +1192,11 @@ "https://www.googleapis.com/auth/monitoring.write": { "description": "Publish metric data to your Google Cloud projects" }, - "https://www.googleapis.com/auth/monitoring.read": { - "description": "View monitoring data for all of your Google Cloud and third-party projects" - }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/monitoring.read": { + "description": "View monitoring data for all of your Google Cloud and third-party projects" } } } @@ -973,373 +1211,6 @@ "resources": { "projects": { "resources": { - "timeSeries": { - "methods": { - "create": { - "request": { - "$ref": "CreateTimeSeriesRequest" - }, - "description": "Creates or adds data to one or more time series. The response is empty if all time series in the request were written. If any time series could not be written, a corresponding failure message is included in the error response.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.write" - ], - "parameters": { - "name": { - "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v3/projects/{projectsId}/timeSeries", - "id": "monitoring.projects.timeSeries.create", - "path": "v3/{+name}/timeSeries" - }, - "list": { - "flatPath": "v3/projects/{projectsId}/timeSeries", - "id": "monitoring.projects.timeSeries.list", - "path": "v3/{+name}/timeSeries", - "description": "Lists time series that match a filter. This method does not require a Stackdriver account.", - "response": { - "$ref": "ListTimeSeriesResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "interval.endTime": { - "format": "google-datetime", - "description": "Required. The end of the time interval.", - "type": "string", - "location": "query" - }, - "aggregation.alignmentPeriod": { - "location": "query", - "format": "google-duration", - "description": "The alignment period for per-time series alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE, then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE, then this field must be defined; otherwise an error is returned.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "A positive number that is the maximum number of results to return. When view field sets to FULL, it limits the number of Points server will return; if view field is HEADERS, it limits the number of TimeSeries server will return.", - "type": "integer", - "location": "query" - }, - "orderBy": { - "location": "query", - "description": "Specifies the order in which the points of the time series should be returned. By default, results are not ordered. Currently, this field must be left blank.", - "type": "string" - }, - "aggregation.crossSeriesReducer": { - "location": "query", - "enum": [ - "REDUCE_NONE", - "REDUCE_MEAN", - "REDUCE_MIN", - "REDUCE_MAX", - "REDUCE_SUM", - "REDUCE_STDDEV", - "REDUCE_COUNT", - "REDUCE_COUNT_TRUE", - "REDUCE_FRACTION_TRUE", - "REDUCE_PERCENTILE_99", - "REDUCE_PERCENTILE_95", - "REDUCE_PERCENTILE_50", - "REDUCE_PERCENTILE_05" - ], - "description": "The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series.Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.", - "type": "string" - }, - "filter": { - "location": "query", - "description": "A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example:\nmetric.type = \"compute.googleapis.com/instance/cpu/usage_time\" AND\n metric.label.instance_name = \"my-instance-name\"\n", - "type": "string" - }, - "aggregation.perSeriesAligner": { - "location": "query", - "enum": [ - "ALIGN_NONE", - "ALIGN_DELTA", - "ALIGN_RATE", - "ALIGN_INTERPOLATE", - "ALIGN_NEXT_OLDER", - "ALIGN_MIN", - "ALIGN_MAX", - "ALIGN_MEAN", - "ALIGN_COUNT", - "ALIGN_SUM", - "ALIGN_STDDEV", - "ALIGN_COUNT_TRUE", - "ALIGN_FRACTION_TRUE", - "ALIGN_PERCENTILE_99", - "ALIGN_PERCENTILE_95", - "ALIGN_PERCENTILE_50", - "ALIGN_PERCENTILE_05" - ], - "description": "The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series.Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.", - "type": "string" - }, - "pageToken": { - "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", - "type": "string", - "location": "query" - }, - "interval.startTime": { - "location": "query", - "format": "google-datetime", - "description": "Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.", - "type": "string" - }, - "view": { - "description": "Specifies which information is returned about the time series.", - "type": "string", - "location": "query", - "enum": [ - "FULL", - "HEADERS" - ] - }, - "aggregation.groupByFields": { - "location": "query", - "description": "The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type. Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored.", - "type": "string", - "repeated": true - }, - "name": { - "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read" - ] - } - } - }, - "metricDescriptors": { - "methods": { - "delete": { - "flatPath": "v3/projects/{projectsId}/metricDescriptors/{metricDescriptorsId}", - "id": "monitoring.projects.metricDescriptors.delete", - "path": "v3/{+name}", - "description": "Deletes a metric descriptor. Only user-created custom metrics can be deleted.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/metricDescriptors/.+$", - "location": "path", - "description": "The metric descriptor on which to execute the request. The format is \"projects/{project_id_or_number}/metricDescriptors/{metric_id}\". An example of {metric_id} is: \"custom.googleapis.com/my_test_metric\".", - "type": "string", - "required": true - } - } - }, - "get": { - "flatPath": "v3/projects/{projectsId}/metricDescriptors/{metricDescriptorsId}", - "id": "monitoring.projects.metricDescriptors.get", - "path": "v3/{+name}", - "description": "Gets a single metric descriptor. This method does not require a Stackdriver account.", - "response": { - "$ref": "MetricDescriptor" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The metric descriptor on which to execute the request. The format is \"projects/{project_id_or_number}/metricDescriptors/{metric_id}\". An example value of {metric_id} is \"compute.googleapis.com/instance/disk/read_bytes_count\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/metricDescriptors/.+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read", - "https://www.googleapis.com/auth/monitoring.write" - ] - }, - "list": { - "description": "Lists metric descriptors that match a filter. This method does not require a Stackdriver account.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "ListMetricDescriptorsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read", - "https://www.googleapis.com/auth/monitoring.write" - ], - "parameters": { - "filter": { - "description": "If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics:\nmetric.type = starts_with(\"custom.googleapis.com/\")\n", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", - "type": "string" - }, - "name": { - "location": "path", - "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - }, - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "A positive number that is the maximum number of results to return." - } - }, - "flatPath": "v3/projects/{projectsId}/metricDescriptors", - "path": "v3/{+name}/metricDescriptors", - "id": "monitoring.projects.metricDescriptors.list" - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "MetricDescriptor" - }, - "parameters": { - "name": { - "location": "path", - "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.write" - ], - "flatPath": "v3/projects/{projectsId}/metricDescriptors", - "path": "v3/{+name}/metricDescriptors", - "id": "monitoring.projects.metricDescriptors.create", - "description": "Creates a new metric descriptor. User-created metric descriptors define custom metrics.", - "request": { - "$ref": "MetricDescriptor" - } - } - } - }, - "monitoredResourceDescriptors": { - "methods": { - "get": { - "description": "Gets a single monitored resource descriptor. This method does not require a Stackdriver account.", - "httpMethod": "GET", - "response": { - "$ref": "MonitoredResourceDescriptor" - }, - "parameterOrder": [ - "name" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read", - "https://www.googleapis.com/auth/monitoring.write" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/monitoredResourceDescriptors/[^/]+$", - "location": "path", - "description": "The monitored resource descriptor to get. The format is \"projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}\". The {resource_type} is a predefined type, such as cloudsql_database.", - "type": "string", - "required": true - } - }, - "flatPath": "v3/projects/{projectsId}/monitoredResourceDescriptors/{monitoredResourceDescriptorsId}", - "path": "v3/{+name}", - "id": "monitoring.projects.monitoredResourceDescriptors.get" - }, - "list": { - "response": { - "$ref": "ListMonitoredResourceDescriptorsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "pageToken": { - "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", - "type": "string", - "location": "query" - }, - "name": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "A positive number that is the maximum number of results to return.", - "type": "integer" - }, - "filter": { - "location": "query", - "description": "An optional filter describing the descriptors to be returned. The filter can reference the descriptor's type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label:\nresource.type = starts_with(\"gce_\") AND resource.label:id\n", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read", - "https://www.googleapis.com/auth/monitoring.write" - ], - "flatPath": "v3/projects/{projectsId}/monitoredResourceDescriptors", - "id": "monitoring.projects.monitoredResourceDescriptors.list", - "path": "v3/{+name}/monitoredResourceDescriptors", - "description": "Lists monitored resource descriptors that match a filter. This method does not require a Stackdriver account." - } - } - }, "groups": { "methods": { "delete": { @@ -1351,22 +1222,75 @@ "name" ], "httpMethod": "DELETE", - "parameters": { - "name": { - "description": "The group to delete. The format is \"projects/{project_id_or_number}/groups/{group_id}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/groups/[^/]+$", - "location": "path" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/monitoring" ], + "parameters": { + "name": { + "location": "path", + "description": "The group to delete. The format is \"projects/{project_id_or_number}/groups/{group_id}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/groups/[^/]+$" + } + }, "flatPath": "v3/projects/{projectsId}/groups/{groupsId}", - "id": "monitoring.projects.groups.delete", - "path": "v3/{+name}" + "path": "v3/{+name}", + "id": "monitoring.projects.groups.delete" + }, + "list": { + "response": { + "$ref": "ListGroupsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "location": "path", + "description": "The project whose groups are to be listed. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$" + }, + "childrenOfGroup": { + "location": "query", + "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns groups whose parentName field contains the group name. If no groups have this parent, the results are empty.", + "type": "string" + }, + "descendantsOfGroup": { + "location": "query", + "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns the descendants of the specified group. This is a superset of the results returned by the childrenOfGroup filter, and includes children-of-children, and so forth.", + "type": "string" + }, + "pageToken": { + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "A positive number that is the maximum number of results to return.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "ancestorsOfGroup": { + "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns groups that are ancestors of the specified group. The groups are returned in order, starting with the immediate parent and ending with the most distant ancestor. If the specified group has no immediate parent, the results are empty.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ], + "flatPath": "v3/projects/{projectsId}/groups", + "path": "v3/{+name}/groups", + "id": "monitoring.projects.groups.list", + "description": "Lists the existing groups." }, "get": { "description": "Gets a single group.", @@ -1377,66 +1301,13 @@ "name" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/monitoring.read" - ], "parameters": { "name": { - "pattern": "^projects/[^/]+/groups/[^/]+$", "location": "path", "description": "The group to retrieve. The format is \"projects/{project_id_or_number}/groups/{group_id}\".", - "type": "string", - "required": true - } - }, - "flatPath": "v3/projects/{projectsId}/groups/{groupsId}", - "id": "monitoring.projects.groups.get", - "path": "v3/{+name}" - }, - "list": { - "description": "Lists the existing groups.", - "response": { - "$ref": "ListGroupsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "childrenOfGroup": { - "location": "query", - "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns groups whose parentName field contains the group name. If no groups have this parent, the results are empty.", - "type": "string" - }, - "descendantsOfGroup": { - "type": "string", - "location": "query", - "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns the descendants of the specified group. This is a superset of the results returned by the childrenOfGroup filter, and includes children-of-children, and so forth." - }, - "pageToken": { - "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "A positive number that is the maximum number of results to return.", - "type": "integer", - "location": "query" - }, - "ancestorsOfGroup": { - "type": "string", - "location": "query", - "description": "A group name: \"projects/{project_id_or_number}/groups/{group_id}\". Returns groups that are ancestors of the specified group. The groups are returned in order, starting with the immediate parent and ending with the most distant ancestor. If the specified group has no immediate parent, the results are empty." - }, - "name": { - "description": "The project whose groups are to be listed. The format is \"projects/{project_id_or_number}\".", - "type": "string", "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" + "type": "string", + "pattern": "^projects/[^/]+/groups/[^/]+$" } }, "scopes": [ @@ -1444,15 +1315,15 @@ "https://www.googleapis.com/auth/monitoring", "https://www.googleapis.com/auth/monitoring.read" ], - "flatPath": "v3/projects/{projectsId}/groups", - "id": "monitoring.projects.groups.list", - "path": "v3/{+name}/groups" + "flatPath": "v3/projects/{projectsId}/groups/{groupsId}", + "path": "v3/{+name}", + "id": "monitoring.projects.groups.get" }, "update": { - "description": "Updates an existing group. You can change any group attributes except name.", "request": { "$ref": "Group" }, + "description": "Updates an existing group. You can change any group attributes except name.", "response": { "$ref": "Group" }, @@ -1461,17 +1332,17 @@ ], "httpMethod": "PUT", "parameters": { + "name": { + "description": "Output only. The name of this group. The format is \"projects/{project_id_or_number}/groups/{group_id}\". When creating a group, this field is ignored and a new name is created consisting of the project specified in the call to CreateGroup and a unique {group_id} that is generated automatically.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/groups/[^/]+$", + "location": "path" + }, "validateOnly": { "location": "query", "description": "If true, validate this request but do not update the existing group.", "type": "boolean" - }, - "name": { - "location": "path", - "description": "Output only. The name of this group. The format is \"projects/{project_id_or_number}/groups/{group_id}\". When creating a group, this field is ignored and a new name is created consisting of the project specified in the call to CreateGroup and a unique {group_id} that is generated automatically.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/groups/[^/]+$" } }, "scopes": [ @@ -1479,39 +1350,39 @@ "https://www.googleapis.com/auth/monitoring" ], "flatPath": "v3/projects/{projectsId}/groups/{groupsId}", - "id": "monitoring.projects.groups.update", - "path": "v3/{+name}" + "path": "v3/{+name}", + "id": "monitoring.projects.groups.update" }, "create": { "request": { "$ref": "Group" }, "description": "Creates a new group.", - "response": { - "$ref": "Group" - }, + "httpMethod": "POST", "parameterOrder": [ "name" ], - "httpMethod": "POST", + "response": { + "$ref": "Group" + }, + "parameters": { + "name": { + "location": "path", + "description": "The project in which to create the group. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$" + }, + "validateOnly": { + "description": "If true, validate this request but do not create the group.", + "type": "boolean", + "location": "query" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/monitoring" ], - "parameters": { - "validateOnly": { - "location": "query", - "description": "If true, validate this request but do not create the group.", - "type": "boolean" - }, - "name": { - "description": "The project in which to create the group. The format is \"projects/{project_id_or_number}\".", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, "flatPath": "v3/projects/{projectsId}/groups", "id": "monitoring.projects.groups.create", "path": "v3/{+name}/groups" @@ -1521,13 +1392,17 @@ "members": { "methods": { "list": { - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], + "flatPath": "v3/projects/{projectsId}/groups/{groupsId}/members", + "path": "v3/{+name}/members", + "id": "monitoring.projects.groups.members.list", + "description": "Lists the monitored resources that are members of a group.", "response": { "$ref": "ListGroupMembersResponse" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/monitoring", @@ -1535,15 +1410,15 @@ ], "parameters": { "name": { + "location": "path", "description": "The group whose members are listed. The format is \"projects/{project_id_or_number}/groups/{group_id}\".", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/groups/[^/]+$", - "location": "path" + "type": "string", + "pattern": "^projects/[^/]+/groups/[^/]+$" }, "interval.endTime": { - "format": "google-datetime", "description": "Required. The end of the time interval.", + "format": "google-datetime", "type": "string", "location": "query" }, @@ -1558,22 +1433,18 @@ "location": "query" }, "interval.startTime": { - "format": "google-datetime", "description": "Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.", + "format": "google-datetime", "type": "string", "location": "query" }, "pageSize": { - "location": "query", - "format": "int32", "description": "A positive number that is the maximum number of results to return.", - "type": "integer" + "format": "int32", + "type": "integer", + "location": "query" } - }, - "flatPath": "v3/projects/{projectsId}/groups/{groupsId}/members", - "path": "v3/{+name}/members", - "id": "monitoring.projects.groups.members.list", - "description": "Lists the monitored resources that are members of a group." + } } } } @@ -1596,49 +1467,593 @@ ], "parameters": { "name": { - "pattern": "^projects/[^/]+$", - "location": "path", "description": "The project in which to create the time series. The format is \"projects/PROJECT_ID_OR_NUMBER\".", + "required": true, "type": "string", - "required": true + "pattern": "^projects/[^/]+$", + "location": "path" } }, "flatPath": "v3/projects/{projectsId}/collectdTimeSeries", - "id": "monitoring.projects.collectdTimeSeries.create", "path": "v3/{+name}/collectdTimeSeries", + "id": "monitoring.projects.collectdTimeSeries.create", + "description": "Stackdriver Monitoring Agent only: Creates a new time series.\u003caside class=\"caution\"\u003eThis method is only for use by the Stackdriver Monitoring Agent. Use projects.timeSeries.create instead.\u003c/aside\u003e", "request": { "$ref": "CreateCollectdTimeSeriesRequest" - }, - "description": "Stackdriver Monitoring Agent only: Creates a new time series.\u003caside class=\"caution\"\u003eThis method is only for use by the Stackdriver Monitoring Agent. Use projects.timeSeries.create instead.\u003c/aside\u003e" + } } } + }, + "metricDescriptors": { + "methods": { + "delete": { + "description": "Deletes a metric descriptor. Only user-created custom metrics can be deleted.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ], + "parameters": { + "name": { + "description": "The metric descriptor on which to execute the request. The format is \"projects/{project_id_or_number}/metricDescriptors/{metric_id}\". An example of {metric_id} is: \"custom.googleapis.com/my_test_metric\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/metricDescriptors/.+$", + "location": "path" + } + }, + "flatPath": "v3/projects/{projectsId}/metricDescriptors/{metricDescriptorsId}", + "path": "v3/{+name}", + "id": "monitoring.projects.metricDescriptors.delete" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "ListMetricDescriptorsResponse" + }, + "parameters": { + "filter": { + "description": "If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics:\nmetric.type = starts_with(\"custom.googleapis.com/\")\n", + "type": "string", + "location": "query" + }, + "name": { + "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageToken": { + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "A positive number that is the maximum number of results to return.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write" + ], + "flatPath": "v3/projects/{projectsId}/metricDescriptors", + "id": "monitoring.projects.metricDescriptors.list", + "path": "v3/{+name}/metricDescriptors", + "description": "Lists metric descriptors that match a filter. This method does not require a Stackdriver account." + }, + "get": { + "description": "Gets a single metric descriptor. This method does not require a Stackdriver account.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "MetricDescriptor" + }, + "parameters": { + "name": { + "description": "The metric descriptor on which to execute the request. The format is \"projects/{project_id_or_number}/metricDescriptors/{metric_id}\". An example value of {metric_id} is \"compute.googleapis.com/instance/disk/read_bytes_count\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/metricDescriptors/.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write" + ], + "flatPath": "v3/projects/{projectsId}/metricDescriptors/{metricDescriptorsId}", + "id": "monitoring.projects.metricDescriptors.get", + "path": "v3/{+name}" + }, + "create": { + "response": { + "$ref": "MetricDescriptor" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.write" + ], + "flatPath": "v3/projects/{projectsId}/metricDescriptors", + "path": "v3/{+name}/metricDescriptors", + "id": "monitoring.projects.metricDescriptors.create", + "request": { + "$ref": "MetricDescriptor" + }, + "description": "Creates a new metric descriptor. User-created metric descriptors define custom metrics." + } + } + }, + "timeSeries": { + "methods": { + "list": { + "description": "Lists time series that match a filter. This method does not require a Stackdriver account.", + "response": { + "$ref": "ListTimeSeriesResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "aggregation.alignmentPeriod": { + "description": "The alignment period for per-time series alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE, then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE, then this field must be defined; otherwise an error is returned.", + "format": "google-duration", + "type": "string", + "location": "query" + }, + "pageSize": { + "description": "A positive number that is the maximum number of results to return. When view field sets to FULL, it limits the number of Points server will return; if view field is HEADERS, it limits the number of TimeSeries server will return.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "orderBy": { + "location": "query", + "description": "Specifies the order in which the points of the time series should be returned. By default, results are not ordered. Currently, this field must be left blank.", + "type": "string" + }, + "aggregation.crossSeriesReducer": { + "description": "The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series.Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.", + "type": "string", + "location": "query", + "enum": [ + "REDUCE_NONE", + "REDUCE_MEAN", + "REDUCE_MIN", + "REDUCE_MAX", + "REDUCE_SUM", + "REDUCE_STDDEV", + "REDUCE_COUNT", + "REDUCE_COUNT_TRUE", + "REDUCE_FRACTION_TRUE", + "REDUCE_PERCENTILE_99", + "REDUCE_PERCENTILE_95", + "REDUCE_PERCENTILE_50", + "REDUCE_PERCENTILE_05" + ] + }, + "filter": { + "location": "query", + "description": "A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example:\nmetric.type = \"compute.googleapis.com/instance/cpu/usage_time\" AND\n metric.label.instance_name = \"my-instance-name\"\n", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", + "type": "string" + }, + "aggregation.perSeriesAligner": { + "description": "The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series.Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned.", + "type": "string", + "location": "query", + "enum": [ + "ALIGN_NONE", + "ALIGN_DELTA", + "ALIGN_RATE", + "ALIGN_INTERPOLATE", + "ALIGN_NEXT_OLDER", + "ALIGN_MIN", + "ALIGN_MAX", + "ALIGN_MEAN", + "ALIGN_COUNT", + "ALIGN_SUM", + "ALIGN_STDDEV", + "ALIGN_COUNT_TRUE", + "ALIGN_FRACTION_TRUE", + "ALIGN_PERCENTILE_99", + "ALIGN_PERCENTILE_95", + "ALIGN_PERCENTILE_50", + "ALIGN_PERCENTILE_05" + ] + }, + "interval.startTime": { + "location": "query", + "description": "Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.", + "format": "google-datetime", + "type": "string" + }, + "view": { + "description": "Specifies which information is returned about the time series.", + "type": "string", + "location": "query", + "enum": [ + "FULL", + "HEADERS" + ] + }, + "name": { + "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "aggregation.groupByFields": { + "description": "The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type. Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored.", + "type": "string", + "repeated": true, + "location": "query" + }, + "interval.endTime": { + "location": "query", + "description": "Required. The end of the time interval.", + "format": "google-datetime", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ], + "flatPath": "v3/projects/{projectsId}/timeSeries", + "path": "v3/{+name}/timeSeries", + "id": "monitoring.projects.timeSeries.list" + }, + "create": { + "flatPath": "v3/projects/{projectsId}/timeSeries", + "path": "v3/{+name}/timeSeries", + "id": "monitoring.projects.timeSeries.create", + "description": "Creates or adds data to one or more time series. The response is empty if all time series in the request were written. If any time series could not be written, a corresponding failure message is included in the error response.", + "request": { + "$ref": "CreateTimeSeriesRequest" + }, + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.write" + ], + "parameters": { + "name": { + "location": "path", + "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$" + } + } + } + } + }, + "uptimeCheckConfigs": { + "methods": { + "delete": { + "description": "Deletes an uptime check configuration. Note that this method will fail if the uptime check configuration is referenced by an alert policy or other dependent configs that would be rendered invalid by the deletion.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ], + "parameters": { + "name": { + "location": "path", + "description": "The uptime check configuration to delete. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$" + } + }, + "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + "path": "v3/{+name}", + "id": "monitoring.projects.uptimeCheckConfigs.delete" + }, + "list": { + "description": "Lists the existing valid uptime check configurations for the project, leaving out any invalid configurations.", + "response": { + "$ref": "ListUptimeCheckConfigsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call.", + "type": "string" + }, + "pageSize": { + "location": "query", + "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 \u003c=0, the server will decide the number of results to be returned.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "The project whose uptime check configurations are listed. The format isprojects/[PROJECT_ID].", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ], + "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs", + "path": "v3/{+parent}/uptimeCheckConfigs", + "id": "monitoring.projects.uptimeCheckConfigs.list" + }, + "get": { + "description": "Gets a single uptime check configuration.", + "response": { + "$ref": "UptimeCheckConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ], + "parameters": { + "name": { + "description": "The uptime check configuration to retrieve. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", + "location": "path" + } + }, + "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + "path": "v3/{+name}", + "id": "monitoring.projects.uptimeCheckConfigs.get" + }, + "patch": { + "request": { + "$ref": "UptimeCheckConfig" + }, + "description": "Updates an uptime check configuration. You can either replace the entire configuration with a new one or replace only certain fields in the current configuration by specifying the fields to be updated via \"updateMask\". Returns the updated configuration.", + "response": { + "$ref": "UptimeCheckConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "description": "Optional. If present, only the listed fields in the current uptime check configuration are updated with values from the new configuration. If this field is empty, then the current configuration is completely replaced with the new configuration.", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "name1": { + "description": "The uptime check configuration to update. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + "type": "string", + "location": "query" + }, + "name": { + "description": "A unique resource name for this UptimeCheckConfig. The format is:projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].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.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ], + "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + "path": "v3/{+name}", + "id": "monitoring.projects.uptimeCheckConfigs.patch" + }, + "create": { + "request": { + "$ref": "UptimeCheckConfig" + }, + "description": "Creates a new uptime check configuration.", + "response": { + "$ref": "UptimeCheckConfig" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "description": "The project in which to create the uptime check. The format is:projects/[PROJECT_ID].", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ], + "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs", + "path": "v3/{+parent}/uptimeCheckConfigs", + "id": "monitoring.projects.uptimeCheckConfigs.create" + } + } + }, + "monitoredResourceDescriptors": { + "methods": { + "list": { + "description": "Lists monitored resource descriptors that match a filter. This method does not require a Stackdriver account.", + "response": { + "$ref": "ListMonitoredResourceDescriptorsResponse" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "filter": { + "location": "query", + "description": "An optional filter describing the descriptors to be returned. The filter can reference the descriptor's type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label:\nresource.type = starts_with(\"gce_\") AND resource.label:id\n", + "type": "string" + }, + "name": { + "description": "The project on which to execute the request. The format is \"projects/{project_id_or_number}\".", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "A positive number that is the maximum number of results to return.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write" + ], + "flatPath": "v3/projects/{projectsId}/monitoredResourceDescriptors", + "path": "v3/{+name}/monitoredResourceDescriptors", + "id": "monitoring.projects.monitoredResourceDescriptors.list" + }, + "get": { + "description": "Gets a single monitored resource descriptor. This method does not require a Stackdriver account.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "MonitoredResourceDescriptor" + }, + "parameters": { + "name": { + "description": "The monitored resource descriptor to get. The format is \"projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}\". The {resource_type} is a predefined type, such as cloudsql_database.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/monitoredResourceDescriptors/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write" + ], + "flatPath": "v3/projects/{projectsId}/monitoredResourceDescriptors/{monitoredResourceDescriptorsId}", + "id": "monitoring.projects.monitoredResourceDescriptors.get", + "path": "v3/{+name}" + } + } + } + } + }, + "uptimeCheckIps": { + "methods": { + "list": { + "description": "Returns the list of IPs that checkers run from", + "response": { + "$ref": "ListUptimeCheckIpsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call. NOTE: this field is not yet implemented", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "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 \u003c=0, the server will decide the number of results to be returned. NOTE: this field is not yet implemented", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ], + "flatPath": "v3/uptimeCheckIps", + "path": "v3/uptimeCheckIps", + "id": "monitoring.uptimeCheckIps.list" } } } }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "uploadType": { - "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, "$.xgafv": { + "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", @@ -1648,15 +2063,20 @@ "enum": [ "1", "2" - ], - "description": "V1 error format." + ] }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "alt": { + "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", "description": "Data format for response.", "default": "json", "enum": [ @@ -1664,13 +2084,7 @@ "media", "proto" ], - "type": "string", - "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" }, "key": { "location": "query", @@ -1683,27 +2097,46 @@ "location": "query" }, "quotaUser": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "pp": { "location": "query", "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "boolean", + "default": "true" }, "oauth_token": { "location": "query", "description": "OAuth 2.0 token for the current user.", "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" } - }, - "version": "v3", - "baseUrl": "https://monitoring.googleapis.com/" + } } diff --git a/vendor/google.golang.org/api/monitoring/v3/monitoring-gen.go b/vendor/google.golang.org/api/monitoring/v3/monitoring-gen.go index a7cfe9623..6837a755a 100644 --- a/vendor/google.golang.org/api/monitoring/v3/monitoring-gen.go +++ b/vendor/google.golang.org/api/monitoring/v3/monitoring-gen.go @@ -68,6 +68,7 @@ func New(client *http.Client) (*Service, error) { } s := &Service{client: client, BasePath: basePath} s.Projects = NewProjectsService(s) + s.UptimeCheckIps = NewUptimeCheckIpsService(s) return s, nil } @@ -77,6 +78,8 @@ type Service struct { UserAgent string // optional additional User-Agent fragment Projects *ProjectsService + + UptimeCheckIps *UptimeCheckIpsService } func (s *Service) userAgent() string { @@ -93,6 +96,7 @@ func NewProjectsService(s *Service) *ProjectsService { rs.MetricDescriptors = NewProjectsMetricDescriptorsService(s) rs.MonitoredResourceDescriptors = NewProjectsMonitoredResourceDescriptorsService(s) rs.TimeSeries = NewProjectsTimeSeriesService(s) + rs.UptimeCheckConfigs = NewProjectsUptimeCheckConfigsService(s) return rs } @@ -108,6 +112,8 @@ type ProjectsService struct { MonitoredResourceDescriptors *ProjectsMonitoredResourceDescriptorsService TimeSeries *ProjectsTimeSeriesService + + UptimeCheckConfigs *ProjectsUptimeCheckConfigsService } func NewProjectsCollectdTimeSeriesService(s *Service) *ProjectsCollectdTimeSeriesService { @@ -167,6 +173,57 @@ type ProjectsTimeSeriesService struct { s *Service } +func NewProjectsUptimeCheckConfigsService(s *Service) *ProjectsUptimeCheckConfigsService { + rs := &ProjectsUptimeCheckConfigsService{s: s} + return rs +} + +type ProjectsUptimeCheckConfigsService struct { + s *Service +} + +func NewUptimeCheckIpsService(s *Service) *UptimeCheckIpsService { + rs := &UptimeCheckIpsService{s: s} + return rs +} + +type UptimeCheckIpsService struct { + s *Service +} + +// BasicAuthentication: A type of authentication to perform against the +// specified resource or URL that uses username and password. Currently, +// only Basic authentication is supported in Uptime Monitoring. +type BasicAuthentication struct { + // Password: The password to authenticate. + Password string `json:"password,omitempty"` + + // Username: The username to authenticate. + Username string `json:"username,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Password") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Password") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BasicAuthentication) MarshalJSON() ([]byte, error) { + type noMethod BasicAuthentication + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // BucketOptions: BucketOptions describes the bucket boundaries used to // create a histogram for the distribution. The buckets can be in a // linear sequence, an exponential sequence, or each bucket can be @@ -389,6 +446,36 @@ func (s *CollectdValueError) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ContentMatcher: Used to perform string matching. Currently, this +// matches on the exact content. In the future, it can be expanded to +// allow for regular expressions and more complex matching. +type ContentMatcher struct { + // Content: String content to match + Content string `json:"content,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Content") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Content") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ContentMatcher) MarshalJSON() ([]byte, error) { + type noMethod ContentMatcher + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // CreateCollectdTimeSeriesRequest: The CreateCollectdTimeSeries // request. type CreateCollectdTimeSeriesRequest struct { @@ -855,6 +942,67 @@ func (s *Group) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// HttpCheck: Information involved in an HTTP/HTTPS uptime check +// request. +type HttpCheck struct { + // AuthInfo: The authentication information. Optional when creating an + // HTTP check; defaults to empty. + AuthInfo *BasicAuthentication `json:"authInfo,omitempty"` + + // Headers: The list of headers to send as part of the uptime check + // request. If two headers have the same key and different values, they + // should be entered as a single header, with the value being a + // comma-separated list of all the desired values as described at + // https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31). Entering + // two separate headers with the same key in a Create call will cause + // the first to be overwritten by the second. + Headers map[string]string `json:"headers,omitempty"` + + // MaskHeaders: Boolean specifiying whether to encrypt the header + // information. Encryption should be specified for any headers related + // to authentication that you do not wish to be seen when retrieving the + // configuration. The server will be responsible for encrypting the + // headers. On Get/List calls, if mask_headers is set to True then the + // headers will be obscured with ******. + MaskHeaders bool `json:"maskHeaders,omitempty"` + + // Path: The path to the page to run the check against. Will be combined + // with the host (specified within the MonitoredResource) and port to + // construct the full URL. Optional (defaults to "/"). + Path string `json:"path,omitempty"` + + // Port: The port to the page to run the check against. Will be combined + // with host (specified within the MonitoredResource) and path to + // construct the full URL. Optional (defaults to 80 without SSL, or 443 + // with SSL). + Port int64 `json:"port,omitempty"` + + // UseSsl: If true, use HTTPS instead of HTTP to run the check. + UseSsl bool `json:"useSsl,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AuthInfo") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AuthInfo") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HttpCheck) MarshalJSON() ([]byte, error) { + type noMethod HttpCheck + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // LabelDescriptor: A description of a label. type LabelDescriptor struct { // Description: A human-readable description for the label. @@ -1143,6 +1291,88 @@ func (s *ListTimeSeriesResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ListUptimeCheckConfigsResponse: The protocol for the +// ListUptimeCheckConfigs response. +type ListUptimeCheckConfigsResponse struct { + // NextPageToken: This field represents the pagination token to retrieve + // the next page of results. If the value is empty, it means no further + // results for the request. To retrieve the next page of results, the + // value of the next_page_token is passed to the subsequent List method + // call (in the request message's page_token field). + NextPageToken string `json:"nextPageToken,omitempty"` + + // UptimeCheckConfigs: The returned uptime check configurations. + UptimeCheckConfigs []*UptimeCheckConfig `json:"uptimeCheckConfigs,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListUptimeCheckConfigsResponse) MarshalJSON() ([]byte, error) { + type noMethod ListUptimeCheckConfigsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListUptimeCheckIpsResponse: The protocol for the ListUptimeCheckIps +// response. +type ListUptimeCheckIpsResponse struct { + // NextPageToken: This field represents the pagination token to retrieve + // the next page of results. If the value is empty, it means no further + // results for the request. To retrieve the next page of results, the + // value of the next_page_token is passed to the subsequent List method + // call (in the request message's page_token field). NOTE: this field is + // not yet implemented + NextPageToken string `json:"nextPageToken,omitempty"` + + // UptimeCheckIps: The returned list of IP addresses (including region + // and location) that the checkers run from. + UptimeCheckIps []*UptimeCheckIp `json:"uptimeCheckIps,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListUptimeCheckIpsResponse) MarshalJSON() ([]byte, error) { + type noMethod ListUptimeCheckIpsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Metric: A specific metric, identified by specifying values for all of // the labels of a MetricDescriptor. type Metric struct { @@ -1187,7 +1417,9 @@ type MetricDescriptor struct { // DisplayName: A concise name for the metric, which can be displayed in // user interfaces. Use sentence case without an ending period, for - // example "Request count". + // example "Request count". This field is optional but it is recommended + // to be set for any metrics associated with user-visible concepts, such + // as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a specific @@ -1212,16 +1444,7 @@ type MetricDescriptor struct { // zero and sets a new start time for the following points. MetricKind string `json:"metricKind,omitempty"` - // Name: The resource name of the metric descriptor. Depending on the - // implementation, the name typically includes: (1) the parent resource - // name that defines the scope of the metric type or of its data; and - // (2) the metric's URL-encoded type, which also appears in the type - // field of this descriptor. For example, following is the resource name - // of a custom metric within the GCP project - // my-project-id: - // "projects/my-project-id/metricDescriptors/custom.google - // apis.com%2Finvoice%2Fpaid%2Famount" - // + // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is not @@ -1568,6 +1791,45 @@ func (s *Range) UnmarshalJSON(data []byte) error { return nil } +// ResourceGroup: The resource submessage for group checks. It can be +// used instead of a monitored resource, when multiple resources are +// being monitored. +type ResourceGroup struct { + // GroupId: The group of resources being monitored. Should be only the + // group_id, not projects//groups/. + GroupId string `json:"groupId,omitempty"` + + // ResourceType: The resource type of the group members. + // + // Possible values: + // "RESOURCE_TYPE_UNSPECIFIED" - Default value (not valid). + // "INSTANCE" - A group of instances (could be either GCE or AWS_EC2). + // "AWS_ELB_LOAD_BALANCER" - A group of AWS load balancers. + ResourceType string `json:"resourceType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GroupId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GroupId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ResourceGroup) MarshalJSON() ([]byte, error) { + type noMethod ResourceGroup + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SourceContext: SourceContext represents information about the source // of a protobuf element, like the file in which it is defined. type SourceContext struct { @@ -1675,6 +1937,36 @@ func (s *Status) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TcpCheck: Information required for a TCP uptime check request. +type TcpCheck struct { + // Port: The port to the page to run the check against. Will be combined + // with host (specified within the MonitoredResource) to construct the + // full URL. Required. + Port int64 `json:"port,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Port") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Port") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TcpCheck) MarshalJSON() ([]byte, error) { + type noMethod TcpCheck + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TimeInterval: A time interval extending just after a start time // through an end time. If the start time is the same as the end time, // then the interval represents a single point in time. @@ -1901,6 +2193,153 @@ func (s *TypedValue) UnmarshalJSON(data []byte) error { return nil } +// UptimeCheckConfig: This message configures which resources and +// services to monitor for availability. +type UptimeCheckConfig struct { + // ContentMatchers: The expected content on the page the check is run + // against. Currently, only the first entry in the list is supported, + // and other entries will be ignored. The server will look for an exact + // match of the string in the page response's content. This field is + // optional and should only be specified if a content match is required. + ContentMatchers []*ContentMatcher `json:"contentMatchers,omitempty"` + + // DisplayName: A human-friendly name for the uptime check + // configuration. The display name should be unique within a Stackdriver + // Account in order to make it easier to identify; however, uniqueness + // is not enforced. Required. + DisplayName string `json:"displayName,omitempty"` + + // HttpCheck: Contains information needed to make an HTTP or HTTPS + // check. + HttpCheck *HttpCheck `json:"httpCheck,omitempty"` + + // MonitoredResource: The monitored resource associated with the + // configuration. + MonitoredResource *MonitoredResource `json:"monitoredResource,omitempty"` + + // Name: A unique resource name for this UptimeCheckConfig. The format + // is:projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].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. + Name string `json:"name,omitempty"` + + // Period: How often the uptime check is performed. Currently, only 1, + // 5, 10, and 15 minutes are supported. Required. + Period string `json:"period,omitempty"` + + // ResourceGroup: The group resource associated with the configuration. + ResourceGroup *ResourceGroup `json:"resourceGroup,omitempty"` + + // SelectedRegions: The list of regions from which the check will be + // run. If this field is specified, enough regions to include a minimum + // of 3 locations must be provided, or an error message is returned. Not + // specifying this field will result in uptime checks running from all + // regions. + // + // Possible values: + // "REGION_UNSPECIFIED" - Default value if no region is specified. + // Will result in uptime checks running from all regions. + // "USA" - Allows checks to run from locations within the United + // States of America. + // "EUROPE" - Allows checks to run from locations within the continent + // of Europe. + // "SOUTH_AMERICA" - Allows checks to run from locations within the + // continent of South America. + // "ASIA_PACIFIC" - Allows checks to run from locations within the + // Asia Pacific area (ex: Singapore). + SelectedRegions []string `json:"selectedRegions,omitempty"` + + // TcpCheck: Contains information needed to make a TCP check. + TcpCheck *TcpCheck `json:"tcpCheck,omitempty"` + + // Timeout: The maximum amount of time to wait for the request to + // complete (must be between 1 and 60 seconds). Required. + Timeout string `json:"timeout,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "ContentMatchers") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContentMatchers") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *UptimeCheckConfig) MarshalJSON() ([]byte, error) { + type noMethod UptimeCheckConfig + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UptimeCheckIp: Contains the region, location, and list of IP +// addresses where checkers in the location run from. +type UptimeCheckIp struct { + // IpAddress: The IP address from which the uptime check originates. + // This is a full IP address (not an IP address range). Most IP + // addresses, as of this publication, are in IPv4 format; however, one + // should not rely on the IP addresses being in IPv4 format indefinitely + // and should support interpreting this field in either IPv4 or IPv6 + // format. + IpAddress string `json:"ipAddress,omitempty"` + + // Location: A more specific location within the region that typically + // encodes a particular city/town/metro (and its containing + // state/province or country) within the broader umbrella region + // category. + Location string `json:"location,omitempty"` + + // Region: A broad region category in which the IP address is located. + // + // Possible values: + // "REGION_UNSPECIFIED" - Default value if no region is specified. + // Will result in uptime checks running from all regions. + // "USA" - Allows checks to run from locations within the United + // States of America. + // "EUROPE" - Allows checks to run from locations within the continent + // of Europe. + // "SOUTH_AMERICA" - Allows checks to run from locations within the + // continent of South America. + // "ASIA_PACIFIC" - Allows checks to run from locations within the + // Asia Pacific area (ex: Singapore). + Region string `json:"region,omitempty"` + + // ForceSendFields is a list of field names (e.g. "IpAddress") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "IpAddress") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UptimeCheckIp) MarshalJSON() ([]byte, error) { + type noMethod UptimeCheckIp + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // method id "monitoring.projects.collectdTimeSeries.create": type ProjectsCollectdTimeSeriesCreateCall struct { @@ -4601,3 +5040,949 @@ func (c *ProjectsTimeSeriesListCall) Pages(ctx context.Context, f func(*ListTime c.PageToken(x.NextPageToken) } } + +// method id "monitoring.projects.uptimeCheckConfigs.create": + +type ProjectsUptimeCheckConfigsCreateCall struct { + s *Service + parent string + uptimecheckconfig *UptimeCheckConfig + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates a new uptime check configuration. +func (r *ProjectsUptimeCheckConfigsService) Create(parent string, uptimecheckconfig *UptimeCheckConfig) *ProjectsUptimeCheckConfigsCreateCall { + c := &ProjectsUptimeCheckConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.uptimecheckconfig = uptimecheckconfig + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsUptimeCheckConfigsCreateCall) Fields(s ...googleapi.Field) *ProjectsUptimeCheckConfigsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsUptimeCheckConfigsCreateCall) Context(ctx context.Context) *ProjectsUptimeCheckConfigsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsUptimeCheckConfigsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsUptimeCheckConfigsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.uptimecheckconfig) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/uptimeCheckConfigs") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.projects.uptimeCheckConfigs.create" call. +// Exactly one of *UptimeCheckConfig or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *UptimeCheckConfig.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsUptimeCheckConfigsCreateCall) Do(opts ...googleapi.CallOption) (*UptimeCheckConfig, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &UptimeCheckConfig{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new uptime check configuration.", + // "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs", + // "httpMethod": "POST", + // "id": "monitoring.projects.uptimeCheckConfigs.create", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "The project in which to create the uptime check. The format is:projects/[PROJECT_ID].", + // "location": "path", + // "pattern": "^projects/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v3/{+parent}/uptimeCheckConfigs", + // "request": { + // "$ref": "UptimeCheckConfig" + // }, + // "response": { + // "$ref": "UptimeCheckConfig" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring" + // ] + // } + +} + +// method id "monitoring.projects.uptimeCheckConfigs.delete": + +type ProjectsUptimeCheckConfigsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an uptime check configuration. Note that this method +// will fail if the uptime check configuration is referenced by an alert +// policy or other dependent configs that would be rendered invalid by +// the deletion. +func (r *ProjectsUptimeCheckConfigsService) Delete(name string) *ProjectsUptimeCheckConfigsDeleteCall { + c := &ProjectsUptimeCheckConfigsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsUptimeCheckConfigsDeleteCall) Fields(s ...googleapi.Field) *ProjectsUptimeCheckConfigsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsUptimeCheckConfigsDeleteCall) Context(ctx context.Context) *ProjectsUptimeCheckConfigsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsUptimeCheckConfigsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsUptimeCheckConfigsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("DELETE", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.projects.uptimeCheckConfigs.delete" call. +// Exactly one of *Empty or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Empty.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsUptimeCheckConfigsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Empty{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes an uptime check configuration. Note that this method will fail if the uptime check configuration is referenced by an alert policy or other dependent configs that would be rendered invalid by the deletion.", + // "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + // "httpMethod": "DELETE", + // "id": "monitoring.projects.uptimeCheckConfigs.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The uptime check configuration to delete. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + // "location": "path", + // "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v3/{+name}", + // "response": { + // "$ref": "Empty" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring" + // ] + // } + +} + +// method id "monitoring.projects.uptimeCheckConfigs.get": + +type ProjectsUptimeCheckConfigsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a single uptime check configuration. +func (r *ProjectsUptimeCheckConfigsService) Get(name string) *ProjectsUptimeCheckConfigsGetCall { + c := &ProjectsUptimeCheckConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsUptimeCheckConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsUptimeCheckConfigsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsUptimeCheckConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsUptimeCheckConfigsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsUptimeCheckConfigsGetCall) Context(ctx context.Context) *ProjectsUptimeCheckConfigsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsUptimeCheckConfigsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsUptimeCheckConfigsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.projects.uptimeCheckConfigs.get" call. +// Exactly one of *UptimeCheckConfig or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *UptimeCheckConfig.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsUptimeCheckConfigsGetCall) Do(opts ...googleapi.CallOption) (*UptimeCheckConfig, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &UptimeCheckConfig{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a single uptime check configuration.", + // "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + // "httpMethod": "GET", + // "id": "monitoring.projects.uptimeCheckConfigs.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "The uptime check configuration to retrieve. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + // "location": "path", + // "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v3/{+name}", + // "response": { + // "$ref": "UptimeCheckConfig" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring", + // "https://www.googleapis.com/auth/monitoring.read" + // ] + // } + +} + +// method id "monitoring.projects.uptimeCheckConfigs.list": + +type ProjectsUptimeCheckConfigsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the existing valid uptime check configurations for the +// project, leaving out any invalid configurations. +func (r *ProjectsUptimeCheckConfigsService) List(parent string) *ProjectsUptimeCheckConfigsListCall { + c := &ProjectsUptimeCheckConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": 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. +func (c *ProjectsUptimeCheckConfigsListCall) PageSize(pageSize int64) *ProjectsUptimeCheckConfigsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": If this field is +// not empty then it must contain the nextPageToken value returned by a +// previous call to this method. Using this field causes the method to +// return more results from the previous method call. +func (c *ProjectsUptimeCheckConfigsListCall) PageToken(pageToken string) *ProjectsUptimeCheckConfigsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsUptimeCheckConfigsListCall) Fields(s ...googleapi.Field) *ProjectsUptimeCheckConfigsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsUptimeCheckConfigsListCall) IfNoneMatch(entityTag string) *ProjectsUptimeCheckConfigsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsUptimeCheckConfigsListCall) Context(ctx context.Context) *ProjectsUptimeCheckConfigsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsUptimeCheckConfigsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsUptimeCheckConfigsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/uptimeCheckConfigs") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.projects.uptimeCheckConfigs.list" call. +// Exactly one of *ListUptimeCheckConfigsResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *ListUptimeCheckConfigsResponse.ServerResponse.Header or (if a +// response was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsUptimeCheckConfigsListCall) Do(opts ...googleapi.CallOption) (*ListUptimeCheckConfigsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListUptimeCheckConfigsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists the existing valid uptime check configurations for the project, leaving out any invalid configurations.", + // "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs", + // "httpMethod": "GET", + // "id": "monitoring.projects.uptimeCheckConfigs.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "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 \u003c=0, the server will decide the number of results to be returned.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "The project whose uptime check configurations are listed. The format isprojects/[PROJECT_ID].", + // "location": "path", + // "pattern": "^projects/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v3/{+parent}/uptimeCheckConfigs", + // "response": { + // "$ref": "ListUptimeCheckConfigsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring", + // "https://www.googleapis.com/auth/monitoring.read" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsUptimeCheckConfigsListCall) Pages(ctx context.Context, f func(*ListUptimeCheckConfigsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "monitoring.projects.uptimeCheckConfigs.patch": + +type ProjectsUptimeCheckConfigsPatchCall struct { + s *Service + name string + uptimecheckconfig *UptimeCheckConfig + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates an uptime check configuration. You can either replace +// the entire configuration with a new one or replace only certain +// fields in the current configuration by specifying the fields to be +// updated via "updateMask". Returns the updated configuration. +func (r *ProjectsUptimeCheckConfigsService) Patch(name string, uptimecheckconfig *UptimeCheckConfig) *ProjectsUptimeCheckConfigsPatchCall { + c := &ProjectsUptimeCheckConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.uptimecheckconfig = uptimecheckconfig + return c +} + +// Name1 sets the optional parameter "name1": The uptime check +// configuration to update. The format +// isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]. +func (c *ProjectsUptimeCheckConfigsPatchCall) Name1(name1 string) *ProjectsUptimeCheckConfigsPatchCall { + c.urlParams_.Set("name1", name1) + return c +} + +// UpdateMask sets the optional parameter "updateMask": If present, only +// the listed fields in the current uptime check configuration are +// updated with values from the new configuration. If this field is +// empty, then the current configuration is completely replaced with the +// new configuration. +func (c *ProjectsUptimeCheckConfigsPatchCall) UpdateMask(updateMask string) *ProjectsUptimeCheckConfigsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsUptimeCheckConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsUptimeCheckConfigsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsUptimeCheckConfigsPatchCall) Context(ctx context.Context) *ProjectsUptimeCheckConfigsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsUptimeCheckConfigsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsUptimeCheckConfigsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.uptimecheckconfig) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("PATCH", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.projects.uptimeCheckConfigs.patch" call. +// Exactly one of *UptimeCheckConfig or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *UptimeCheckConfig.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsUptimeCheckConfigsPatchCall) Do(opts ...googleapi.CallOption) (*UptimeCheckConfig, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &UptimeCheckConfig{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates an uptime check configuration. You can either replace the entire configuration with a new one or replace only certain fields in the current configuration by specifying the fields to be updated via \"updateMask\". Returns the updated configuration.", + // "flatPath": "v3/projects/{projectsId}/uptimeCheckConfigs/{uptimeCheckConfigsId}", + // "httpMethod": "PATCH", + // "id": "monitoring.projects.uptimeCheckConfigs.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "A unique resource name for this UptimeCheckConfig. The format is:projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].This field should be omitted when creating the uptime check configuration; on create, the resource name is assigned by the server and included in the response.", + // "location": "path", + // "pattern": "^projects/[^/]+/uptimeCheckConfigs/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "name1": { + // "description": "The uptime check configuration to update. The format isprojects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID].", + // "location": "query", + // "type": "string" + // }, + // "updateMask": { + // "description": "Optional. If present, only the listed fields in the current uptime check configuration are updated with values from the new configuration. If this field is empty, then the current configuration is completely replaced with the new configuration.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v3/{+name}", + // "request": { + // "$ref": "UptimeCheckConfig" + // }, + // "response": { + // "$ref": "UptimeCheckConfig" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring" + // ] + // } + +} + +// method id "monitoring.uptimeCheckIps.list": + +type UptimeCheckIpsListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns the list of IPs that checkers run from +func (r *UptimeCheckIpsService) List() *UptimeCheckIpsListCall { + c := &UptimeCheckIpsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// PageSize sets the optional parameter "pageSize": 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. NOTE: this field is not yet implemented +func (c *UptimeCheckIpsListCall) PageSize(pageSize int64) *UptimeCheckIpsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": If this field is +// not empty then it must contain the nextPageToken value returned by a +// previous call to this method. Using this field causes the method to +// return more results from the previous method call. NOTE: this field +// is not yet implemented +func (c *UptimeCheckIpsListCall) PageToken(pageToken string) *UptimeCheckIpsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *UptimeCheckIpsListCall) Fields(s ...googleapi.Field) *UptimeCheckIpsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *UptimeCheckIpsListCall) IfNoneMatch(entityTag string) *UptimeCheckIpsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *UptimeCheckIpsListCall) Context(ctx context.Context) *UptimeCheckIpsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *UptimeCheckIpsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *UptimeCheckIpsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/uptimeCheckIps") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("GET", urls, body) + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "monitoring.uptimeCheckIps.list" call. +// Exactly one of *ListUptimeCheckIpsResponse or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *ListUptimeCheckIpsResponse.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *UptimeCheckIpsListCall) Do(opts ...googleapi.CallOption) (*ListUptimeCheckIpsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &ListUptimeCheckIpsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the list of IPs that checkers run from", + // "flatPath": "v3/uptimeCheckIps", + // "httpMethod": "GET", + // "id": "monitoring.uptimeCheckIps.list", + // "parameterOrder": [], + // "parameters": { + // "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 \u003c=0, the server will decide the number of results to be returned. NOTE: this field is not yet implemented", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call. NOTE: this field is not yet implemented", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v3/uptimeCheckIps", + // "response": { + // "$ref": "ListUptimeCheckIpsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/monitoring", + // "https://www.googleapis.com/auth/monitoring.read" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *UptimeCheckIpsListCall) Pages(ctx context.Context, f func(*ListUptimeCheckIpsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} diff --git a/vendor/google.golang.org/api/oslogin/v1alpha/oslogin-api.json b/vendor/google.golang.org/api/oslogin/v1alpha/oslogin-api.json index c11614572..8dbd399a4 100644 --- a/vendor/google.golang.org/api/oslogin/v1alpha/oslogin-api.json +++ b/vendor/google.golang.org/api/oslogin/v1alpha/oslogin-api.json @@ -1,101 +1,15 @@ { + "fullyEncodeReservedExpansion": true, + "title": "Google Cloud OS Login API", + "ownerName": "Google", "resources": { "users": { - "resources": { - "sshPublicKeys": { - "methods": { - "delete": { - "id": "oslogin.users.sshPublicKeys.delete", - "path": "v1alpha/{+name}", - "description": "Deletes an SSH public key.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "name": { - "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", - "location": "path", - "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}" - }, - "patch": { - "response": { - "$ref": "SshPublicKey" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "parameters": { - "name": { - "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", - "type": "string", - "required": true, - "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", - "location": "path" - }, - "updateMask": { - "format": "google-fieldmask", - "description": "Mask to control which fields get updated. Updates all if not present.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", - "id": "oslogin.users.sshPublicKeys.patch", - "path": "v1alpha/{+name}", - "description": "Updates an SSH public key and returns the profile information. This method\nsupports patch semantics.", - "request": { - "$ref": "SshPublicKey" - } - }, - "get": { - "id": "oslogin.users.sshPublicKeys.get", - "path": "v1alpha/{+name}", - "description": "Retrieves an SSH public key.", - "response": { - "$ref": "SshPublicKey" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "parameters": { - "name": { - "description": "The fingerprint of the public key to retrieve. Public keys are identified\nby their SHA-256 fingerprint. The fingerprint of the public key is in\nformat `users/{user}/sshPublicKeys/{fingerprint}`.", - "type": "string", - "required": true, - "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}" - } - } - } - }, "methods": { "importSshPublicKey": { + "request": { + "$ref": "SshPublicKey" + }, + "description": "Adds an SSH public key and returns the profile information. Default POSIX\naccount information is set when no username and UID exist as part of the\nlogin profile.", "httpMethod": "POST", "parameterOrder": [ "parent" @@ -118,13 +32,10 @@ }, "flatPath": "v1alpha/users/{usersId}:importSshPublicKey", "path": "v1alpha/{+parent}:importSshPublicKey", - "id": "oslogin.users.importSshPublicKey", - "request": { - "$ref": "SshPublicKey" - }, - "description": "Adds an SSH public key and returns the profile information. Default POSIX\naccount information is set when no username and UID exist as part of the\nlogin profile." + "id": "oslogin.users.importSshPublicKey" }, "getLoginProfile": { + "flatPath": "v1alpha/users/{usersId}/loginProfile", "id": "oslogin.users.getLoginProfile", "path": "v1alpha/{+name}/loginProfile", "description": "Retrieves the profile information used for logging in to a virtual machine\non Google Compute Engine.", @@ -135,12 +46,6 @@ "name" ], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], "parameters": { "name": { "description": "The unique ID for the user in format `users/{user}`.", @@ -150,27 +55,161 @@ "location": "path" } }, - "flatPath": "v1alpha/users/{usersId}/loginProfile" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + }, + "resources": { + "sshPublicKeys": { + "methods": { + "patch": { + "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", + "id": "oslogin.users.sshPublicKeys.patch", + "path": "v1alpha/{+name}", + "description": "Updates an SSH public key and returns the profile information. This method\nsupports patch semantics.", + "request": { + "$ref": "SshPublicKey" + }, + "response": { + "$ref": "SshPublicKey" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PATCH", + "parameters": { + "updateMask": { + "format": "google-fieldmask", + "description": "Mask to control which fields get updated. Updates all if not present.", + "type": "string", + "location": "query" + }, + "name": { + "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Retrieves an SSH public key.", + "response": { + "$ref": "SshPublicKey" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The fingerprint of the public key to retrieve. Public keys are identified\nby their SHA-256 fingerprint. The fingerprint of the public key is in\nformat `users/{user}/sshPublicKeys/{fingerprint}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", + "id": "oslogin.users.sshPublicKeys.get", + "path": "v1alpha/{+name}" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "name": { + "location": "path", + "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$" + } + }, + "flatPath": "v1alpha/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", + "id": "oslogin.users.sshPublicKeys.delete", + "path": "v1alpha/{+name}", + "description": "Deletes an SSH public key." + } + } } } } }, "parameters": { - "prettyPrint": { - "default": "true", - "type": "boolean", + "key": { "location": "query", - "description": "Returns response with indentations and line breaks." - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "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.", "type": "string" }, - "fields": { + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { "type": "string", "location": "query", - "description": "Selector specifying which fields to include in a partial response." + "description": "OAuth bearer token." + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" }, "callback": { "location": "query", @@ -178,8 +217,6 @@ "type": "string" }, "$.xgafv": { - "description": "V1 error format.", - "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -188,9 +225,16 @@ "enum": [ "1", "2" - ] + ], + "description": "V1 error format.", + "type": "string" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -199,62 +243,102 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "type": "string", - "location": "query", - "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." - }, - "quotaUser": { - "type": "string", - "location": "query", - "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." - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "default": "json" } }, "version": "v1alpha", "baseUrl": "https://oslogin.googleapis.com/", - "servicePath": "", "kind": "discovery#restDescription", "description": "Manages OS login configuration for Directory API users.", + "servicePath": "", "basePath": "", - "id": "oslogin:v1alpha", + "revision": "20171014", "documentationLink": "https://cloud.google.com/compute/docs/oslogin/rest/", - "revision": "20170926", + "id": "oslogin:v1alpha", "discoveryVersion": "v1", "version_module": true, "schemas": { + "ImportSshPublicKeyResponse": { + "description": "A response message for importing an SSH public key.", + "type": "object", + "properties": { + "loginProfile": { + "description": "The login profile information for the user.", + "$ref": "LoginProfile" + } + }, + "id": "ImportSshPublicKeyResponse" + }, + "PosixAccount": { + "properties": { + "shell": { + "type": "string", + "description": "The path to the logic shell for this account." + }, + "homeDirectory": { + "description": "The path to the home directory for this account.", + "type": "string" + }, + "gecos": { + "description": "The GECOS (user information) entry for this account.", + "type": "string" + }, + "systemId": { + "type": "string", + "description": "System identifier for which account the username or uid applies to.\nBy default, the empty value is used." + }, + "primary": { + "description": "Only one POSIX account can be marked as primary.", + "type": "boolean" + }, + "gid": { + "format": "int64", + "description": "The default group ID.", + "type": "string" + }, + "uid": { + "format": "int64", + "description": "The user ID.", + "type": "string" + }, + "username": { + "type": "string", + "description": "The username of the POSIX account." + } + }, + "id": "PosixAccount", + "description": "The POSIX account information associated with a Directory API User.", + "type": "object" + }, + "LoginProfile": { + "id": "LoginProfile", + "description": "The Directory API profile information used for logging in to a virtual\nmachine on Google Compute Engine.", + "type": "object", + "properties": { + "posixAccounts": { + "description": "The list of POSIX accounts associated with the Directory API user.", + "items": { + "$ref": "PosixAccount" + }, + "type": "array" + }, + "name": { + "type": "string", + "description": "A unique user ID for identifying the user." + }, + "suspended": { + "description": "Indicates if the user is suspended.", + "type": "boolean" + }, + "sshPublicKeys": { + "description": "A map from SSH public key fingerprint to the associated key object.", + "type": "object", + "additionalProperties": { + "$ref": "SshPublicKey" + } + } + } + }, "SshPublicKey": { "description": "The SSH public key information associated with a Directory API User.", "type": "object", @@ -280,93 +364,12 @@ "type": "object", "properties": {}, "id": "Empty" - }, - "ImportSshPublicKeyResponse": { - "type": "object", - "properties": { - "loginProfile": { - "$ref": "LoginProfile", - "description": "The login profile information for the user." - } - }, - "id": "ImportSshPublicKeyResponse", - "description": "A response message for importing an SSH public key." - }, - "PosixAccount": { - "description": "The POSIX account information associated with a Directory API User.", - "type": "object", - "properties": { - "primary": { - "description": "Only one POSIX account can be marked as primary.", - "type": "boolean" - }, - "gid": { - "type": "string", - "format": "int64", - "description": "The default group ID." - }, - "uid": { - "type": "string", - "format": "int64", - "description": "The user ID." - }, - "username": { - "description": "The username of the POSIX account.", - "type": "string" - }, - "shell": { - "description": "The path to the logic shell for this account.", - "type": "string" - }, - "homeDirectory": { - "description": "The path to the home directory for this account.", - "type": "string" - }, - "gecos": { - "description": "The GECOS (user information) entry for this account.", - "type": "string" - }, - "systemId": { - "description": "System identifier for which account the username or uid applies to.\nBy default, the empty value is used.", - "type": "string" - } - }, - "id": "PosixAccount" - }, - "LoginProfile": { - "properties": { - "sshPublicKeys": { - "additionalProperties": { - "$ref": "SshPublicKey" - }, - "description": "A map from SSH public key fingerprint to the associated key object.", - "type": "object" - }, - "posixAccounts": { - "description": "The list of POSIX accounts associated with the Directory API user.", - "items": { - "$ref": "PosixAccount" - }, - "type": "array" - }, - "name": { - "description": "A unique user ID for identifying the user.", - "type": "string" - }, - "suspended": { - "description": "Indicates if the user is suspended.", - "type": "boolean" - } - }, - "id": "LoginProfile", - "description": "The Directory API profile information used for logging in to a virtual\nmachine on Google Compute Engine.", - "type": "object" } }, "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "canonicalName": "Cloud OS Login", "auth": { @@ -390,8 +393,5 @@ "rootUrl": "https://oslogin.googleapis.com/", "ownerDomain": "google.com", "name": "oslogin", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Cloud OS Login API", - "ownerName": "Google" + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/oslogin/v1beta/oslogin-api.json b/vendor/google.golang.org/api/oslogin/v1beta/oslogin-api.json index ab43649dd..9c84e64ae 100644 --- a/vendor/google.golang.org/api/oslogin/v1beta/oslogin-api.json +++ b/vendor/google.golang.org/api/oslogin/v1beta/oslogin-api.json @@ -1,8 +1,134 @@ { + "servicePath": "", + "description": "Manages OS login configuration for Directory API users.", + "kind": "discovery#restDescription", + "basePath": "", + "id": "oslogin:v1beta", + "documentationLink": "https://cloud.google.com/compute/docs/oslogin/rest/", + "revision": "20171014", + "discoveryVersion": "v1", + "version_module": true, + "schemas": { + "PosixAccount": { + "description": "The POSIX account information associated with a Directory API User.", + "type": "object", + "properties": { + "homeDirectory": { + "description": "The path to the home directory for this account.", + "type": "string" + }, + "gecos": { + "description": "The GECOS (user information) entry for this account.", + "type": "string" + }, + "systemId": { + "description": "System identifier for which account the username or uid applies to.\nBy default, the empty value is used.", + "type": "string" + }, + "primary": { + "description": "Only one POSIX account can be marked as primary.", + "type": "boolean" + }, + "gid": { + "type": "string", + "format": "int64", + "description": "The default group ID." + }, + "uid": { + "format": "int64", + "description": "The user ID.", + "type": "string" + }, + "username": { + "description": "The username of the POSIX account.", + "type": "string" + }, + "shell": { + "description": "The path to the logic shell for this account.", + "type": "string" + } + }, + "id": "PosixAccount" + }, + "LoginProfile": { + "id": "LoginProfile", + "description": "The user profile information used for logging in to a virtual machine on\nGoogle Compute Engine.", + "type": "object", + "properties": { + "posixAccounts": { + "description": "The list of POSIX accounts associated with the user.", + "items": { + "$ref": "PosixAccount" + }, + "type": "array" + }, + "name": { + "description": "The primary email address that uniquely identifies the user.", + "type": "string" + }, + "suspended": { + "description": "Indicates if the user is suspended. A suspended user cannot log in but\ntheir profile information is retained.", + "type": "boolean" + }, + "sshPublicKeys": { + "additionalProperties": { + "$ref": "SshPublicKey" + }, + "description": "A map from SSH public key fingerprint to the associated key object.", + "type": "object" + } + } + }, + "SshPublicKey": { + "description": "The SSH public key information associated with a Directory API User.", + "type": "object", + "properties": { + "expirationTimeUsec": { + "format": "int64", + "description": "An expiration time in microseconds since epoch.", + "type": "string" + }, + "fingerprint": { + "type": "string", + "description": "The SHA-256 fingerprint of the SSH public key.\nOutput only." + }, + "key": { + "description": "Public key text in SSH format, defined by\n\u003ca href=\"https://www.ietf.org/rfc/rfc4253.txt\" target=\"_blank\"\u003eRFC4253\u003c/a\u003e\nsection 6.6.", + "type": "string" + } + }, + "id": "SshPublicKey" + }, + "Empty": { + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" + }, + "ImportSshPublicKeyResponse": { + "description": "A response message for importing an SSH public key.", + "type": "object", + "properties": { + "loginProfile": { + "$ref": "LoginProfile", + "description": "The login profile information for the user." + } + }, + "id": "ImportSshPublicKeyResponse" + } + }, + "protocol": "rest", + "icons": { + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" + }, "canonicalName": "Cloud OS Login", "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, "https://www.googleapis.com/auth/compute": { "description": "View and manage your Google Compute Engine resources" }, @@ -11,9 +137,6 @@ }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" - }, - "https://www.googleapis.com/auth/compute.readonly": { - "description": "View your Google Compute Engine resources" } } } @@ -28,37 +151,7 @@ "resources": { "users": { "methods": { - "getLoginProfile": { - "response": { - "$ref": "LoginProfile" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The unique ID for the user in format `users/{user}`.", - "type": "string", - "required": true, - "pattern": "^users/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "flatPath": "v1beta/users/{usersId}/loginProfile", - "id": "oslogin.users.getLoginProfile", - "path": "v1beta/{+name}/loginProfile", - "description": "Retrieves the profile information used for logging in to a virtual machine\non Google Compute Engine." - }, "importSshPublicKey": { - "id": "oslogin.users.importSshPublicKey", - "path": "v1beta/{+parent}:importSshPublicKey", "description": "Adds an SSH public key and returns the profile information. Default POSIX\naccount information is set when no username and UID exist as part of the\nlogin profile.", "request": { "$ref": "SshPublicKey" @@ -83,88 +176,89 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ], - "flatPath": "v1beta/users/{usersId}:importSshPublicKey" + "flatPath": "v1beta/users/{usersId}:importSshPublicKey", + "id": "oslogin.users.importSshPublicKey", + "path": "v1beta/{+parent}:importSshPublicKey" + }, + "getLoginProfile": { + "parameters": { + "name": { + "description": "The unique ID for the user in format `users/{user}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "flatPath": "v1beta/users/{usersId}/loginProfile", + "id": "oslogin.users.getLoginProfile", + "path": "v1beta/{+name}/loginProfile", + "description": "Retrieves the profile information used for logging in to a virtual machine\non Google Compute Engine.", + "response": { + "$ref": "LoginProfile" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET" } }, "resources": { "sshPublicKeys": { "methods": { "delete": { - "parameters": { - "name": { - "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", - "type": "string", - "required": true, - "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", - "location": "path" - } + "description": "Deletes an SSH public key.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ], + "parameters": { + "name": { + "location": "path", + "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$" + } + }, "flatPath": "v1beta/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", "path": "v1beta/{+name}", - "id": "oslogin.users.sshPublicKeys.delete", - "description": "Deletes an SSH public key.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ] + "id": "oslogin.users.sshPublicKeys.delete" }, "patch": { - "description": "Updates an SSH public key and returns the profile information. This method\nsupports patch semantics.", - "request": { - "$ref": "SshPublicKey" - }, - "response": { - "$ref": "SshPublicKey" - }, + "httpMethod": "PATCH", "parameterOrder": [ "name" ], - "httpMethod": "PATCH", + "response": { + "$ref": "SshPublicKey" + }, "parameters": { - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Mask to control which fields get updated. Updates all if not present.", - "type": "string" - }, "name": { "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", "location": "path", "description": "The fingerprint of the public key to update. Public keys are identified by\ntheir SHA-256 fingerprint. The fingerprint of the public key is in format\n`users/{user}/sshPublicKeys/{fingerprint}`.", "type": "string", "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "flatPath": "v1beta/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", - "id": "oslogin.users.sshPublicKeys.patch", - "path": "v1beta/{+name}" - }, - "get": { - "httpMethod": "GET", - "response": { - "$ref": "SshPublicKey" - }, - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The fingerprint of the public key to retrieve. Public keys are identified\nby their SHA-256 fingerprint. The fingerprint of the public key is in\nformat `users/{user}/sshPublicKeys/{fingerprint}`.", + }, + "updateMask": { + "format": "google-fieldmask", + "description": "Mask to control which fields get updated. Updates all if not present.", "type": "string", - "required": true, - "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$", - "location": "path" + "location": "query" } }, "scopes": [ @@ -173,7 +267,36 @@ ], "flatPath": "v1beta/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", "path": "v1beta/{+name}", + "id": "oslogin.users.sshPublicKeys.patch", + "description": "Updates an SSH public key and returns the profile information. This method\nsupports patch semantics.", + "request": { + "$ref": "SshPublicKey" + } + }, + "get": { + "response": { + "$ref": "SshPublicKey" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "parameters": { + "name": { + "location": "path", + "description": "The fingerprint of the public key to retrieve. Public keys are identified\nby their SHA-256 fingerprint. The fingerprint of the public key is in\nformat `users/{user}/sshPublicKeys/{fingerprint}`.", + "type": "string", + "required": true, + "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$" + } + }, + "flatPath": "v1beta/users/{usersId}/sshPublicKeys/{sshPublicKeysId}", "id": "oslogin.users.sshPublicKeys.get", + "path": "v1beta/{+name}", "description": "Retrieves an SSH public key." } } @@ -182,7 +305,29 @@ } }, "parameters": { + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "default": "true", + "type": "boolean", + "location": "query", + "description": "Returns response with indentations and line breaks." + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, "$.xgafv": { + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -192,15 +337,20 @@ "1", "2" ], - "description": "V1 error format.", - "type": "string" + "description": "V1 error format." }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -208,13 +358,7 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string" + "default": "json" }, "access_token": { "location": "query", @@ -227,9 +371,9 @@ "location": "query" }, "quotaUser": { + "location": "query", "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.", - "type": "string", - "location": "query" + "type": "string" }, "pp": { "description": "Pretty-print response.", @@ -238,160 +382,16 @@ "location": "query" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" }, "oauth_token": { "location": "query", "description": "OAuth 2.0 token for the current user.", "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" } }, "version": "v1beta", - "baseUrl": "https://oslogin.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Manages OS login configuration for Directory API users.", - "servicePath": "", - "basePath": "", - "id": "oslogin:v1beta", - "documentationLink": "https://cloud.google.com/compute/docs/oslogin/rest/", - "revision": "20170926", - "discoveryVersion": "v1", - "version_module": true, - "schemas": { - "PosixAccount": { - "description": "The POSIX account information associated with a Directory API User.", - "type": "object", - "properties": { - "primary": { - "description": "Only one POSIX account can be marked as primary.", - "type": "boolean" - }, - "gid": { - "format": "int64", - "description": "The default group ID.", - "type": "string" - }, - "uid": { - "format": "int64", - "description": "The user ID.", - "type": "string" - }, - "username": { - "description": "The username of the POSIX account.", - "type": "string" - }, - "shell": { - "description": "The path to the logic shell for this account.", - "type": "string" - }, - "homeDirectory": { - "description": "The path to the home directory for this account.", - "type": "string" - }, - "systemId": { - "description": "System identifier for which account the username or uid applies to.\nBy default, the empty value is used.", - "type": "string" - }, - "gecos": { - "description": "The GECOS (user information) entry for this account.", - "type": "string" - } - }, - "id": "PosixAccount" - }, - "LoginProfile": { - "description": "The user profile information used for logging in to a virtual machine on\nGoogle Compute Engine.", - "type": "object", - "properties": { - "sshPublicKeys": { - "additionalProperties": { - "$ref": "SshPublicKey" - }, - "description": "A map from SSH public key fingerprint to the associated key object.", - "type": "object" - }, - "posixAccounts": { - "description": "The list of POSIX accounts associated with the user.", - "items": { - "$ref": "PosixAccount" - }, - "type": "array" - }, - "name": { - "description": "The primary email address that uniquely identifies the user.", - "type": "string" - }, - "suspended": { - "description": "Indicates if the user is suspended. A suspended user cannot log in but\ntheir profile information is retained.", - "type": "boolean" - } - }, - "id": "LoginProfile" - }, - "SshPublicKey": { - "id": "SshPublicKey", - "description": "The SSH public key information associated with a Directory API User.", - "type": "object", - "properties": { - "expirationTimeUsec": { - "format": "int64", - "description": "An expiration time in microseconds since epoch.", - "type": "string" - }, - "fingerprint": { - "description": "The SHA-256 fingerprint of the SSH public key.\nOutput only.", - "type": "string" - }, - "key": { - "description": "Public key text in SSH format, defined by\n\u003ca href=\"https://www.ietf.org/rfc/rfc4253.txt\" target=\"_blank\"\u003eRFC4253\u003c/a\u003e\nsection 6.6.", - "type": "string" - } - } - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "ImportSshPublicKeyResponse": { - "id": "ImportSshPublicKeyResponse", - "description": "A response message for importing an SSH public key.", - "type": "object", - "properties": { - "loginProfile": { - "$ref": "LoginProfile", - "description": "The login profile information for the user." - } - } - } - }, - "protocol": "rest", - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - } + "baseUrl": "https://oslogin.googleapis.com/" } diff --git a/vendor/google.golang.org/api/partners/v2/partners-api.json b/vendor/google.golang.org/api/partners/v2/partners-api.json index c76c22441..be3bcc020 100644 --- a/vendor/google.golang.org/api/partners/v2/partners-api.json +++ b/vendor/google.golang.org/api/partners/v2/partners-api.json @@ -1,50 +1,61 @@ { + "version": "v2", + "baseUrl": "https://partners.googleapis.com/", + "canonicalName": "Partners", + "description": "Searches certified companies and creates contact leads with them, and also audits the usage of clients.", + "kind": "discovery#restDescription", + "servicePath": "", + "rootUrl": "https://partners.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "partners", + "batchPath": "batch", + "documentationLink": "https://developers.google.com/partners/", + "id": "partners:v2", + "revision": "20171011", + "title": "Google Partners API", "ownerName": "Google", "discoveryVersion": "v1", "version_module": true, "resources": { - "clientMessages": { + "users": { "methods": { - "log": { - "request": { - "$ref": "LogMessageRequest" - }, - "description": "Logs a generic message from the client, such as\n`Failed to render component`, `Profile page is running slow`,\n`More than 500 users have accessed this result.`, etc.", + "deleteCompanyRelation": { + "path": "v2/users/{userId}/companyRelation", + "id": "partners.users.deleteCompanyRelation", + "description": "Deletes a user's company relation. Unaffiliaites the user from a company.", + "httpMethod": "DELETE", "response": { - "$ref": "LogMessageResponse" + "$ref": "Empty" }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "flatPath": "v2/clientMessages:log", - "id": "partners.clientMessages.log", - "path": "v2/clientMessages:log" - } - } - }, - "exams": { - "methods": { - "getToken": { - "path": "v2/exams/{examType}/token", - "id": "partners.exams.getToken", - "description": "Gets an Exam Token for a Partner's user to take an exam in the Exams System", - "httpMethod": "GET", "parameterOrder": [ - "examType" + "userId" ], - "response": { - "$ref": "ExamToken" - }, "parameters": { + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, "requestMetadata.locale": { "description": "Locale to use for the current request.", "type": "string", "location": "query" }, "requestMetadata.userOverrides.ipAddress": { + "location": "query", "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" + "type": "string" }, "requestMetadata.experimentIds": { "repeated": true, @@ -57,489 +68,172 @@ "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", "type": "string" }, - "examType": { + "userId": { "location": "path", + "description": "The ID of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean\nthe currently authenticated user.", + "type": "string", + "required": true + } + }, + "flatPath": "v2/users/{userId}/companyRelation" + }, + "createCompanyRelation": { + "response": { + "$ref": "CompanyRelation" + }, + "parameterOrder": [ + "userId" + ], + "httpMethod": "PUT", + "parameters": { + "requestMetadata.experimentIds": { + "repeated": true, + "location": "query", + "description": "Experiment IDs the current request belongs to.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "userId": { + "description": "The ID of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean\nthe currently authenticated user.", + "type": "string", + "required": true, + "location": "path" + }, + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.locale": { + "location": "query", + "description": "Locale to use for the current request.", + "type": "string" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + } + }, + "flatPath": "v2/users/{userId}/companyRelation", + "id": "partners.users.createCompanyRelation", + "path": "v2/users/{userId}/companyRelation", + "request": { + "$ref": "CompanyRelation" + }, + "description": "Creates a user's company relation. Affiliates the user to a company." + }, + "get": { + "description": "Gets a user.", + "response": { + "$ref": "User" + }, + "parameterOrder": [ + "userId" + ], + "httpMethod": "GET", + "parameters": { + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "userView": { "enum": [ - "CERTIFICATION_EXAM_TYPE_UNSPECIFIED", - "CET_ADWORDS_FUNDAMENTALS", - "CET_ADWORDS_ADVANCED_SEARCH", - "CET_ADWORDS_ADVANCED_DISPLAY", - "CET_VIDEO_ADS", - "CET_DOUBLECLICK", - "CET_ANALYTICS", - "CET_SHOPPING", - "CET_MOBILE", - "CET_DIGITAL_SALES", - "CET_MOBILE_SITES" + "BASIC", + "PROFILE", + "PUBLIC_PROFILE" ], - "description": "The exam type we are requesting a token for.", + "description": "Specifies what parts of the user information to return.", + "type": "string", + "location": "query" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.locale": { + "location": "query", + "description": "Locale to use for the current request.", + "type": "string" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "userId": { + "location": "path", + "description": "Identifier of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean the currently\nauthenticated user.", "type": "string", "required": true }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/exams/{examType}/token" - } - } - }, - "leads": { - "methods": { - "list": { - "response": { - "$ref": "ListLeadsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "requestMetadata.userOverrides.userId": { - "location": "query", - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListLeadsResponse.next_page_token`\nreturned from the previous call to\nListLeads.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested page size. Server may return fewer leads than requested.\nIf unspecified, server picks an appropriate default.", - "type": "integer" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "location": "query", - "description": "Locale to use for the current request.", - "type": "string" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - }, - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "orderBy": { - "location": "query", - "description": "How to order Leads. Currently, only `create_time`\nand `create_time desc` are supported", - "type": "string" - } - }, - "flatPath": "v2/leads", - "id": "partners.leads.list", - "path": "v2/leads", - "description": "Lists advertiser leads for a user's associated company.\nShould only be called within the context of an authorized logged in user." - } - } - }, - "offers": { - "methods": { - "list": { - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListOffersResponse" - }, - "parameters": { - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "location": "query", - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - }, - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, "requestMetadata.trafficSource.trafficSubId": { "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", "type": "string", "location": "query" } }, - "flatPath": "v2/offers", - "path": "v2/offers", - "id": "partners.offers.list", - "description": "Lists the Offers available for the current user" - } - }, - "resources": { - "history": { - "methods": { - "list": { - "description": "Lists the Historical Offers for the current user (or user's entire company)", - "response": { - "$ref": "ListOffersHistoryResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "requestMetadata.locale": { - "location": "query", - "description": "Locale to use for the current request.", - "type": "string" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - }, - "entireCompany": { - "description": "if true, show history for the entire company. Requires user to be admin.", - "type": "boolean", - "location": "query" - }, - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "orderBy": { - "location": "query", - "description": "Comma-separated list of fields to order by, e.g.: \"foo,bar,baz\".\nUse \"foo desc\" to sort descending.\nList of valid field names is: name, offer_code, expiration_time, status,\n last_modified_time, sender_name, creation_time, country_code,\n offer_type.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "requestMetadata.userOverrides.userId": { - "location": "query", - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "Token to retrieve a specific page.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of rows to return per page.", - "type": "integer", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/offers/history", - "id": "partners.offers.history.list", - "path": "v2/offers/history" - } - } - } - } - }, - "userStates": { - "methods": { - "list": { - "id": "partners.userStates.list", - "path": "v2/userStates", - "description": "Lists states for current user.", - "response": { - "$ref": "ListUserStatesResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "location": "query", - "description": "Google Partners session ID.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/userStates" - } - } - }, - "analytics": { - "methods": { - "list": { - "description": "Lists analytics data for a user's associated company.\nShould only be called within the context of an authorized logged in user.", - "response": { - "$ref": "ListAnalyticsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "location": "query", - "description": "Google Partners session ID.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListAnalyticsResponse.next_page_token`\nreturned from the previous call to\nListAnalytics.\nWill be a date string in `YYYY-MM-DD` format representing the end date\nof the date range of results to return.\nIf unspecified or set to \"\", default value is the current date.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. Server may return fewer analytics than requested.\nIf unspecified or set to 0, default value is 30.\nSpecifies the number of days in the date range when querying analytics.\nThe `page_token` represents the end date of the date range\nand the start date is calculated using the `page_size` as the number\nof days BEFORE the end date.\nMust be a non-negative integer.", - "type": "integer", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - }, - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, - "requestMetadata.trafficSource.trafficSubId": { - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/analytics", - "id": "partners.analytics.list", - "path": "v2/analytics" - } - } - }, - "v2": { - "methods": { - "updateLeads": { - "response": { - "$ref": "Lead" - }, - "parameterOrder": [], - "httpMethod": "PATCH", - "parameters": { - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.userId": { - "location": "query", - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "location": "query", - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "requestMetadata.locale": { - "location": "query", - "description": "Locale to use for the current request.", - "type": "string" - }, - "requestMetadata.userOverrides.ipAddress": { - "location": "query", - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.\nRequired with at least 1 value in FieldMask's paths.\nOnly `state` and `adwords_customer_id` are currently supported.", - "type": "string" - }, - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - } - }, - "flatPath": "v2/leads", - "id": "partners.updateLeads", - "path": "v2/leads", - "request": { - "$ref": "Lead" - }, - "description": "Updates the specified lead." + "flatPath": "v2/users/{userId}", + "id": "partners.users.get", + "path": "v2/users/{userId}" }, - "updateCompanies": { - "response": { - "$ref": "Company" - }, - "parameterOrder": [], - "httpMethod": "PATCH", - "parameters": { - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "location": "query", - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - }, - "updateMask": { - "location": "query", - "format": "google-fieldmask", - "description": "Standard field mask for the set of fields to be updated.\nRequired with at least 1 value in FieldMask's paths.", - "type": "string" - }, - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/companies", - "id": "partners.updateCompanies", - "path": "v2/companies", + "updateProfile": { + "description": "Updates a user's profile. A user can only update their own profile and\nshould only be called within the context of a logged in user.", "request": { - "$ref": "Company" - }, - "description": "Update company.\nShould only be called within the context of an authorized logged in user." - }, - "getPartnersstatus": { - "response": { - "$ref": "GetPartnersStatusResponse" + "$ref": "UserProfile" }, + "httpMethod": "PATCH", "parameterOrder": [], - "httpMethod": "GET", + "response": { + "$ref": "UserProfile" + }, "parameters": { + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, "requestMetadata.locale": { + "location": "query", "description": "Locale to use for the current request.", - "type": "string", - "location": "query" + "type": "string" }, "requestMetadata.userOverrides.ipAddress": { "description": "IP address to use instead of the user's geo-located IP address.", @@ -553,72 +247,108 @@ "type": "string" }, "requestMetadata.trafficSource.trafficSubId": { + "location": "query", "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" + "type": "string" } }, - "flatPath": "v2/partnersstatus", - "id": "partners.getPartnersstatus", - "path": "v2/partnersstatus", - "description": "Gets Partners Status of the logged in user's agency.\nShould only be called if the logged in user is the admin of the agency." + "flatPath": "v2/users/profile", + "path": "v2/users/profile", + "id": "partners.users.updateProfile" } } }, "companies": { - "resources": { - "leads": { - "methods": { - "create": { - "response": { - "$ref": "CreateLeadResponse" - }, - "parameterOrder": [ - "companyId" - ], - "httpMethod": "POST", - "parameters": { - "companyId": { - "description": "The ID of the company to contact.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v2/companies/{companyId}/leads", - "id": "partners.companies.leads.create", - "path": "v2/companies/{companyId}/leads", - "request": { - "$ref": "CreateLeadRequest" - }, - "description": "Creates an advertiser lead for the given company ID." - } - } - } - }, "methods": { "list": { + "id": "partners.companies.list", + "path": "v2/companies", + "description": "Lists companies.", "response": { "$ref": "ListCompaniesResponse" }, "parameterOrder": [], "httpMethod": "GET", "parameters": { + "requestMetadata.trafficSource.trafficSubId": { + "location": "query", + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "minMonthlyBudget.nanos": { + "location": "query", + "format": "int32", + "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", + "type": "integer" + }, + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "companyName": { + "location": "query", + "description": "Company name to search for.", + "type": "string" + }, + "pageToken": { + "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListCompaniesResponse.next_page_token`\nreturned from the previous call to\nListCompanies.", + "type": "string", + "location": "query" + }, + "industries": { + "enum": [ + "INDUSTRY_UNSPECIFIED", + "I_AUTOMOTIVE", + "I_BUSINESS_TO_BUSINESS", + "I_CONSUMER_PACKAGED_GOODS", + "I_EDUCATION", + "I_FINANCE", + "I_HEALTHCARE", + "I_MEDIA_AND_ENTERTAINMENT", + "I_RETAIL", + "I_TECHNOLOGY", + "I_TRAVEL" + ], + "description": "List of industries the company can help with.", + "type": "string", + "repeated": true, + "location": "query" + }, + "websiteUrl": { + "location": "query", + "description": "Website URL that will help to find a better matched company.\n.", + "type": "string" + }, + "gpsMotivations": { + "repeated": true, + "location": "query", + "enum": [ + "GPS_MOTIVATION_UNSPECIFIED", + "GPSM_HELP_WITH_ADVERTISING", + "GPSM_HELP_WITH_WEBSITE", + "GPSM_NO_WEBSITE" + ], + "description": "List of reasons for using Google Partner Search to get companies.", + "type": "string" + }, + "languageCodes": { + "repeated": true, + "location": "query", + "description": "List of language codes that company can support. Only primary language\nsubtags are accepted as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. Server may return fewer companies than requested.\nIf unspecified, server picks an appropriate default.", + "type": "integer" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, "requestMetadata.experimentIds": { "repeated": true, "location": "query", @@ -650,47 +380,49 @@ "type": "string" }, "minMonthlyBudget.currencyCode": { + "location": "query", "description": "The 3-letter currency code defined in ISO 4217.", - "type": "string", - "location": "query" + "type": "string" }, "requestMetadata.userOverrides.userId": { + "location": "query", "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" + "type": "string" }, "view": { - "location": "query", "enum": [ "COMPANY_VIEW_UNSPECIFIED", "CV_GOOGLE_PARTNER_SEARCH" ], "description": "The view of the `Company` resource to be returned. This must not be\n`COMPANY_VIEW_UNSPECIFIED`.", - "type": "string" + "type": "string", + "location": "query" }, "address": { + "location": "query", "description": "The address to use when searching for companies.\nIf not given, the geo-located address of the request is used.", - "type": "string", - "location": "query" + "type": "string" }, "requestMetadata.locale": { + "location": "query", "description": "Locale to use for the current request.", - "type": "string", - "location": "query" + "type": "string" }, "minMonthlyBudget.units": { + "location": "query", "format": "int64", "description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", - "type": "string", - "location": "query" + "type": "string" }, "maxMonthlyBudget.nanos": { + "location": "query", "format": "int32", "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", - "type": "integer", - "location": "query" + "type": "integer" }, "services": { + "repeated": true, + "location": "query", "enum": [ "SERVICE_UNSPECIFIED", "S_ADVANCED_ADWORDS_SUPPORT", @@ -701,168 +433,32 @@ "S_MOBILE_WEBSITE_SERVICES" ], "description": "List of services that the returned agencies should provide. If this is\nnot empty, any returned agency must have at least one of these services,\nor one of the specializations in the \"specializations\" field.", - "type": "string", - "repeated": true, - "location": "query" + "type": "string" + }, + "maxMonthlyBudget.units": { + "location": "query", + "format": "int64", + "description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", + "type": "string" }, "requestMetadata.trafficSource.trafficSourceId": { "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", "type": "string", "location": "query" - }, - "maxMonthlyBudget.units": { - "format": "int64", - "description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSubId": { - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "minMonthlyBudget.nanos": { - "format": "int32", - "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", - "type": "integer", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "location": "query", - "description": "Google Partners session ID.", - "type": "string" - }, - "pageToken": { - "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListCompaniesResponse.next_page_token`\nreturned from the previous call to\nListCompanies.", - "type": "string", - "location": "query" - }, - "companyName": { - "description": "Company name to search for.", - "type": "string", - "location": "query" - }, - "industries": { - "repeated": true, - "location": "query", - "enum": [ - "INDUSTRY_UNSPECIFIED", - "I_AUTOMOTIVE", - "I_BUSINESS_TO_BUSINESS", - "I_CONSUMER_PACKAGED_GOODS", - "I_EDUCATION", - "I_FINANCE", - "I_HEALTHCARE", - "I_MEDIA_AND_ENTERTAINMENT", - "I_RETAIL", - "I_TECHNOLOGY", - "I_TRAVEL" - ], - "description": "List of industries the company can help with.", - "type": "string" - }, - "websiteUrl": { - "location": "query", - "description": "Website URL that will help to find a better matched company.\n.", - "type": "string" - }, - "gpsMotivations": { - "enum": [ - "GPS_MOTIVATION_UNSPECIFIED", - "GPSM_HELP_WITH_ADVERTISING", - "GPSM_HELP_WITH_WEBSITE", - "GPSM_NO_WEBSITE" - ], - "description": "List of reasons for using Google Partner Search to get companies.", - "type": "string", - "repeated": true, - "location": "query" - }, - "languageCodes": { - "repeated": true, - "location": "query", - "description": "List of language codes that company can support. Only primary language\nsubtags are accepted as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested page size. Server may return fewer companies than requested.\nIf unspecified, server picks an appropriate default.", - "type": "integer", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" } }, - "flatPath": "v2/companies", - "id": "partners.companies.list", - "path": "v2/companies", - "description": "Lists companies." + "flatPath": "v2/companies" }, "get": { - "id": "partners.companies.get", - "path": "v2/companies/{companyId}", "description": "Gets a company.", + "response": { + "$ref": "GetCompanyResponse" + }, "parameterOrder": [ "companyId" ], "httpMethod": "GET", - "response": { - "$ref": "GetCompanyResponse" - }, "parameters": { - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, - "currencyCode": { - "location": "query", - "description": "If the company's budget is in a different currency code than this one, then\nthe converted budget is converted to this currency code.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "orderBy": { - "location": "query", - "description": "How to order addresses within the returned company. Currently, only\n`address` and `address desc` is supported which will sorted by closest to\nfarthest in distance from given address and farthest to closest distance\nfrom given address respectively.", - "type": "string" - }, - "requestMetadata.partnersSessionId": { - "location": "query", - "description": "Google Partners session ID.", - "type": "string" - }, - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "view": { - "enum": [ - "COMPANY_VIEW_UNSPECIFIED", - "CV_GOOGLE_PARTNER_SEARCH" - ], - "description": "The view of `Company` resource to be returned. This must not be\n`COMPANY_VIEW_UNSPECIFIED`.", - "type": "string", - "location": "query" - }, - "address": { - "description": "The address to use for sorting the company's addresses by proximity.\nIf not given, the geo-located address of the request is used.\nUsed when order_by is set.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "location": "query", - "description": "Locale to use for the current request.", - "type": "string" - }, "requestMetadata.trafficSource.trafficSourceId": { "location": "query", "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", @@ -874,160 +470,31 @@ "type": "string" }, "companyId": { + "location": "path", "description": "The ID of the company to retrieve.", "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v2/companies/{companyId}" - } - } - }, - "users": { - "methods": { - "deleteCompanyRelation": { - "id": "partners.users.deleteCompanyRelation", - "path": "v2/users/{userId}/companyRelation", - "description": "Deletes a user's company relation. Unaffiliaites the user from a company.", - "parameterOrder": [ - "userId" - ], - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameters": { - "requestMetadata.userOverrides.userId": { - "location": "query", - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "location": "query", - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "location": "query", - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - }, - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, - "userId": { - "description": "The ID of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean\nthe currently authenticated user.", - "type": "string", - "required": true, - "location": "path" - }, - "requestMetadata.trafficSource.trafficSubId": { - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v2/users/{userId}/companyRelation" - }, - "createCompanyRelation": { - "response": { - "$ref": "CompanyRelation" - }, - "parameterOrder": [ - "userId" - ], - "httpMethod": "PUT", - "parameters": { - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "location": "query", - "description": "Google Partners session ID.", - "type": "string" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "requestMetadata.locale": { - "description": "Locale to use for the current request.", - "type": "string", - "location": "query" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - }, - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, - "requestMetadata.trafficSource.trafficSubId": { - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string", - "location": "query" - }, - "userId": { - "location": "path", - "description": "The ID of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean\nthe currently authenticated user.", - "type": "string", - "required": true - } - }, - "flatPath": "v2/users/{userId}/companyRelation", - "id": "partners.users.createCompanyRelation", - "path": "v2/users/{userId}/companyRelation", - "request": { - "$ref": "CompanyRelation" - }, - "description": "Creates a user's company relation. Affiliates the user to a company." - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "userId" - ], - "response": { - "$ref": "User" - }, - "parameters": { - "requestMetadata.experimentIds": { - "repeated": true, - "location": "query", - "description": "Experiment IDs the current request belongs to.", - "type": "string" - }, - "userId": { - "location": "path", - "description": "Identifier of the user. Can be set to \u003ccode\u003eme\u003c/code\u003e to mean the currently\nauthenticated user.", - "type": "string", "required": true }, + "currencyCode": { + "description": "If the company's budget is in a different currency code than this one, then\nthe converted budget is converted to this currency code.", + "type": "string", + "location": "query" + }, + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "orderBy": { + "description": "How to order addresses within the returned company. Currently, only\n`address` and `address desc` is supported which will sorted by closest to\nfarthest in distance from given address and farthest to closest distance\nfrom given address respectively.", + "type": "string", + "location": "query" + }, "requestMetadata.trafficSource.trafficSubId": { - "location": "query", "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" + "type": "string", + "location": "query" }, "requestMetadata.userOverrides.userId": { "description": "Logged-in user ID to impersonate instead of the user's ID.", @@ -1035,92 +502,63 @@ "location": "query" }, "requestMetadata.partnersSessionId": { - "location": "query", "description": "Google Partners session ID.", - "type": "string" + "type": "string", + "location": "query" }, - "userView": { + "view": { + "location": "query", "enum": [ - "BASIC", - "PROFILE", - "PUBLIC_PROFILE" + "COMPANY_VIEW_UNSPECIFIED", + "CV_GOOGLE_PARTNER_SEARCH" ], - "description": "Specifies what parts of the user information to return.", - "type": "string", - "location": "query" + "description": "The view of `Company` resource to be returned. This must not be\n`COMPANY_VIEW_UNSPECIFIED`.", + "type": "string" }, - "requestMetadata.trafficSource.trafficSourceId": { + "address": { "location": "query", - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "description": "The address to use for sorting the company's addresses by proximity.\nIf not given, the geo-located address of the request is used.\nUsed when order_by is set.", "type": "string" }, "requestMetadata.locale": { - "location": "query", "description": "Locale to use for the current request.", - "type": "string" - }, - "requestMetadata.userOverrides.ipAddress": { - "location": "query", - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - } - }, - "flatPath": "v2/users/{userId}", - "path": "v2/users/{userId}", - "id": "partners.users.get", - "description": "Gets a user." - }, - "updateProfile": { - "path": "v2/users/profile", - "id": "partners.users.updateProfile", - "description": "Updates a user's profile. A user can only update their own profile and\nshould only be called within the context of a logged in user.", - "request": { - "$ref": "UserProfile" - }, - "httpMethod": "PATCH", - "parameterOrder": [], - "response": { - "$ref": "UserProfile" - }, - "parameters": { - "requestMetadata.locale": { - "location": "query", - "description": "Locale to use for the current request.", - "type": "string" - }, - "requestMetadata.userOverrides.ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string", - "location": "query" - }, - "requestMetadata.experimentIds": { - "description": "Experiment IDs the current request belongs to.", - "type": "string", - "repeated": true, - "location": "query" - }, - "requestMetadata.trafficSource.trafficSubId": { - "location": "query", - "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", - "type": "string" - }, - "requestMetadata.userOverrides.userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.partnersSessionId": { - "description": "Google Partners session ID.", - "type": "string", - "location": "query" - }, - "requestMetadata.trafficSource.trafficSourceId": { - "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", "type": "string", "location": "query" } }, - "flatPath": "v2/users/profile" + "flatPath": "v2/companies/{companyId}", + "id": "partners.companies.get", + "path": "v2/companies/{companyId}" + } + }, + "resources": { + "leads": { + "methods": { + "create": { + "id": "partners.companies.leads.create", + "path": "v2/companies/{companyId}/leads", + "description": "Creates an advertiser lead for the given company ID.", + "request": { + "$ref": "CreateLeadRequest" + }, + "response": { + "$ref": "CreateLeadResponse" + }, + "parameterOrder": [ + "companyId" + ], + "httpMethod": "POST", + "parameters": { + "companyId": { + "description": "The ID of the company to contact.", + "type": "string", + "required": true, + "location": "path" + } + }, + "flatPath": "v2/companies/{companyId}/leads" + } + } } } }, @@ -1136,34 +574,616 @@ "flatPath": "v2/userEvents:log", "id": "partners.userEvents.log", "path": "v2/userEvents:log", + "description": "Logs a user event.", "request": { "$ref": "LogUserEventRequest" + } + } + } + }, + "clientMessages": { + "methods": { + "log": { + "response": { + "$ref": "LogMessageResponse" }, - "description": "Logs a user event." + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "flatPath": "v2/clientMessages:log", + "id": "partners.clientMessages.log", + "path": "v2/clientMessages:log", + "request": { + "$ref": "LogMessageRequest" + }, + "description": "Logs a generic message from the client, such as\n`Failed to render component`, `Profile page is running slow`,\n`More than 500 users have accessed this result.`, etc." + } + } + }, + "exams": { + "methods": { + "getToken": { + "description": "Gets an Exam Token for a Partner's user to take an exam in the Exams System", + "httpMethod": "GET", + "response": { + "$ref": "ExamToken" + }, + "parameterOrder": [ + "examType" + ], + "parameters": { + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "requestMetadata.trafficSource.trafficSubId": { + "location": "query", + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "examType": { + "location": "path", + "enum": [ + "CERTIFICATION_EXAM_TYPE_UNSPECIFIED", + "CET_ADWORDS_FUNDAMENTALS", + "CET_ADWORDS_ADVANCED_SEARCH", + "CET_ADWORDS_ADVANCED_DISPLAY", + "CET_VIDEO_ADS", + "CET_DOUBLECLICK", + "CET_ANALYTICS", + "CET_SHOPPING", + "CET_MOBILE", + "CET_DIGITAL_SALES", + "CET_MOBILE_SITES" + ], + "description": "The exam type we are requesting a token for.", + "type": "string", + "required": true + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.locale": { + "location": "query", + "description": "Locale to use for the current request.", + "type": "string" + }, + "requestMetadata.userOverrides.ipAddress": { + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/exams/{examType}/token", + "path": "v2/exams/{examType}/token", + "id": "partners.exams.getToken" + } + } + }, + "leads": { + "methods": { + "list": { + "description": "Lists advertiser leads for a user's associated company.\nShould only be called within the context of an authorized logged in user.", + "httpMethod": "GET", + "response": { + "$ref": "ListLeadsResponse" + }, + "parameterOrder": [], + "parameters": { + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListLeadsResponse.next_page_token`\nreturned from the previous call to\nListLeads.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Requested page size. Server may return fewer leads than requested.\nIf unspecified, server picks an appropriate default.", + "type": "integer" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "orderBy": { + "description": "How to order Leads. Currently, only `create_time`\nand `create_time desc` are supported", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/leads", + "path": "v2/leads", + "id": "partners.leads.list" + } + } + }, + "offers": { + "resources": { + "history": { + "methods": { + "list": { + "response": { + "$ref": "ListOffersHistoryResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string", + "location": "query" + }, + "pageToken": { + "description": "Token to retrieve a specific page.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum number of rows to return per page.", + "type": "integer" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "requestMetadata.experimentIds": { + "repeated": true, + "location": "query", + "description": "Experiment IDs the current request belongs to.", + "type": "string" + }, + "entireCompany": { + "location": "query", + "description": "if true, show history for the entire company. Requires user to be admin.", + "type": "boolean" + }, + "requestMetadata.trafficSource.trafficSubId": { + "location": "query", + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "orderBy": { + "description": "Comma-separated list of fields to order by, e.g.: \"foo,bar,baz\".\nUse \"foo desc\" to sort descending.\nList of valid field names is: name, offer_code, expiration_time, status,\n last_modified_time, sender_name, creation_time, country_code,\n offer_type.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/offers/history", + "id": "partners.offers.history.list", + "path": "v2/offers/history", + "description": "Lists the Historical Offers for the current user (or user's entire company)" + } + } + } + }, + "methods": { + "list": { + "response": { + "$ref": "ListOffersResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + } + }, + "flatPath": "v2/offers", + "id": "partners.offers.list", + "path": "v2/offers", + "description": "Lists the Offers available for the current user" + } + } + }, + "analytics": { + "methods": { + "list": { + "response": { + "$ref": "ListAnalyticsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string", + "location": "query" + }, + "requestMetadata.experimentIds": { + "repeated": true, + "location": "query", + "description": "Experiment IDs the current request belongs to.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSubId": { + "location": "query", + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "A token identifying a page of results that the server returns.\nTypically, this is the value of `ListAnalyticsResponse.next_page_token`\nreturned from the previous call to\nListAnalytics.\nWill be a date string in `YYYY-MM-DD` format representing the end date\nof the date range of results to return.\nIf unspecified or set to \"\", default value is the current date.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "Requested page size. Server may return fewer analytics than requested.\nIf unspecified or set to 0, default value is 30.\nSpecifies the number of days in the date range when querying analytics.\nThe `page_token` represents the end date of the date range\nand the start date is calculated using the `page_size` as the number\nof days BEFORE the end date.\nMust be a non-negative integer.", + "type": "integer", + "location": "query" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/analytics", + "id": "partners.analytics.list", + "path": "v2/analytics", + "description": "Lists analytics data for a user's associated company.\nShould only be called within the context of an authorized logged in user." + } + } + }, + "userStates": { + "methods": { + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListUserStatesResponse" + }, + "parameterOrder": [], + "parameters": { + "requestMetadata.experimentIds": { + "repeated": true, + "location": "query", + "description": "Experiment IDs the current request belongs to.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "requestMetadata.userOverrides.userId": { + "location": "query", + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + } + }, + "flatPath": "v2/userStates", + "path": "v2/userStates", + "id": "partners.userStates.list", + "description": "Lists states for current user." + } + } + }, + "v2": { + "methods": { + "updateCompanies": { + "response": { + "$ref": "Company" + }, + "parameterOrder": [], + "httpMethod": "PATCH", + "parameters": { + "requestMetadata.experimentIds": { + "repeated": true, + "location": "query", + "description": "Experiment IDs the current request belongs to.", + "type": "string" + }, + "requestMetadata.trafficSource.trafficSubId": { + "location": "query", + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.userOverrides.userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.\nRequired with at least 1 value in FieldMask's paths.", + "type": "string" + } + }, + "flatPath": "v2/companies", + "id": "partners.updateCompanies", + "path": "v2/companies", + "request": { + "$ref": "Company" + }, + "description": "Update company.\nShould only be called within the context of an authorized logged in user." + }, + "getPartnersstatus": { + "response": { + "$ref": "GetPartnersStatusResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "requestMetadata.partnersSessionId": { + "location": "query", + "description": "Google Partners session ID.", + "type": "string" + }, + "requestMetadata.userOverrides.userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "location": "query", + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string" + }, + "requestMetadata.locale": { + "description": "Locale to use for the current request.", + "type": "string", + "location": "query" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/partnersstatus", + "id": "partners.getPartnersstatus", + "path": "v2/partnersstatus", + "description": "Gets Partners Status of the logged in user's agency.\nShould only be called if the logged in user is the admin of the agency." + }, + "updateLeads": { + "description": "Updates the specified lead.", + "request": { + "$ref": "Lead" + }, + "httpMethod": "PATCH", + "parameterOrder": [], + "response": { + "$ref": "Lead" + }, + "parameters": { + "requestMetadata.userOverrides.userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.partnersSessionId": { + "description": "Google Partners session ID.", + "type": "string", + "location": "query" + }, + "requestMetadata.trafficSource.trafficSourceId": { + "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + }, + "requestMetadata.locale": { + "location": "query", + "description": "Locale to use for the current request.", + "type": "string" + }, + "requestMetadata.userOverrides.ipAddress": { + "location": "query", + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "updateMask": { + "location": "query", + "format": "google-fieldmask", + "description": "Standard field mask for the set of fields to be updated.\nRequired with at least 1 value in FieldMask's paths.\nOnly `state` and `adwords_customer_id` are currently supported.", + "type": "string" + }, + "requestMetadata.experimentIds": { + "description": "Experiment IDs the current request belongs to.", + "type": "string", + "repeated": true, + "location": "query" + }, + "requestMetadata.trafficSource.trafficSubId": { + "description": "Second level identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v2/leads", + "path": "v2/leads", + "id": "partners.updateLeads" } } } }, "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "upload_protocol": { + "bearer_token": { "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "description": "OAuth bearer token.", "type": "string" }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, "prettyPrint": { + "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean", + "type": "boolean" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", "location": "query" }, "fields": { @@ -1171,30 +1191,31 @@ "type": "string", "location": "query" }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "callback": { + "description": "JSONP", "type": "string", "location": "query" }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "callback": { - "location": "query", - "description": "JSONP", "type": "string" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", @@ -1202,23 +1223,17 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string" + "default": "json" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "access_token": { - "location": "query", "description": "OAuth access token.", - "type": "string" + "type": "string", + "location": "query" }, "quotaUser": { "location": "query", @@ -1233,397 +1248,21 @@ } }, "schemas": { - "Certification": { - "properties": { - "warning": { - "description": "Whether this certification is in the state of warning.", - "type": "boolean" - }, - "expiration": { - "format": "google-datetime", - "description": "Date this certification is due to expire.", - "type": "string" - }, - "achieved": { - "description": "Whether this certification has been achieved.", - "type": "boolean" - }, - "certificationType": { - "enumDescriptions": [ - "Unchosen.", - "AdWords certified.", - "YouTube certified.", - "VideoAds certified.", - "Analytics certified.", - "DoubleClick certified.", - "Shopping certified.", - "Mobile certified.", - "Digital sales certified.", - "AdWords Search certified.", - "AdWords Display certified.", - "Mobile Sites certified." - ], - "enum": [ - "CERTIFICATION_TYPE_UNSPECIFIED", - "CT_ADWORDS", - "CT_YOUTUBE", - "CT_VIDEOADS", - "CT_ANALYTICS", - "CT_DOUBLECLICK", - "CT_SHOPPING", - "CT_MOBILE", - "CT_DIGITAL_SALES", - "CT_ADWORDS_SEARCH", - "CT_ADWORDS_DISPLAY", - "CT_MOBILE_SITES" - ], - "description": "The type of certification, the area of expertise.", - "type": "string" - }, - "lastAchieved": { - "format": "google-datetime", - "description": "The date the user last achieved certification.", - "type": "string" - } - }, - "id": "Certification", - "description": "A user's information on a specific certification.", - "type": "object" - }, - "User": { - "properties": { - "profile": { - "description": "The profile information of a Partners user, contains all the directly\neditable user information.", - "$ref": "UserProfile" - }, - "company": { - "description": "The company that the user is associated with.\nIf not present, the user is not associated with any company.", - "$ref": "CompanyRelation" - }, - "lastAccessTime": { - "format": "google-datetime", - "description": "The most recent time the user interacted with the Partners site.\n@OutputOnly", - "type": "string" - }, - "availableAdwordsManagerAccounts": { - "description": "This is the list of AdWords Manager Accounts the user has edit access to.\nIf the user has edit access to multiple accounts, the user can choose the\npreferred account and we use this when a personal account is needed. Can\nbe empty meaning the user has access to no accounts.\n@OutputOnly", - "items": { - "$ref": "AdWordsManagerAccountInfo" - }, - "type": "array" - }, - "primaryEmails": { - "description": "The list of emails the user has access to/can select as primary.\n@OutputOnly", - "items": { - "type": "string" - }, - "type": "array" - }, - "internalId": { - "description": "The internal user ID.\nOnly available for a whitelisted set of api clients.", - "type": "string" - }, - "examStatus": { - "description": "The list of exams the user ever taken. For each type of exam, only one\nentry is listed.", - "items": { - "$ref": "ExamStatus" - }, - "type": "array" - }, - "id": { - "description": "The ID of the user.", - "type": "string" - }, - "publicProfile": { - "description": "Information about a user's external public profile outside Google Partners.", - "$ref": "PublicProfile" - }, - "certificationStatus": { - "description": "The list of achieved certifications. These are calculated based on exam\nresults and other requirements.\n@OutputOnly", - "items": { - "$ref": "Certification" - }, - "type": "array" - }, - "companyVerificationEmail": { - "description": "The email address used by the user used for company verification.\n@OutputOnly", - "type": "string" - } - }, - "id": "User", - "description": "A resource representing a user of the Partners platform.", - "type": "object" - }, - "ListAnalyticsResponse": { - "description": "Response message for\nListAnalytics.", - "type": "object", - "properties": { - "analytics": { - "description": "The list of analytics.\nSorted in ascending order of\nAnalytics.event_date.", - "items": { - "$ref": "Analytics" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results.\nPass this value in the `ListAnalyticsRequest.page_token` field in the\nsubsequent call to\nListAnalytics to retrieve the\nnext page of results.", - "type": "string" - }, - "analyticsSummary": { - "description": "Aggregated information across the response's\nanalytics.", - "$ref": "AnalyticsSummary" - }, - "responseMetadata": { - "$ref": "ResponseMetadata", - "description": "Current response metadata." - } - }, - "id": "ListAnalyticsResponse" - }, - "Company": { - "description": "A company resource in the Google Partners API. Once certified, it qualifies\nfor being searched by advertisers.", - "type": "object", - "properties": { - "industries": { - "enumDescriptions": [ - "Unchosen.", - "The automotive industry.", - "The business-to-business industry.", - "The consumer packaged goods industry.", - "The education industry.", - "The finance industry.", - "The healthcare industry.", - "The media and entertainment industry.", - "The retail industry.", - "The technology industry.", - "The travel industry." - ], - "description": "Industries the company can help with.", - "items": { - "enum": [ - "INDUSTRY_UNSPECIFIED", - "I_AUTOMOTIVE", - "I_BUSINESS_TO_BUSINESS", - "I_CONSUMER_PACKAGED_GOODS", - "I_EDUCATION", - "I_FINANCE", - "I_HEALTHCARE", - "I_MEDIA_AND_ENTERTAINMENT", - "I_RETAIL", - "I_TECHNOLOGY", - "I_TRAVEL" - ], - "type": "string" - }, - "type": "array" - }, - "additionalWebsites": { - "description": "URL of the company's additional websites used to verify the dynamic badges.\nThese are stored as full URLs as entered by the user, but only the TLD will\nbe used for the actual verification.", - "items": { - "type": "string" - }, - "type": "array" - }, - "websiteUrl": { - "description": "URL of the company's website.", - "type": "string" - }, - "primaryAdwordsManagerAccountId": { - "format": "int64", - "description": "The Primary AdWords Manager Account id.", - "type": "string" - }, - "name": { - "description": "The name of the company.", - "type": "string" - }, - "localizedInfos": { - "description": "The list of localized info for the company.", - "items": { - "$ref": "LocalizedCompanyInfo" - }, - "type": "array" - }, - "certificationStatuses": { - "description": "The list of Google Partners certification statuses for the company.", - "items": { - "$ref": "CertificationStatus" - }, - "type": "array" - }, - "id": { - "description": "The ID of the company.", - "type": "string" - }, - "primaryLocation": { - "$ref": "Location", - "description": "The primary location of the company." - }, - "services": { - "description": "Services the company can help with.", - "items": { - "enum": [ - "SERVICE_UNSPECIFIED", - "S_ADVANCED_ADWORDS_SUPPORT", - "S_ADVERTISING_ON_GOOGLE", - "S_AN_ENHANCED_WEBSITE", - "S_AN_ONLINE_MARKETING_PLAN", - "S_MOBILE_AND_VIDEO_ADS", - "S_MOBILE_WEBSITE_SERVICES" - ], - "type": "string" - }, - "type": "array", - "enumDescriptions": [ - "Unchosen.", - "Help with advanced AdWords support.", - "Help with advertising on Google.", - "Help with an enhanced website.", - "Help with an online marketing plan.", - "Help with mobile and video ads.", - "Help with mobile websites." - ] - }, - "originalMinMonthlyBudget": { - "$ref": "Money", - "description": "The unconverted minimum monthly budget that the company accepts for partner\nbusiness." - }, - "publicProfile": { - "$ref": "PublicProfile", - "description": "Basic information from the company's public profile." - }, - "ranks": { - "description": "Information related to the ranking of the company within the list of\ncompanies.", - "items": { - "$ref": "Rank" - }, - "type": "array" - }, - "badgeTier": { - "enumDescriptions": [ - "Tier badge is not set.", - "Agency has regular partner badge.", - "Agency has premier badge." - ], - "enum": [ - "BADGE_TIER_NONE", - "BADGE_TIER_REGULAR", - "BADGE_TIER_PREMIER" - ], - "description": "Partner badge tier", - "type": "string" - }, - "specializationStatus": { - "description": "The list of Google Partners specialization statuses for the company.", - "items": { - "$ref": "SpecializationStatus" - }, - "type": "array" - }, - "companyTypes": { - "enumDescriptions": [ - "Unchosen.", - "Handles all aspects of the advertising process.", - "Focuses solely on an advertiser's media placement.", - "Plans/executes advertising campaigns.", - "Like a\nFULL_SERVICE_AGENCY,\nbut specializing in digital.", - "Increases visibility in search engine result pages.", - "Drives promotional efforts for immediate impact.", - "Focuses on bid management, conversion, reporting.", - "Establishes favorable relationship with public through low/no-cost\ncommunications.", - "Does not manage other company's accounts, manages own marketing programs.", - "Full-service AdWords account management for local businesses." - ], - "description": "Company type labels listed on the company's profile.", - "items": { - "enum": [ - "COMPANY_TYPE_UNSPECIFIED", - "FULL_SERVICE_AGENCY", - "MEDIA_AGENCY", - "CREATIVE_AGENCY", - "CDIGITAL_AGENCY", - "SEM_SEO", - "PERFORMANCE_MARKETING", - "ADVERTISING_TOOL_DEVELOPMENT", - "PR", - "SELF_MANAGED", - "RESELLER" - ], - "type": "string" - }, - "type": "array" - }, - "autoApprovalEmailDomains": { - "description": "Email domains that allow users with a matching email address to get\nauto-approved for associating with this company.", - "items": { - "type": "string" - }, - "type": "array" - }, - "primaryLanguageCode": { - "description": "The primary language code of the company, as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", - "type": "string" - }, - "profileStatus": { - "enumDescriptions": [ - "Unchosen.", - "Company profile does not show up publicly.", - "Company profile can only be viewed by the profile's URL\nand not by Google Partner Search.", - "Company profile can be viewed by the profile's URL\nand by Google Partner Search." - ], - "enum": [ - "COMPANY_PROFILE_STATUS_UNSPECIFIED", - "HIDDEN", - "PUBLISHED", - "SEARCHABLE" - ], - "description": "The public viewability status of the company's profile.", - "type": "string" - }, - "locations": { - "description": "The list of all company locations.\nIf set, must include the\nprimary_location\nin the list.", - "items": { - "$ref": "Location" - }, - "type": "array" - }, - "convertedMinMonthlyBudget": { - "$ref": "Money", - "description": "The minimum monthly budget that the company accepts for partner business,\nconverted to the requested currency code." - } - }, - "id": "Company" - }, - "ListLeadsResponse": { - "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results.\nPass this value in the `ListLeadsRequest.page_token` field in the\nsubsequent call to\nListLeads to retrieve the\nnext page of results.", - "type": "string" - }, - "totalSize": { - "format": "int32", - "description": "The total count of leads for the given company.", - "type": "integer" - }, - "responseMetadata": { - "$ref": "ResponseMetadata", - "description": "Current response metadata." - }, - "leads": { - "description": "The list of leads.", - "items": { - "$ref": "Lead" - }, - "type": "array" - } - }, - "id": "ListLeadsResponse", - "description": "Response message for ListLeads.", - "type": "object" - }, "CreateLeadResponse": { + "description": "Response message for CreateLead.", + "type": "object", "properties": { + "responseMetadata": { + "description": "Current response metadata.", + "$ref": "ResponseMetadata" + }, "recaptchaStatus": { + "enumDescriptions": [ + "Unchosen.", + "No reCaptcha validation needed.", + "reCaptcha challenge passed.", + "reCaptcha challenge failed." + ], "enum": [ "RECAPTCHA_STATUS_UNSPECIFIED", "RS_NOT_NEEDED", @@ -1631,28 +1270,18 @@ "RS_FAILED" ], "description": "The outcome of \u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e\nvalidation.", - "type": "string", - "enumDescriptions": [ - "Unchosen.", - "No reCaptcha validation needed.", - "reCaptcha challenge passed.", - "reCaptcha challenge failed." - ] + "type": "string" }, "lead": { "$ref": "Lead", "description": "Lead that was created depending on the outcome of\n\u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e validation." - }, - "responseMetadata": { - "description": "Current response metadata.", - "$ref": "ResponseMetadata" } }, - "id": "CreateLeadResponse", - "description": "Response message for CreateLead.", - "type": "object" + "id": "CreateLeadResponse" }, "GetCompanyResponse": { + "description": "Response message for GetCompany.", + "type": "object", "properties": { "responseMetadata": { "$ref": "ResponseMetadata", @@ -1663,9 +1292,7 @@ "$ref": "Company" } }, - "id": "GetCompanyResponse", - "description": "Response message for GetCompany.", - "type": "object" + "id": "GetCompanyResponse" }, "Location": { "description": "A location with address and geographic coordinates. May optionally contain a\ndetailed (multi-field) version of the address.", @@ -1680,21 +1307,21 @@ "type": "string" }, "latLng": { - "$ref": "LatLng", - "description": "The latitude and longitude of the location, in degrees." + "description": "The latitude and longitude of the location, in degrees.", + "$ref": "LatLng" }, "dependentLocality": { "description": "Dependent locality or sublocality. Used for UK dependent localities, or\nneighborhoods or boroughs in other locations.", "type": "string" }, - "address": { - "description": "The single string version of the address.", - "type": "string" - }, "regionCode": { "description": "CLDR (Common Locale Data Repository) region code .", "type": "string" }, + "address": { + "description": "The single string version of the address.", + "type": "string" + }, "postalCode": { "description": "Values are frequently alphanumeric.", "type": "string" @@ -1760,8 +1387,6 @@ "type": "object" }, "ExamToken": { - "description": "A token that allows a user to take an exam.", - "type": "object", "properties": { "examId": { "format": "int64", @@ -1773,6 +1398,19 @@ "type": "string" }, "examType": { + "enumDescriptions": [ + "Unchosen.", + "Adwords Fundamentals exam.", + "AdWords advanced search exam.", + "AdWords advanced display exam.", + "VideoAds exam.", + "DoubleClick exam.", + "Analytics exam.", + "Shopping exam.", + "Mobile exam.", + "Digital Sales exam.", + "Mobile Sites exam." + ], "enum": [ "CERTIFICATION_EXAM_TYPE_UNSPECIFIED", "CET_ADWORDS_FUNDAMENTALS", @@ -1787,32 +1425,17 @@ "CET_MOBILE_SITES" ], "description": "The type of the exam the token belongs to.", - "type": "string", - "enumDescriptions": [ - "Unchosen.", - "Adwords Fundamentals exam.", - "AdWords advanced search exam.", - "AdWords advanced display exam.", - "VideoAds exam.", - "DoubleClick exam.", - "Analytics exam.", - "Shopping exam.", - "Mobile exam.", - "Digital Sales exam.", - "Mobile Sites exam." - ] + "type": "string" } }, - "id": "ExamToken" + "id": "ExamToken", + "description": "A token that allows a user to take an exam.", + "type": "object" }, "OptIns": { "description": "A set of opt-ins for a user.", "type": "object", "properties": { - "specialOffers": { - "description": "An opt-in about receiving email regarding new features and products.", - "type": "boolean" - }, "performanceSuggestions": { "description": "An opt-in about receiving email with customized AdWords campaign management\ntips.", "type": "boolean" @@ -1828,13 +1451,15 @@ "marketComm": { "description": "An opt-in about receiving email from Partners marketing teams. Includes\nmember-only events and special promotional offers for Google products.", "type": "boolean" + }, + "specialOffers": { + "description": "An opt-in about receiving email regarding new features and products.", + "type": "boolean" } }, "id": "OptIns" }, "Rank": { - "description": "Information related to ranking of results.", - "type": "object", "properties": { "type": { "enum": [ @@ -1854,10 +1479,44 @@ "type": "number" } }, - "id": "Rank" + "id": "Rank", + "description": "Information related to ranking of results.", + "type": "object" }, "UserProfile": { "properties": { + "migrateToAfa": { + "description": "Whether or not to migrate the user's exam data to Academy for Ads.", + "type": "boolean" + }, + "adwordsManagerAccount": { + "format": "int64", + "description": "If the user has edit access to multiple accounts, the user can choose the\npreferred account and it is used when a personal account is needed. Can\nbe empty.", + "type": "string" + }, + "phoneNumber": { + "description": "The user's phone number.", + "type": "string" + }, + "primaryCountryCode": { + "description": "The user's primary country, an ISO 2-character code.", + "type": "string" + }, + "emailAddress": { + "description": "The email address the user has selected on the Partners site as primary.", + "type": "string" + }, + "profilePublic": { + "description": "Whether the user's public profile is visible to anyone with the URL.", + "type": "boolean" + }, + "channels": { + "description": "A list of ids representing which channels the user selected they were in.", + "items": { + "type": "string" + }, + "type": "array" + }, "jobFunctions": { "description": "A list of ids represnting which job categories the user selected.", "items": { @@ -1901,34 +1560,6 @@ "type": "string" }, "type": "array" - }, - "phoneNumber": { - "description": "The user's phone number.", - "type": "string" - }, - "adwordsManagerAccount": { - "format": "int64", - "description": "If the user has edit access to multiple accounts, the user can choose the\npreferred account and it is used when a personal account is needed. Can\nbe empty.", - "type": "string" - }, - "primaryCountryCode": { - "description": "The user's primary country, an ISO 2-character code.", - "type": "string" - }, - "emailAddress": { - "description": "The email address the user has selected on the Partners site as primary.", - "type": "string" - }, - "channels": { - "description": "A list of ids representing which channels the user selected they were in.", - "items": { - "type": "string" - }, - "type": "array" - }, - "profilePublic": { - "description": "Whether the user's public profile is visible to anyone with the URL.", - "type": "boolean" } }, "id": "UserProfile", @@ -1936,23 +1567,46 @@ "type": "object" }, "GetPartnersStatusResponse": { - "description": "Response message for\nGetPartnersStatus.", - "type": "object", "properties": { "responseMetadata": { - "description": "Current response metadata.", - "$ref": "ResponseMetadata" + "$ref": "ResponseMetadata", + "description": "Current response metadata." } }, - "id": "GetPartnersStatusResponse" + "id": "GetPartnersStatusResponse", + "description": "Response message for\nGetPartnersStatus.", + "type": "object" }, "HistoricalOffer": { + "description": "Historical information about a Google Partners Offer.", + "type": "object", "properties": { + "senderName": { + "description": "Name (First + Last) of the partners user to whom the incentive is allocated.", + "type": "string" + }, + "offerCountryCode": { + "description": "Country Code for the offer country.", + "type": "string" + }, + "expirationTime": { + "format": "google-datetime", + "description": "Time this offer expires.", + "type": "string" + }, + "offerCode": { + "description": "Offer code.", + "type": "string" + }, "creationTime": { "format": "google-datetime", "description": "Time offer was first created.", "type": "string" }, + "clientEmail": { + "description": "Email address for client.", + "type": "string" + }, "status": { "enumDescriptions": [ "Unset.", @@ -1971,10 +1625,6 @@ "description": "Status of the offer.", "type": "string" }, - "clientEmail": { - "description": "Email address for client.", - "type": "string" - }, "clientId": { "format": "int64", "description": "ID of client.", @@ -1994,12 +1644,6 @@ "type": "string" }, "offerType": { - "enumDescriptions": [ - "Unset.", - "AdWords spend X get Y.", - "Youtube video.", - "Spend Match up to Y." - ], "enum": [ "OFFER_TYPE_UNSPECIFIED", "OFFER_TYPE_SPEND_X_GET_Y", @@ -2007,44 +1651,16 @@ "OFFER_TYPE_SPEND_MATCH" ], "description": "Type of offer.", - "type": "string" - }, - "senderName": { - "description": "Name (First + Last) of the partners user to whom the incentive is allocated.", - "type": "string" - }, - "offerCountryCode": { - "description": "Country Code for the offer country.", - "type": "string" - }, - "expirationTime": { - "format": "google-datetime", - "description": "Time this offer expires.", - "type": "string" - }, - "offerCode": { - "description": "Offer code.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unset.", + "AdWords spend X get Y.", + "Youtube video.", + "Spend Match up to Y." + ] } }, - "id": "HistoricalOffer", - "description": "Historical information about a Google Partners Offer.", - "type": "object" - }, - "UserOverrides": { - "description": "Values to use instead of the user's respective defaults. These are only\nhonored by whitelisted products.", - "type": "object", - "properties": { - "userId": { - "description": "Logged-in user ID to impersonate instead of the user's ID.", - "type": "string" - }, - "ipAddress": { - "description": "IP address to use instead of the user's geo-located IP address.", - "type": "string" - } - }, - "id": "UserOverrides" + "id": "HistoricalOffer" }, "LogUserEventRequest": { "description": "Request message for\nLogUserEvent.", @@ -2095,167 +1711,6 @@ "description": "Advertiser lead information." }, "eventAction": { - "enum": [ - "EVENT_ACTION_UNSPECIFIED", - "SMB_CLICKED_FIND_A_PARTNER_BUTTON_BOTTOM", - "SMB_CLICKED_FIND_A_PARTNER_BUTTON_TOP", - "AGENCY_CLICKED_JOIN_NOW_BUTTON_BOTTOM", - "AGENCY_CLICKED_JOIN_NOW_BUTTON_TOP", - "SMB_CANCELED_PARTNER_CONTACT_FORM", - "SMB_CLICKED_CONTACT_A_PARTNER", - "SMB_COMPLETED_PARTNER_CONTACT_FORM", - "SMB_ENTERED_EMAIL_IN_CONTACT_PARTNER_FORM", - "SMB_ENTERED_NAME_IN_CONTACT_PARTNER_FORM", - "SMB_ENTERED_PHONE_IN_CONTACT_PARTNER_FORM", - "SMB_FAILED_RECAPTCHA_IN_CONTACT_PARTNER_FORM", - "PARTNER_VIEWED_BY_SMB", - "SMB_CANCELED_PARTNER_CONTACT_FORM_ON_GPS", - "SMB_CHANGED_A_SEARCH_PARAMETER_TOP", - "SMB_CLICKED_CONTACT_A_PARTNER_ON_GPS", - "SMB_CLICKED_SHOW_MORE_PARTNERS_BUTTON_BOTTOM", - "SMB_COMPLETED_PARTNER_CONTACT_FORM_ON_GPS", - "SMB_NO_PARTNERS_AVAILABLE_WITH_SEARCH_CRITERIA", - "SMB_PERFORMED_SEARCH_ON_GPS", - "SMB_VIEWED_A_PARTNER_ON_GPS", - "SMB_CANCELED_PARTNER_CONTACT_FORM_ON_PROFILE_PAGE", - "SMB_CLICKED_CONTACT_A_PARTNER_ON_PROFILE_PAGE", - "SMB_CLICKED_PARTNER_WEBSITE", - "SMB_COMPLETED_PARTNER_CONTACT_FORM_ON_PROFILE_PAGE", - "SMB_VIEWED_A_PARTNER_PROFILE", - "AGENCY_CLICKED_ACCEPT_TOS_BUTTON", - "AGENCY_CHANGED_TOS_COUNTRY", - "AGENCY_ADDED_ADDRESS_IN_MY_PROFILE_PORTAL", - "AGENCY_ADDED_PHONE_NUMBER_IN_MY_PROFILE_PORTAL", - "AGENCY_CHANGED_PRIMARY_ACCOUNT_ASSOCIATION", - "AGENCY_CHANGED_PRIMARY_COUNTRY_ASSOCIATION", - "AGENCY_CLICKED_AFFILIATE_BUTTON_IN_MY_PROFILE_IN_PORTAL", - "AGENCY_CLICKED_GIVE_EDIT_ACCESS_IN_MY_PROFILE_PORTAL", - "AGENCY_CLICKED_LOG_OUT_IN_MY_PROFILE_PORTAL", - "AGENCY_CLICKED_MY_PROFILE_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_SAVE_AND_CONTINUE_AT_BOT_OF_COMPLETE_PROFILE", - "AGENCY_CLICKED_UNAFFILIATE_IN_MY_PROFILE_PORTAL", - "AGENCY_FILLED_OUT_COMP_AFFILIATION_IN_MY_PROFILE_PORTAL", - "AGENCY_SUCCESSFULLY_CONNECTED_WITH_COMPANY_IN_MY_PROFILE", - "AGENCY_CLICKED_CREATE_MCC_IN_MY_PROFILE_PORTAL", - "AGENCY_DIDNT_HAVE_AN_MCC_ASSOCIATED_ON_COMPLETE_PROFILE", - "AGENCY_HAD_AN_MCC_ASSOCIATED_ON_COMPLETE_PROFILE", - "AGENCY_ADDED_JOB_FUNCTION_IN_MY_PROFILE_PORTAL", - "AGENCY_LOOKED_AT_JOB_FUNCTION_DROP_DOWN", - "AGENCY_SELECTED_ACCOUNT_MANAGER_AS_JOB_FUNCTION", - "AGENCY_SELECTED_ACCOUNT_PLANNER_AS_JOB_FUNCTION", - "AGENCY_SELECTED_ANALYTICS_AS_JOB_FUNCTION", - "AGENCY_SELECTED_CREATIVE_AS_JOB_FUNCTION", - "AGENCY_SELECTED_MEDIA_BUYER_AS_JOB_FUNCTION", - "AGENCY_SELECTED_MEDIA_PLANNER_AS_JOB_FUNCTION", - "AGENCY_SELECTED_OTHER_AS_JOB_FUNCTION", - "AGENCY_SELECTED_PRODUCTION_AS_JOB_FUNCTION", - "AGENCY_SELECTED_SEO_AS_JOB_FUNCTION", - "AGENCY_SELECTED_SALES_REP_AS_JOB_FUNCTION", - "AGENCY_SELECTED_SEARCH_SPECIALIST_AS_JOB_FUNCTION", - "AGENCY_ADDED_CHANNELS_IN_MY_PROFILE_PORTAL", - "AGENCY_LOOKED_AT_ADD_CHANNEL_DROP_DOWN", - "AGENCY_SELECTED_CROSS_CHANNEL_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_DISPLAY_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_MOBILE_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_SEARCH_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_SOCIAL_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_TOOLS_FROM_ADD_CHANNEL", - "AGENCY_SELECTED_YOUTUBE_FROM_ADD_CHANNEL", - "AGENCY_ADDED_INDUSTRIES_IN_MY_PROFILE_PORTAL", - "AGENCY_CHANGED_ADD_INDUSTRIES_DROP_DOWN", - "AGENCY_ADDED_MARKETS_IN_MY_PROFILE_PORTAL", - "AGENCY_CHANGED_ADD_MARKETS_DROP_DOWN", - "AGENCY_CHECKED_RECIEVE_MAIL_PROMOTIONS_MYPROFILE", - "AGENCY_CHECKED_RECIEVE_MAIL_PROMOTIONS_SIGNUP", - "AGENCY_SELECTED_OPT_IN_BETA_TESTS_AND_MKT_RESEARCH", - "AGENCY_SELECTED_OPT_IN_BETA_TESTS_IN_MY_PROFILE_PORTAL", - "AGENCY_SELECTED_OPT_IN_NEWS_IN_MY_PROFILE_PORTAL", - "AGENCY_SELECTED_OPT_IN_NEWS_INVITATIONS_AND_PROMOS", - "AGENCY_SELECTED_OPT_IN_PERFORMANCE_SUG_IN_MY_PROFILE_PORTAL", - "AGENCY_SELECTED_OPT_IN_PERFORMANCE_SUGGESTIONS", - "AGENCY_SELECTED_OPT_IN_SELECT_ALL_EMAIL_NOTIFICATIONS", - "AGENCY_SELECTED_SELECT_ALL_OPT_INS_IN_MY_PROFILE_PORTAL", - "AGENCY_CLICKED_BACK_BUTTON_ON_CONNECT_WITH_COMPANY", - "AGENCY_CLICKED_CONTINUE_TO_OVERVIEW_ON_CONNECT_WITH_COMPANY", - "AGECNY_CLICKED_CREATE_MCC_CONNECT_WITH_COMPANY_NOT_FOUND", - "AGECNY_CLICKED_GIVE_EDIT_ACCESS_CONNECT_WITH_COMPANY_NOT_FOUND", - "AGECNY_CLICKED_LOG_OUT_CONNECT_WITH_COMPANY_NOT_FOUND", - "AGENCY_CLICKED_SKIP_FOR_NOW_ON_CONNECT_WITH_COMPANY_PAGE", - "AGENCY_CLOSED_CONNECTED_TO_COMPANY_X_BUTTON_WRONG_COMPANY", - "AGENCY_COMPLETED_FIELD_CONNECT_WITH_COMPANY", - "AGECNY_FOUND_COMPANY_TO_CONNECT_WITH", - "AGENCY_SUCCESSFULLY_CREATED_COMPANY", - "AGENCY_ADDED_NEW_COMPANY_LOCATION", - "AGENCY_CLICKED_COMMUNITY_JOIN_NOW_LINK_IN_PORTAL_NOTIFICATIONS", - "AGENCY_CLICKED_CONNECT_TO_COMPANY_LINK_IN_PORTAL_NOTIFICATIONS", - "AGENCY_CLICKED_GET_CERTIFIED_LINK_IN_PORTAL_NOTIFICATIONS", - "AGENCY_CLICKED_GET_VIDEO_ADS_CERTIFIED_LINK_IN_PORTAL_NOTIFICATIONS", - "AGENCY_CLICKED_LINK_TO_MCC_LINK_IN_PORTAL_NOTIFICATIONS", - "AGENCY_CLICKED_INSIGHT_CONTENT_IN_PORTAL", - "AGENCY_CLICKED_INSIGHTS_VIEW_NOW_PITCH_DECKS_IN_PORTAL", - "AGENCY_CLICKED_INSIGHTS_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_INSIGHTS_UPLOAD_CONTENT", - "AGENCY_CLICKED_INSIGHTS_VIEWED_DEPRECATED", - "AGENCY_CLICKED_COMMUNITY_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_JOIN_COMMUNITY_BUTTON_COMMUNITY_PORTAL", - "AGENCY_CLICKED_CERTIFICATIONS_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_CERTIFICATIONS_PRODUCT_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_PARTNER_STATUS_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_PARTNER_STATUS_PRODUCT_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_OFFERS_LEFT_NAV_IN_PORTAL", - "AGENCY_CLICKED_SEND_BUTTON_ON_OFFERS_PAGE", - "AGENCY_CLICKED_EXAM_DETAILS_ON_CERT_ADWORDS_PAGE", - "AGENCY_CLICKED_SEE_EXAMS_CERTIFICATION_MAIN_PAGE", - "AGENCY_CLICKED_TAKE_EXAM_ON_CERT_EXAM_PAGE", - "AGENCY_OPENED_LAST_ADMIN_DIALOG", - "AGENCY_OPENED_DIALOG_WITH_NO_USERS", - "AGENCY_PROMOTED_USER_TO_ADMIN", - "AGENCY_UNAFFILIATED", - "AGENCY_CHANGED_ROLES", - "SMB_CLICKED_COMPANY_NAME_LINK_TO_PROFILE", - "SMB_VIEWED_ADWORDS_CERTIFICATE", - "SMB_VIEWED_ADWORDS_SEARCH_CERTIFICATE", - "SMB_VIEWED_ADWORDS_DISPLAY_CERTIFICATE", - "SMB_CLICKED_ADWORDS_CERTIFICATE_HELP_ICON", - "SMB_VIEWED_ANALYTICS_CERTIFICATE", - "SMB_VIEWED_DOUBLECLICK_CERTIFICATE", - "SMB_VIEWED_MOBILE_SITES_CERTIFICATE", - "SMB_VIEWED_VIDEO_ADS_CERTIFICATE", - "SMB_VIEWED_SHOPPING_CERTIFICATE", - "SMB_CLICKED_VIDEO_ADS_CERTIFICATE_HELP_ICON", - "SMB_VIEWED_DIGITAL_SALES_CERTIFICATE", - "CLICKED_HELP_AT_BOTTOM", - "CLICKED_HELP_AT_TOP", - "CLIENT_ERROR", - "AGENCY_CLICKED_LEFT_NAV_STORIES", - "CLICKED", - "SMB_VIEWED_MOBILE_CERTIFICATE", - "AGENCY_FAILED_COMPANY_VERIFICATION", - "VISITED_LANDING", - "VISITED_GPS", - "VISITED_AGENCY_PORTAL", - "CANCELLED_INDIVIDUAL_SIGN_UP", - "CANCELLED_COMPANY_SIGN_UP", - "AGENCY_CLICKED_SIGN_IN_BUTTON_TOP", - "AGENCY_CLICKED_SAVE_AND_CONTINUE_AT_BOT_OF_INCOMPLETE_PROFILE", - "AGENCY_UNSELECTED_OPT_IN_NEWS_INVITATIONS_AND_PROMOS", - "AGENCY_UNSELECTED_OPT_IN_BETA_TESTS_AND_MKT_RESEARCH", - "AGENCY_UNSELECTED_OPT_IN_PERFORMANCE_SUGGESTIONS", - "AGENCY_SELECTED_OPT_OUT_UNSELECT_ALL_EMAIL_NOTIFICATIONS", - "AGENCY_LINKED_INDIVIDUAL_MCC", - "AGENCY_SUGGESTED_TO_USER", - "AGENCY_IGNORED_SUGGESTED_AGENCIES_AND_SEARCHED", - "AGENCY_PICKED_SUGGESTED_AGENCY", - "AGENCY_SEARCHED_FOR_AGENCIES", - "AGENCY_PICKED_SEARCHED_AGENCY", - "AGENCY_DISMISSED_AFFILIATION_WIDGET", - "AGENCY_CLICKED_INSIGHTS_DOWNLOAD_CONTENT", - "AGENCY_PROGRESS_INSIGHTS_VIEW_CONTENT", - "AGENCY_CLICKED_CANCEL_ACCEPT_TOS_BUTTON", - "SMB_ENTERED_WEBSITE_IN_CONTACT_PARTNER_FORM" - ], - "description": "The action that occurred.", - "type": "string", "enumDescriptions": [ "Unchosen.", "Advertiser clicked `Find a partner` bottom button.", @@ -2413,18 +1868,189 @@ "Agency clicked on the download link for downloading content.", "Agency user is maklingg progress viewing a content item.", "Agency clicked `cancel Terms Of Service` button.", - "Advertiser entered website in contact form." - ] + "Advertiser entered website in contact form.", + "Agency opted in for migrating their exams to Academy for Ads.", + "Agency opted out for migrating their exams to Academy for Ads." + ], + "enum": [ + "EVENT_ACTION_UNSPECIFIED", + "SMB_CLICKED_FIND_A_PARTNER_BUTTON_BOTTOM", + "SMB_CLICKED_FIND_A_PARTNER_BUTTON_TOP", + "AGENCY_CLICKED_JOIN_NOW_BUTTON_BOTTOM", + "AGENCY_CLICKED_JOIN_NOW_BUTTON_TOP", + "SMB_CANCELED_PARTNER_CONTACT_FORM", + "SMB_CLICKED_CONTACT_A_PARTNER", + "SMB_COMPLETED_PARTNER_CONTACT_FORM", + "SMB_ENTERED_EMAIL_IN_CONTACT_PARTNER_FORM", + "SMB_ENTERED_NAME_IN_CONTACT_PARTNER_FORM", + "SMB_ENTERED_PHONE_IN_CONTACT_PARTNER_FORM", + "SMB_FAILED_RECAPTCHA_IN_CONTACT_PARTNER_FORM", + "PARTNER_VIEWED_BY_SMB", + "SMB_CANCELED_PARTNER_CONTACT_FORM_ON_GPS", + "SMB_CHANGED_A_SEARCH_PARAMETER_TOP", + "SMB_CLICKED_CONTACT_A_PARTNER_ON_GPS", + "SMB_CLICKED_SHOW_MORE_PARTNERS_BUTTON_BOTTOM", + "SMB_COMPLETED_PARTNER_CONTACT_FORM_ON_GPS", + "SMB_NO_PARTNERS_AVAILABLE_WITH_SEARCH_CRITERIA", + "SMB_PERFORMED_SEARCH_ON_GPS", + "SMB_VIEWED_A_PARTNER_ON_GPS", + "SMB_CANCELED_PARTNER_CONTACT_FORM_ON_PROFILE_PAGE", + "SMB_CLICKED_CONTACT_A_PARTNER_ON_PROFILE_PAGE", + "SMB_CLICKED_PARTNER_WEBSITE", + "SMB_COMPLETED_PARTNER_CONTACT_FORM_ON_PROFILE_PAGE", + "SMB_VIEWED_A_PARTNER_PROFILE", + "AGENCY_CLICKED_ACCEPT_TOS_BUTTON", + "AGENCY_CHANGED_TOS_COUNTRY", + "AGENCY_ADDED_ADDRESS_IN_MY_PROFILE_PORTAL", + "AGENCY_ADDED_PHONE_NUMBER_IN_MY_PROFILE_PORTAL", + "AGENCY_CHANGED_PRIMARY_ACCOUNT_ASSOCIATION", + "AGENCY_CHANGED_PRIMARY_COUNTRY_ASSOCIATION", + "AGENCY_CLICKED_AFFILIATE_BUTTON_IN_MY_PROFILE_IN_PORTAL", + "AGENCY_CLICKED_GIVE_EDIT_ACCESS_IN_MY_PROFILE_PORTAL", + "AGENCY_CLICKED_LOG_OUT_IN_MY_PROFILE_PORTAL", + "AGENCY_CLICKED_MY_PROFILE_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_SAVE_AND_CONTINUE_AT_BOT_OF_COMPLETE_PROFILE", + "AGENCY_CLICKED_UNAFFILIATE_IN_MY_PROFILE_PORTAL", + "AGENCY_FILLED_OUT_COMP_AFFILIATION_IN_MY_PROFILE_PORTAL", + "AGENCY_SUCCESSFULLY_CONNECTED_WITH_COMPANY_IN_MY_PROFILE", + "AGENCY_CLICKED_CREATE_MCC_IN_MY_PROFILE_PORTAL", + "AGENCY_DIDNT_HAVE_AN_MCC_ASSOCIATED_ON_COMPLETE_PROFILE", + "AGENCY_HAD_AN_MCC_ASSOCIATED_ON_COMPLETE_PROFILE", + "AGENCY_ADDED_JOB_FUNCTION_IN_MY_PROFILE_PORTAL", + "AGENCY_LOOKED_AT_JOB_FUNCTION_DROP_DOWN", + "AGENCY_SELECTED_ACCOUNT_MANAGER_AS_JOB_FUNCTION", + "AGENCY_SELECTED_ACCOUNT_PLANNER_AS_JOB_FUNCTION", + "AGENCY_SELECTED_ANALYTICS_AS_JOB_FUNCTION", + "AGENCY_SELECTED_CREATIVE_AS_JOB_FUNCTION", + "AGENCY_SELECTED_MEDIA_BUYER_AS_JOB_FUNCTION", + "AGENCY_SELECTED_MEDIA_PLANNER_AS_JOB_FUNCTION", + "AGENCY_SELECTED_OTHER_AS_JOB_FUNCTION", + "AGENCY_SELECTED_PRODUCTION_AS_JOB_FUNCTION", + "AGENCY_SELECTED_SEO_AS_JOB_FUNCTION", + "AGENCY_SELECTED_SALES_REP_AS_JOB_FUNCTION", + "AGENCY_SELECTED_SEARCH_SPECIALIST_AS_JOB_FUNCTION", + "AGENCY_ADDED_CHANNELS_IN_MY_PROFILE_PORTAL", + "AGENCY_LOOKED_AT_ADD_CHANNEL_DROP_DOWN", + "AGENCY_SELECTED_CROSS_CHANNEL_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_DISPLAY_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_MOBILE_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_SEARCH_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_SOCIAL_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_TOOLS_FROM_ADD_CHANNEL", + "AGENCY_SELECTED_YOUTUBE_FROM_ADD_CHANNEL", + "AGENCY_ADDED_INDUSTRIES_IN_MY_PROFILE_PORTAL", + "AGENCY_CHANGED_ADD_INDUSTRIES_DROP_DOWN", + "AGENCY_ADDED_MARKETS_IN_MY_PROFILE_PORTAL", + "AGENCY_CHANGED_ADD_MARKETS_DROP_DOWN", + "AGENCY_CHECKED_RECIEVE_MAIL_PROMOTIONS_MYPROFILE", + "AGENCY_CHECKED_RECIEVE_MAIL_PROMOTIONS_SIGNUP", + "AGENCY_SELECTED_OPT_IN_BETA_TESTS_AND_MKT_RESEARCH", + "AGENCY_SELECTED_OPT_IN_BETA_TESTS_IN_MY_PROFILE_PORTAL", + "AGENCY_SELECTED_OPT_IN_NEWS_IN_MY_PROFILE_PORTAL", + "AGENCY_SELECTED_OPT_IN_NEWS_INVITATIONS_AND_PROMOS", + "AGENCY_SELECTED_OPT_IN_PERFORMANCE_SUG_IN_MY_PROFILE_PORTAL", + "AGENCY_SELECTED_OPT_IN_PERFORMANCE_SUGGESTIONS", + "AGENCY_SELECTED_OPT_IN_SELECT_ALL_EMAIL_NOTIFICATIONS", + "AGENCY_SELECTED_SELECT_ALL_OPT_INS_IN_MY_PROFILE_PORTAL", + "AGENCY_CLICKED_BACK_BUTTON_ON_CONNECT_WITH_COMPANY", + "AGENCY_CLICKED_CONTINUE_TO_OVERVIEW_ON_CONNECT_WITH_COMPANY", + "AGECNY_CLICKED_CREATE_MCC_CONNECT_WITH_COMPANY_NOT_FOUND", + "AGECNY_CLICKED_GIVE_EDIT_ACCESS_CONNECT_WITH_COMPANY_NOT_FOUND", + "AGECNY_CLICKED_LOG_OUT_CONNECT_WITH_COMPANY_NOT_FOUND", + "AGENCY_CLICKED_SKIP_FOR_NOW_ON_CONNECT_WITH_COMPANY_PAGE", + "AGENCY_CLOSED_CONNECTED_TO_COMPANY_X_BUTTON_WRONG_COMPANY", + "AGENCY_COMPLETED_FIELD_CONNECT_WITH_COMPANY", + "AGECNY_FOUND_COMPANY_TO_CONNECT_WITH", + "AGENCY_SUCCESSFULLY_CREATED_COMPANY", + "AGENCY_ADDED_NEW_COMPANY_LOCATION", + "AGENCY_CLICKED_COMMUNITY_JOIN_NOW_LINK_IN_PORTAL_NOTIFICATIONS", + "AGENCY_CLICKED_CONNECT_TO_COMPANY_LINK_IN_PORTAL_NOTIFICATIONS", + "AGENCY_CLICKED_GET_CERTIFIED_LINK_IN_PORTAL_NOTIFICATIONS", + "AGENCY_CLICKED_GET_VIDEO_ADS_CERTIFIED_LINK_IN_PORTAL_NOTIFICATIONS", + "AGENCY_CLICKED_LINK_TO_MCC_LINK_IN_PORTAL_NOTIFICATIONS", + "AGENCY_CLICKED_INSIGHT_CONTENT_IN_PORTAL", + "AGENCY_CLICKED_INSIGHTS_VIEW_NOW_PITCH_DECKS_IN_PORTAL", + "AGENCY_CLICKED_INSIGHTS_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_INSIGHTS_UPLOAD_CONTENT", + "AGENCY_CLICKED_INSIGHTS_VIEWED_DEPRECATED", + "AGENCY_CLICKED_COMMUNITY_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_JOIN_COMMUNITY_BUTTON_COMMUNITY_PORTAL", + "AGENCY_CLICKED_CERTIFICATIONS_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_CERTIFICATIONS_PRODUCT_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_PARTNER_STATUS_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_PARTNER_STATUS_PRODUCT_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_OFFERS_LEFT_NAV_IN_PORTAL", + "AGENCY_CLICKED_SEND_BUTTON_ON_OFFERS_PAGE", + "AGENCY_CLICKED_EXAM_DETAILS_ON_CERT_ADWORDS_PAGE", + "AGENCY_CLICKED_SEE_EXAMS_CERTIFICATION_MAIN_PAGE", + "AGENCY_CLICKED_TAKE_EXAM_ON_CERT_EXAM_PAGE", + "AGENCY_OPENED_LAST_ADMIN_DIALOG", + "AGENCY_OPENED_DIALOG_WITH_NO_USERS", + "AGENCY_PROMOTED_USER_TO_ADMIN", + "AGENCY_UNAFFILIATED", + "AGENCY_CHANGED_ROLES", + "SMB_CLICKED_COMPANY_NAME_LINK_TO_PROFILE", + "SMB_VIEWED_ADWORDS_CERTIFICATE", + "SMB_VIEWED_ADWORDS_SEARCH_CERTIFICATE", + "SMB_VIEWED_ADWORDS_DISPLAY_CERTIFICATE", + "SMB_CLICKED_ADWORDS_CERTIFICATE_HELP_ICON", + "SMB_VIEWED_ANALYTICS_CERTIFICATE", + "SMB_VIEWED_DOUBLECLICK_CERTIFICATE", + "SMB_VIEWED_MOBILE_SITES_CERTIFICATE", + "SMB_VIEWED_VIDEO_ADS_CERTIFICATE", + "SMB_VIEWED_SHOPPING_CERTIFICATE", + "SMB_CLICKED_VIDEO_ADS_CERTIFICATE_HELP_ICON", + "SMB_VIEWED_DIGITAL_SALES_CERTIFICATE", + "CLICKED_HELP_AT_BOTTOM", + "CLICKED_HELP_AT_TOP", + "CLIENT_ERROR", + "AGENCY_CLICKED_LEFT_NAV_STORIES", + "CLICKED", + "SMB_VIEWED_MOBILE_CERTIFICATE", + "AGENCY_FAILED_COMPANY_VERIFICATION", + "VISITED_LANDING", + "VISITED_GPS", + "VISITED_AGENCY_PORTAL", + "CANCELLED_INDIVIDUAL_SIGN_UP", + "CANCELLED_COMPANY_SIGN_UP", + "AGENCY_CLICKED_SIGN_IN_BUTTON_TOP", + "AGENCY_CLICKED_SAVE_AND_CONTINUE_AT_BOT_OF_INCOMPLETE_PROFILE", + "AGENCY_UNSELECTED_OPT_IN_NEWS_INVITATIONS_AND_PROMOS", + "AGENCY_UNSELECTED_OPT_IN_BETA_TESTS_AND_MKT_RESEARCH", + "AGENCY_UNSELECTED_OPT_IN_PERFORMANCE_SUGGESTIONS", + "AGENCY_SELECTED_OPT_OUT_UNSELECT_ALL_EMAIL_NOTIFICATIONS", + "AGENCY_LINKED_INDIVIDUAL_MCC", + "AGENCY_SUGGESTED_TO_USER", + "AGENCY_IGNORED_SUGGESTED_AGENCIES_AND_SEARCHED", + "AGENCY_PICKED_SUGGESTED_AGENCY", + "AGENCY_SEARCHED_FOR_AGENCIES", + "AGENCY_PICKED_SEARCHED_AGENCY", + "AGENCY_DISMISSED_AFFILIATION_WIDGET", + "AGENCY_CLICKED_INSIGHTS_DOWNLOAD_CONTENT", + "AGENCY_PROGRESS_INSIGHTS_VIEW_CONTENT", + "AGENCY_CLICKED_CANCEL_ACCEPT_TOS_BUTTON", + "SMB_ENTERED_WEBSITE_IN_CONTACT_PARTNER_FORM", + "AGENCY_SELECTED_OPT_IN_AFA_MIGRATION", + "AGENCY_SELECTED_OPT_OUT_AFA_MIGRATION" + ], + "description": "The action that occurred.", + "type": "string" }, "url": { "description": "The URL where the event occurred.", "type": "string" }, "requestMetadata": { - "description": "Current request metadata.", - "$ref": "RequestMetadata" + "$ref": "RequestMetadata", + "description": "Current request metadata." }, "eventScope": { + "enumDescriptions": [ + "Unchosen.", + "Based on visitor.", + "Based on session.", + "Based on page visit." + ], "enum": [ "EVENT_SCOPE_UNSPECIFIED", "VISITOR", @@ -2432,13 +2058,7 @@ "PAGE" ], "description": "The scope of the event.", - "type": "string", - "enumDescriptions": [ - "Unchosen.", - "Based on visitor.", - "Based on session.", - "Based on page visit." - ] + "type": "string" }, "eventDatas": { "description": "List of event data for the event.", @@ -2450,6 +2070,21 @@ }, "id": "LogUserEventRequest" }, + "UserOverrides": { + "properties": { + "ipAddress": { + "description": "IP address to use instead of the user's geo-located IP address.", + "type": "string" + }, + "userId": { + "description": "Logged-in user ID to impersonate instead of the user's ID.", + "type": "string" + } + }, + "id": "UserOverrides", + "description": "Values to use instead of the user's respective defaults. These are only\nhonored by whitelisted products.", + "type": "object" + }, "AnalyticsDataPoint": { "properties": { "eventCount": { @@ -2470,27 +2105,27 @@ "type": "object" }, "Analytics": { - "description": "Analytics data for a `Company` within a single day.", - "type": "object", "properties": { + "contacts": { + "$ref": "AnalyticsDataPoint", + "description": "Instances of users contacting the `Company`\non the specified date." + }, "searchViews": { "$ref": "AnalyticsDataPoint", "description": "Instances of users seeing the `Company` in Google Partners Search results\non the specified date." }, "profileViews": { - "description": "Instances of users viewing the `Company` profile\non the specified date.", - "$ref": "AnalyticsDataPoint" + "$ref": "AnalyticsDataPoint", + "description": "Instances of users viewing the `Company` profile\non the specified date." }, "eventDate": { - "$ref": "Date", - "description": "Date on which these events occurred." - }, - "contacts": { - "$ref": "AnalyticsDataPoint", - "description": "Instances of users contacting the `Company`\non the specified date." + "description": "Date on which these events occurred.", + "$ref": "Date" } }, - "id": "Analytics" + "id": "Analytics", + "description": "Analytics data for a `Company` within a single day.", + "type": "object" }, "PublicProfile": { "description": "Basic information from a public profile.", @@ -2520,20 +2155,20 @@ "id": "PublicProfile" }, "AdWordsManagerAccountInfo": { + "description": "Information about a particular AdWords Manager Account.\nRead more at https://support.google.com/adwords/answer/6139186", + "type": "object", "properties": { + "customerName": { + "description": "Name of the customer this account represents.", + "type": "string" + }, "id": { "format": "int64", "description": "The AdWords Manager Account id.", "type": "string" - }, - "customerName": { - "description": "Name of the customer this account represents.", - "type": "string" } }, - "id": "AdWordsManagerAccountInfo", - "description": "Information about a particular AdWords Manager Account.\nRead more at https://support.google.com/adwords/answer/6139186", - "type": "object" + "id": "AdWordsManagerAccountInfo" }, "ResponseMetadata": { "properties": { @@ -2548,13 +2183,13 @@ }, "RecaptchaChallenge": { "properties": { - "response": { - "description": "The response to the reCaptcha challenge.", - "type": "string" - }, "id": { "description": "The ID of the reCaptcha challenge.", "type": "string" + }, + "response": { + "description": "The response to the reCaptcha challenge.", + "type": "string" } }, "id": "RecaptchaChallenge", @@ -2562,9 +2197,23 @@ "type": "object" }, "AvailableOffer": { - "description": "Available Offers to be distributed.", - "type": "object", "properties": { + "qualifiedCustomersComplete": { + "description": "Whether or not the list of qualified customers is definitely complete.", + "type": "boolean" + }, + "id": { + "format": "int64", + "description": "ID of this offer.", + "type": "string" + }, + "countryOfferInfos": { + "description": "Offer info by country.", + "items": { + "$ref": "CountryOfferInfo" + }, + "type": "array" + }, "offerType": { "enum": [ "OFFER_TYPE_UNSPECIFIED", @@ -2637,25 +2286,11 @@ "name": { "description": "Name of the offer.", "type": "string" - }, - "id": { - "format": "int64", - "description": "ID of this offer.", - "type": "string" - }, - "qualifiedCustomersComplete": { - "description": "Whether or not the list of qualified customers is definitely complete.", - "type": "boolean" - }, - "countryOfferInfos": { - "description": "Offer info by country.", - "items": { - "$ref": "CountryOfferInfo" - }, - "type": "array" } }, - "id": "AvailableOffer" + "id": "AvailableOffer", + "description": "Available Offers to be distributed.", + "type": "object" }, "LatLng": { "properties": { @@ -2675,8 +2310,6 @@ "type": "object" }, "Money": { - "description": "Represents an amount of money with its currency type.", - "type": "object", "properties": { "currencyCode": { "description": "The 3-letter currency code defined in ISO 4217.", @@ -2693,15 +2326,14 @@ "type": "string" } }, - "id": "Money" + "id": "Money", + "description": "Represents an amount of money with its currency type.", + "type": "object" }, "AnalyticsSummary": { + "description": "Analytics aggregated data for a `Company` for a given date range.", + "type": "object", "properties": { - "profileViewsCount": { - "format": "int32", - "description": "Aggregated number of profile views for the `Company` for given date range.", - "type": "integer" - }, "searchViewsCount": { "format": "int32", "description": "Aggregated number of times users saw the `Company`\nin Google Partners Search results for given date range.", @@ -2711,15 +2343,16 @@ "format": "int32", "description": "Aggregated number of times users contacted the `Company`\nfor given date range.", "type": "integer" + }, + "profileViewsCount": { + "format": "int32", + "description": "Aggregated number of profile views for the `Company` for given date range.", + "type": "integer" } }, - "id": "AnalyticsSummary", - "description": "Analytics aggregated data for a `Company` for a given date range.", - "type": "object" + "id": "AnalyticsSummary" }, "LogMessageRequest": { - "description": "Request message for\nLogClientMessage.", - "type": "object", "properties": { "clientInfo": { "additionalProperties": { @@ -2733,13 +2366,6 @@ "$ref": "RequestMetadata" }, "level": { - "enumDescriptions": [ - "Unchosen.", - "Message level for tracing information.", - "Message level for informational messages.", - "Message level for potential problems.", - "Message level for serious failures." - ], "enum": [ "MESSAGE_LEVEL_UNSPECIFIED", "ML_FINE", @@ -2748,31 +2374,26 @@ "ML_SEVERE" ], "description": "Message level of client message.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unchosen.", + "Message level for tracing information.", + "Message level for informational messages.", + "Message level for potential problems.", + "Message level for serious failures." + ] }, "details": { "description": "Details about the client message.", "type": "string" } }, - "id": "LogMessageRequest" + "id": "LogMessageRequest", + "description": "Request message for\nLogClientMessage.", + "type": "object" }, "Lead": { "properties": { - "adwordsCustomerId": { - "format": "int64", - "description": "The AdWords Customer ID of the lead.", - "type": "string" - }, - "phoneNumber": { - "description": "Phone number of lead source.", - "type": "string" - }, - "createTime": { - "format": "google-datetime", - "description": "Timestamp of when this lead was created.", - "type": "string" - }, "marketingOptIn": { "description": "Whether or not the lead signed up for marketing emails", "type": "boolean" @@ -2789,14 +2410,14 @@ "description": "Type of lead.", "type": "string" }, - "minMonthlyBudget": { - "$ref": "Money", - "description": "The minimum monthly budget lead source is willing to spend." - }, "givenName": { "description": "First name of lead source.", "type": "string" }, + "minMonthlyBudget": { + "description": "The minimum monthly budget lead source is willing to spend.", + "$ref": "Money" + }, "websiteUrl": { "description": "Website URL of lead source.", "type": "string" @@ -2806,12 +2427,6 @@ "type": "string" }, "gpsMotivations": { - "enumDescriptions": [ - "Unchosen.", - "Advertiser needs help with their advertising.", - "Advertiser needs help with their website.", - "Advertiser does not have a website." - ], "description": "List of reasons for using Google Partner Search and creating a lead.", "items": { "enum": [ @@ -2822,7 +2437,13 @@ ], "type": "string" }, - "type": "array" + "type": "array", + "enumDescriptions": [ + "Unchosen.", + "Advertiser needs help with their advertising.", + "Advertiser needs help with their website.", + "Advertiser does not have a website." + ] }, "state": { "enumDescriptions": [ @@ -2857,6 +2478,20 @@ "comments": { "description": "Comments lead source gave.", "type": "string" + }, + "phoneNumber": { + "description": "Phone number of lead source.", + "type": "string" + }, + "adwordsCustomerId": { + "format": "int64", + "description": "The AdWords Customer ID of the lead.", + "type": "string" + }, + "createTime": { + "format": "google-datetime", + "description": "Timestamp of when this lead was created.", + "type": "string" } }, "id": "Lead", @@ -2864,8 +2499,6 @@ "type": "object" }, "DebugInfo": { - "description": "Debug information about this request.", - "type": "object", "properties": { "serverTraceInfo": { "description": "Server-side debug stack trace.", @@ -2880,19 +2513,19 @@ "type": "string" } }, - "id": "DebugInfo" + "id": "DebugInfo", + "description": "Debug information about this request.", + "type": "object" }, "ListUserStatesResponse": { + "description": "Response message for\nListUserStates.", + "type": "object", "properties": { "responseMetadata": { "description": "Current response metadata.", "$ref": "ResponseMetadata" }, "userStates": { - "enumDescriptions": [ - "Unchosen.", - "User must pass \u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e to\ncontact a Partner via Google Partner Search." - ], "description": "User's states.", "items": { "enum": [ @@ -2901,16 +2534,16 @@ ], "type": "string" }, - "type": "array" + "type": "array", + "enumDescriptions": [ + "Unchosen.", + "User must pass \u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e to\ncontact a Partner via Google Partner Search." + ] } }, - "id": "ListUserStatesResponse", - "description": "Response message for\nListUserStates.", - "type": "object" + "id": "ListUserStatesResponse" }, "CompanyRelation": { - "description": "A CompanyRelation resource representing information about a user's\naffiliation and standing with a company in Partners.", - "type": "object", "properties": { "resolvedTimestamp": { "format": "google-datetime", @@ -2964,6 +2597,12 @@ "type": "string" }, "segment": { + "enumDescriptions": [ + "Default segment indicates an unknown.", + "Segment representing a selected group of Partners", + "Segment representing Premier SMB Partners, an AdWords partnership program.", + "A segment of Premier SMB Partners that have relationship with Google." + ], "description": "The segment the company is classified as.", "items": { "enum": [ @@ -2974,13 +2613,7 @@ ], "type": "string" }, - "type": "array", - "enumDescriptions": [ - "Default segment indicates an unknown.", - "Segment representing a selected group of Partners", - "Segment representing Premier SMB Partners, an AdWords partnership program.", - "A segment of Premier SMB Partners that have relationship with Google." - ] + "type": "array" }, "internalCompanyId": { "description": "The internal company ID.\nOnly available for a whitelisted set of api clients.", @@ -3032,7 +2665,9 @@ "type": "string" } }, - "id": "CompanyRelation" + "id": "CompanyRelation", + "description": "A CompanyRelation resource representing information about a user's\naffiliation and standing with a company in Partners.", + "type": "object" }, "Date": { "properties": { @@ -3063,6 +2698,8 @@ "type": "object" }, "TrafficSource": { + "description": "Source of traffic for the current request.", + "type": "object", "properties": { "trafficSourceId": { "description": "Identifier to indicate where the traffic comes from.\nAn identifier has multiple letters created by a team which redirected the\ntraffic to us.", @@ -3073,9 +2710,26 @@ "type": "string" } }, - "id": "TrafficSource", - "description": "Source of traffic for the current request.", - "type": "object" + "id": "TrafficSource" + }, + "CreateLeadRequest": { + "description": "Request message for CreateLead.", + "type": "object", + "properties": { + "requestMetadata": { + "$ref": "RequestMetadata", + "description": "Current request metadata." + }, + "recaptchaChallenge": { + "$ref": "RecaptchaChallenge", + "description": "\u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e challenge info." + }, + "lead": { + "description": "The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`\nand either `email` or `phone_number` must be provided.", + "$ref": "Lead" + } + }, + "id": "CreateLeadRequest" }, "RequestMetadata": { "properties": { @@ -3099,36 +2753,15 @@ "type": "string" }, "userOverrides": { - "description": "Values to use instead of the user's respective defaults for the current\nrequest. These are only honored by whitelisted products.", - "$ref": "UserOverrides" + "$ref": "UserOverrides", + "description": "Values to use instead of the user's respective defaults for the current\nrequest. These are only honored by whitelisted products." } }, "id": "RequestMetadata", "description": "Common data that is in each API request.", "type": "object" }, - "CreateLeadRequest": { - "description": "Request message for CreateLead.", - "type": "object", - "properties": { - "requestMetadata": { - "$ref": "RequestMetadata", - "description": "Current request metadata." - }, - "recaptchaChallenge": { - "description": "\u003ca href=\"https://www.google.com/recaptcha/\"\u003ereCaptcha\u003c/a\u003e challenge info.", - "$ref": "RecaptchaChallenge" - }, - "lead": { - "description": "The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`\nand either `email` or `phone_number` must be provided.", - "$ref": "Lead" - } - }, - "id": "CreateLeadRequest" - }, "EventData": { - "description": "Key value data pair for an event.", - "type": "object", "properties": { "key": { "enumDescriptions": [ @@ -3222,12 +2855,44 @@ "type": "array" } }, - "id": "EventData" + "id": "EventData", + "description": "Key value data pair for an event.", + "type": "object" }, "ExamStatus": { "description": "A user's information on a specific exam.", "type": "object", "properties": { + "examType": { + "enumDescriptions": [ + "Unchosen.", + "Adwords Fundamentals exam.", + "AdWords advanced search exam.", + "AdWords advanced display exam.", + "VideoAds exam.", + "DoubleClick exam.", + "Analytics exam.", + "Shopping exam.", + "Mobile exam.", + "Digital Sales exam.", + "Mobile Sites exam." + ], + "enum": [ + "CERTIFICATION_EXAM_TYPE_UNSPECIFIED", + "CET_ADWORDS_FUNDAMENTALS", + "CET_ADWORDS_ADVANCED_SEARCH", + "CET_ADWORDS_ADVANCED_DISPLAY", + "CET_VIDEO_ADS", + "CET_DOUBLECLICK", + "CET_ANALYTICS", + "CET_SHOPPING", + "CET_MOBILE", + "CET_DIGITAL_SALES", + "CET_MOBILE_SITES" + ], + "description": "The type of the exam.", + "type": "string" + }, "passed": { "description": "Whether this exam has been passed and not expired.", "type": "boolean" @@ -3250,53 +2915,19 @@ "format": "google-datetime", "description": "The date the user last passed this exam.", "type": "string" - }, - "examType": { - "enum": [ - "CERTIFICATION_EXAM_TYPE_UNSPECIFIED", - "CET_ADWORDS_FUNDAMENTALS", - "CET_ADWORDS_ADVANCED_SEARCH", - "CET_ADWORDS_ADVANCED_DISPLAY", - "CET_VIDEO_ADS", - "CET_DOUBLECLICK", - "CET_ANALYTICS", - "CET_SHOPPING", - "CET_MOBILE", - "CET_DIGITAL_SALES", - "CET_MOBILE_SITES" - ], - "description": "The type of the exam.", - "type": "string", - "enumDescriptions": [ - "Unchosen.", - "Adwords Fundamentals exam.", - "AdWords advanced search exam.", - "AdWords advanced display exam.", - "VideoAds exam.", - "DoubleClick exam.", - "Analytics exam.", - "Shopping exam.", - "Mobile exam.", - "Digital Sales exam.", - "Mobile Sites exam." - ] } }, "id": "ExamStatus" }, "ListOffersResponse": { + "description": "Response for ListOffer.", + "type": "object", "properties": { "responseMetadata": { - "$ref": "ResponseMetadata", - "description": "Current response metadata." + "description": "Current response metadata.", + "$ref": "ResponseMetadata" }, "noOfferReason": { - "enumDescriptions": [ - "Unset.", - "Not an MCC.", - "Offer limit has been reached.", - "Ineligible for offers." - ], "enum": [ "NO_OFFER_REASON_UNSPECIFIED", "NO_OFFER_REASON_NO_MCC", @@ -3304,7 +2935,13 @@ "NO_OFFER_REASON_INELIGIBLE" ], "description": "Reason why no Offers are available.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unset.", + "Not an MCC.", + "Offer limit has been reached.", + "Ineligible for offers." + ] }, "availableOffers": { "description": "Available Offers to be distributed.", @@ -3314,9 +2951,7 @@ "type": "array" } }, - "id": "ListOffersResponse", - "description": "Response for ListOffer.", - "type": "object" + "id": "ListOffersResponse" }, "CountryOfferInfo": { "properties": { @@ -3329,6 +2964,12 @@ "type": "string" }, "offerType": { + "enumDescriptions": [ + "Unset.", + "AdWords spend X get Y.", + "Youtube video.", + "Spend Match up to Y." + ], "enum": [ "OFFER_TYPE_UNSPECIFIED", "OFFER_TYPE_SPEND_X_GET_Y", @@ -3336,13 +2977,7 @@ "OFFER_TYPE_SPEND_MATCH" ], "description": "Type of offer country is eligible for.", - "type": "string", - "enumDescriptions": [ - "Unset.", - "AdWords spend X get Y.", - "Youtube video.", - "Spend Match up to Y." - ] + "type": "string" }, "getYAmount": { "description": "(localized) Get Y amount for that country's offer.", @@ -3354,6 +2989,8 @@ "type": "object" }, "ListCompaniesResponse": { + "description": "Response message for\nListCompanies.", + "type": "object", "properties": { "nextPageToken": { "description": "A token to retrieve next page of results.\nPass this value in the `ListCompaniesRequest.page_token` field in the\nsubsequent call to\nListCompanies to retrieve the\nnext page of results.", @@ -3371,12 +3008,18 @@ "type": "array" } }, - "id": "ListCompaniesResponse", - "description": "Response message for\nListCompanies.", - "type": "object" + "id": "ListCompaniesResponse" }, "OfferCustomer": { "properties": { + "name": { + "description": "Name of the customer.", + "type": "string" + }, + "spendXAmount": { + "description": "Formatted Spend X amount with currency code.", + "type": "string" + }, "adwordsUrl": { "description": "URL to the customer's AdWords page.", "type": "string" @@ -3386,22 +3029,7 @@ "description": "Days the customer is still eligible.", "type": "integer" }, - "creationTime": { - "format": "google-datetime", - "description": "Time the customer was created.", - "type": "string" - }, - "countryCode": { - "description": "Country code of the customer.", - "type": "string" - }, "offerType": { - "enumDescriptions": [ - "Unset.", - "AdWords spend X get Y.", - "Youtube video.", - "Spend Match up to Y." - ], "enum": [ "OFFER_TYPE_UNSPECIFIED", "OFFER_TYPE_SPEND_X_GET_Y", @@ -3409,24 +3037,31 @@ "OFFER_TYPE_SPEND_MATCH" ], "description": "Type of the offer", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unset.", + "AdWords spend X get Y.", + "Youtube video.", + "Spend Match up to Y." + ] }, "externalCid": { "format": "int64", "description": "External CID for the customer.", "type": "string" }, + "countryCode": { + "description": "Country code of the customer.", + "type": "string" + }, + "creationTime": { + "format": "google-datetime", + "description": "Time the customer was created.", + "type": "string" + }, "getYAmount": { "description": "Formatted Get Y amount with currency code.", "type": "string" - }, - "name": { - "description": "Name of the customer.", - "type": "string" - }, - "spendXAmount": { - "description": "Formatted Spend X amount with currency code.", - "type": "string" } }, "id": "OfferCustomer", @@ -3489,13 +3124,7 @@ "type": "object" }, "LocalizedCompanyInfo": { - "description": "The localized company information.", - "type": "object", "properties": { - "languageCode": { - "description": "Language code of the localized company info, as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", - "type": "string" - }, "countryCodes": { "description": "List of country codes for the localized company info.", "items": { @@ -3510,20 +3139,26 @@ "displayName": { "description": "Localized display name.", "type": "string" + }, + "languageCode": { + "description": "Language code of the localized company info, as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", + "type": "string" } }, - "id": "LocalizedCompanyInfo" + "id": "LocalizedCompanyInfo", + "description": "The localized company information.", + "type": "object" }, "LogUserEventResponse": { - "description": "Response message for\nLogUserEvent.", - "type": "object", "properties": { "responseMetadata": { - "description": "Current response metadata.", - "$ref": "ResponseMetadata" + "$ref": "ResponseMetadata", + "description": "Current response metadata." } }, - "id": "LogUserEventResponse" + "id": "LogUserEventResponse", + "description": "Response message for\nLogUserEvent.", + "type": "object" }, "ListOffersHistoryResponse": { "properties": { @@ -3552,8 +3187,8 @@ "type": "string" }, "responseMetadata": { - "description": "Current response metadata.", - "$ref": "ResponseMetadata" + "$ref": "ResponseMetadata", + "description": "Current response metadata." } }, "id": "ListOffersHistoryResponse", @@ -3561,17 +3196,19 @@ "type": "object" }, "LogMessageResponse": { - "description": "Response message for\nLogClientMessage.", - "type": "object", "properties": { "responseMetadata": { - "$ref": "ResponseMetadata", - "description": "Current response metadata." + "description": "Current response metadata.", + "$ref": "ResponseMetadata" } }, - "id": "LogMessageResponse" + "id": "LogMessageResponse", + "description": "Response message for\nLogClientMessage.", + "type": "object" }, "SpecializationStatus": { + "description": "Agency specialization status", + "type": "object", "properties": { "badgeSpecializationState": { "enumDescriptions": [ @@ -3590,6 +3227,14 @@ "type": "string" }, "badgeSpecialization": { + "enumDescriptions": [ + "Unknown specialization", + "AdWords Search specialization", + "AdWords Display specialization", + "AdWords Mobile specialization", + "AdWords Video specialization", + "AdWords Shopping specialization" + ], "enum": [ "BADGE_SPECIALIZATION_UNKNOWN", "BADGE_SPECIALIZATION_ADWORDS_SEARCH", @@ -3599,40 +3244,403 @@ "BADGE_SPECIALIZATION_ADWORDS_SHOPPING" ], "description": "The specialization this status is for.", - "type": "string", - "enumDescriptions": [ - "Unknown specialization", - "AdWords Search specialization", - "AdWords Display specialization", - "AdWords Mobile specialization", - "AdWords Video specialization", - "AdWords Shopping specialization" - ] + "type": "string" } }, - "id": "SpecializationStatus", - "description": "Agency specialization status", + "id": "SpecializationStatus" + }, + "Certification": { + "properties": { + "warning": { + "description": "Whether this certification is in the state of warning.", + "type": "boolean" + }, + "expiration": { + "format": "google-datetime", + "description": "Date this certification is due to expire.", + "type": "string" + }, + "achieved": { + "description": "Whether this certification has been achieved.", + "type": "boolean" + }, + "certificationType": { + "enumDescriptions": [ + "Unchosen.", + "AdWords certified.", + "YouTube certified.", + "VideoAds certified.", + "Analytics certified.", + "DoubleClick certified.", + "Shopping certified.", + "Mobile certified.", + "Digital sales certified.", + "AdWords Search certified.", + "AdWords Display certified.", + "Mobile Sites certified." + ], + "enum": [ + "CERTIFICATION_TYPE_UNSPECIFIED", + "CT_ADWORDS", + "CT_YOUTUBE", + "CT_VIDEOADS", + "CT_ANALYTICS", + "CT_DOUBLECLICK", + "CT_SHOPPING", + "CT_MOBILE", + "CT_DIGITAL_SALES", + "CT_ADWORDS_SEARCH", + "CT_ADWORDS_DISPLAY", + "CT_MOBILE_SITES" + ], + "description": "The type of certification, the area of expertise.", + "type": "string" + }, + "lastAchieved": { + "format": "google-datetime", + "description": "The date the user last achieved certification.", + "type": "string" + } + }, + "id": "Certification", + "description": "A user's information on a specific certification.", + "type": "object" + }, + "User": { + "description": "A resource representing a user of the Partners platform.", + "type": "object", + "properties": { + "lastAccessTime": { + "format": "google-datetime", + "description": "The most recent time the user interacted with the Partners site.\n@OutputOnly", + "type": "string" + }, + "primaryEmails": { + "description": "The list of emails the user has access to/can select as primary.\n@OutputOnly", + "items": { + "type": "string" + }, + "type": "array" + }, + "availableAdwordsManagerAccounts": { + "description": "This is the list of AdWords Manager Accounts the user has edit access to.\nIf the user has edit access to multiple accounts, the user can choose the\npreferred account and we use this when a personal account is needed. Can\nbe empty meaning the user has access to no accounts.\n@OutputOnly", + "items": { + "$ref": "AdWordsManagerAccountInfo" + }, + "type": "array" + }, + "internalId": { + "description": "The internal user ID.\nOnly available for a whitelisted set of api clients.", + "type": "string" + }, + "examStatus": { + "description": "The list of exams the user ever taken. For each type of exam, only one\nentry is listed.", + "items": { + "$ref": "ExamStatus" + }, + "type": "array" + }, + "id": { + "description": "The ID of the user.", + "type": "string" + }, + "publicProfile": { + "description": "Information about a user's external public profile outside Google Partners.", + "$ref": "PublicProfile" + }, + "companyVerificationEmail": { + "description": "The email address used by the user used for company verification.\n@OutputOnly", + "type": "string" + }, + "certificationStatus": { + "description": "The list of achieved certifications. These are calculated based on exam\nresults and other requirements.\n@OutputOnly", + "items": { + "$ref": "Certification" + }, + "type": "array" + }, + "company": { + "description": "The company that the user is associated with.\nIf not present, the user is not associated with any company.", + "$ref": "CompanyRelation" + }, + "profile": { + "description": "The profile information of a Partners user, contains all the directly\neditable user information.", + "$ref": "UserProfile" + } + }, + "id": "User" + }, + "ListAnalyticsResponse": { + "properties": { + "analytics": { + "description": "The list of analytics.\nSorted in ascending order of\nAnalytics.event_date.", + "items": { + "$ref": "Analytics" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results.\nPass this value in the `ListAnalyticsRequest.page_token` field in the\nsubsequent call to\nListAnalytics to retrieve the\nnext page of results.", + "type": "string" + }, + "analyticsSummary": { + "description": "Aggregated information across the response's\nanalytics.", + "$ref": "AnalyticsSummary" + }, + "responseMetadata": { + "description": "Current response metadata.", + "$ref": "ResponseMetadata" + } + }, + "id": "ListAnalyticsResponse", + "description": "Response message for\nListAnalytics.", + "type": "object" + }, + "ListLeadsResponse": { + "description": "Response message for ListLeads.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results.\nPass this value in the `ListLeadsRequest.page_token` field in the\nsubsequent call to\nListLeads to retrieve the\nnext page of results.", + "type": "string" + }, + "totalSize": { + "format": "int32", + "description": "The total count of leads for the given company.", + "type": "integer" + }, + "responseMetadata": { + "description": "Current response metadata.", + "$ref": "ResponseMetadata" + }, + "leads": { + "description": "The list of leads.", + "items": { + "$ref": "Lead" + }, + "type": "array" + } + }, + "id": "ListLeadsResponse" + }, + "Company": { + "properties": { + "locations": { + "description": "The list of all company locations.\nIf set, must include the\nprimary_location\nin the list.", + "items": { + "$ref": "Location" + }, + "type": "array" + }, + "convertedMinMonthlyBudget": { + "$ref": "Money", + "description": "The minimum monthly budget that the company accepts for partner business,\nconverted to the requested currency code." + }, + "industries": { + "enumDescriptions": [ + "Unchosen.", + "The automotive industry.", + "The business-to-business industry.", + "The consumer packaged goods industry.", + "The education industry.", + "The finance industry.", + "The healthcare industry.", + "The media and entertainment industry.", + "The retail industry.", + "The technology industry.", + "The travel industry." + ], + "description": "Industries the company can help with.", + "items": { + "enum": [ + "INDUSTRY_UNSPECIFIED", + "I_AUTOMOTIVE", + "I_BUSINESS_TO_BUSINESS", + "I_CONSUMER_PACKAGED_GOODS", + "I_EDUCATION", + "I_FINANCE", + "I_HEALTHCARE", + "I_MEDIA_AND_ENTERTAINMENT", + "I_RETAIL", + "I_TECHNOLOGY", + "I_TRAVEL" + ], + "type": "string" + }, + "type": "array" + }, + "additionalWebsites": { + "description": "URL of the company's additional websites used to verify the dynamic badges.\nThese are stored as full URLs as entered by the user, but only the TLD will\nbe used for the actual verification.", + "items": { + "type": "string" + }, + "type": "array" + }, + "websiteUrl": { + "description": "URL of the company's website.", + "type": "string" + }, + "primaryAdwordsManagerAccountId": { + "format": "int64", + "description": "The Primary AdWords Manager Account id.", + "type": "string" + }, + "name": { + "description": "The name of the company.", + "type": "string" + }, + "localizedInfos": { + "description": "The list of localized info for the company.", + "items": { + "$ref": "LocalizedCompanyInfo" + }, + "type": "array" + }, + "id": { + "description": "The ID of the company.", + "type": "string" + }, + "certificationStatuses": { + "description": "The list of Google Partners certification statuses for the company.", + "items": { + "$ref": "CertificationStatus" + }, + "type": "array" + }, + "originalMinMonthlyBudget": { + "$ref": "Money", + "description": "The unconverted minimum monthly budget that the company accepts for partner\nbusiness." + }, + "services": { + "enumDescriptions": [ + "Unchosen.", + "Help with advanced AdWords support.", + "Help with advertising on Google.", + "Help with an enhanced website.", + "Help with an online marketing plan.", + "Help with mobile and video ads.", + "Help with mobile websites." + ], + "description": "Services the company can help with.", + "items": { + "enum": [ + "SERVICE_UNSPECIFIED", + "S_ADVANCED_ADWORDS_SUPPORT", + "S_ADVERTISING_ON_GOOGLE", + "S_AN_ENHANCED_WEBSITE", + "S_AN_ONLINE_MARKETING_PLAN", + "S_MOBILE_AND_VIDEO_ADS", + "S_MOBILE_WEBSITE_SERVICES" + ], + "type": "string" + }, + "type": "array" + }, + "primaryLocation": { + "$ref": "Location", + "description": "The primary location of the company." + }, + "publicProfile": { + "$ref": "PublicProfile", + "description": "Basic information from the company's public profile." + }, + "ranks": { + "description": "Information related to the ranking of the company within the list of\ncompanies.", + "items": { + "$ref": "Rank" + }, + "type": "array" + }, + "badgeTier": { + "enumDescriptions": [ + "Tier badge is not set.", + "Agency has regular partner badge.", + "Agency has premier badge." + ], + "enum": [ + "BADGE_TIER_NONE", + "BADGE_TIER_REGULAR", + "BADGE_TIER_PREMIER" + ], + "description": "Partner badge tier", + "type": "string" + }, + "specializationStatus": { + "description": "The list of Google Partners specialization statuses for the company.", + "items": { + "$ref": "SpecializationStatus" + }, + "type": "array" + }, + "companyTypes": { + "description": "Company type labels listed on the company's profile.", + "items": { + "enum": [ + "COMPANY_TYPE_UNSPECIFIED", + "FULL_SERVICE_AGENCY", + "MEDIA_AGENCY", + "CREATIVE_AGENCY", + "CDIGITAL_AGENCY", + "SEM_SEO", + "PERFORMANCE_MARKETING", + "ADVERTISING_TOOL_DEVELOPMENT", + "PR", + "SELF_MANAGED", + "RESELLER" + ], + "type": "string" + }, + "type": "array", + "enumDescriptions": [ + "Unchosen.", + "Handles all aspects of the advertising process.", + "Focuses solely on an advertiser's media placement.", + "Plans/executes advertising campaigns.", + "Like a\nFULL_SERVICE_AGENCY,\nbut specializing in digital.", + "Increases visibility in search engine result pages.", + "Drives promotional efforts for immediate impact.", + "Focuses on bid management, conversion, reporting.", + "Establishes favorable relationship with public through low/no-cost\ncommunications.", + "Does not manage other company's accounts, manages own marketing programs.", + "Full-service AdWords account management for local businesses." + ] + }, + "autoApprovalEmailDomains": { + "description": "Email domains that allow users with a matching email address to get\nauto-approved for associating with this company.", + "items": { + "type": "string" + }, + "type": "array" + }, + "profileStatus": { + "enumDescriptions": [ + "Unchosen.", + "Company profile does not show up publicly.", + "Company profile can only be viewed by the profile's URL\nand not by Google Partner Search.", + "Company profile can be viewed by the profile's URL\nand by Google Partner Search." + ], + "enum": [ + "COMPANY_PROFILE_STATUS_UNSPECIFIED", + "HIDDEN", + "PUBLISHED", + "SEARCHABLE" + ], + "description": "The public viewability status of the company's profile.", + "type": "string" + }, + "primaryLanguageCode": { + "description": "The primary language code of the company, as defined by\n\u003ca href=\"https://tools.ietf.org/html/bcp47\"\u003eBCP 47\u003c/a\u003e\n(IETF BCP 47, \"Tags for Identifying Languages\").", + "type": "string" + } + }, + "id": "Company", + "description": "A company resource in the Google Partners API. Once certified, it qualifies\nfor being searched by advertisers.", "type": "object" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "version": "v2", - "baseUrl": "https://partners.googleapis.com/", - "canonicalName": "Partners", - "servicePath": "", - "description": "Searches certified companies and creates contact leads with them, and also audits the usage of clients.", - "kind": "discovery#restDescription", - "rootUrl": "https://partners.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "partners", - "batchPath": "batch", - "id": "partners:v2", - "revision": "20170912", - "documentationLink": "https://developers.google.com/partners/", - "title": "Google Partners API" + "protocol": "rest" } diff --git a/vendor/google.golang.org/api/partners/v2/partners-gen.go b/vendor/google.golang.org/api/partners/v2/partners-gen.go index 906984171..3b153e704 100644 --- a/vendor/google.golang.org/api/partners/v2/partners-gen.go +++ b/vendor/google.golang.org/api/partners/v2/partners-gen.go @@ -2419,6 +2419,10 @@ type LogUserEventRequest struct { // Terms Of Service` button. // "SMB_ENTERED_WEBSITE_IN_CONTACT_PARTNER_FORM" - Advertiser entered // website in contact form. + // "AGENCY_SELECTED_OPT_IN_AFA_MIGRATION" - Agency opted in for + // migrating their exams to Academy for Ads. + // "AGENCY_SELECTED_OPT_OUT_AFA_MIGRATION" - Agency opted out for + // migrating their exams to Academy for Ads. EventAction string `json:"eventAction,omitempty"` // EventCategory: The category the action belongs to. @@ -3129,6 +3133,10 @@ type UserProfile struct { // interested in. Markets []string `json:"markets,omitempty"` + // MigrateToAfa: Whether or not to migrate the user's exam data to + // Academy for Ads. + MigrateToAfa bool `json:"migrateToAfa,omitempty"` + // PhoneNumber: The user's phone number. PhoneNumber string `json:"phoneNumber,omitempty"` diff --git a/vendor/google.golang.org/api/people/v1/people-api.json b/vendor/google.golang.org/api/people/v1/people-api.json index f0eee4e3f..385dedba1 100644 --- a/vendor/google.golang.org/api/people/v1/people-api.json +++ b/vendor/google.golang.org/api/people/v1/people-api.json @@ -1,29 +1,773 @@ { - "kind": "discovery#restDescription", - "description": "Provides access to information about profiles and contacts.", - "servicePath": "", - "basePath": "", - "revision": "20170928", - "documentationLink": "https://developers.google.com/people/", - "id": "people:v1", - "discoveryVersion": "v1", - "version_module": true, "schemas": { + "Residence": { + "properties": { + "value": { + "description": "The address of the residence.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the residence." + }, + "current": { + "description": "True if the residence is the person's current residence;\nfalse if the residence is a past residence.", + "type": "boolean" + } + }, + "id": "Residence", + "description": "A person's past or current residence.", + "type": "object" + }, + "Event": { + "description": "An event related to the person.", + "type": "object", + "properties": { + "date": { + "description": "The date of the event.", + "$ref": "Date" + }, + "formattedType": { + "description": "The read-only type of the event translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the event." + }, + "type": { + "description": "The type of the event. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `anniversary`\n* `other`", + "type": "string" + } + }, + "id": "Event" + }, + "ModifyContactGroupMembersResponse": { + "description": "The response to a modify contact group members request.", + "type": "object", + "properties": { + "notFoundResourceNames": { + "description": "The contact people resource names that were not found.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "ModifyContactGroupMembersResponse" + }, + "ProfileMetadata": { + "properties": { + "userTypes": { + "enumDescriptions": [ + "The user type is not known.", + "The user is a Google user.", + "The user is a Google+ user.", + "The user is a Google Apps for Work user." + ], + "description": "The user types.", + "type": "array", + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + } + }, + "objectType": { + "enumDescriptions": [ + "Unspecified.", + "Person.", + "[Google+ Page.](http://www.google.com/+/brands/)" + ], + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "description": "The profile object type.", + "type": "string" + } + }, + "id": "ProfileMetadata", + "description": "The read-only metadata about a profile.", + "type": "object" + }, + "Gender": { + "properties": { + "value": { + "description": "The gender for the person. The gender can be custom or predefined.\nPossible values include, but are not limited to, the\nfollowing:\n\n* `male`\n* `female`\n* `other`\n* `unknown`", + "type": "string" + }, + "formattedValue": { + "description": "The read-only value of the gender translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the gender." + } + }, + "id": "Gender", + "description": "A person's gender.", + "type": "object" + }, + "CoverPhoto": { + "properties": { + "url": { + "description": "The URL of the cover photo.", + "type": "string" + }, + "metadata": { + "description": "Metadata about the cover photo.", + "$ref": "FieldMetadata" + }, + "default": { + "description": "True if the cover photo is the default cover photo;\nfalse if the cover photo is a user-provided cover photo.", + "type": "boolean" + } + }, + "id": "CoverPhoto", + "description": "A person's read-only cover photo. A large image shown on the person's\nprofile page that represents who they are or what they care about.", + "type": "object" + }, + "Interest": { + "description": "One of the person's interests.", + "type": "object", + "properties": { + "value": { + "description": "The interest; for example, `stargazing`.", + "type": "string" + }, + "metadata": { + "description": "Metadata about the interest.", + "$ref": "FieldMetadata" + } + }, + "id": "Interest" + }, + "EmailAddress": { + "description": "A person's email address.", + "type": "object", + "properties": { + "value": { + "description": "The email address.", + "type": "string" + }, + "formattedType": { + "description": "The read-only type of the email address translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, + "displayName": { + "description": "The display name of the email.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the email address." + }, + "type": { + "description": "The type of the email address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`", + "type": "string" + } + }, + "id": "EmailAddress" + }, + "Nickname": { + "description": "A person's nickname.", + "type": "object", + "properties": { + "value": { + "description": "The nickname.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the nickname." + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME" + ], + "description": "The type of the nickname.", + "type": "string", + "enumDescriptions": [ + "Generic nickname.", + "Maiden name or birth family name. Used when the person's family name has\nchanged as a result of marriage.", + "Initials.", + "Google+ profile nickname.", + "A professional affiliation or other name; for example, `Dr. Smith.`" + ] + } + }, + "id": "Nickname" + }, + "Skill": { + "properties": { + "metadata": { + "description": "Metadata about the skill.", + "$ref": "FieldMetadata" + }, + "value": { + "description": "The skill; for example, `underwater basket weaving`.", + "type": "string" + } + }, + "id": "Skill", + "description": "A skill that the person has.", + "type": "object" + }, + "Tagline": { + "description": "A read-only brief one-line description of the person.", + "type": "object", + "properties": { + "value": { + "description": "The tagline.", + "type": "string" + }, + "metadata": { + "description": "Metadata about the tagline.", + "$ref": "FieldMetadata" + } + }, + "id": "Tagline" + }, + "Date": { + "properties": { + "month": { + "description": "Month of year. Must be from 1 to 12.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "format": "int32", + "type": "integer" + }, + "day": { + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "format": "int32", + "type": "integer" + } + }, + "id": "Date", + "description": "Represents a whole calendar date, for example a date of birth. The time\nof day and time zone are either specified elsewhere or are not\nsignificant. The date is relative to the\n[Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).\nThe day may be 0 to represent a year and month where the day is not\nsignificant. The year may be 0 to represent a month and day independent\nof year; for example, anniversary date.", + "type": "object" + }, + "Name": { + "properties": { + "phoneticFullName": { + "description": "The full name spelled as it sounds.", + "type": "string" + }, + "displayNameLastFirst": { + "description": "The read-only display name with the last name first formatted according to\nthe locale specified by the viewer's account or the\n`Accept-Language` HTTP header.", + "type": "string" + }, + "displayName": { + "description": "The read-only display name formatted according to the locale specified by\nthe viewer's account or the `Accept-Language` HTTP header.", + "type": "string" + }, + "honorificSuffix": { + "description": "The honorific suffixes, such as `Jr.`", + "type": "string" + }, + "honorificPrefix": { + "description": "The honorific prefixes, such as `Mrs.` or `Dr.`", + "type": "string" + }, + "phoneticHonorificSuffix": { + "description": "The honorific suffixes spelled as they sound.", + "type": "string" + }, + "middleName": { + "description": "The middle name(s).", + "type": "string" + }, + "givenName": { + "description": "The given name.", + "type": "string" + }, + "phoneticHonorificPrefix": { + "description": "The honorific prefixes spelled as they sound.", + "type": "string" + }, + "phoneticGivenName": { + "description": "The given name spelled as it sounds.", + "type": "string" + }, + "phoneticFamilyName": { + "description": "The family name spelled as it sounds.", + "type": "string" + }, + "familyName": { + "description": "The family name.", + "type": "string" + }, + "phoneticMiddleName": { + "description": "The middle name(s) spelled as they sound.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the name." + } + }, + "id": "Name", + "description": "A person's name. If the name is a mononym, the family name is empty.", + "type": "object" + }, + "Locale": { + "properties": { + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the locale." + }, + "value": { + "description": "The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)\nlanguage tag representing the locale.", + "type": "string" + } + }, + "id": "Locale", + "description": "A person's locale preference.", + "type": "object" + }, + "Empty": { + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" + }, + "UserDefined": { + "properties": { + "value": { + "description": "The end user specified value of the user defined data.", + "type": "string" + }, + "key": { + "description": "The end user specified key of the user defined data.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the user defined data." + } + }, + "id": "UserDefined", + "description": "Arbitrary user data that is populated by the end users.", + "type": "object" + }, + "Biography": { + "properties": { + "contentType": { + "enumDescriptions": [ + "Unspecified.", + "Plain text.", + "HTML text." + ], + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "description": "The content type of the biography.", + "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the biography." + }, + "value": { + "description": "The short biography.", + "type": "string" + } + }, + "id": "Biography", + "description": "A person's short biography.", + "type": "object" + }, + "FieldMetadata": { + "properties": { + "primary": { + "description": "True if the field is the primary field; false if the field is a secondary\nfield.", + "type": "boolean" + }, + "source": { + "$ref": "Source", + "description": "The source of the field." + }, + "verified": { + "description": "True if the field is verified; false if the field is unverified. A\nverified field is typically a name, email address, phone number, or\nwebsite that has been confirmed to be owned by the person.", + "type": "boolean" + } + }, + "id": "FieldMetadata", + "description": "Metadata about a field.", + "type": "object" + }, + "RelationshipInterest": { + "properties": { + "value": { + "description": "The kind of relationship the person is looking for. The value can be custom\nor predefined. Possible values include, but are not limited to, the\nfollowing values:\n\n* `friend`\n* `date`\n* `relationship`\n* `networking`", + "type": "string" + }, + "formattedValue": { + "description": "The value of the relationship interest translated and formatted in the\nviewer's account locale or the locale specified in the Accept-Language\nHTTP header.", + "type": "string" + }, + "metadata": { + "description": "Metadata about the relationship interest.", + "$ref": "FieldMetadata" + } + }, + "id": "RelationshipInterest", + "description": "A person's read-only relationship interest .", + "type": "object" + }, + "Source": { + "description": "The source of a field.", + "type": "object", + "properties": { + "updateTime": { + "description": "**Only populated in `person.metadata.sources`.**\n\nLast update timestamp of this source.", + "format": "google-datetime", + "type": "string" + }, + "type": { + "enumDescriptions": [ + "Unspecified.", + "[Google Account](https://accounts.google.com).", + "[Google profile](https://profiles.google.com). You can view the\nprofile at https://profiles.google.com/\u003cvar\u003eid\u003c/var\u003e where\n\u003cvar\u003eid\u003c/var\u003e is the source id.", + "[Google Apps domain profile](https://admin.google.com).", + "[Google contact](https://contacts.google.com). You can view the\ncontact at https://contact.google.com/\u003cvar\u003eid\u003c/var\u003e where \u003cvar\u003eid\u003c/var\u003e\nis the source id." + ], + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT" + ], + "description": "The source type.", + "type": "string" + }, + "etag": { + "description": "**Only populated in `person.metadata.sources`.**\n\nThe [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nsource. Used for web cache validation.", + "type": "string" + }, + "id": { + "description": "The unique identifier within the source type generated by the server.", + "type": "string" + }, + "profileMetadata": { + "description": "**Only populated in `person.metadata.sources`.**\n\nMetadata about a source of type PROFILE.", + "$ref": "ProfileMetadata" + } + }, + "id": "Source" + }, + "GetPeopleResponse": { + "type": "object", + "properties": { + "responses": { + "description": "The response for each requested resource name.", + "type": "array", + "items": { + "$ref": "PersonResponse" + } + } + }, + "id": "GetPeopleResponse" + }, + "Photo": { + "description": "A person's read-only photo. A picture shown next to the person's name to\nhelp others recognize the person.", + "type": "object", + "properties": { + "url": { + "description": "The URL of the photo. You can change the desired size by appending a query\nparameter `sz=`\u003cvar\u003esize\u003c/var\u003e at the end of the url. Example:\n`https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`", + "type": "string" + }, + "metadata": { + "description": "Metadata about the photo.", + "$ref": "FieldMetadata" + }, + "default": { + "description": "True if the photo is a default photo;\nfalse if the photo is a user-provided photo.", + "type": "boolean" + } + }, + "id": "Photo" + }, + "PhoneNumber": { + "properties": { + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the phone number." + }, + "type": { + "description": "The type of the phone number. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `mobile`\n* `homeFax`\n* `workFax`\n* `otherFax`\n* `pager`\n* `workMobile`\n* `workPager`\n* `main`\n* `googleVoice`\n* `other`", + "type": "string" + }, + "value": { + "description": "The phone number.", + "type": "string" + }, + "formattedType": { + "description": "The read-only type of the phone number translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, + "canonicalForm": { + "description": "The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)\nform of the phone number.", + "type": "string" + } + }, + "id": "PhoneNumber", + "description": "A person's phone number.", + "type": "object" + }, + "ListConnectionsResponse": { + "properties": { + "nextPageToken": { + "description": "The token that can be used to retrieve the next page of results.", + "type": "string" + }, + "connections": { + "description": "The list of people that the requestor is connected to.", + "type": "array", + "items": { + "$ref": "Person" + } + }, + "nextSyncToken": { + "description": "The token that can be used to retrieve changes since the last request.", + "type": "string" + }, + "totalItems": { + "description": "The total number of items in the list without pagination.", + "format": "int32", + "type": "integer" + }, + "totalPeople": { + "description": "**DEPRECATED** (Please use totalItems)\nThe total number of people in the list without pagination.", + "format": "int32", + "type": "integer" + } + }, + "id": "ListConnectionsResponse", + "type": "object" + }, + "Birthday": { + "description": "A person's birthday. At least one of the `date` and `text` fields are\nspecified. The `date` and `text` fields typically represent the same\ndate, but are not guaranteed to.", + "type": "object", + "properties": { + "metadata": { + "description": "Metadata about the birthday.", + "$ref": "FieldMetadata" + }, + "text": { + "description": "A free-form string representing the user's birthday.", + "type": "string" + }, + "date": { + "description": "The date of the birthday.", + "$ref": "Date" + } + }, + "id": "Birthday" + }, + "CreateContactGroupRequest": { + "properties": { + "contactGroup": { + "$ref": "ContactGroup", + "description": "The contact group to create." + } + }, + "id": "CreateContactGroupRequest", + "description": "A request to create a new contact group.", + "type": "object" + }, + "Address": { + "properties": { + "poBox": { + "description": "The P.O. box of the address.", + "type": "string" + }, + "postalCode": { + "description": "The postal code of the address.", + "type": "string" + }, + "region": { + "description": "The region of the address; for example, the state or province.", + "type": "string" + }, + "streetAddress": { + "description": "The street address.", + "type": "string" + }, + "metadata": { + "description": "Metadata about the address.", + "$ref": "FieldMetadata" + }, + "countryCode": { + "description": "The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country\ncode of the address.", + "type": "string" + }, + "formattedType": { + "description": "The read-only type of the address translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, + "city": { + "description": "The city of the address.", + "type": "string" + }, + "formattedValue": { + "description": "The unstructured value of the address. If this is not set by the user it\nwill be automatically constructed from structured values.", + "type": "string" + }, + "country": { + "description": "The country of the address.", + "type": "string" + }, + "type": { + "description": "The type of the address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`", + "type": "string" + }, + "extendedAddress": { + "description": "The extended address of the address; for example, the apartment number.", + "type": "string" + } + }, + "id": "Address", + "description": "A person's physical address. May be a P.O. box or street address. All fields\nare optional.", + "type": "object" + }, + "ContactGroupMembership": { + "properties": { + "contactGroupId": { + "description": "The contact group ID for the contact group membership. The contact group\nID can be custom or predefined. Possible values include, but are not\nlimited to, the following:\n\n* `myContacts`\n* `starred`\n* A numerical ID for user-created groups.", + "type": "string" + } + }, + "id": "ContactGroupMembership", + "description": "A Google contact group membership.", + "type": "object" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + } + }, + "id": "Status" + }, + "PersonMetadata": { + "properties": { + "linkedPeopleResourceNames": { + "description": "Resource names of people linked to this resource.", + "type": "array", + "items": { + "type": "string" + } + }, + "sources": { + "description": "The sources of data for the person.", + "type": "array", + "items": { + "$ref": "Source" + } + }, + "previousResourceNames": { + "description": "Any former resource names this person has had. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.\n\nThe resource name may change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or\nprofile URL.", + "type": "array", + "items": { + "type": "string" + } + }, + "deleted": { + "description": "True if the person resource has been deleted. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.", + "type": "boolean" + }, + "objectType": { + "enumDescriptions": [ + "Unspecified.", + "Person.", + "[Google+ Page.](http://www.google.com/+/brands/)" + ], + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "description": "**DEPRECATED** (Please use\n`person.metadata.sources.profileMetadata.objectType` instead)\n\nThe type of the person object.", + "type": "string" + } + }, + "id": "PersonMetadata", + "description": "The read-only metadata about a person.", + "type": "object" + }, + "ModifyContactGroupMembersRequest": { + "description": "A request to modify an existing contact group's members.", + "type": "object", + "properties": { + "resourceNamesToAdd": { + "description": "The resource names of the contact people to add in the form of in the form\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourceNamesToRemove": { + "description": "The resource names of the contact people to remove in the form of in the\nform of `people/`\u003cvar\u003eperson_id\u003c/var\u003e.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "ModifyContactGroupMembersRequest" + }, "ContactGroupResponse": { "description": "The response for a specific contact group.", "type": "object", "properties": { - "contactGroup": { - "description": "The contact group.", - "$ref": "ContactGroup" - }, - "status": { - "description": "The status of the response.", - "$ref": "Status" - }, "requestedResourceName": { "description": "The original requested resource name.", "type": "string" + }, + "contactGroup": { + "$ref": "ContactGroup", + "description": "The contact group." + }, + "status": { + "$ref": "Status", + "description": "The status of the response." } }, "id": "ContactGroupResponse" @@ -32,14 +776,6 @@ "description": "A person's associated URLs.", "type": "object", "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the URL." - }, - "type": { - "description": "The type of the URL. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `blog`\n* `profile`\n* `homePage`\n* `ftp`\n* `reservations`\n* `appInstallPage`: website for a Google+ application.\n* `other`", - "type": "string" - }, "value": { "description": "The URL.", "type": "string" @@ -47,6 +783,14 @@ "formattedType": { "description": "The read-only type of the URL translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.", "type": "string" + }, + "metadata": { + "$ref": "FieldMetadata", + "description": "Metadata about the URL." + }, + "type": { + "description": "The type of the URL. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `blog`\n* `profile`\n* `homePage`\n* `ftp`\n* `reservations`\n* `appInstallPage`: website for a Google+ application.\n* `other`", + "type": "string" } }, "id": "Url" @@ -93,28 +837,7 @@ "description": "A Google Apps Domain membership.", "type": "object" }, - "Membership": { - "description": "A person's read-only membership in a group.", - "type": "object", - "properties": { - "contactGroupMembership": { - "description": "The contact group membership.", - "$ref": "ContactGroupMembership" - }, - "domainMembership": { - "$ref": "DomainMembership", - "description": "The domain membership." - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the membership." - } - }, - "id": "Membership" - }, "BatchGetContactGroupsResponse": { - "description": "The response to a batch get contact groups request.", - "type": "object", "properties": { "responses": { "description": "The list of responses for each requested contact group resource.", @@ -124,58 +847,65 @@ } } }, - "id": "BatchGetContactGroupsResponse" + "id": "BatchGetContactGroupsResponse", + "description": "The response to a batch get contact groups request.", + "type": "object" + }, + "Membership": { + "properties": { + "contactGroupMembership": { + "$ref": "ContactGroupMembership", + "description": "The contact group membership." + }, + "domainMembership": { + "$ref": "DomainMembership", + "description": "The domain membership." + }, + "metadata": { + "description": "Metadata about the membership.", + "$ref": "FieldMetadata" + } + }, + "id": "Membership", + "description": "A person's read-only membership in a group.", + "type": "object" }, "RelationshipStatus": { - "description": "A person's read-only relationship status.", - "type": "object", "properties": { + "formattedValue": { + "description": "The read-only value of the relationship status translated and formatted in\nthe viewer's account locale or the `Accept-Language` HTTP header locale.", + "type": "string" + }, "metadata": { "$ref": "FieldMetadata", "description": "Metadata about the relationship status." }, "value": { - "type": "string", - "description": "The relationship status. The value can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `single`\n* `inARelationship`\n* `engaged`\n* `married`\n* `itsComplicated`\n* `openRelationship`\n* `widowed`\n* `inDomesticPartnership`\n* `inCivilUnion`" - }, - "formattedValue": { - "type": "string", - "description": "The read-only value of the relationship status translated and formatted in\nthe viewer's account locale or the `Accept-Language` HTTP header locale." + "description": "The relationship status. The value can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `single`\n* `inARelationship`\n* `engaged`\n* `married`\n* `itsComplicated`\n* `openRelationship`\n* `widowed`\n* `inDomesticPartnership`\n* `inCivilUnion`", + "type": "string" } }, - "id": "RelationshipStatus" + "id": "RelationshipStatus", + "description": "A person's read-only relationship status.", + "type": "object" }, "BraggingRights": { - "description": "A person's bragging rights.", - "type": "object", "properties": { "value": { - "type": "string", - "description": "The bragging rights; for example, `climbed mount everest`." + "description": "The bragging rights; for example, `climbed mount everest`.", + "type": "string" }, "metadata": { "$ref": "FieldMetadata", "description": "Metadata about the bragging rights." } }, - "id": "BraggingRights" + "id": "BraggingRights", + "description": "A person's bragging rights.", + "type": "object" }, "Organization": { - "description": "A person's past or current organization. Overlapping date ranges are\npermitted.", - "type": "object", "properties": { - "metadata": { - "description": "Metadata about the organization.", - "$ref": "FieldMetadata" - }, - "title": { - "description": "The person's job title at the organization.", - "type": "string" - }, - "location": { - "type": "string", - "description": "The location of the organization office the person works at." - }, "current": { "description": "True if the organization is the person's current organization;\nfalse if the organization is a past organization.", "type": "boolean" @@ -219,25 +949,27 @@ "name": { "description": "The name of the organization.", "type": "string" - } - }, - "id": "Organization" - }, - "AgeRangeType": { - "description": "A person's age range.", - "type": "object", - "properties": { + }, "metadata": { - "description": "Metadata about the age range.", + "description": "Metadata about the organization.", "$ref": "FieldMetadata" }, + "location": { + "description": "The location of the organization office the person works at.", + "type": "string" + }, + "title": { + "description": "The person's job title at the organization.", + "type": "string" + } + }, + "id": "Organization", + "description": "A person's past or current organization. Overlapping date ranges are\npermitted.", + "type": "object" + }, + "AgeRangeType": { + "properties": { "ageRange": { - "enumDescriptions": [ - "Unspecified.", - "Younger than eighteen.", - "Between eighteen and twenty.", - "Twenty-one and older." - ], "enum": [ "AGE_RANGE_UNSPECIFIED", "LESS_THAN_EIGHTEEN", @@ -245,13 +977,32 @@ "TWENTY_ONE_OR_OLDER" ], "description": "The age range.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "Younger than eighteen.", + "Between eighteen and twenty.", + "Twenty-one and older." + ] + }, + "metadata": { + "description": "Metadata about the age range.", + "$ref": "FieldMetadata" } }, - "id": "AgeRangeType" + "id": "AgeRangeType", + "description": "A person's age range.", + "type": "object" }, "ListContactGroupsResponse": { "properties": { + "contactGroups": { + "description": "The list of contact groups. Members of the contact groups are not\npopulated.", + "type": "array", + "items": { + "$ref": "ContactGroup" + } + }, "nextPageToken": { "description": "The token that can be used to retrieve the next page of results.", "type": "string" @@ -264,13 +1015,6 @@ "nextSyncToken": { "description": "The token that can be used to retrieve changes since the last request.", "type": "string" - }, - "contactGroups": { - "description": "The list of contact groups. Members of the contact groups are not\npopulated.", - "type": "array", - "items": { - "$ref": "ContactGroup" - } } }, "id": "ListContactGroupsResponse", @@ -278,17 +1022,16 @@ "type": "object" }, "PersonResponse": { - "id": "PersonResponse", "description": "The response for a single person", "type": "object", "properties": { "person": { - "$ref": "Person", - "description": "The person." + "description": "The person.", + "$ref": "Person" }, "status": { - "description": "The status of the response.", - "$ref": "Status" + "$ref": "Status", + "description": "The status of the response." }, "httpStatusCode": { "description": "**DEPRECATED** (Please use status instead)\n\n[HTTP 1.1 status code]\n(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).", @@ -296,14 +1039,13 @@ "type": "integer" }, "requestedResourceName": { - "type": "string", - "description": "The original requested resource name. May be different than the resource\nname on the returned person.\n\nThe resource name can change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or a\nprofile URL." + "description": "The original requested resource name. May be different than the resource\nname on the returned person.\n\nThe resource name can change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or a\nprofile URL.", + "type": "string" } - } + }, + "id": "PersonResponse" }, "Relation": { - "description": "A person's relation to another person.", - "type": "object", "properties": { "metadata": { "$ref": "FieldMetadata", @@ -318,26 +1060,28 @@ "type": "string" }, "formattedType": { - "type": "string", - "description": "The type of the relation translated and formatted in the viewer's account\nlocale or the locale specified in the Accept-Language HTTP header." + "description": "The type of the relation translated and formatted in the viewer's account\nlocale or the locale specified in the Accept-Language HTTP header.", + "type": "string" } }, - "id": "Relation" + "id": "Relation", + "description": "A person's relation to another person.", + "type": "object" }, "Occupation": { - "description": "A person's occupation.", - "type": "object", "properties": { - "value": { - "type": "string", - "description": "The occupation; for example, `carpenter`." - }, "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the occupation." + "description": "Metadata about the occupation.", + "$ref": "FieldMetadata" + }, + "value": { + "description": "The occupation; for example, `carpenter`.", + "type": "string" } }, - "id": "Occupation" + "id": "Occupation", + "description": "A person's occupation.", + "type": "object" }, "ContactGroup": { "description": "A contact group.", @@ -351,23 +1095,23 @@ "description": "The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nresource. Used for web cache validation.", "type": "string" }, - "formattedName": { - "description": "The read-only name translated and formatted in the viewer's account locale\nor the `Accept-Language` HTTP header locale for system groups names.\nGroup names set by the owner are the same as name.", - "type": "string" - }, "groupType": { + "enumDescriptions": [ + "Unspecified.", + "User defined contact group.", + "System defined contact group." + ], "enum": [ "GROUP_TYPE_UNSPECIFIED", "USER_CONTACT_GROUP", "SYSTEM_CONTACT_GROUP" ], "description": "The read-only contact group type.", - "type": "string", - "enumDescriptions": [ - "Unspecified.", - "User defined contact group.", - "System defined contact group." - ] + "type": "string" + }, + "formattedName": { + "description": "The read-only name translated and formatted in the viewer's account locale\nor the `Accept-Language` HTTP header locale for system groups names.\nGroup names set by the owner are the same as name.", + "type": "string" }, "memberResourceNames": { "description": "The list of contact person resource names that are members of the contact\ngroup. The field is not populated for LIST requests and can only be updated\nthrough the\n[ModifyContactGroupMembers](/people/api/rest/v1/contactgroups/members/modify).", @@ -377,17 +1121,17 @@ } }, "name": { - "type": "string", - "description": "The contact group name set by the group owner or a system provided name\nfor system groups." - }, - "metadata": { - "description": "Metadata about the contact group.", - "$ref": "ContactGroupMetadata" + "description": "The contact group name set by the group owner or a system provided name\nfor system groups.", + "type": "string" }, "memberCount": { "description": "The total number of contacts in the group irrespective of max members in\nspecified in the request.", "format": "int32", "type": "integer" + }, + "metadata": { + "$ref": "ContactGroupMetadata", + "description": "Metadata about the contact group." } }, "id": "ContactGroup" @@ -396,159 +1140,6 @@ "description": "Information about a person merged from various data sources such as the\nauthenticated user's contacts and profile data.\n\nMost fields can have multiple items. The items in a field have no guaranteed\norder, but each non-empty field is guaranteed to have exactly one field with\n`metadata.primary` set to true.", "type": "object", "properties": { - "genders": { - "description": "The person's genders.", - "type": "array", - "items": { - "$ref": "Gender" - } - }, - "resourceName": { - "type": "string", - "description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e." - }, - "interests": { - "description": "The person's interests.", - "type": "array", - "items": { - "$ref": "Interest" - } - }, - "biographies": { - "description": "The person's biographies.", - "type": "array", - "items": { - "$ref": "Biography" - } - }, - "skills": { - "description": "The person's skills.", - "type": "array", - "items": { - "$ref": "Skill" - } - }, - "relationshipStatuses": { - "description": "The person's read-only relationship statuses.", - "type": "array", - "items": { - "$ref": "RelationshipStatus" - } - }, - "photos": { - "description": "The person's read-only photos.", - "type": "array", - "items": { - "$ref": "Photo" - } - }, - "ageRange": { - "enum": [ - "AGE_RANGE_UNSPECIFIED", - "LESS_THAN_EIGHTEEN", - "EIGHTEEN_TO_TWENTY", - "TWENTY_ONE_OR_OLDER" - ], - "description": "**DEPRECATED** (Please use `person.ageRanges` instead)**\n\nThe person's read-only age range.", - "type": "string", - "enumDescriptions": [ - "Unspecified.", - "Younger than eighteen.", - "Between eighteen and twenty.", - "Twenty-one and older." - ] - }, - "taglines": { - "description": "The person's read-only taglines.", - "type": "array", - "items": { - "$ref": "Tagline" - } - }, - "ageRanges": { - "description": "The person's read-only age ranges.", - "type": "array", - "items": { - "$ref": "AgeRangeType" - } - }, - "addresses": { - "description": "The person's street addresses.", - "type": "array", - "items": { - "$ref": "Address" - } - }, - "events": { - "description": "The person's events.", - "type": "array", - "items": { - "$ref": "Event" - } - }, - "memberships": { - "description": "The person's read-only group memberships.", - "type": "array", - "items": { - "$ref": "Membership" - } - }, - "phoneNumbers": { - "type": "array", - "items": { - "$ref": "PhoneNumber" - }, - "description": "The person's phone numbers." - }, - "coverPhotos": { - "description": "The person's read-only cover photos.", - "type": "array", - "items": { - "$ref": "CoverPhoto" - } - }, - "imClients": { - "description": "The person's instant messaging clients.", - "type": "array", - "items": { - "$ref": "ImClient" - } - }, - "birthdays": { - "type": "array", - "items": { - "$ref": "Birthday" - }, - "description": "The person's birthdays." - }, - "userDefined": { - "description": "The person's user defined data.", - "type": "array", - "items": { - "$ref": "UserDefined" - } - }, - "locales": { - "type": "array", - "items": { - "$ref": "Locale" - }, - "description": "The person's locale preferences." - }, - "relationshipInterests": { - "description": "The person's read-only relationship interests.", - "type": "array", - "items": { - "$ref": "RelationshipInterest" - } - }, - "urls": { - "description": "The person's associated URLs.", - "type": "array", - "items": { - "$ref": "Url" - } - }, "nicknames": { "description": "The person's nicknames.", "type": "array", @@ -612,6 +1203,159 @@ "items": { "$ref": "Residence" } + }, + "genders": { + "description": "The person's genders.", + "type": "array", + "items": { + "$ref": "Gender" + } + }, + "resourceName": { + "description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.", + "type": "string" + }, + "interests": { + "description": "The person's interests.", + "type": "array", + "items": { + "$ref": "Interest" + } + }, + "biographies": { + "description": "The person's biographies.", + "type": "array", + "items": { + "$ref": "Biography" + } + }, + "skills": { + "description": "The person's skills.", + "type": "array", + "items": { + "$ref": "Skill" + } + }, + "relationshipStatuses": { + "description": "The person's read-only relationship statuses.", + "type": "array", + "items": { + "$ref": "RelationshipStatus" + } + }, + "photos": { + "description": "The person's read-only photos.", + "type": "array", + "items": { + "$ref": "Photo" + } + }, + "ageRange": { + "enumDescriptions": [ + "Unspecified.", + "Younger than eighteen.", + "Between eighteen and twenty.", + "Twenty-one and older." + ], + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "description": "**DEPRECATED** (Please use `person.ageRanges` instead)**\n\nThe person's read-only age range.", + "type": "string" + }, + "taglines": { + "description": "The person's read-only taglines.", + "type": "array", + "items": { + "$ref": "Tagline" + } + }, + "ageRanges": { + "description": "The person's read-only age ranges.", + "type": "array", + "items": { + "$ref": "AgeRangeType" + } + }, + "addresses": { + "description": "The person's street addresses.", + "type": "array", + "items": { + "$ref": "Address" + } + }, + "events": { + "description": "The person's events.", + "type": "array", + "items": { + "$ref": "Event" + } + }, + "memberships": { + "description": "The person's read-only group memberships.", + "type": "array", + "items": { + "$ref": "Membership" + } + }, + "phoneNumbers": { + "description": "The person's phone numbers.", + "type": "array", + "items": { + "$ref": "PhoneNumber" + } + }, + "coverPhotos": { + "description": "The person's read-only cover photos.", + "type": "array", + "items": { + "$ref": "CoverPhoto" + } + }, + "imClients": { + "description": "The person's instant messaging clients.", + "type": "array", + "items": { + "$ref": "ImClient" + } + }, + "birthdays": { + "description": "The person's birthdays.", + "type": "array", + "items": { + "$ref": "Birthday" + } + }, + "userDefined": { + "description": "The person's user defined data.", + "type": "array", + "items": { + "$ref": "UserDefined" + } + }, + "locales": { + "description": "The person's locale preferences.", + "type": "array", + "items": { + "$ref": "Locale" + } + }, + "relationshipInterests": { + "description": "The person's read-only relationship interests.", + "type": "array", + "items": { + "$ref": "RelationshipInterest" + } + }, + "urls": { + "description": "The person's associated URLs.", + "type": "array", + "items": { + "$ref": "Url" + } } }, "id": "Person" @@ -628,8 +1372,6 @@ "type": "object" }, "ContactGroupMetadata": { - "description": "The read-only metadata about a contact group.", - "type": "object", "properties": { "updateTime": { "description": "The time the group was last updated.", @@ -641,777 +1383,20 @@ "type": "boolean" } }, - "id": "ContactGroupMetadata" - }, - "Residence": { - "properties": { - "value": { - "description": "The address of the residence.", - "type": "string" - }, - "metadata": { - "description": "Metadata about the residence.", - "$ref": "FieldMetadata" - }, - "current": { - "description": "True if the residence is the person's current residence;\nfalse if the residence is a past residence.", - "type": "boolean" - } - }, - "id": "Residence", - "description": "A person's past or current residence.", + "id": "ContactGroupMetadata", + "description": "The read-only metadata about a contact group.", "type": "object" - }, - "Event": { - "properties": { - "metadata": { - "description": "Metadata about the event.", - "$ref": "FieldMetadata" - }, - "type": { - "description": "The type of the event. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `anniversary`\n* `other`", - "type": "string" - }, - "date": { - "$ref": "Date", - "description": "The date of the event." - }, - "formattedType": { - "description": "The read-only type of the event translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", - "type": "string" - } - }, - "id": "Event", - "description": "An event related to the person.", - "type": "object" - }, - "ModifyContactGroupMembersResponse": { - "properties": { - "notFoundResourceNames": { - "description": "The contact people resource names that were not found.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "id": "ModifyContactGroupMembersResponse", - "description": "The response to a modify contact group members request.", - "type": "object" - }, - "ProfileMetadata": { - "type": "object", - "properties": { - "objectType": { - "type": "string", - "enumDescriptions": [ - "Unspecified.", - "Person.", - "[Google+ Page.](http://www.google.com/+/brands/)" - ], - "enum": [ - "OBJECT_TYPE_UNSPECIFIED", - "PERSON", - "PAGE" - ], - "description": "The profile object type." - }, - "userTypes": { - "description": "The user types.", - "type": "array", - "items": { - "enum": [ - "USER_TYPE_UNKNOWN", - "GOOGLE_USER", - "GPLUS_USER", - "GOOGLE_APPS_USER" - ], - "type": "string" - }, - "enumDescriptions": [ - "The user type is not known.", - "The user is a Google user.", - "The user is a Google+ user.", - "The user is a Google Apps for Work user." - ] - } - }, - "id": "ProfileMetadata", - "description": "The read-only metadata about a profile." - }, - "Gender": { - "description": "A person's gender.", - "type": "object", - "properties": { - "value": { - "description": "The gender for the person. The gender can be custom or predefined.\nPossible values include, but are not limited to, the\nfollowing:\n\n* `male`\n* `female`\n* `other`\n* `unknown`", - "type": "string" - }, - "formattedValue": { - "description": "The read-only value of the gender translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.", - "type": "string" - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the gender." - } - }, - "id": "Gender" - }, - "CoverPhoto": { - "description": "A person's read-only cover photo. A large image shown on the person's\nprofile page that represents who they are or what they care about.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the cover photo." - }, - "default": { - "description": "True if the cover photo is the default cover photo;\nfalse if the cover photo is a user-provided cover photo.", - "type": "boolean" - }, - "url": { - "type": "string", - "description": "The URL of the cover photo." - } - }, - "id": "CoverPhoto" - }, - "Interest": { - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the interest." - }, - "value": { - "description": "The interest; for example, `stargazing`.", - "type": "string" - } - }, - "id": "Interest", - "description": "One of the person's interests." - }, - "Nickname": { - "description": "A person's nickname.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the nickname." - }, - "type": { - "description": "The type of the nickname.", - "type": "string", - "enumDescriptions": [ - "Generic nickname.", - "Maiden name or birth family name. Used when the person's family name has\nchanged as a result of marriage.", - "Initials.", - "Google+ profile nickname.", - "A professional affiliation or other name; for example, `Dr. Smith.`" - ], - "enum": [ - "DEFAULT", - "MAIDEN_NAME", - "INITIALS", - "GPLUS", - "OTHER_NAME" - ] - }, - "value": { - "description": "The nickname.", - "type": "string" - } - }, - "id": "Nickname" - }, - "EmailAddress": { - "description": "A person's email address.", - "type": "object", - "properties": { - "displayName": { - "description": "The display name of the email.", - "type": "string" - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the email address." - }, - "type": { - "description": "The type of the email address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`", - "type": "string" - }, - "value": { - "type": "string", - "description": "The email address." - }, - "formattedType": { - "description": "The read-only type of the email address translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", - "type": "string" - } - }, - "id": "EmailAddress" - }, - "Skill": { - "description": "A skill that the person has.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the skill." - }, - "value": { - "description": "The skill; for example, `underwater basket weaving`.", - "type": "string" - } - }, - "id": "Skill" - }, - "Date": { - "type": "object", - "properties": { - "year": { - "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", - "format": "int32", - "type": "integer" - }, - "day": { - "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", - "format": "int32", - "type": "integer" - }, - "month": { - "description": "Month of year. Must be from 1 to 12.", - "format": "int32", - "type": "integer" - } - }, - "id": "Date", - "description": "Represents a whole calendar date, for example a date of birth. The time\nof day and time zone are either specified elsewhere or are not\nsignificant. The date is relative to the\n[Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).\nThe day may be 0 to represent a year and month where the day is not\nsignificant. The year may be 0 to represent a month and day independent\nof year; for example, anniversary date." - }, - "Tagline": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata about the tagline.", - "$ref": "FieldMetadata" - }, - "value": { - "description": "The tagline.", - "type": "string" - } - }, - "id": "Tagline", - "description": "A read-only brief one-line description of the person." - }, - "Name": { - "id": "Name", - "description": "A person's name. If the name is a mononym, the family name is empty.", - "type": "object", - "properties": { - "honorificPrefix": { - "type": "string", - "description": "The honorific prefixes, such as `Mrs.` or `Dr.`" - }, - "phoneticHonorificSuffix": { - "description": "The honorific suffixes spelled as they sound.", - "type": "string" - }, - "middleName": { - "description": "The middle name(s).", - "type": "string" - }, - "givenName": { - "description": "The given name.", - "type": "string" - }, - "phoneticHonorificPrefix": { - "description": "The honorific prefixes spelled as they sound.", - "type": "string" - }, - "phoneticGivenName": { - "description": "The given name spelled as it sounds.", - "type": "string" - }, - "phoneticFamilyName": { - "description": "The family name spelled as it sounds.", - "type": "string" - }, - "familyName": { - "description": "The family name.", - "type": "string" - }, - "phoneticMiddleName": { - "description": "The middle name(s) spelled as they sound.", - "type": "string" - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the name." - }, - "phoneticFullName": { - "description": "The full name spelled as it sounds.", - "type": "string" - }, - "displayNameLastFirst": { - "description": "The read-only display name with the last name first formatted according to\nthe locale specified by the viewer's account or the\n`Accept-Language` HTTP header.", - "type": "string" - }, - "displayName": { - "description": "The read-only display name formatted according to the locale specified by\nthe viewer's account or the `Accept-Language` HTTP header.", - "type": "string" - }, - "honorificSuffix": { - "description": "The honorific suffixes, such as `Jr.`", - "type": "string" - } - } - }, - "Locale": { - "description": "A person's locale preference.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the locale." - }, - "value": { - "description": "The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)\nlanguage tag representing the locale.", - "type": "string" - } - }, - "id": "Locale" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "UserDefined": { - "id": "UserDefined", - "description": "Arbitrary user data that is populated by the end users.", - "type": "object", - "properties": { - "key": { - "description": "The end user specified key of the user defined data.", - "type": "string" - }, - "metadata": { - "description": "Metadata about the user defined data.", - "$ref": "FieldMetadata" - }, - "value": { - "description": "The end user specified value of the user defined data.", - "type": "string" - } - } - }, - "Biography": { - "description": "A person's short biography.", - "type": "object", - "properties": { - "contentType": { - "enumDescriptions": [ - "Unspecified.", - "Plain text.", - "HTML text." - ], - "enum": [ - "CONTENT_TYPE_UNSPECIFIED", - "TEXT_PLAIN", - "TEXT_HTML" - ], - "description": "The content type of the biography.", - "type": "string" - }, - "metadata": { - "description": "Metadata about the biography.", - "$ref": "FieldMetadata" - }, - "value": { - "description": "The short biography.", - "type": "string" - } - }, - "id": "Biography" - }, - "FieldMetadata": { - "type": "object", - "properties": { - "primary": { - "description": "True if the field is the primary field; false if the field is a secondary\nfield.", - "type": "boolean" - }, - "source": { - "description": "The source of the field.", - "$ref": "Source" - }, - "verified": { - "description": "True if the field is verified; false if the field is unverified. A\nverified field is typically a name, email address, phone number, or\nwebsite that has been confirmed to be owned by the person.", - "type": "boolean" - } - }, - "id": "FieldMetadata", - "description": "Metadata about a field." - }, - "Source": { - "description": "The source of a field.", - "type": "object", - "properties": { - "type": { - "description": "The source type.", - "type": "string", - "enumDescriptions": [ - "Unspecified.", - "[Google Account](https://accounts.google.com).", - "[Google profile](https://profiles.google.com). You can view the\nprofile at https://profiles.google.com/\u003cvar\u003eid\u003c/var\u003e where\n\u003cvar\u003eid\u003c/var\u003e is the source id.", - "[Google Apps domain profile](https://admin.google.com).", - "[Google contact](https://contacts.google.com). You can view the\ncontact at https://contact.google.com/\u003cvar\u003eid\u003c/var\u003e where \u003cvar\u003eid\u003c/var\u003e\nis the source id." - ], - "enum": [ - "SOURCE_TYPE_UNSPECIFIED", - "ACCOUNT", - "PROFILE", - "DOMAIN_PROFILE", - "CONTACT" - ] - }, - "etag": { - "description": "**Only populated in `person.metadata.sources`.**\n\nThe [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nsource. Used for web cache validation.", - "type": "string" - }, - "id": { - "description": "The unique identifier within the source type generated by the server.", - "type": "string" - }, - "profileMetadata": { - "$ref": "ProfileMetadata", - "description": "**Only populated in `person.metadata.sources`.**\n\nMetadata about a source of type PROFILE." - }, - "updateTime": { - "description": "**Only populated in `person.metadata.sources`.**\n\nLast update timestamp of this source.", - "format": "google-datetime", - "type": "string" - } - }, - "id": "Source" - }, - "RelationshipInterest": { - "description": "A person's read-only relationship interest .", - "type": "object", - "properties": { - "formattedValue": { - "description": "The value of the relationship interest translated and formatted in the\nviewer's account locale or the locale specified in the Accept-Language\nHTTP header.", - "type": "string" - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the relationship interest." - }, - "value": { - "description": "The kind of relationship the person is looking for. The value can be custom\nor predefined. Possible values include, but are not limited to, the\nfollowing values:\n\n* `friend`\n* `date`\n* `relationship`\n* `networking`", - "type": "string" - } - }, - "id": "RelationshipInterest" - }, - "GetPeopleResponse": { - "properties": { - "responses": { - "description": "The response for each requested resource name.", - "type": "array", - "items": { - "$ref": "PersonResponse" - } - } - }, - "id": "GetPeopleResponse", - "type": "object" - }, - "Photo": { - "id": "Photo", - "description": "A person's read-only photo. A picture shown next to the person's name to\nhelp others recognize the person.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the photo." - }, - "default": { - "description": "True if the photo is a default photo;\nfalse if the photo is a user-provided photo.", - "type": "boolean" - }, - "url": { - "description": "The URL of the photo. You can change the desired size by appending a query\nparameter `sz=`\u003cvar\u003esize\u003c/var\u003e at the end of the url. Example:\n`https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`", - "type": "string" - } - } - }, - "PhoneNumber": { - "description": "A person's phone number.", - "type": "object", - "properties": { - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the phone number." - }, - "type": { - "description": "The type of the phone number. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `mobile`\n* `homeFax`\n* `workFax`\n* `otherFax`\n* `pager`\n* `workMobile`\n* `workPager`\n* `main`\n* `googleVoice`\n* `other`", - "type": "string" - }, - "value": { - "description": "The phone number.", - "type": "string" - }, - "formattedType": { - "description": "The read-only type of the phone number translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.", - "type": "string" - }, - "canonicalForm": { - "description": "The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)\nform of the phone number.", - "type": "string" - } - }, - "id": "PhoneNumber" - }, - "ListConnectionsResponse": { - "type": "object", - "properties": { - "totalPeople": { - "description": "**DEPRECATED** (Please use totalItems)\nThe total number of people in the list without pagination.", - "format": "int32", - "type": "integer" - }, - "nextPageToken": { - "description": "The token that can be used to retrieve the next page of results.", - "type": "string" - }, - "connections": { - "description": "The list of people that the requestor is connected to.", - "type": "array", - "items": { - "$ref": "Person" - } - }, - "nextSyncToken": { - "description": "The token that can be used to retrieve changes since the last request.", - "type": "string" - }, - "totalItems": { - "description": "The total number of items in the list without pagination.", - "format": "int32", - "type": "integer" - } - }, - "id": "ListConnectionsResponse" - }, - "Birthday": { - "description": "A person's birthday. At least one of the `date` and `text` fields are\nspecified. The `date` and `text` fields typically represent the same\ndate, but are not guaranteed to.", - "type": "object", - "properties": { - "metadata": { - "description": "Metadata about the birthday.", - "$ref": "FieldMetadata" - }, - "text": { - "type": "string", - "description": "A free-form string representing the user's birthday." - }, - "date": { - "$ref": "Date", - "description": "The date of the birthday." - } - }, - "id": "Birthday" - }, - "CreateContactGroupRequest": { - "description": "A request to create a new contact group.", - "type": "object", - "properties": { - "contactGroup": { - "$ref": "ContactGroup", - "description": "The contact group to create." - } - }, - "id": "CreateContactGroupRequest" - }, - "Address": { - "description": "A person's physical address. May be a P.O. box or street address. All fields\nare optional.", - "type": "object", - "properties": { - "streetAddress": { - "description": "The street address.", - "type": "string" - }, - "metadata": { - "$ref": "FieldMetadata", - "description": "Metadata about the address." - }, - "countryCode": { - "description": "The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country\ncode of the address.", - "type": "string" - }, - "formattedType": { - "description": "The read-only type of the address translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.", - "type": "string" - }, - "city": { - "description": "The city of the address.", - "type": "string" - }, - "formattedValue": { - "type": "string", - "description": "The unstructured value of the address. If this is not set by the user it\nwill be automatically constructed from structured values." - }, - "country": { - "description": "The country of the address.", - "type": "string" - }, - "type": { - "description": "The type of the address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`", - "type": "string" - }, - "extendedAddress": { - "description": "The extended address of the address; for example, the apartment number.", - "type": "string" - }, - "poBox": { - "description": "The P.O. box of the address.", - "type": "string" - }, - "postalCode": { - "description": "The postal code of the address.", - "type": "string" - }, - "region": { - "description": "The region of the address; for example, the state or province.", - "type": "string" - } - }, - "id": "Address" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "type": "array", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - } - }, - "code": { - "description": "The status code, which should be an enum value of google.rpc.Code.", - "format": "int32", - "type": "integer" - } - }, - "id": "Status" - }, - "ContactGroupMembership": { - "description": "A Google contact group membership.", - "type": "object", - "properties": { - "contactGroupId": { - "description": "The contact group ID for the contact group membership. The contact group\nID can be custom or predefined. Possible values include, but are not\nlimited to, the following:\n\n* `myContacts`\n* `starred`\n* A numerical ID for user-created groups.", - "type": "string" - } - }, - "id": "ContactGroupMembership" - }, - "PersonMetadata": { - "type": "object", - "properties": { - "objectType": { - "enumDescriptions": [ - "Unspecified.", - "Person.", - "[Google+ Page.](http://www.google.com/+/brands/)" - ], - "enum": [ - "OBJECT_TYPE_UNSPECIFIED", - "PERSON", - "PAGE" - ], - "description": "**DEPRECATED** (Please use\n`person.metadata.sources.profileMetadata.objectType` instead)\n\nThe type of the person object.", - "type": "string" - }, - "linkedPeopleResourceNames": { - "description": "Resource names of people linked to this resource.", - "type": "array", - "items": { - "type": "string" - } - }, - "sources": { - "description": "The sources of data for the person.", - "type": "array", - "items": { - "$ref": "Source" - } - }, - "previousResourceNames": { - "description": "Any former resource names this person has had. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.\n\nThe resource name may change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or\nprofile URL.", - "type": "array", - "items": { - "type": "string" - } - }, - "deleted": { - "description": "True if the person resource has been deleted. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.", - "type": "boolean" - } - }, - "id": "PersonMetadata", - "description": "The read-only metadata about a person." - }, - "ModifyContactGroupMembersRequest": { - "description": "A request to modify an existing contact group's members.", - "type": "object", - "properties": { - "resourceNamesToRemove": { - "description": "The resource names of the contact people to remove in the form of in the\nform of `people/`\u003cvar\u003eperson_id\u003c/var\u003e.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNamesToAdd": { - "description": "The resource names of the contact people to add in the form of in the form\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "id": "ModifyContactGroupMembersRequest" } }, - "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, + "protocol": "rest", "canonicalName": "People Service", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/plus.login": { - "description": "Know the list of people in your circles, your age range, and language" - }, - "https://www.googleapis.com/auth/userinfo.profile": { - "description": "View your basic profile info" - }, "https://www.googleapis.com/auth/user.emails.read": { "description": "View your email addresses" }, @@ -1432,6 +1417,12 @@ }, "https://www.googleapis.com/auth/contacts.readonly": { "description": "View your contacts" + }, + "https://www.googleapis.com/auth/plus.login": { + "description": "Know the list of people in your circles, your age range, and language" + }, + "https://www.googleapis.com/auth/userinfo.profile": { + "description": "View your basic profile info" } } } @@ -1445,33 +1436,95 @@ "resources": { "people": { "methods": { - "getBatchGet": { - "description": "Provides information about a list of specific people by specifying a list\nof requested resource names. Use `people/me` to indicate the authenticated\nuser.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.", - "httpMethod": "GET", - "parameterOrder": [], + "updateContact": { + "httpMethod": "PATCH", + "parameterOrder": [ + "resourceName" + ], "response": { - "$ref": "GetPeopleResponse" + "$ref": "Person" }, "parameters": { - "personFields": { - "location": "query", - "description": "**Required.** A field mask to restrict which fields on each person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls", - "format": "google-fieldmask", - "type": "string" - }, - "requestMask.includeField": { - "description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.", - "format": "google-fieldmask", + "resourceName": { + "description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.", + "required": true, "type": "string", - "location": "query" + "pattern": "^people/[^/]+$", + "location": "path" }, - "resourceNames": { - "repeated": true, + "updatePersonFields": { "location": "query", - "description": "The resource names of the people to provide information about.\n\n- To get information about the authenticated user, specify `people/me`.\n- To get information about a google account, specify\n `people/`\u003cvar\u003eaccount_id\u003c/var\u003e.\n- To get information about a contact, specify the resource name that\n identifies the contact as returned by\n[`people.connections.list`](/people/api/rest/v1/people.connections/list).\n\nYou can include up to 50 resource names in one request.", + "description": "**Required.** A field mask to restrict which fields on the person are\nupdated. Valid values are:\n\n* addresses\n* biographies\n* birthdays\n* braggingRights\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* relations\n* residences\n* skills\n* urls", + "format": "google-fieldmask", "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/contacts" + ], + "flatPath": "v1/people/{peopleId}:updateContact", + "id": "people.people.updateContact", + "path": "v1/{+resourceName}:updateContact", + "request": { + "$ref": "Person" + }, + "description": "Update contact data for an existing contact person. Any non-contact data\nwill not be modified.\n\nThe request throws a 400 error if `updatePersonFields` is not specified.\n\u003cbr\u003e\nThe request throws a 400 error if `person.metadata.sources` is not\nspecified for the contact to be updated.\n\u003cbr\u003e\nThe request throws a 412 error if `person.metadata.sources.etag` is\ndifferent than the contact's etag, which indicates the contact has changed\nsince its data was read. Clients should get the latest person and re-apply\ntheir updates to the latest person." + }, + "createContact": { + "request": { + "$ref": "Person" + }, + "description": "Create a new contact and return the person resource for that contact.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Person" + }, + "parameters": { + "parent": { + "description": "The resource name of the owning person resource.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/contacts" + ], + "flatPath": "v1/people:createContact", + "id": "people.people.createContact", + "path": "v1/people:createContact" + }, + "deleteContact": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "resourceName" + ], + "parameters": { + "resourceName": { + "pattern": "^people/[^/]+$", + "location": "path", + "description": "The resource name of the contact to delete.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/contacts" + ], + "flatPath": "v1/people/{peopleId}:deleteContact", + "id": "people.people.deleteContact", + "path": "v1/{+resourceName}:deleteContact", + "description": "Delete a contact person. Any non-contact data will not be deleted." + }, + "getBatchGet": { + "response": { + "$ref": "GetPeopleResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/contacts", "https://www.googleapis.com/auth/contacts.readonly", @@ -1483,11 +1536,33 @@ "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile" ], + "parameters": { + "personFields": { + "description": "**Required.** A field mask to restrict which fields on each person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls", + "format": "google-fieldmask", + "type": "string", + "location": "query" + }, + "requestMask.includeField": { + "location": "query", + "description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.", + "format": "google-fieldmask", + "type": "string" + }, + "resourceNames": { + "description": "The resource names of the people to provide information about.\n\n- To get information about the authenticated user, specify `people/me`.\n- To get information about a google account, specify\n `people/`\u003cvar\u003eaccount_id\u003c/var\u003e.\n- To get information about a contact, specify the resource name that\n identifies the contact as returned by\n[`people.connections.list`](/people/api/rest/v1/people.connections/list).\n\nYou can include up to 50 resource names in one request.", + "type": "string", + "repeated": true, + "location": "query" + } + }, "flatPath": "v1/people:batchGet", + "path": "v1/people:batchGet", "id": "people.people.getBatchGet", - "path": "v1/people:batchGet" + "description": "Provides information about a list of specific people by specifying a list\nof requested resource names. Use `people/me` to indicate the authenticated\nuser.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified." }, "get": { + "description": "Provides information about a person by specifying a resource name. Use\n`people/me` to indicate the authenticated user.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.", "response": { "$ref": "Person" }, @@ -1495,13 +1570,24 @@ "resourceName" ], "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/contacts", + "https://www.googleapis.com/auth/contacts.readonly", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/user.addresses.read", + "https://www.googleapis.com/auth/user.birthday.read", + "https://www.googleapis.com/auth/user.emails.read", + "https://www.googleapis.com/auth/user.phonenumbers.read", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ], "parameters": { "resourceName": { - "location": "path", "description": "The resource name of the person to provide information about.\n\n- To get information about the authenticated user, specify `people/me`.\n- To get information about a google account, specify\n `people/`\u003cvar\u003eaccount_id\u003c/var\u003e.\n- To get information about a contact, specify the resource name that\n identifies the contact as returned by\n[`people.connections.list`](/people/api/rest/v1/people.connections/list).", "required": true, "type": "string", - "pattern": "^people/[^/]+$" + "pattern": "^people/[^/]+$", + "location": "path" }, "personFields": { "location": "query", @@ -1510,144 +1596,60 @@ "type": "string" }, "requestMask.includeField": { - "location": "query", "description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.", "format": "google-fieldmask", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/contacts", - "https://www.googleapis.com/auth/contacts.readonly", - "https://www.googleapis.com/auth/plus.login", - "https://www.googleapis.com/auth/user.addresses.read", - "https://www.googleapis.com/auth/user.birthday.read", - "https://www.googleapis.com/auth/user.emails.read", - "https://www.googleapis.com/auth/user.phonenumbers.read", - "https://www.googleapis.com/auth/userinfo.email", - "https://www.googleapis.com/auth/userinfo.profile" - ], - "flatPath": "v1/people/{peopleId}", - "path": "v1/{+resourceName}", - "id": "people.people.get", - "description": "Provides information about a person by specifying a resource name. Use\n`people/me` to indicate the authenticated user.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified." - }, - "updateContact": { - "description": "Update contact data for an existing contact person. Any non-contact data\nwill not be modified.\n\nThe request throws a 400 error if `updatePersonFields` is not specified.\n\u003cbr\u003e\nThe request throws a 400 error if `person.metadata.sources` is not\nspecified for the contact to be updated.\n\u003cbr\u003e\nThe request throws a 412 error if `person.metadata.sources.etag` is\ndifferent than the contact's etag, which indicates the contact has changed\nsince its data was read. Clients should get the latest person and re-apply\ntheir updates to the latest person.", - "request": { - "$ref": "Person" - }, - "response": { - "$ref": "Person" - }, - "parameterOrder": [ - "resourceName" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/contacts" - ], - "parameters": { - "resourceName": { - "pattern": "^people/[^/]+$", - "location": "path", - "description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.", - "required": true, - "type": "string" - }, - "updatePersonFields": { - "description": "**Required.** A field mask to restrict which fields on the person are\nupdated. Valid values are:\n\n* addresses\n* biographies\n* birthdays\n* braggingRights\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* relations\n* residences\n* skills\n* urls", - "format": "google-fieldmask", "type": "string", "location": "query" } }, - "flatPath": "v1/people/{peopleId}:updateContact", - "path": "v1/{+resourceName}:updateContact", - "id": "people.people.updateContact" - }, - "createContact": { - "response": { - "$ref": "Person" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": { - "parent": { - "location": "query", - "description": "The resource name of the owning person resource.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/contacts" - ], - "flatPath": "v1/people:createContact", - "path": "v1/people:createContact", - "id": "people.people.createContact", - "request": { - "$ref": "Person" - }, - "description": "Create a new contact and return the person resource for that contact." - }, - "deleteContact": { - "description": "Delete a contact person. Any non-contact data will not be deleted.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "resourceName" - ], - "httpMethod": "DELETE", - "parameters": { - "resourceName": { - "description": "The resource name of the contact to delete.", - "required": true, - "type": "string", - "pattern": "^people/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/contacts" - ], - "flatPath": "v1/people/{peopleId}:deleteContact", - "path": "v1/{+resourceName}:deleteContact", - "id": "people.people.deleteContact" + "flatPath": "v1/people/{peopleId}", + "path": "v1/{+resourceName}", + "id": "people.people.get" } }, "resources": { "connections": { "methods": { "list": { - "httpMethod": "GET", - "parameterOrder": [ - "resourceName" - ], + "description": "Provides a list of the authenticated user's contacts merged with any\nconnected profiles.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.", "response": { "$ref": "ListConnectionsResponse" }, + "parameterOrder": [ + "resourceName" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/contacts", "https://www.googleapis.com/auth/contacts.readonly" ], "parameters": { - "requestSyncToken": { - "description": "Whether the response should include a sync token, which can be used to get\nall changes since the last request.", - "type": "boolean", + "sortOrder": { + "enum": [ + "LAST_MODIFIED_ASCENDING", + "FIRST_NAME_ASCENDING", + "LAST_NAME_ASCENDING" + ], + "description": "The order in which the connections should be sorted. Defaults to\n`LAST_MODIFIED_ASCENDING`.", + "type": "string", "location": "query" }, + "requestSyncToken": { + "location": "query", + "description": "Whether the response should include a sync token, which can be used to get\nall changes since the last request.", + "type": "boolean" + }, "resourceName": { + "pattern": "^people/[^/]+$", "location": "path", "description": "The resource name to return connections for. Only `people/me` is valid.", "required": true, - "type": "string", - "pattern": "^people/[^/]+$" + "type": "string" }, "pageToken": { - "location": "query", "description": "The token of the page to be returned.", - "type": "string" + "type": "string", + "location": "query" }, "pageSize": { "location": "query", @@ -1656,10 +1658,10 @@ "type": "integer" }, "requestMask.includeField": { - "location": "query", "description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.", "format": "google-fieldmask", - "type": "string" + "type": "string", + "location": "query" }, "syncToken": { "description": "A sync token, returned by a previous call to `people.connections.list`.\nOnly resources changed since the sync token was created will be returned.", @@ -1667,98 +1669,86 @@ "location": "query" }, "personFields": { - "location": "query", "description": "**Required.** A field mask to restrict which fields on each person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls", "format": "google-fieldmask", - "type": "string" - }, - "sortOrder": { - "location": "query", - "enum": [ - "LAST_MODIFIED_ASCENDING", - "FIRST_NAME_ASCENDING", - "LAST_NAME_ASCENDING" - ], - "description": "The order in which the connections should be sorted. Defaults to\n`LAST_MODIFIED_ASCENDING`.", - "type": "string" + "type": "string", + "location": "query" } }, "flatPath": "v1/people/{peopleId}/connections", - "id": "people.people.connections.list", "path": "v1/{+resourceName}/connections", - "description": "Provides a list of the authenticated user's contacts merged with any\nconnected profiles.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified." + "id": "people.people.connections.list" } } } } }, "contactGroups": { - "methods": { - "get": { - "parameters": { - "maxMembers": { - "description": "Specifies the maximum number of members to return.", - "format": "int32", - "type": "integer", - "location": "query" - }, - "resourceName": { - "location": "path", - "description": "The resource name of the contact group to get.", - "required": true, - "type": "string", - "pattern": "^contactGroups/[^/]+$" + "resources": { + "members": { + "methods": { + "modify": { + "response": { + "$ref": "ModifyContactGroupMembersResponse" + }, + "parameterOrder": [ + "resourceName" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/contacts" + ], + "parameters": { + "resourceName": { + "pattern": "^contactGroups/[^/]+$", + "location": "path", + "description": "The resource name of the contact group to modify.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/contactGroups/{contactGroupsId}/members:modify", + "path": "v1/{+resourceName}/members:modify", + "id": "people.contactGroups.members.modify", + "description": "Modify the members of a contact group owned by the authenticated user.", + "request": { + "$ref": "ModifyContactGroupMembersRequest" + } } + } + } + }, + "methods": { + "batchGet": { + "response": { + "$ref": "BatchGetContactGroupsResponse" }, + "parameterOrder": [], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/contacts", "https://www.googleapis.com/auth/contacts.readonly" ], - "flatPath": "v1/contactGroups/{contactGroupsId}", - "id": "people.contactGroups.get", - "path": "v1/{+resourceName}", - "description": "Get a specific contact group owned by the authenticated user by specifying\na contact group resource name.", - "httpMethod": "GET", - "response": { - "$ref": "ContactGroup" - }, - "parameterOrder": [ - "resourceName" - ] - }, - "update": { - "path": "v1/{+resourceName}", - "id": "people.contactGroups.update", - "description": "Update the name of an existing contact group owned by the authenticated\nuser.", - "request": { - "$ref": "UpdateContactGroupRequest" - }, - "response": { - "$ref": "ContactGroup" - }, - "parameterOrder": [ - "resourceName" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/contacts" - ], "parameters": { - "resourceName": { - "pattern": "^contactGroups/[^/]+$", - "location": "path", - "description": "The resource name for the contact group, assigned by the server. An ASCII\nstring, in the form of `contactGroups/`\u003cvar\u003econtact_group_id\u003c/var\u003e.", - "required": true, + "maxMembers": { + "description": "Specifies the maximum number of members to return for each group.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "resourceNames": { + "repeated": true, + "location": "query", + "description": "The resource names of the contact groups to get.", "type": "string" } }, - "flatPath": "v1/contactGroups/{contactGroupsId}" + "flatPath": "v1/contactGroups:batchGet", + "path": "v1/contactGroups:batchGet", + "id": "people.contactGroups.batchGet", + "description": "Get a list of contact groups owned by the authenticated user by specifying\na list of contact group resource names." }, "delete": { - "flatPath": "v1/contactGroups/{contactGroupsId}", - "path": "v1/{+resourceName}", - "id": "people.contactGroups.delete", - "description": "Delete an existing contact group owned by the authenticated user by\nspecifying a contact group resource name.", "response": { "$ref": "Empty" }, @@ -1778,40 +1768,15 @@ "type": "string" }, "deleteContacts": { - "location": "query", "description": "Set to true to also delete the contacts in the specified group.", - "type": "boolean" - } - } - }, - "batchGet": { - "httpMethod": "GET", - "response": { - "$ref": "BatchGetContactGroupsResponse" - }, - "parameterOrder": [], - "parameters": { - "resourceNames": { - "location": "query", - "description": "The resource names of the contact groups to get.", - "type": "string", - "repeated": true - }, - "maxMembers": { - "type": "integer", - "location": "query", - "description": "Specifies the maximum number of members to return for each group.", - "format": "int32" + "type": "boolean", + "location": "query" } }, - "scopes": [ - "https://www.googleapis.com/auth/contacts", - "https://www.googleapis.com/auth/contacts.readonly" - ], - "flatPath": "v1/contactGroups:batchGet", - "id": "people.contactGroups.batchGet", - "path": "v1/contactGroups:batchGet", - "description": "Get a list of contact groups owned by the authenticated user by specifying\na list of contact group resource names." + "flatPath": "v1/contactGroups/{contactGroupsId}", + "path": "v1/{+resourceName}", + "id": "people.contactGroups.delete", + "description": "Delete an existing contact group owned by the authenticated user by\nspecifying a contact group resource name." }, "list": { "response": { @@ -1819,20 +1784,16 @@ }, "parameterOrder": [], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/contacts", - "https://www.googleapis.com/auth/contacts.readonly" - ], "parameters": { "syncToken": { - "location": "query", "description": "A sync token, returned by a previous call to `contactgroups.list`.\nOnly resources changed since the sync token was created will be returned.", - "type": "string" + "type": "string", + "location": "query" }, "pageToken": { - "location": "query", "description": "The next_page_token value returned from a previous call to\n[ListContactGroups](/people/api/rest/v1/contactgroups/list).\nRequests the next page of resources.", - "type": "string" + "type": "string", + "location": "query" }, "pageSize": { "description": "The maximum number of resources to return.", @@ -1841,15 +1802,16 @@ "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/contacts", + "https://www.googleapis.com/auth/contacts.readonly" + ], "flatPath": "v1/contactGroups", "path": "v1/contactGroups", "id": "people.contactGroups.list", "description": "List all contact groups owned by the authenticated user. Members of the\ncontact groups are not populated." }, "create": { - "flatPath": "v1/contactGroups", - "path": "v1/contactGroups", - "id": "people.contactGroups.create", "description": "Create a new contact group owned by the authenticated user.", "request": { "$ref": "CreateContactGroupRequest" @@ -1862,104 +1824,115 @@ "scopes": [ "https://www.googleapis.com/auth/contacts" ], - "parameters": {} - } - }, - "resources": { - "members": { - "methods": { - "modify": { - "id": "people.contactGroups.members.modify", - "path": "v1/{+resourceName}/members:modify", - "request": { - "$ref": "ModifyContactGroupMembersRequest" - }, - "description": "Modify the members of a contact group owned by the authenticated user.", - "httpMethod": "POST", - "parameterOrder": [ - "resourceName" - ], - "response": { - "$ref": "ModifyContactGroupMembersResponse" - }, - "parameters": { - "resourceName": { - "location": "path", - "description": "The resource name of the contact group to modify.", - "required": true, - "type": "string", - "pattern": "^contactGroups/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/contacts" - ], - "flatPath": "v1/contactGroups/{contactGroupsId}/members:modify" + "parameters": {}, + "flatPath": "v1/contactGroups", + "path": "v1/contactGroups", + "id": "people.contactGroups.create" + }, + "get": { + "description": "Get a specific contact group owned by the authenticated user by specifying\na contact group resource name.", + "response": { + "$ref": "ContactGroup" + }, + "parameterOrder": [ + "resourceName" + ], + "httpMethod": "GET", + "parameters": { + "maxMembers": { + "location": "query", + "description": "Specifies the maximum number of members to return.", + "format": "int32", + "type": "integer" + }, + "resourceName": { + "pattern": "^contactGroups/[^/]+$", + "location": "path", + "description": "The resource name of the contact group to get.", + "required": true, + "type": "string" } + }, + "scopes": [ + "https://www.googleapis.com/auth/contacts", + "https://www.googleapis.com/auth/contacts.readonly" + ], + "flatPath": "v1/contactGroups/{contactGroupsId}", + "path": "v1/{+resourceName}", + "id": "people.contactGroups.get" + }, + "update": { + "response": { + "$ref": "ContactGroup" + }, + "parameterOrder": [ + "resourceName" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/contacts" + ], + "parameters": { + "resourceName": { + "description": "The resource name for the contact group, assigned by the server. An ASCII\nstring, in the form of `contactGroups/`\u003cvar\u003econtact_group_id\u003c/var\u003e.", + "required": true, + "type": "string", + "pattern": "^contactGroups/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/contactGroups/{contactGroupsId}", + "path": "v1/{+resourceName}", + "id": "people.contactGroups.update", + "description": "Update the name of an existing contact group owned by the authenticated\nuser.", + "request": { + "$ref": "UpdateContactGroupRequest" } } } } }, "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "type": "boolean", - "default": "true" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "type": "boolean", - "default": "true" + "default": "true", + "location": "query" }, "uploadType": { - "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, "callback": { "location": "query", "description": "JSONP", "type": "string" }, "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format." + "location": "query" }, "alt": { - "description": "Data format for response.", - "default": "json", "enum": [ "json", "media", @@ -1971,12 +1944,14 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query" + "location": "query", + "description": "Data format for response.", + "default": "json" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" }, "access_token": { "description": "OAuth access token.", @@ -1987,8 +1962,33 @@ "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.", "type": "string", "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" } }, "version": "v1", - "baseUrl": "https://people.googleapis.com/" + "baseUrl": "https://people.googleapis.com/", + "description": "Provides access to information about profiles and contacts.", + "kind": "discovery#restDescription", + "servicePath": "", + "basePath": "", + "revision": "20171019", + "documentationLink": "https://developers.google.com/people/", + "id": "people:v1", + "discoveryVersion": "v1", + "version_module": true } diff --git a/vendor/google.golang.org/api/playmoviespartner/v1/playmoviespartner-api.json b/vendor/google.golang.org/api/playmoviespartner/v1/playmoviespartner-api.json index 8088cfbb1..da4886c73 100644 --- a/vendor/google.golang.org/api/playmoviespartner/v1/playmoviespartner-api.json +++ b/vendor/google.golang.org/api/playmoviespartner/v1/playmoviespartner-api.json @@ -1,70 +1,32 @@ { + "id": "playmoviespartner:v1", + "documentationLink": "https://developers.google.com/playmoviespartner/", + "revision": "20171017", + "title": "Google Play Movies Partner API", + "ownerName": "Google", + "discoveryVersion": "v1", "resources": { "accounts": { "resources": { "orders": { "methods": { "list": { - "id": "playmoviespartner.accounts.orders.list", - "path": "v1/accounts/{accountId}/orders", "description": "List Orders owned or managed by the partner.\n\nSee _Authentication and Authorization rules_ and\n_List methods rules_ for more information about this method.", + "httpMethod": "GET", "response": { "$ref": "ListOrdersResponse" }, "parameterOrder": [ "accountId" ], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" ], "parameters": { - "videoIds": { - "description": "Filter Orders that match any of the given `video_id`s.", - "type": "string", - "repeated": true, - "location": "query" - }, - "customId": { - "location": "query", - "description": "Filter Orders that match a case-insensitive, partner-specific custom id.", - "type": "string" - }, - "pageToken": { - "description": "See _List methods rules_ for info about this field.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "See _List methods rules_ for info about this field.", - "type": "integer", - "location": "query" - }, - "pphNames": { - "location": "query", - "description": "See _List methods rules_ for info about this field.", - "type": "string", - "repeated": true - }, - "status": { - "location": "query", - "enum": [ - "STATUS_UNSPECIFIED", - "STATUS_APPROVED", - "STATUS_FAILED", - "STATUS_PROCESSING", - "STATUS_UNFULFILLED", - "STATUS_NOT_AVAILABLE" - ], - "description": "Filter Orders that match one of the given status.", - "type": "string", - "repeated": true - }, "name": { - "location": "query", "description": "Filter that matches Orders with a `name`, `show`, `season` or `episode`\nthat contains the given case-insensitive name.", - "type": "string" + "type": "string", + "location": "query" }, "studioNames": { "description": "See _List methods rules_ for info about this field.", @@ -77,11 +39,59 @@ "type": "string", "required": true, "location": "path" + }, + "videoIds": { + "description": "Filter Orders that match any of the given `video_id`s.", + "type": "string", + "repeated": true, + "location": "query" + }, + "customId": { + "description": "Filter Orders that match a case-insensitive, partner-specific custom id.", + "type": "string", + "location": "query" + }, + "pageToken": { + "location": "query", + "description": "See _List methods rules_ for info about this field.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "See _List methods rules_ for info about this field.", + "type": "integer" + }, + "pphNames": { + "description": "See _List methods rules_ for info about this field.", + "type": "string", + "repeated": true, + "location": "query" + }, + "status": { + "repeated": true, + "location": "query", + "enum": [ + "STATUS_UNSPECIFIED", + "STATUS_APPROVED", + "STATUS_FAILED", + "STATUS_PROCESSING", + "STATUS_UNFULFILLED", + "STATUS_NOT_AVAILABLE" + ], + "description": "Filter Orders that match one of the given status.", + "type": "string" } }, - "flatPath": "v1/accounts/{accountId}/orders" + "flatPath": "v1/accounts/{accountId}/orders", + "path": "v1/accounts/{accountId}/orders", + "id": "playmoviespartner.accounts.orders.list" }, "get": { + "flatPath": "v1/accounts/{accountId}/orders/{orderId}", + "path": "v1/accounts/{accountId}/orders/{orderId}", + "id": "playmoviespartner.accounts.orders.get", + "description": "Get an Order given its id.\n\nSee _Authentication and Authorization rules_ and\n_Get methods rules_ for more information about this method.", "httpMethod": "GET", "response": { "$ref": "Order" @@ -98,70 +108,30 @@ "required": true }, "accountId": { - "location": "path", "description": "REQUIRED. See _General rules_ for more information about this field.", "type": "string", - "required": true + "required": true, + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" - ], - "flatPath": "v1/accounts/{accountId}/orders/{orderId}", - "path": "v1/accounts/{accountId}/orders/{orderId}", - "id": "playmoviespartner.accounts.orders.get", - "description": "Get an Order given its id.\n\nSee _Authentication and Authorization rules_ and\n_Get methods rules_ for more information about this method." + ] } } }, "avails": { "methods": { "list": { - "path": "v1/accounts/{accountId}/avails", - "id": "playmoviespartner.accounts.avails.list", "description": "List Avails owned or managed by the partner.\n\nSee _Authentication and Authorization rules_ and\n_List methods rules_ for more information about this method.", - "httpMethod": "GET", - "parameterOrder": [ - "accountId" - ], "response": { "$ref": "ListAvailsResponse" }, + "parameterOrder": [ + "accountId" + ], + "httpMethod": "GET", "parameters": { - "title": { - "location": "query", - "description": "Filter that matches Avails with a `title_internal_alias`,\n`series_title_internal_alias`, `season_title_internal_alias`,\nor `episode_title_internal_alias` that contains the given\ncase-insensitive title.", - "type": "string" - }, - "videoIds": { - "repeated": true, - "location": "query", - "description": "Filter Avails that match any of the given `video_id`s.", - "type": "string" - }, - "pageToken": { - "description": "See _List methods rules_ for info about this field.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "See _List methods rules_ for info about this field.", - "type": "integer" - }, - "altIds": { - "repeated": true, - "location": "query", - "description": "Filter Avails that match (case-insensitive) any of the given partner-specific custom ids.", - "type": "string" - }, - "pphNames": { - "description": "See _List methods rules_ for info about this field.", - "type": "string", - "repeated": true, - "location": "query" - }, "altId": { "location": "query", "description": "Filter Avails that match a case-insensitive, partner-specific custom id.\nNOTE: this field is deprecated and will be removed on V2; `alt_ids`\nshould be used instead.", @@ -174,35 +144,68 @@ "location": "query" }, "accountId": { + "location": "path", "description": "REQUIRED. See _General rules_ for more information about this field.", "type": "string", - "required": true, - "location": "path" + "required": true }, "territories": { - "repeated": true, - "location": "query", "description": "Filter Avails that match (case-insensitive) any of the given country codes,\nusing the \"ISO 3166-1 alpha-2\" format (examples: \"US\", \"us\", \"Us\").", + "type": "string", + "repeated": true, + "location": "query" + }, + "title": { + "location": "query", + "description": "Filter that matches Avails with a `title_internal_alias`,\n`series_title_internal_alias`, `season_title_internal_alias`,\nor `episode_title_internal_alias` that contains the given\ncase-insensitive title.", "type": "string" + }, + "pageToken": { + "description": "See _List methods rules_ for info about this field.", + "type": "string", + "location": "query" + }, + "videoIds": { + "description": "Filter Avails that match any of the given `video_id`s.", + "type": "string", + "repeated": true, + "location": "query" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "See _List methods rules_ for info about this field.", + "type": "integer" + }, + "altIds": { + "description": "Filter Avails that match (case-insensitive) any of the given partner-specific custom ids.", + "type": "string", + "repeated": true, + "location": "query" + }, + "pphNames": { + "location": "query", + "description": "See _List methods rules_ for info about this field.", + "type": "string", + "repeated": true } }, "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" ], - "flatPath": "v1/accounts/{accountId}/avails" + "flatPath": "v1/accounts/{accountId}/avails", + "id": "playmoviespartner.accounts.avails.list", + "path": "v1/accounts/{accountId}/avails" }, "get": { - "id": "playmoviespartner.accounts.avails.get", - "path": "v1/accounts/{accountId}/avails/{availId}", - "description": "Get an Avail given its avail group id and avail id.", - "response": { - "$ref": "Avail" - }, + "httpMethod": "GET", "parameterOrder": [ "accountId", "availId" ], - "httpMethod": "GET", + "response": { + "$ref": "Avail" + }, "parameters": { "availId": { "location": "path", @@ -211,16 +214,19 @@ "required": true }, "accountId": { + "location": "path", "description": "REQUIRED. See _General rules_ for more information about this field.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" ], - "flatPath": "v1/accounts/{accountId}/avails/{availId}" + "flatPath": "v1/accounts/{accountId}/avails/{availId}", + "path": "v1/accounts/{accountId}/avails/{availId}", + "id": "playmoviespartner.accounts.avails.get", + "description": "Get an Avail given its avail group id and avail id." } } }, @@ -229,6 +235,9 @@ "country": { "methods": { "get": { + "flatPath": "v1/accounts/{accountId}/storeInfos/{videoId}/country/{country}", + "id": "playmoviespartner.accounts.storeInfos.country.get", + "path": "v1/accounts/{accountId}/storeInfos/{videoId}/country/{country}", "description": "Get a StoreInfo given its video id and country.\n\nSee _Authentication and Authorization rules_ and\n_Get methods rules_ for more information about this method.", "response": { "$ref": "StoreInfo" @@ -241,47 +250,51 @@ "httpMethod": "GET", "parameters": { "country": { - "location": "path", "description": "REQUIRED. Edit country.", "type": "string", + "required": true, + "location": "path" + }, + "videoId": { + "location": "path", + "description": "REQUIRED. Video ID.", + "type": "string", "required": true }, - "videoId": { - "description": "REQUIRED. Video ID.", - "type": "string", - "required": true, - "location": "path" - }, "accountId": { + "location": "path", "description": "REQUIRED. See _General rules_ for more information about this field.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" - ], - "flatPath": "v1/accounts/{accountId}/storeInfos/{videoId}/country/{country}", - "id": "playmoviespartner.accounts.storeInfos.country.get", - "path": "v1/accounts/{accountId}/storeInfos/{videoId}/country/{country}" + ] } } } }, "methods": { "list": { - "httpMethod": "GET", + "description": "List StoreInfos owned or managed by the partner.\n\nSee _Authentication and Authorization rules_ and\n_List methods rules_ for more information about this method.", "response": { "$ref": "ListStoreInfosResponse" }, "parameterOrder": [ "accountId" ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/playmovies_partner.readonly" ], "parameters": { + "accountId": { + "description": "REQUIRED. See _General rules_ for more information about this field.", + "type": "string", + "required": true, + "location": "path" + }, "seasonIds": { "description": "Filter StoreInfos that match any of the given `season_id`s.", "type": "string", @@ -289,26 +302,26 @@ "location": "query" }, "videoIds": { - "repeated": true, "location": "query", "description": "Filter StoreInfos that match any of the given `video_id`s.", - "type": "string" + "type": "string", + "repeated": true }, "videoId": { + "location": "query", "description": "Filter StoreInfos that match a given `video_id`.\nNOTE: this field is deprecated and will be removed on V2; `video_ids`\nshould be used instead.", - "type": "string", - "location": "query" + "type": "string" }, "pageToken": { + "location": "query", "description": "See _List methods rules_ for info about this field.", - "type": "string", - "location": "query" + "type": "string" }, "pageSize": { + "location": "query", "format": "int32", "description": "See _List methods rules_ for info about this field.", - "type": "integer", - "location": "query" + "type": "integer" }, "mids": { "description": "Filter StoreInfos that match any of the given `mid`s.", @@ -323,10 +336,10 @@ "location": "query" }, "countries": { - "location": "query", "description": "Filter StoreInfos that match (case-insensitive) any of the given country\ncodes, using the \"ISO 3166-1 alpha-2\" format (examples: \"US\", \"us\", \"Us\").", "type": "string", - "repeated": true + "repeated": true, + "location": "query" }, "name": { "location": "query", @@ -338,18 +351,11 @@ "type": "string", "repeated": true, "location": "query" - }, - "accountId": { - "location": "path", - "description": "REQUIRED. See _General rules_ for more information about this field.", - "type": "string", - "required": true } }, "flatPath": "v1/accounts/{accountId}/storeInfos", - "path": "v1/accounts/{accountId}/storeInfos", "id": "playmoviespartner.accounts.storeInfos.list", - "description": "List StoreInfos owned or managed by the partner.\n\nSee _Authentication and Authorization rules_ and\n_List methods rules_ for more information about this method." + "path": "v1/accounts/{accountId}/storeInfos" } } } @@ -357,21 +363,37 @@ } }, "parameters": { + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, "access_token": { "location": "query", "description": "OAuth access token.", "type": "string" }, "key": { - "location": "query", "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.", - "type": "string" - }, - "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.", "type": "string", "location": "query" }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, "pp": { "location": "query", "description": "Pretty-print response.", @@ -384,9 +406,9 @@ "type": "string" }, "bearer_token": { - "location": "query", "description": "OAuth bearer token.", - "type": "string" + "type": "string", + "location": "query" }, "upload_protocol": { "location": "query", @@ -394,54 +416,38 @@ "type": "string" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "type": "boolean", + "location": "query" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, "callback": { "location": "query", "description": "JSONP", "type": "string" }, "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "alt": { - "type": "string", - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] + "type": "string" } }, "schemas": { @@ -457,12 +463,17 @@ "description": "YouTube Channel ID that should be used to fulfill the Order.\nExample: \"UCRG64darCZhb\".", "type": "string" }, + "legacyPriority": { + "description": "Legacy Order priority, as defined by Google.\nExample: 'P0'", + "type": "string" + }, "pphName": { "description": "Name of the post-production house that manages the Edit ordered.", "type": "string" }, - "legacyPriority": { - "description": "Legacy Order priority, as defined by Google.\nExample: 'P0'", + "orderedTime": { + "format": "google-datetime", + "description": "Timestamp when the Order was created.", "type": "string" }, "priority": { @@ -470,11 +481,6 @@ "description": "Order priority, as defined by Google.\nThe higher the value, the higher the priority.\nExample: 90", "type": "number" }, - "orderedTime": { - "format": "google-datetime", - "description": "Timestamp when the Order was created.", - "type": "string" - }, "videoId": { "description": "Google-generated ID identifying the video linked to this Order, once\ndelivered.\nExample: 'gtry456_xc'.", "type": "string" @@ -490,31 +496,6 @@ }, "type": "array" }, - "earliestAvailStartTime": { - "format": "google-datetime", - "description": "Timestamp of the earliest start date of the Avails\nlinked to this Order.", - "type": "string" - }, - "status": { - "description": "High-level status of the order.", - "type": "string", - "enumDescriptions": [ - "Value could not be determined, please contact technical support if\nit should.", - "Approved by Google.", - "Waiting for partner to re-deliver the asset after a rejection by Google.", - "Waiting for Google to process the asset.", - "Waiting for partner to deliver the asset.", - "Used when Status is not available (i.e: Orders for TV Seasons)." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "STATUS_APPROVED", - "STATUS_FAILED", - "STATUS_PROCESSING", - "STATUS_UNFULFILLED", - "STATUS_NOT_AVAILABLE" - ] - }, "statusDetail": { "description": "Detailed status of the order", "type": "string", @@ -541,6 +522,31 @@ "ORDER_STATUS_FILE_PROCESSING" ] }, + "status": { + "enumDescriptions": [ + "Value could not be determined, please contact technical support if\nit should.", + "Approved by Google.", + "Waiting for partner to re-deliver the asset after a rejection by Google.", + "Waiting for Google to process the asset.", + "Waiting for partner to deliver the asset.", + "Used when Status is not available (i.e: Orders for TV Seasons)." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "STATUS_APPROVED", + "STATUS_FAILED", + "STATUS_PROCESSING", + "STATUS_UNFULFILLED", + "STATUS_NOT_AVAILABLE" + ], + "description": "High-level status of the order.", + "type": "string" + }, + "earliestAvailStartTime": { + "format": "google-datetime", + "description": "Timestamp of the earliest start date of the Avails\nlinked to this Order.", + "type": "string" + }, "name": { "description": "Default Edit name,\nusually in the language of the country of origin.\nExample: \"Googlers, The\".", "type": "string" @@ -562,23 +568,19 @@ "description": "ID that can be used to externally identify an Order.\nThis ID is provided by partners when submitting the Avails.\nExample: 'GOOGLER_2006'", "type": "string" }, + "channelName": { + "description": "YouTube Channel Name that should be used to fulfill the Order.\nExample: \"Google_channel\".", + "type": "string" + }, "approvedTime": { "format": "google-datetime", "description": "Timestamp when the Order was approved.", "type": "string" }, - "channelName": { - "description": "YouTube Channel Name that should be used to fulfill the Order.\nExample: \"Google_channel\".", - "type": "string" - }, "showName": { "description": "Default Show name,\nusually in the language of the country of origin.\nOnly available for TV Edits\nExample: \"Googlers, The\".", "type": "string" }, - "orderId": { - "description": "ID internally generated by Google to uniquely identify an Order.\nExample: 'abcde12_x'", - "type": "string" - }, "normalizedPriority": { "enum": [ "NORMALIZED_PRIORITY_UNSPECIFIED", @@ -593,7 +595,13 @@ "A high-priority asset, typically from a new release or box office hit." ] }, + "orderId": { + "description": "ID internally generated by Google to uniquely identify an Order.\nExample: 'abcde12_x'", + "type": "string" + }, "type": { + "description": "Type of the Edit linked to the Order.", + "type": "string", "enumDescriptions": [ "Value could not be determined, please contact technical support if\nit should.", "A movie picture.", @@ -607,9 +615,7 @@ "SEASON", "EPISODE", "BUNDLE" - ], - "description": "Type of the Edit linked to the Order.", - "type": "string" + ] } }, "id": "Order" @@ -641,6 +647,13 @@ "description": "Response to the 'ListAvails' method.", "type": "object", "properties": { + "avails": { + "description": "List of Avails that match the request criteria.", + "items": { + "$ref": "Avail" + }, + "type": "array" + }, "nextPageToken": { "description": "See _List methods rules_ for info about this field.", "type": "string" @@ -649,18 +662,13 @@ "format": "int32", "description": "See _List methods rules_ for more information about this field.", "type": "integer" - }, - "avails": { - "description": "List of Avails that match the request criteria.", - "items": { - "$ref": "Avail" - }, - "type": "array" } }, "id": "ListAvailsResponse" }, "ListOrdersResponse": { + "description": "Response to the 'ListOrders' method.", + "type": "object", "properties": { "nextPageToken": { "description": "See _List methods rules_ for info about this field.", @@ -679,84 +687,12 @@ "type": "array" } }, - "id": "ListOrdersResponse", - "description": "Response to the 'ListOrders' method.", - "type": "object" + "id": "ListOrdersResponse" }, "StoreInfo": { "description": "Information about a playable sequence (video) associated with an Edit\nand available at the Google Play Store.\n\nInternally, each StoreInfo is uniquely identified by a `video_id`\nand `country`.\n\nExternally, Title-level EIDR or Edit-level EIDR, if provided,\ncan also be used to identify a specific title or edit in a country.", "type": "object", "properties": { - "seasonName": { - "description": "Default Season name, usually in the language of the country of\norigin.\nOnly available for TV Edits\nExample: \"Googlers, The - A Brave New World\".", - "type": "string" - }, - "seasonNumber": { - "description": "The number assigned to the season within a show.\nOnly available on TV Edits.\nExample: \"1\".", - "type": "string" - }, - "hasEstOffer": { - "description": "Whether the Edit has a EST offer.", - "type": "boolean" - }, - "editLevelEidr": { - "description": "Edit-level EIDR ID.\nExample: \"10.5240/1489-49A2-3956-4B2D-FE16-6\".", - "type": "string" - }, - "hasSdOffer": { - "description": "Whether the Edit has a SD offer.", - "type": "boolean" - }, - "liveTime": { - "format": "google-datetime", - "description": "Timestamp when the Edit went live on the Store.", - "type": "string" - }, - "videoId": { - "description": "Google-generated ID identifying the video linked to the Edit.\nExample: 'gtry456_xc'", - "type": "string" - }, - "hasInfoCards": { - "description": "Whether the Edit has info cards.", - "type": "boolean" - }, - "hasVodOffer": { - "description": "Whether the Edit has a VOD offer.", - "type": "boolean" - }, - "pphNames": { - "description": "Name of the post-production houses that manage the Edit.", - "items": { - "type": "string" - }, - "type": "array" - }, - "episodeNumber": { - "description": "The number assigned to the episode within a season.\nOnly available on TV Edits.\nExample: \"1\".", - "type": "string" - }, - "studioName": { - "description": "Name of the studio that owns the Edit ordered.", - "type": "string" - }, - "subtitles": { - "description": "Subtitles available for this Edit.", - "items": { - "type": "string" - }, - "type": "array" - }, - "audioTracks": { - "description": "Audio tracks available for this Edit.", - "items": { - "type": "string" - }, - "type": "array" - }, - "showName": { - "description": "Default Show name, usually in the language of the country of\norigin.\nOnly available for TV Edits\nExample: \"Googlers, The\".", - "type": "string" - }, "country": { "description": "Country where Edit is available in ISO 3166-1 alpha-2 country\ncode.\nExample: \"US\".", "type": "string" @@ -810,6 +746,76 @@ "titleLevelEidr": { "description": "Title-level EIDR ID.\nExample: \"10.5240/1489-49A2-3956-4B2D-FE16-5\".", "type": "string" + }, + "seasonName": { + "description": "Default Season name, usually in the language of the country of\norigin.\nOnly available for TV Edits\nExample: \"Googlers, The - A Brave New World\".", + "type": "string" + }, + "seasonNumber": { + "description": "The number assigned to the season within a show.\nOnly available on TV Edits.\nExample: \"1\".", + "type": "string" + }, + "editLevelEidr": { + "description": "Edit-level EIDR ID.\nExample: \"10.5240/1489-49A2-3956-4B2D-FE16-6\".", + "type": "string" + }, + "hasEstOffer": { + "description": "Whether the Edit has a EST offer.", + "type": "boolean" + }, + "hasSdOffer": { + "description": "Whether the Edit has a SD offer.", + "type": "boolean" + }, + "videoId": { + "description": "Google-generated ID identifying the video linked to the Edit.\nExample: 'gtry456_xc'", + "type": "string" + }, + "liveTime": { + "format": "google-datetime", + "description": "Timestamp when the Edit went live on the Store.", + "type": "string" + }, + "hasInfoCards": { + "description": "Whether the Edit has info cards.", + "type": "boolean" + }, + "hasVodOffer": { + "description": "Whether the Edit has a VOD offer.", + "type": "boolean" + }, + "pphNames": { + "description": "Name of the post-production houses that manage the Edit.", + "items": { + "type": "string" + }, + "type": "array" + }, + "episodeNumber": { + "description": "The number assigned to the episode within a season.\nOnly available on TV Edits.\nExample: \"1\".", + "type": "string" + }, + "studioName": { + "description": "Name of the studio that owns the Edit ordered.", + "type": "string" + }, + "subtitles": { + "description": "Subtitles available for this Edit.", + "items": { + "type": "string" + }, + "type": "array" + }, + "audioTracks": { + "description": "Audio tracks available for this Edit.", + "items": { + "type": "string" + }, + "type": "array" + }, + "showName": { + "description": "Default Show name, usually in the language of the country of\norigin.\nOnly available for TV Edits\nExample: \"Googlers, The\".", + "type": "string" } }, "id": "StoreInfo" @@ -818,67 +824,6 @@ "description": "An Avail describes the Availability Window of a specific Edit in a given\ncountry, which means the period Google is allowed to sell or rent the Edit.\n\nAvails are exposed in EMA format Version 1.6b (available at\nhttp://www.movielabs.com/md/avails/)\n\nStudios can see the Avails for the Titles they own.\nPost-production houses cannot see any Avails.", "type": "object", "properties": { - "priceType": { - "description": "Type of pricing that should be applied to this Avail\nbased on how the partner classify them.\nExample: \"Tier\", \"WSP\", \"SRP\", or \"Category\".", - "type": "string" - }, - "captionIncluded": { - "description": "Communicating if caption file will be delivered.", - "type": "boolean" - }, - "licenseType": { - "enumDescriptions": [ - "Value could not be determined, please contact technical support if\nit should.", - "Electronic Sell Through - purchase policy for unlimited viewing.", - "Video On Demand - rental policy for temporary viewing.", - "Subscription Video On Demand - used for subscription platforms.\nNot supported on Google Play.", - "Pre-order Electronic Sell Through - pre-order purchase only window." - ], - "enum": [ - "LICENSE_TYPE_UNSPECIFIED", - "EST", - "VOD", - "SVOD", - "POEST" - ], - "description": "Type of transaction.", - "type": "string" - }, - "seasonNumber": { - "description": "The number assigned to the season within a series.\nOnly available on TV Avails.\nExample: \"1\".", - "type": "string" - }, - "releaseDate": { - "description": "Release date of the Title in earliest released territory.\nTypically it is just the year, but it is free-form as per EMA spec.\nExamples: \"1979\", \"Oct 2014\"", - "type": "string" - }, - "end": { - "description": "End of term in YYYY-MM-DD format in the timezone of the country\nof the Avail.\n\"Open\" if no end date is available.\nExample: \"2019-02-17\"", - "type": "string" - }, - "videoId": { - "description": "Google-generated ID identifying the video linked to this Avail, once\ndelivered.\nNot part of EMA Specs.\nExample: 'gtry456_xc'", - "type": "string" - }, - "start": { - "description": "Start of term in YYYY-MM-DD format in the timezone of the\ncountry of the Avail.\nExample: \"2013-05-14\".", - "type": "string" - }, - "ratingSystem": { - "description": "Rating system applied to the version of title within territory\nof Avail.\nRating systems should be formatted as per\n[EMA ratings spec](http://www.movielabs.com/md/ratings/)\nExample: \"MPAA\"", - "type": "string" - }, - "pphNames": { - "description": "Name of the post-production houses that manage the Avail.\nNot part of EMA Specs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "seriesAltId": { - "description": "Other identifier referring to the series, as defined by partner.\nOnly available on TV avails.\nExample: \"rs_googlers\".", - "type": "string" - }, "altId": { "description": "Other identifier referring to the Edit, as defined by partner.\nExample: \"GOOGLER_2006\"", "type": "string" @@ -892,6 +837,12 @@ "type": "string" }, "formatProfile": { + "enumDescriptions": [ + "Value could not be determined, please contact technical support if\nit should.", + "Standard-definition format.", + "High-definition format.", + "4K UHD." + ], "enum": [ "FORMAT_PROFILE_UNSPECIFIED", "SD", @@ -899,24 +850,18 @@ "UHD" ], "description": "Indicates the format profile covered by the transaction.", - "type": "string", - "enumDescriptions": [ - "Value could not be determined, please contact technical support if\nit should.", - "Standard-definition format.", - "High-definition format.", - "4K UHD." - ] + "type": "string" }, - "ratingValue": { - "description": "Value representing the rating.\nRatings should be formatted as per http://www.movielabs.com/md/ratings/\nExample: \"PG\"", + "contentId": { + "description": "Title Identifier. This should be the Title Level EIDR.\nExample: \"10.5240/1489-49A2-3956-4B2D-FE16-5\".", "type": "string" }, "titleInternalAlias": { "description": "Title used by involved parties to refer to this content.\nExample: \"Googlers, The\".\nOnly available on Movie Avails.", "type": "string" }, - "contentId": { - "description": "Title Identifier. This should be the Title Level EIDR.\nExample: \"10.5240/1489-49A2-3956-4B2D-FE16-5\".", + "ratingValue": { + "description": "Value representing the rating.\nRatings should be formatted as per http://www.movielabs.com/md/ratings/\nExample: \"PG\"", "type": "string" }, "storeLanguage": { @@ -939,19 +884,21 @@ "description": "Title used by involved parties to refer to this season.\nOnly available on TV Avails.\nExample: \"Googlers, The\".", "type": "string" }, - "priceValue": { - "description": "Value to be applied to the pricing type.\nExample: \"4\" or \"2.99\"", - "type": "string" - }, "episodeAltId": { "description": "Other identifier referring to the episode, as defined by partner.\nOnly available on TV avails.\nExample: \"rs_googlers_s1_3\".", "type": "string" }, + "priceValue": { + "description": "Value to be applied to the pricing type.\nExample: \"4\" or \"2.99\"", + "type": "string" + }, "territory": { "description": "ISO 3166-1 alpha-2 country code for the country or territory\nof this Avail.\nFor Avails, we use Territory in lieu of Country to comply with\nEMA specifications.\nBut please note that Territory and Country identify the same thing.\nExample: \"US\".", "type": "string" }, "workType": { + "description": "Work type as enumerated in EMA.", + "type": "string", "enumDescriptions": [ "Value could not be determined, please contact technical support if\nit should.", "A movie picture.", @@ -965,9 +912,7 @@ "SEASON", "EPISODE", "BUNDLE" - ], - "description": "Work type as enumerated in EMA.", - "type": "string" + ] }, "availId": { "description": "ID internally generated by Google to uniquely identify an Avail.\nNot part of EMA Specs.", @@ -992,6 +937,67 @@ "encodeId": { "description": "Manifestation Identifier. This should be the Manifestation\nLevel EIDR.\nExample: \"10.2340/1489-49A2-3956-4B2D-FE16-7\"", "type": "string" + }, + "priceType": { + "description": "Type of pricing that should be applied to this Avail\nbased on how the partner classify them.\nExample: \"Tier\", \"WSP\", \"SRP\", or \"Category\".", + "type": "string" + }, + "captionIncluded": { + "description": "Communicating if caption file will be delivered.", + "type": "boolean" + }, + "seasonNumber": { + "description": "The number assigned to the season within a series.\nOnly available on TV Avails.\nExample: \"1\".", + "type": "string" + }, + "licenseType": { + "enumDescriptions": [ + "Value could not be determined, please contact technical support if\nit should.", + "Electronic Sell Through - purchase policy for unlimited viewing.", + "Video On Demand - rental policy for temporary viewing.", + "Subscription Video On Demand - used for subscription platforms.\nNot supported on Google Play.", + "Pre-order Electronic Sell Through - pre-order purchase only window." + ], + "enum": [ + "LICENSE_TYPE_UNSPECIFIED", + "EST", + "VOD", + "SVOD", + "POEST" + ], + "description": "Type of transaction.", + "type": "string" + }, + "releaseDate": { + "description": "Release date of the Title in earliest released territory.\nTypically it is just the year, but it is free-form as per EMA spec.\nExamples: \"1979\", \"Oct 2014\"", + "type": "string" + }, + "end": { + "description": "End of term in YYYY-MM-DD format in the timezone of the country\nof the Avail.\n\"Open\" if no end date is available.\nExample: \"2019-02-17\"", + "type": "string" + }, + "videoId": { + "description": "Google-generated ID identifying the video linked to this Avail, once\ndelivered.\nNot part of EMA Specs.\nExample: 'gtry456_xc'", + "type": "string" + }, + "start": { + "description": "Start of term in YYYY-MM-DD format in the timezone of the\ncountry of the Avail.\nExample: \"2013-05-14\".", + "type": "string" + }, + "pphNames": { + "description": "Name of the post-production houses that manage the Avail.\nNot part of EMA Specs.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ratingSystem": { + "description": "Rating system applied to the version of title within territory\nof Avail.\nRating systems should be formatted as per\n[EMA ratings spec](http://www.movielabs.com/md/ratings/)\nExample: \"MPAA\"", + "type": "string" + }, + "seriesAltId": { + "description": "Other identifier referring to the series, as defined by partner.\nOnly available on TV avails.\nExample: \"rs_googlers\".", + "type": "string" } }, "id": "Avail" @@ -1014,18 +1020,12 @@ } } }, - "kind": "discovery#restDescription", "servicePath": "", "description": "Gets the delivery status of titles for Google Play Movies Partners.", + "kind": "discovery#restDescription", "rootUrl": "https://playmoviespartner.googleapis.com/", "basePath": "", "ownerDomain": "google.com", "name": "playmoviespartner", - "batchPath": "batch", - "id": "playmoviespartner:v1", - "documentationLink": "https://developers.google.com/playmoviespartner/", - "revision": "20170926", - "title": "Google Play Movies Partner API", - "ownerName": "Google", - "discoveryVersion": "v1" + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-api.json b/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-api.json index 569637e24..055ef45c6 100644 --- a/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-api.json +++ b/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-api.json @@ -1,26 +1,11 @@ { - "version": "v1beta1", - "baseUrl": "https://proximitybeacon.googleapis.com/", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/userlocation.beacon.registry": { - "description": "View and modify your beacons" - } - } - } - }, - "servicePath": "", - "description": "Registers, manages, indexes, and searches beacons.", - "kind": "discovery#restDescription", - "rootUrl": "https://proximitybeacon.googleapis.com/", "basePath": "", "ownerDomain": "google.com", "name": "proximitybeacon", "batchPath": "batch", - "revision": "20170913", - "documentationLink": "https://developers.google.com/beacons/proximity/", "id": "proximitybeacon:v1beta1", + "documentationLink": "https://developers.google.com/beacons/proximity/", + "revision": "20171017", "title": "Google Proximity Beacon API", "discoveryVersion": "v1", "ownerName": "Google", @@ -29,15 +14,15 @@ "beaconinfo": { "methods": { "getforobserved": { - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "GetInfoForObservedBeaconsResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "parameters": {}, "flatPath": "v1beta1/beaconinfo:getforobserved", - "path": "v1beta1/beaconinfo:getforobserved", "id": "proximitybeacon.beaconinfo.getforobserved", + "path": "v1beta1/beaconinfo:getforobserved", "request": { "$ref": "GetInfoForObservedBeaconsRequest" }, @@ -48,6 +33,9 @@ "namespaces": { "methods": { "update": { + "flatPath": "v1beta1/namespaces/{namespacesId}", + "id": "proximitybeacon.namespaces.update", + "path": "v1beta1/{+namespaceName}", "request": { "$ref": "Namespace" }, @@ -64,21 +52,18 @@ ], "parameters": { "namespaceName": { + "pattern": "^namespaces/[^/]+$", + "location": "path", "description": "Resource name of this namespace. Namespaces names have the format:\n\u003ccode\u003enamespaces/\u003cvar\u003enamespace\u003c/var\u003e\u003c/code\u003e.", "type": "string", - "required": true, - "pattern": "^namespaces/[^/]+$", - "location": "path" + "required": true }, "projectId": { "location": "query", "description": "The project id of the namespace to update. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.", "type": "string" } - }, - "flatPath": "v1beta1/namespaces/{namespacesId}", - "id": "proximitybeacon.namespaces.update", - "path": "v1beta1/{+namespaceName}" + } }, "list": { "description": "Lists all attachment namespaces owned by your Google Developers Console\nproject. Attachment data associated with a beacon must include a\nnamespaced type, and the namespace must be owned by your project.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.", @@ -87,6 +72,9 @@ "response": { "$ref": "ListNamespacesResponse" }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], "parameters": { "projectId": { "location": "query", @@ -94,9 +82,6 @@ "type": "string" } }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], "flatPath": "v1beta1/namespaces", "path": "v1beta1/namespaces", "id": "proximitybeacon.namespaces.list" @@ -106,24 +91,178 @@ "v1beta1": { "methods": { "getEidparams": { + "description": "Gets the Proximity Beacon API's current public key and associated\nparameters used to initiate the Diffie-Hellman key exchange required to\nregister a beacon that broadcasts the Eddystone-EID format. This key\nchanges periodically; clients may cache it and re-use the same public key\nto provision and register multiple beacons. However, clients should be\nprepared to refresh this key when they encounter an error registering an\nEddystone-EID beacon.", + "response": { + "$ref": "EphemeralIdRegistrationParams" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/userlocation.beacon.registry" ], - "parameters": {}, "flatPath": "v1beta1/eidparams", - "path": "v1beta1/eidparams", "id": "proximitybeacon.getEidparams", - "description": "Gets the Proximity Beacon API's current public key and associated\nparameters used to initiate the Diffie-Hellman key exchange required to\nregister a beacon that broadcasts the Eddystone-EID format. This key\nchanges periodically; clients may cache it and re-use the same public key\nto provision and register multiple beacons. However, clients should be\nprepared to refresh this key when they encounter an error registering an\nEddystone-EID beacon.", - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "EphemeralIdRegistrationParams" - } + "path": "v1beta1/eidparams" } } }, "beacons": { "methods": { + "list": { + "flatPath": "v1beta1/beacons", + "id": "proximitybeacon.beacons.list", + "path": "v1beta1/beacons", + "description": "Searches the beacon registry for beacons that match the given search\ncriteria. Only those beacons that the client has permission to list\nwill be returned.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.", + "response": { + "$ref": "ListBeaconsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "A pagination token obtained from a previous request to list beacons.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The maximum number of records to return for this request, up to a\nserver-defined upper limit.", + "type": "integer" + }, + "q": { + "description": "Filter query string that supports the following field filters:\n\n* **description:`\"\u003cstring\u003e\"`**\n For example: **description:\"Room 3\"**\n Returns beacons whose description matches tokens in the string \"Room 3\"\n (not necessarily that exact string).\n The string must be double-quoted.\n* **status:`\u003cenum\u003e`**\n For example: **status:active**\n Returns beacons whose status matches the given value. Values must be\n one of the Beacon.Status enum values (case insensitive). Accepts\n multiple filters which will be combined with OR logic.\n* **stability:`\u003cenum\u003e`**\n For example: **stability:mobile**\n Returns beacons whose expected stability matches the given value.\n Values must be one of the Beacon.Stability enum values (case\n insensitive). Accepts multiple filters which will be combined with\n OR logic.\n* **place\\_id:`\"\u003cstring\u003e\"`**\n For example: **place\\_id:\"ChIJVSZzVR8FdkgRXGmmm6SslKw=\"**\n Returns beacons explicitly registered at the given place, expressed as\n a Place ID obtained from [Google Places API](/places/place-id). Does not\n match places inside the given place. Does not consider the beacon's\n actual location (which may be different from its registered place).\n Accepts multiple filters that will be combined with OR logic. The place\n ID must be double-quoted.\n* **registration\\_time`[\u003c|\u003e|\u003c=|\u003e=]\u003cinteger\u003e`**\n For example: **registration\\_time\u003e=1433116800**\n Returns beacons whose registration time matches the given filter.\n Supports the operators: \u003c, \u003e, \u003c=, and \u003e=. Timestamp must be expressed as\n an integer number of seconds since midnight January 1, 1970 UTC. Accepts\n at most two filters that will be combined with AND logic, to support\n \"between\" semantics. If more than two are supplied, the latter ones are\n ignored.\n* **lat:`\u003cdouble\u003e lng:\u003cdouble\u003e radius:\u003cinteger\u003e`**\n For example: **lat:51.1232343 lng:-1.093852 radius:1000**\n Returns beacons whose registered location is within the given circle.\n When any of these fields are given, all are required. Latitude and\n longitude must be decimal degrees between -90.0 and 90.0 and between\n -180.0 and 180.0 respectively. Radius must be an integer number of\n meters between 10 and 1,000,000 (1000 km).\n* **property:`\"\u003cstring\u003e=\u003cstring\u003e\"`**\n For example: **property:\"battery-type=CR2032\"**\n Returns beacons which have a property of the given name and value.\n Supports multiple filters which will be combined with OR logic.\n The entire name=value string must be double-quoted as one string.\n* **attachment\\_type:`\"\u003cstring\u003e\"`**\n For example: **attachment_type:\"my-namespace/my-type\"**\n Returns beacons having at least one attachment of the given namespaced\n type. Supports \"any within this namespace\" via the partial wildcard\n syntax: \"my-namespace/*\". Supports multiple filters which will be\n combined with OR logic. The string must be double-quoted.\n* **indoor\\_level:`\"\u003cstring\u003e\"`**\n For example: **indoor\\_level:\"1\"**\n Returns beacons which are located on the given indoor level. Accepts\n multiple filters that will be combined with OR logic.\n\nMultiple filters on the same field are combined with OR logic (except\nregistration_time which is combined with AND logic).\nMultiple filters on different fields are combined with AND logic.\nFilters should be separated by spaces.\n\nAs with any HTTP query string parameter, the whole filter expression must\nbe URL-encoded.\n\nExample REST request:\n`GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`", + "type": "string", + "location": "query" + }, + "projectId": { + "description": "The project id to list beacons under. If not present then the project\ncredential that made the request is used as the project.\nOptional.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ] + }, + "register": { + "response": { + "$ref": "Beacon" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "parameters": { + "projectId": { + "location": "query", + "description": "The project id of the project the beacon will be registered to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.", + "type": "string" + } + }, + "flatPath": "v1beta1/beacons:register", + "id": "proximitybeacon.beacons.register", + "path": "v1beta1/beacons:register", + "request": { + "$ref": "Beacon" + }, + "description": "Registers a previously unregistered beacon given its `advertisedId`.\nThese IDs are unique within the system. An ID can be registered only once.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project." + }, + "activate": { + "description": "Activates a beacon. A beacon that is active will return information\nand attachment data when queried via `beaconinfo.getforobserved`.\nCalling this method on an already active beacon will do nothing (but\nwill return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "beaconName" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "description": "The project id of the beacon to activate. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.", + "type": "string", + "location": "query" + }, + "beaconName": { + "pattern": "^beacons/[^/]+$", + "location": "path", + "description": "Beacon that should be activated. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "flatPath": "v1beta1/beacons/{beaconsId}:activate", + "id": "proximitybeacon.beacons.activate", + "path": "v1beta1/{+beaconName}:activate" + }, + "get": { + "httpMethod": "GET", + "response": { + "$ref": "Beacon" + }, + "parameterOrder": [ + "beaconName" + ], + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "parameters": { + "projectId": { + "type": "string", + "location": "query", + "description": "The project id of the beacon to request. If the project id is not specified\nthen the project making the request is used. The project id must match the\nproject that owns the beacon.\nOptional." + }, + "beaconName": { + "pattern": "^beacons/[^/]+$", + "location": "path", + "description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/beacons/{beaconsId}", + "path": "v1beta1/{+beaconName}", + "id": "proximitybeacon.beacons.get", + "description": "Returns detailed information about the specified beacon.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.\n\nRequests may supply an Eddystone-EID beacon name in the form:\n`beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID\nbroadcast by the beacon. The returned `Beacon` object will contain the\nbeacon's stable Eddystone-UID. Clients not authorized to resolve the\nbeacon's ephemeral Eddystone-EID broadcast will receive an error." + }, + "update": { + "id": "proximitybeacon.beacons.update", + "path": "v1beta1/{+beaconName}", + "description": "Updates the information about the specified beacon. **Any field that you do\nnot populate in the submitted beacon will be permanently erased**, so you\nshould follow the \"read, modify, write\" pattern to avoid inadvertently\ndestroying data.\n\nChanges to the beacon status via this method will be silently ignored.\nTo update beacon status, use the separate methods on this API for\nactivation, deactivation, and decommissioning.\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", + "request": { + "$ref": "Beacon" + }, + "response": { + "$ref": "Beacon" + }, + "parameterOrder": [ + "beaconName" + ], + "httpMethod": "PUT", + "parameters": { + "beaconName": { + "type": "string", + "required": true, + "pattern": "^beacons/[^/]+$", + "location": "path", + "description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.\n\nThis field must be left empty when registering. After reading a beacon,\nclients can use the name for future operations." + }, + "projectId": { + "location": "query", + "description": "The project id of the beacon to update. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "flatPath": "v1beta1/beacons/{beaconsId}" + }, "decommission": { "response": { "$ref": "Empty" @@ -132,23 +271,23 @@ "beaconName" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], "parameters": { "beaconName": { + "description": "Beacon that should be decommissioned. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID of the beacon's \"stable\" UID.\nRequired.", "type": "string", "required": true, "pattern": "^beacons/[^/]+$", - "location": "path", - "description": "Beacon that should be decommissioned. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID of the beacon's \"stable\" UID.\nRequired." + "location": "path" }, "projectId": { - "location": "query", "description": "The project id of the beacon to decommission. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.", - "type": "string" + "type": "string", + "location": "query" } }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], "flatPath": "v1beta1/beacons/{beaconsId}:decommission", "id": "proximitybeacon.beacons.decommission", "path": "v1beta1/{+beaconName}:decommission", @@ -164,17 +303,17 @@ ], "httpMethod": "DELETE", "parameters": { + "beaconName": { + "description": "Beacon that should be deleted. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", + "type": "string", + "required": true, + "pattern": "^beacons/[^/]+$", + "location": "path" + }, "projectId": { "description": "The project id of the beacon to delete. If not provided, the project\nthat is making the request is used.\nOptional.", "type": "string", "location": "query" - }, - "beaconName": { - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+$", - "location": "path", - "description": "Beacon that should be deleted. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired." } }, "scopes": [ @@ -185,7 +324,6 @@ "path": "v1beta1/{+beaconName}" }, "deactivate": { - "description": "Deactivates a beacon. Once deactivated, the API will not return\ninformation nor attachment data for the beacon when queried via\n`beaconinfo.getforobserved`. Calling this method on an already inactive\nbeacon will do nothing (but will return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", "response": { "$ref": "Empty" }, @@ -194,17 +332,17 @@ ], "httpMethod": "POST", "parameters": { - "projectId": { - "location": "query", - "description": "The project id of the beacon to deactivate. If the project id is not\nspecified then the project making the request is used. The project id must\nmatch the project that owns the beacon.\nOptional.", - "type": "string" - }, "beaconName": { - "location": "path", "description": "Beacon that should be deactivated. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", "type": "string", "required": true, - "pattern": "^beacons/[^/]+$" + "pattern": "^beacons/[^/]+$", + "location": "path" + }, + "projectId": { + "description": "The project id of the beacon to deactivate. If the project id is not\nspecified then the project making the request is used. The project id must\nmatch the project that owns the beacon.\nOptional.", + "type": "string", + "location": "query" } }, "scopes": [ @@ -212,184 +350,123 @@ ], "flatPath": "v1beta1/beacons/{beaconsId}:deactivate", "id": "proximitybeacon.beacons.deactivate", - "path": "v1beta1/{+beaconName}:deactivate" - }, - "list": { - "flatPath": "v1beta1/beacons", - "id": "proximitybeacon.beacons.list", - "path": "v1beta1/beacons", - "description": "Searches the beacon registry for beacons that match the given search\ncriteria. Only those beacons that the client has permission to list\nwill be returned.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.", - "response": { - "$ref": "ListBeaconsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "parameters": { - "pageSize": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "The maximum number of records to return for this request, up to a\nserver-defined upper limit." - }, - "q": { - "location": "query", - "description": "Filter query string that supports the following field filters:\n\n* **description:`\"\u003cstring\u003e\"`**\n For example: **description:\"Room 3\"**\n Returns beacons whose description matches tokens in the string \"Room 3\"\n (not necessarily that exact string).\n The string must be double-quoted.\n* **status:`\u003cenum\u003e`**\n For example: **status:active**\n Returns beacons whose status matches the given value. Values must be\n one of the Beacon.Status enum values (case insensitive). Accepts\n multiple filters which will be combined with OR logic.\n* **stability:`\u003cenum\u003e`**\n For example: **stability:mobile**\n Returns beacons whose expected stability matches the given value.\n Values must be one of the Beacon.Stability enum values (case\n insensitive). Accepts multiple filters which will be combined with\n OR logic.\n* **place\\_id:`\"\u003cstring\u003e\"`**\n For example: **place\\_id:\"ChIJVSZzVR8FdkgRXGmmm6SslKw=\"**\n Returns beacons explicitly registered at the given place, expressed as\n a Place ID obtained from [Google Places API](/places/place-id). Does not\n match places inside the given place. Does not consider the beacon's\n actual location (which may be different from its registered place).\n Accepts multiple filters that will be combined with OR logic. The place\n ID must be double-quoted.\n* **registration\\_time`[\u003c|\u003e|\u003c=|\u003e=]\u003cinteger\u003e`**\n For example: **registration\\_time\u003e=1433116800**\n Returns beacons whose registration time matches the given filter.\n Supports the operators: \u003c, \u003e, \u003c=, and \u003e=. Timestamp must be expressed as\n an integer number of seconds since midnight January 1, 1970 UTC. Accepts\n at most two filters that will be combined with AND logic, to support\n \"between\" semantics. If more than two are supplied, the latter ones are\n ignored.\n* **lat:`\u003cdouble\u003e lng:\u003cdouble\u003e radius:\u003cinteger\u003e`**\n For example: **lat:51.1232343 lng:-1.093852 radius:1000**\n Returns beacons whose registered location is within the given circle.\n When any of these fields are given, all are required. Latitude and\n longitude must be decimal degrees between -90.0 and 90.0 and between\n -180.0 and 180.0 respectively. Radius must be an integer number of\n meters between 10 and 1,000,000 (1000 km).\n* **property:`\"\u003cstring\u003e=\u003cstring\u003e\"`**\n For example: **property:\"battery-type=CR2032\"**\n Returns beacons which have a property of the given name and value.\n Supports multiple filters which will be combined with OR logic.\n The entire name=value string must be double-quoted as one string.\n* **attachment\\_type:`\"\u003cstring\u003e\"`**\n For example: **attachment_type:\"my-namespace/my-type\"**\n Returns beacons having at least one attachment of the given namespaced\n type. Supports \"any within this namespace\" via the partial wildcard\n syntax: \"my-namespace/*\". Supports multiple filters which will be\n combined with OR logic. The string must be double-quoted.\n* **indoor\\_level:`\"\u003cstring\u003e\"`**\n For example: **indoor\\_level:\"1\"**\n Returns beacons which are located on the given indoor level. Accepts\n multiple filters that will be combined with OR logic.\n\nMultiple filters on the same field are combined with OR logic (except\nregistration_time which is combined with AND logic).\nMultiple filters on different fields are combined with AND logic.\nFilters should be separated by spaces.\n\nAs with any HTTP query string parameter, the whole filter expression must\nbe URL-encoded.\n\nExample REST request:\n`GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`", - "type": "string" - }, - "projectId": { - "location": "query", - "description": "The project id to list beacons under. If not present then the project\ncredential that made the request is used as the project.\nOptional.", - "type": "string" - }, - "pageToken": { - "description": "A pagination token obtained from a previous request to list beacons.", - "type": "string", - "location": "query" - } - } - }, - "register": { - "flatPath": "v1beta1/beacons:register", - "path": "v1beta1/beacons:register", - "id": "proximitybeacon.beacons.register", - "description": "Registers a previously unregistered beacon given its `advertisedId`.\nThese IDs are unique within the system. An ID can be registered only once.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", - "request": { - "$ref": "Beacon" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Beacon" - }, - "parameters": { - "projectId": { - "location": "query", - "description": "The project id of the project the beacon will be registered to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ] - }, - "activate": { - "flatPath": "v1beta1/beacons/{beaconsId}:activate", - "id": "proximitybeacon.beacons.activate", - "path": "v1beta1/{+beaconName}:activate", - "description": "Activates a beacon. A beacon that is active will return information\nand attachment data when queried via `beaconinfo.getforobserved`.\nCalling this method on an already active beacon will do nothing (but\nwill return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", - "response": { - "$ref": "Empty" - }, - "httpMethod": "POST", - "parameterOrder": [ - "beaconName" - ], - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "parameters": { - "beaconName": { - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+$", - "location": "path", - "description": "Beacon that should be activated. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired." - }, - "projectId": { - "description": "The project id of the beacon to activate. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.", - "type": "string", - "location": "query" - } - } - }, - "get": { - "description": "Returns detailed information about the specified beacon.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.\n\nRequests may supply an Eddystone-EID beacon name in the form:\n`beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID\nbroadcast by the beacon. The returned `Beacon` object will contain the\nbeacon's stable Eddystone-UID. Clients not authorized to resolve the\nbeacon's ephemeral Eddystone-EID broadcast will receive an error.", - "response": { - "$ref": "Beacon" - }, - "parameterOrder": [ - "beaconName" - ], - "httpMethod": "GET", - "parameters": { - "beaconName": { - "location": "path", - "description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+$" - }, - "projectId": { - "location": "query", - "description": "The project id of the beacon to request. If the project id is not specified\nthen the project making the request is used. The project id must match the\nproject that owns the beacon.\nOptional.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "flatPath": "v1beta1/beacons/{beaconsId}", - "id": "proximitybeacon.beacons.get", - "path": "v1beta1/{+beaconName}" - }, - "update": { - "response": { - "$ref": "Beacon" - }, - "parameterOrder": [ - "beaconName" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "parameters": { - "beaconName": { - "location": "path", - "description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.\n\nThis field must be left empty when registering. After reading a beacon,\nclients can use the name for future operations.", - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+$" - }, - "projectId": { - "type": "string", - "location": "query", - "description": "The project id of the beacon to update. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional." - } - }, - "flatPath": "v1beta1/beacons/{beaconsId}", - "id": "proximitybeacon.beacons.update", - "path": "v1beta1/{+beaconName}", - "request": { - "$ref": "Beacon" - }, - "description": "Updates the information about the specified beacon. **Any field that you do\nnot populate in the submitted beacon will be permanently erased**, so you\nshould follow the \"read, modify, write\" pattern to avoid inadvertently\ndestroying data.\n\nChanges to the beacon status via this method will be silently ignored.\nTo update beacon status, use the separate methods on this API for\nactivation, deactivation, and decommissioning.\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project." + "path": "v1beta1/{+beaconName}:deactivate", + "description": "Deactivates a beacon. Once deactivated, the API will not return\ninformation nor attachment data for the beacon when queried via\n`beaconinfo.getforobserved`. Calling this method on an already inactive\nbeacon will do nothing (but will return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project." } }, "resources": { - "attachments": { + "diagnostics": { "methods": { "list": { + "response": { + "$ref": "ListDiagnosticsResponse" + }, + "parameterOrder": [ + "beaconName" + ], "httpMethod": "GET", + "parameters": { + "beaconName": { + "description": "Beacon that the diagnostics are for.", + "type": "string", + "required": true, + "pattern": "^beacons/[^/]+$", + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "Requests results that occur after the `page_token`, obtained from the\nresponse to a previous request. Optional.", + "type": "string" + }, + "alertFilter": { + "location": "query", + "enum": [ + "ALERT_UNSPECIFIED", + "WRONG_LOCATION", + "LOW_BATTERY", + "LOW_ACTIVITY" + ], + "description": "Requests only beacons that have the given alert. For example, to find\nbeacons that have low batteries use `alert_filter=LOW_BATTERY`.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Specifies the maximum number of results to return. Defaults to\n10. Maximum 1000. Optional.", + "type": "integer" + }, + "projectId": { + "description": "Requests only diagnostic records for the given project id. If not set,\nthen the project making the request will be used for looking up\ndiagnostic records. Optional.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "flatPath": "v1beta1/beacons/{beaconsId}/diagnostics", + "id": "proximitybeacon.beacons.diagnostics.list", + "path": "v1beta1/{+beaconName}/diagnostics", + "description": "List the diagnostics for a single beacon. You can also list diagnostics for\nall the beacons owned by your Google Developers Console project by using\nthe beacon name `beacons/-`.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project." + } + } + }, + "attachments": { + "methods": { + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "attachmentName" + ], + "httpMethod": "DELETE", + "parameters": { + "attachmentName": { + "description": "The attachment name (`attachmentName`) of\nthe attachment to remove. For example:\n`beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For\nEddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be the\nbeacon's current EID, or its \"stable\" Eddystone-UID.\nRequired.", + "type": "string", + "required": true, + "pattern": "^beacons/[^/]+/attachments/[^/]+$", + "location": "path" + }, + "projectId": { + "type": "string", + "location": "query", + "description": "The project id of the attachment to delete. If not provided, the project\nthat is making the request is used.\nOptional." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "flatPath": "v1beta1/beacons/{beaconsId}/attachments/{attachmentsId}", + "id": "proximitybeacon.beacons.attachments.delete", + "path": "v1beta1/{+attachmentName}", + "description": "Deletes the specified attachment for the given beacon. Each attachment has\na unique attachment name (`attachmentName`) which is returned when you\nfetch the attachment data via this API. You specify this with the delete\nrequest to control which attachment is removed. This operation cannot be\nundone.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project." + }, + "list": { + "id": "proximitybeacon.beacons.attachments.list", + "path": "v1beta1/{+beaconName}/attachments", + "description": "Returns the attachments for the specified beacon that match the specified\nnamespaced-type pattern.\n\nTo control which namespaced types are returned, you add the\n`namespacedType` query parameter to the request. You must either use\n`*/*`, to return all attachments, or the namespace must be one of\nthe ones returned from the `namespaces` endpoint.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.", "response": { "$ref": "ListBeaconAttachmentsResponse" }, "parameterOrder": [ "beaconName" ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], "parameters": { "projectId": { - "type": "string", "location": "query", - "description": "The project id to list beacon attachments under. This field can be\nused when \"*\" is specified to mean all attachment namespaces. Projects\nmay have multiple attachments with multiple namespaces. If \"*\" is\nspecified and the projectId string is empty, then the project\nmaking the request is used.\nOptional." + "description": "The project id to list beacon attachments under. This field can be\nused when \"*\" is specified to mean all attachment namespaces. Projects\nmay have multiple attachments with multiple namespaces. If \"*\" is\nspecified and the projectId string is empty, then the project\nmaking the request is used.\nOptional.", + "type": "string" }, "namespacedType": { + "location": "query", "description": "Specifies the namespace and type of attachment to include in response in\n\u003cvar\u003enamespace/type\u003c/var\u003e format. Accepts `*/*` to specify\n\"all types in all namespaces\".", - "type": "string", - "location": "query" + "type": "string" }, "beaconName": { "location": "path", @@ -399,30 +476,25 @@ "pattern": "^beacons/[^/]+$" } }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "flatPath": "v1beta1/beacons/{beaconsId}/attachments", - "path": "v1beta1/{+beaconName}/attachments", - "id": "proximitybeacon.beacons.attachments.list", - "description": "Returns the attachments for the specified beacon that match the specified\nnamespaced-type pattern.\n\nTo control which namespaced types are returned, you add the\n`namespacedType` query parameter to the request. You must either use\n`*/*`, to return all attachments, or the namespace must be one of\nthe ones returned from the `namespaces` endpoint.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project." + "flatPath": "v1beta1/beacons/{beaconsId}/attachments" }, "batchDelete": { - "response": { - "$ref": "DeleteAttachmentsResponse" - }, + "description": "Deletes multiple attachments on a given beacon. This operation is\npermanent and cannot be undone.\n\nYou can optionally specify `namespacedType` to choose which attachments\nshould be deleted. If you do not specify `namespacedType`, all your\nattachments on the given beacon will be deleted. You also may explicitly\nspecify `*/*` to delete all.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", "parameterOrder": [ "beaconName" ], + "response": { + "$ref": "DeleteAttachmentsResponse" + }, "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/userlocation.beacon.registry" ], "parameters": { "namespacedType": { - "location": "query", "description": "Specifies the namespace and type of attachments to delete in\n`namespace/type` format. Accepts `*/*` to specify\n\"all types in all namespaces\".\nOptional.", - "type": "string" + "type": "string", + "location": "query" }, "beaconName": { "description": "The beacon whose attachments should be deleted. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", @@ -439,126 +511,40 @@ }, "flatPath": "v1beta1/beacons/{beaconsId}/attachments:batchDelete", "id": "proximitybeacon.beacons.attachments.batchDelete", - "path": "v1beta1/{+beaconName}/attachments:batchDelete", - "description": "Deletes multiple attachments on a given beacon. This operation is\npermanent and cannot be undone.\n\nYou can optionally specify `namespacedType` to choose which attachments\nshould be deleted. If you do not specify `namespacedType`, all your\nattachments on the given beacon will be deleted. You also may explicitly\nspecify `*/*` to delete all.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project." + "path": "v1beta1/{+beaconName}/attachments:batchDelete" }, "create": { + "scopes": [ + "https://www.googleapis.com/auth/userlocation.beacon.registry" + ], + "parameters": { + "beaconName": { + "type": "string", + "required": true, + "pattern": "^beacons/[^/]+$", + "location": "path", + "description": "Beacon on which the attachment should be created. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired." + }, + "projectId": { + "location": "query", + "description": "The project id of the project the attachment will belong to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.", + "type": "string" + } + }, + "flatPath": "v1beta1/beacons/{beaconsId}/attachments", + "path": "v1beta1/{+beaconName}/attachments", + "id": "proximitybeacon.beacons.attachments.create", "request": { "$ref": "BeaconAttachment" }, "description": "Associates the given data with the specified beacon. Attachment data must\ncontain two parts:\n\u003cul\u003e\n\u003cli\u003eA namespaced type.\u003c/li\u003e\n\u003cli\u003eThe actual attachment data itself.\u003c/li\u003e\n\u003c/ul\u003e\nThe namespaced type consists of two parts, the namespace and the type.\nThe namespace must be one of the values returned by the `namespaces`\nendpoint, while the type can be a string of any characters except for the\nforward slash (`/`) up to 100 characters in length.\n\nAttachment data can be up to 1024 bytes long.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", + "httpMethod": "POST", + "parameterOrder": [ + "beaconName" + ], "response": { "$ref": "BeaconAttachment" - }, - "parameterOrder": [ - "beaconName" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "parameters": { - "beaconName": { - "pattern": "^beacons/[^/]+$", - "location": "path", - "description": "Beacon on which the attachment should be created. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.", - "type": "string", - "required": true - }, - "projectId": { - "description": "The project id of the project the attachment will belong to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta1/beacons/{beaconsId}/attachments", - "id": "proximitybeacon.beacons.attachments.create", - "path": "v1beta1/{+beaconName}/attachments" - }, - "delete": { - "flatPath": "v1beta1/beacons/{beaconsId}/attachments/{attachmentsId}", - "id": "proximitybeacon.beacons.attachments.delete", - "path": "v1beta1/{+attachmentName}", - "description": "Deletes the specified attachment for the given beacon. Each attachment has\na unique attachment name (`attachmentName`) which is returned when you\nfetch the attachment data via this API. You specify this with the delete\nrequest to control which attachment is removed. This operation cannot be\nundone.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.", - "parameterOrder": [ - "attachmentName" - ], - "response": { - "$ref": "Empty" - }, - "httpMethod": "DELETE", - "parameters": { - "projectId": { - "location": "query", - "description": "The project id of the attachment to delete. If not provided, the project\nthat is making the request is used.\nOptional.", - "type": "string" - }, - "attachmentName": { - "description": "The attachment name (`attachmentName`) of\nthe attachment to remove. For example:\n`beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For\nEddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be the\nbeacon's current EID, or its \"stable\" Eddystone-UID.\nRequired.", - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+/attachments/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ] - } - } - }, - "diagnostics": { - "methods": { - "list": { - "id": "proximitybeacon.beacons.diagnostics.list", - "path": "v1beta1/{+beaconName}/diagnostics", - "description": "List the diagnostics for a single beacon. You can also list diagnostics for\nall the beacons owned by your Google Developers Console project by using\nthe beacon name `beacons/-`.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.", - "response": { - "$ref": "ListDiagnosticsResponse" - }, - "parameterOrder": [ - "beaconName" - ], - "httpMethod": "GET", - "parameters": { - "beaconName": { - "location": "path", - "description": "Beacon that the diagnostics are for.", - "type": "string", - "required": true, - "pattern": "^beacons/[^/]+$" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "Requests results that occur after the `page_token`, obtained from the\nresponse to a previous request. Optional." - }, - "alertFilter": { - "description": "Requests only beacons that have the given alert. For example, to find\nbeacons that have low batteries use `alert_filter=LOW_BATTERY`.", - "type": "string", - "location": "query", - "enum": [ - "ALERT_UNSPECIFIED", - "WRONG_LOCATION", - "LOW_BATTERY" - ] - }, - "pageSize": { - "format": "int32", - "description": "Specifies the maximum number of results to return. Defaults to\n10. Maximum 1000. Optional.", - "type": "integer", - "location": "query" - }, - "projectId": { - "description": "Requests only diagnostic records for the given project id. If not set,\nthen the project making the request will be used for looking up\ndiagnostic records. Optional.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/userlocation.beacon.registry" - ], - "flatPath": "v1beta1/beacons/{beaconsId}/diagnostics" + } } } } @@ -572,10 +558,10 @@ "type": "string" }, "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query", + "description": "Returns response with indentations and line breaks." }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", @@ -583,30 +569,29 @@ "location": "query" }, "fields": { + "type": "string", "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "description": "Selector specifying which fields to include in a partial response." }, "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", "enum": [ "1", "2" ], "description": "V1 error format.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" }, "callback": { + "type": "string", "location": "query", - "description": "JSONP", - "type": "string" + "description": "JSONP" }, "alt": { - "description": "Data format for response.", "default": "json", "enum": [ "json", @@ -619,12 +604,13 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query" + "location": "query", + "description": "Data format for response." }, "access_token": { - "type": "string", "location": "query", - "description": "OAuth access token." + "description": "OAuth access token.", + "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.", @@ -637,15 +623,15 @@ "type": "string" }, "pp": { + "description": "Pretty-print response.", "default": "true", "type": "boolean", - "location": "query", - "description": "Pretty-print response." + "location": "query" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" }, "oauth_token": { "location": "query", @@ -654,7 +640,300 @@ } }, "schemas": { + "Date": { + "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", + "type": "object", + "properties": { + "day": { + "format": "int32", + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "type": "integer" + }, + "year": { + "format": "int32", + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "type": "integer" + }, + "month": { + "format": "int32", + "description": "Month of year. Must be from 1 to 12.", + "type": "integer" + } + }, + "id": "Date" + }, + "IndoorLevel": { + "description": "Indoor level, a human-readable string as returned by Google Maps APIs,\nuseful to indicate which floor of a building a beacon is located on.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of this level." + } + }, + "id": "IndoorLevel" + }, + "ListNamespacesResponse": { + "properties": { + "namespaces": { + "items": { + "$ref": "Namespace" + }, + "type": "array", + "description": "The attachments that corresponded to the request params." + } + }, + "id": "ListNamespacesResponse", + "description": "Response to ListNamespacesRequest that contains all the project's namespaces.", + "type": "object" + }, + "Diagnostics": { + "properties": { + "alerts": { + "enumDescriptions": [ + "Invalid value. Should never appear.", + "The beacon has been reported far from its expected location (the beacon's\nlat_lng field if populated, otherwise, if the beacon's place_id field is\npresent, the center of that place). This may indicate that the beacon has\nbeen moved. This signal is not 100% accurate, but indicates that further\ninvestigation is worthwhile.", + "The battery level for the beacon is low enough that, given the beacon's\ncurrent use, its battery will run out with in the next 60 days. This\nindicates that the battery should be replaced soon.", + "The beacon has been reported at a very low rate or not at all. This may\nindicate that the beacon is broken or just that no one has gone near the\nbeacon in recent days. If this status appears unexpectedly, the beacon\nowner should investigate further." + ], + "description": "An unordered list of Alerts that the beacon has.", + "items": { + "enum": [ + "ALERT_UNSPECIFIED", + "WRONG_LOCATION", + "LOW_BATTERY", + "LOW_ACTIVITY" + ], + "type": "string" + }, + "type": "array" + }, + "estimatedLowBatteryDate": { + "$ref": "Date", + "description": "The date when the battery is expected to be low. If the value is missing\nthen there is no estimate for when the battery will be low.\nThis value is only an estimate, not an exact date." + }, + "beaconName": { + "description": "Resource name of the beacon. For Eddystone-EID beacons, this may\nbe the beacon's current EID, or the beacon's \"stable\" Eddystone-UID.", + "type": "string" + } + }, + "id": "Diagnostics", + "description": "Diagnostics for a single beacon.", + "type": "object" + }, + "ListBeaconsResponse": { + "id": "ListBeaconsResponse", + "description": "Response that contains list beacon results and pagination help.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "An opaque pagination token that the client may provide in their next\nrequest to retrieve the next page of results.", + "type": "string" + }, + "totalCount": { + "format": "int64", + "description": "Estimate of the total number of beacons matched by the query. Higher\nvalues may be less accurate.", + "type": "string" + }, + "beacons": { + "description": "The beacons that matched the search criteria.", + "items": { + "$ref": "Beacon" + }, + "type": "array" + } + } + }, + "GetInfoForObservedBeaconsRequest": { + "id": "GetInfoForObservedBeaconsRequest", + "description": "Request for beacon and attachment information about beacons that\na mobile client has encountered \"in the wild\".", + "type": "object", + "properties": { + "observations": { + "description": "The beacons that the client has encountered.\nAt least one must be given.", + "items": { + "$ref": "Observation" + }, + "type": "array" + }, + "namespacedTypes": { + "description": "Specifies what kind of attachments to include in the response.\nWhen given, the response will include only attachments of the given types.\nWhen empty, no attachments will be returned. Must be in the format\n\u003cvar\u003enamespace/type\u003c/var\u003e. Accepts `*` to specify all types in\nall namespaces owned by the client.\nOptional.", + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "BeaconAttachment": { + "description": "Project-specific data associated with a beacon.", + "type": "object", + "properties": { + "creationTimeMs": { + "format": "google-datetime", + "description": "The UTC time when this attachment was created, in milliseconds since the\nUNIX epoch.", + "type": "string" + }, + "maxDistanceMeters": { + "format": "double", + "description": "The distance away from the beacon at which this attachment should be\ndelivered to a mobile app.\n\nSetting this to a value greater than zero indicates that the app should\nbehave as if the beacon is \"seen\" when the mobile device is less than this\ndistance away from the beacon.\n\nDifferent attachments on the same beacon can have different max distances.\n\nNote that even though this value is expressed with fractional meter\nprecision, real-world behavior is likley to be much less precise than one\nmeter, due to the nature of current Bluetooth radio technology.\n\nOptional. When not set or zero, the attachment should be delivered at the\nbeacon's outer limit of detection.\n\nNegative values are invalid and return an error.", + "type": "number" + }, + "attachmentName": { + "description": "Resource name of this attachment. Attachment names have the format:\n\u003ccode\u003ebeacons/\u003cvar\u003ebeacon_id\u003c/var\u003e/attachments/\u003cvar\u003eattachment_id\u003c/var\u003e\u003c/code\u003e.\nLeave this empty on creation.", + "type": "string" + }, + "namespacedType": { + "description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e. Namespace\nprovides type separation between clients. Type describes the type of\n`data`, for use by the client when parsing the `data` field.\nRequired.", + "type": "string" + }, + "data": { + "format": "byte", + "description": "An opaque data container for client-provided data. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses.\nRequired.", + "type": "string" + } + }, + "id": "BeaconAttachment" + }, + "EphemeralIdRegistration": { + "description": "Write-only registration parameters for beacons using Eddystone-EID format.\nTwo ways of securely registering an Eddystone-EID beacon with the service\nare supported:\n\n1. Perform an ECDH key exchange via this API, including a previous call\n to `GET /v1beta1/eidparams`. In this case the fields\n `beacon_ecdh_public_key` and `service_ecdh_public_key` should be\n populated and `beacon_identity_key` should not be populated. This\n method ensures that only the two parties in the ECDH key exchange can\n compute the identity key, which becomes a secret between them.\n2. Derive or obtain the beacon's identity key via other secure means\n (perhaps an ECDH key exchange between the beacon and a mobile device\n or any other secure method), and then submit the resulting identity key\n to the service. In this case `beacon_identity_key` field should be\n populated, and neither of `beacon_ecdh_public_key` nor\n `service_ecdh_public_key` fields should be. The security of this method\n depends on how securely the parties involved (in particular the\n bluetooth client) handle the identity key, and obviously on how\n securely the identity key was generated.\n\nSee [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.", + "type": "object", + "properties": { + "rotationPeriodExponent": { + "format": "uint32", + "description": "Indicates the nominal period between each rotation of the beacon's\nephemeral ID. \"Nominal\" because the beacon should randomize the\nactual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)\nfor details. This value corresponds to a power-of-two scaler on the\nbeacon's clock: when the scaler value is K, the beacon will begin\nbroadcasting a new ephemeral ID on average every 2^K seconds.", + "type": "integer" + }, + "serviceEcdhPublicKey": { + "format": "byte", + "description": "The service's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `beacon_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.", + "type": "string" + }, + "beaconIdentityKey": { + "format": "byte", + "description": "The private key of the beacon. If this field is populated,\n`beacon_ecdh_public_key` and `service_ecdh_public_key` must not be\npopulated.", + "type": "string" + }, + "initialEid": { + "format": "byte", + "description": "An initial ephemeral ID calculated using the clock value submitted as\n`initial_clock_value`, and the secret key generated by the\nDiffie-Hellman key exchange using `service_ecdh_public_key` and\n`service_ecdh_public_key`. This initial EID value will be used by the\nservice to confirm that the key exchange process was successful.", + "type": "string" + }, + "initialClockValue": { + "format": "uint64", + "description": "The initial clock value of the beacon. The beacon's clock must have\nbegun counting at this value immediately prior to transmitting this\nvalue to the resolving service. Significant delay in transmitting this\nvalue to the service risks registration or resolution failures. If a\nvalue is not provided, the default is zero.", + "type": "string" + }, + "beaconEcdhPublicKey": { + "format": "byte", + "description": "The beacon's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `service_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.", + "type": "string" + } + }, + "id": "EphemeralIdRegistration" + }, + "LatLng": { + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "latitude": { + "format": "double", + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "type": "number" + }, + "longitude": { + "format": "double", + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "type": "number" + } + }, + "id": "LatLng" + }, + "ListBeaconAttachmentsResponse": { + "type": "object", + "properties": { + "attachments": { + "description": "The attachments that corresponded to the request params.", + "items": { + "$ref": "BeaconAttachment" + }, + "type": "array" + } + }, + "id": "ListBeaconAttachmentsResponse", + "description": "Response to `ListBeaconAttachments` that contains the requested attachments." + }, + "Namespace": { + "description": "An attachment namespace defines read and write access for all the attachments\ncreated under it. Each namespace is globally unique, and owned by one\nproject which is the only project that can create attachments under it.", + "type": "object", + "properties": { + "servingVisibility": { + "enumDescriptions": [ + "Do not use this value.", + "Served only to the project that owns the namespace.", + "Any project can subscribe to attachments under the namespace." + ], + "enum": [ + "VISIBILITY_UNSPECIFIED", + "UNLISTED", + "PUBLIC" + ], + "description": "Specifies what clients may receive attachments under this namespace\nvia `beaconinfo.getforobserved`.", + "type": "string" + }, + "namespaceName": { + "description": "Resource name of this namespace. Namespaces names have the format:\n\u003ccode\u003enamespaces/\u003cvar\u003enamespace\u003c/var\u003e\u003c/code\u003e.", + "type": "string" + } + }, + "id": "Namespace" + }, + "AttachmentInfo": { + "properties": { + "namespacedType": { + "description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e, for\nexample \u003ccode\u003escrupulous-wombat-12345/welcome-message\u003c/code\u003e", + "type": "string" + }, + "data": { + "format": "byte", + "description": "An opaque data container for client-provided data.", + "type": "string" + } + }, + "id": "AttachmentInfo", + "description": "A subset of attachment information served via the\n`beaconinfo.getforobserved` method, used when your users encounter your\nbeacons.", + "type": "object" + }, + "BeaconInfo": { + "properties": { + "attachments": { + "description": "Attachments matching the type(s) requested.\nMay be empty if no attachment types were requested.", + "items": { + "$ref": "AttachmentInfo" + }, + "type": "array" + }, + "advertisedId": { + "description": "The ID advertised by the beacon.", + "$ref": "AdvertisedId" + }, + "beaconName": { + "description": "The name under which the beacon is registered.", + "type": "string" + } + }, + "id": "BeaconInfo", + "description": "A subset of beacon information served via the `beaconinfo.getforobserved`\nmethod, which you call when users of your app encounter your beacons.", + "type": "object" + }, "EphemeralIdRegistrationParams": { + "description": "Information a client needs to provision and register beacons that\nbroadcast Eddystone-EID format beacon IDs, using Elliptic curve\nDiffie-Hellman key exchange. See\n[the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.", "type": "object", "properties": { "maxRotationPeriodExponent": { @@ -673,8 +952,7 @@ "type": "string" } }, - "id": "EphemeralIdRegistrationParams", - "description": "Information a client needs to provision and register beacons that\nbroadcast Eddystone-EID format beacon IDs, using Elliptic curve\nDiffie-Hellman key exchange. See\n[the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub." + "id": "EphemeralIdRegistrationParams" }, "DeleteAttachmentsResponse": { "description": "Response for a request to delete attachments.", @@ -689,25 +967,25 @@ "id": "DeleteAttachmentsResponse" }, "Observation": { + "description": "Represents one beacon observed once.", "type": "object", "properties": { + "timestampMs": { + "type": "string", + "format": "google-datetime", + "description": "Time when the beacon was observed." + }, + "advertisedId": { + "description": "The ID advertised by the beacon the client has encountered.\n\nIf the submitted `advertised_id` type is Eddystone-EID, then the client\nmust be authorized to resolve the given beacon. Otherwise no data will be\nreturned for that beacon.\nRequired.", + "$ref": "AdvertisedId" + }, "telemetry": { "format": "byte", "description": "The array of telemetry bytes received from the beacon. The server is\nresponsible for parsing it. This field may frequently be empty, as\nwith a beacon that transmits telemetry only occasionally.", "type": "string" - }, - "timestampMs": { - "format": "google-datetime", - "description": "Time when the beacon was observed.", - "type": "string" - }, - "advertisedId": { - "$ref": "AdvertisedId", - "description": "The ID advertised by the beacon the client has encountered.\n\nIf the submitted `advertised_id` type is Eddystone-EID, then the client\nmust be authorized to resolve the given beacon. Otherwise no data will be\nreturned for that beacon.\nRequired." } }, - "id": "Observation", - "description": "Represents one beacon observed once." + "id": "Observation" }, "ListDiagnosticsResponse": { "description": "Response that contains the requested diagnostics.", @@ -745,9 +1023,26 @@ "description": "Details of a beacon device.", "type": "object", "properties": { + "latLng": { + "$ref": "LatLng", + "description": "The location of the beacon, expressed as a latitude and longitude pair.\nThis location is given when the beacon is registered or updated. It does\nnot necessarily indicate the actual current location of the beacon.\nOptional." + }, + "placeId": { + "description": "The [Google Places API](/places/place-id) Place ID of the place where\nthe beacon is deployed. This is given when the beacon is registered or\nupdated, not automatically detected in any way.\nOptional.", + "type": "string" + }, + "description": { + "description": "Free text used to identify and describe the beacon. Maximum length 140\ncharacters.\nOptional.", + "type": "string" + }, + "properties": { + "description": "Properties of the beacon device, for example battery type or firmware\nversion.\nOptional.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "status": { - "description": "Current status of the beacon.\nRequired.", - "type": "string", "enumDescriptions": [ "Do not use this value.", "The \"normal\" in-use state of a beacon.", @@ -759,11 +1054,13 @@ "ACTIVE", "DECOMMISSIONED", "INACTIVE" - ] + ], + "description": "Current status of the beacon.\nRequired.", + "type": "string" }, "indoorLevel": { - "$ref": "IndoorLevel", - "description": "The indoor level information for this beacon, if known. As returned by the\nGoogle Maps API.\nOptional." + "description": "The indoor level information for this beacon, if known. As returned by the\nGoogle Maps API.\nOptional.", + "$ref": "IndoorLevel" }, "beaconName": { "description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.\n\nThis field must be left empty when registering. After reading a beacon,\nclients can use the name for future operations.", @@ -788,45 +1085,31 @@ "type": "string" }, "advertisedId": { - "description": "The identifier of a beacon as advertised by it. This field must be\npopulated when registering. It may be empty when updating a beacon\nrecord because it is ignored in updates.\n\nWhen registering a beacon that broadcasts Eddystone-EID, this field\nshould contain a \"stable\" Eddystone-UID that identifies the beacon and\nlinks it to its attachments. The stable Eddystone-UID is only used for\nadministering the beacon.", - "$ref": "AdvertisedId" + "$ref": "AdvertisedId", + "description": "The identifier of a beacon as advertised by it. This field must be\npopulated when registering. It may be empty when updating a beacon\nrecord because it is ignored in updates.\n\nWhen registering a beacon that broadcasts Eddystone-EID, this field\nshould contain a \"stable\" Eddystone-UID that identifies the beacon and\nlinks it to its attachments. The stable Eddystone-UID is only used for\nadministering the beacon." }, "provisioningKey": { - "type": "string", "format": "byte", - "description": "Some beacons may require a user to provide an authorization key before\nchanging any of its configuration (e.g. broadcast frames, transmit power).\nThis field provides a place to store and control access to that key.\nThis field is populated in responses to `GET /v1beta1/beacons/3!beaconId`\nfrom users with write access to the given beacon. That is to say: If the\nuser is authorized to write the beacon's confidential data in the service,\nthe service considers them authorized to configure the beacon. Note\nthat this key grants nothing on the service, only on the beacon itself." + "description": "Some beacons may require a user to provide an authorization key before\nchanging any of its configuration (e.g. broadcast frames, transmit power).\nThis field provides a place to store and control access to that key.\nThis field is populated in responses to `GET /v1beta1/beacons/3!beaconId`\nfrom users with write access to the given beacon. That is to say: If the\nuser is authorized to write the beacon's confidential data in the service,\nthe service considers them authorized to configure the beacon. Note\nthat this key grants nothing on the service, only on the beacon itself.", + "type": "string" }, "ephemeralIdRegistration": { "$ref": "EphemeralIdRegistration", "description": "Write-only registration parameters for beacons using Eddystone-EID\n(remotely resolved ephemeral ID) format. This information will not be\npopulated in API responses. When submitting this data, the `advertised_id`\nfield must contain an ID of type Eddystone-UID. Any other ID type will\nresult in an error." - }, - "latLng": { - "description": "The location of the beacon, expressed as a latitude and longitude pair.\nThis location is given when the beacon is registered or updated. It does\nnot necessarily indicate the actual current location of the beacon.\nOptional.", - "$ref": "LatLng" - }, - "placeId": { - "description": "The [Google Places API](/places/place-id) Place ID of the place where\nthe beacon is deployed. This is given when the beacon is registered or\nupdated, not automatically detected in any way.\nOptional.", - "type": "string" - }, - "description": { - "description": "Free text used to identify and describe the beacon. Maximum length 140\ncharacters.\nOptional.", - "type": "string" - }, - "properties": { - "additionalProperties": { - "type": "string" - }, - "description": "Properties of the beacon device, for example battery type or firmware\nversion.\nOptional.", - "type": "object" } }, "id": "Beacon" }, "AdvertisedId": { - "description": "Defines a unique identifier of a beacon as broadcast by the device.", - "type": "object", "properties": { "type": { + "enumDescriptions": [ + "Do not use this value.", + "Eddystone, an open beacon format that supports Android and iOS devices\nhttps://github.com/google/eddystone/wiki/Beacon-Specification", + "Apple iBeacon compatible beacon", + "See http://altbeacon.org and/or https://github.com/AltBeacon/spec.", + "Eddystone Ephemeral ID" + ], "enum": [ "TYPE_UNSPECIFIED", "EDDYSTONE", @@ -835,312 +1118,37 @@ "EDDYSTONE_EID" ], "description": "Specifies the identifier type.\nRequired.", - "type": "string", - "enumDescriptions": [ - "Do not use this value.", - "Eddystone, an open beacon format that supports Android and iOS devices\nhttps://github.com/google/eddystone/wiki/Beacon-Specification", - "Apple iBeacon compatible beacon", - "See http://altbeacon.org and/or https://github.com/AltBeacon/spec.", - "Eddystone Ephemeral ID" - ] + "type": "string" }, "id": { - "type": "string", "format": "byte", - "description": "The actual beacon identifier, as broadcast by the beacon hardware. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses. The base64\nencoding should be of the binary byte-stream and not any textual (such as\nhex) representation thereof.\nRequired." - } - }, - "id": "AdvertisedId" - }, - "Date": { - "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", - "type": "object", - "properties": { - "day": { - "format": "int32", - "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", - "type": "integer" - }, - "year": { - "format": "int32", - "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", - "type": "integer" - }, - "month": { - "format": "int32", - "description": "Month of year. Must be from 1 to 12.", - "type": "integer" - } - }, - "id": "Date" - }, - "IndoorLevel": { - "description": "Indoor level, a human-readable string as returned by Google Maps APIs,\nuseful to indicate which floor of a building a beacon is located on.", - "type": "object", - "properties": { - "name": { - "description": "The name of this level.", + "description": "The actual beacon identifier, as broadcast by the beacon hardware. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses. The base64\nencoding should be of the binary byte-stream and not any textual (such as\nhex) representation thereof.\nRequired.", "type": "string" } }, - "id": "IndoorLevel" - }, - "ListNamespacesResponse": { - "type": "object", - "properties": { - "namespaces": { - "description": "The attachments that corresponded to the request params.", - "items": { - "$ref": "Namespace" - }, - "type": "array" - } - }, - "id": "ListNamespacesResponse", - "description": "Response to ListNamespacesRequest that contains all the project's namespaces." - }, - "Diagnostics": { - "description": "Diagnostics for a single beacon.", - "type": "object", - "properties": { - "beaconName": { - "description": "Resource name of the beacon. For Eddystone-EID beacons, this may\nbe the beacon's current EID, or the beacon's \"stable\" Eddystone-UID.", - "type": "string" - }, - "alerts": { - "enumDescriptions": [ - "Invalid value. Should never appear.", - "The beacon has been reported in a location different than its registered\nlocation. This may indicate that the beacon has been moved. This signal\nis not 100% accurate, but indicates that further investigation is worth\nwhile.", - "The battery level for the beacon is low enough that, given the beacon's\ncurrent use, its battery will run out with in the next 60 days. This\nindicates that the battery should be replaced soon." - ], - "description": "An unordered list of Alerts that the beacon has.", - "items": { - "type": "string", - "enum": [ - "ALERT_UNSPECIFIED", - "WRONG_LOCATION", - "LOW_BATTERY" - ] - }, - "type": "array" - }, - "estimatedLowBatteryDate": { - "$ref": "Date", - "description": "The date when the battery is expected to be low. If the value is missing\nthen there is no estimate for when the battery will be low.\nThis value is only an estimate, not an exact date." - } - }, - "id": "Diagnostics" - }, - "ListBeaconsResponse": { - "type": "object", - "properties": { - "nextPageToken": { - "description": "An opaque pagination token that the client may provide in their next\nrequest to retrieve the next page of results.", - "type": "string" - }, - "totalCount": { - "format": "int64", - "description": "Estimate of the total number of beacons matched by the query. Higher\nvalues may be less accurate.", - "type": "string" - }, - "beacons": { - "items": { - "$ref": "Beacon" - }, - "type": "array", - "description": "The beacons that matched the search criteria." - } - }, - "id": "ListBeaconsResponse", - "description": "Response that contains list beacon results and pagination help." - }, - "GetInfoForObservedBeaconsRequest": { - "description": "Request for beacon and attachment information about beacons that\na mobile client has encountered \"in the wild\".", - "type": "object", - "properties": { - "observations": { - "items": { - "$ref": "Observation" - }, - "type": "array", - "description": "The beacons that the client has encountered.\nAt least one must be given." - }, - "namespacedTypes": { - "description": "Specifies what kind of attachments to include in the response.\nWhen given, the response will include only attachments of the given types.\nWhen empty, no attachments will be returned. Must be in the format\n\u003cvar\u003enamespace/type\u003c/var\u003e. Accepts `*` to specify all types in\nall namespaces owned by the client.\nOptional.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "GetInfoForObservedBeaconsRequest" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "BeaconAttachment": { - "properties": { - "namespacedType": { - "description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e. Namespace\nprovides type separation between clients. Type describes the type of\n`data`, for use by the client when parsing the `data` field.\nRequired.", - "type": "string" - }, - "data": { - "format": "byte", - "description": "An opaque data container for client-provided data. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses.\nRequired.", - "type": "string" - }, - "creationTimeMs": { - "format": "google-datetime", - "description": "The UTC time when this attachment was created, in milliseconds since the\nUNIX epoch.", - "type": "string" - }, - "attachmentName": { - "description": "Resource name of this attachment. Attachment names have the format:\n\u003ccode\u003ebeacons/\u003cvar\u003ebeacon_id\u003c/var\u003e/attachments/\u003cvar\u003eattachment_id\u003c/var\u003e\u003c/code\u003e.\nLeave this empty on creation.", - "type": "string" - } - }, - "id": "BeaconAttachment", - "description": "Project-specific data associated with a beacon.", + "id": "AdvertisedId", + "description": "Defines a unique identifier of a beacon as broadcast by the device.", "type": "object" - }, - "EphemeralIdRegistration": { - "description": "Write-only registration parameters for beacons using Eddystone-EID format.\nTwo ways of securely registering an Eddystone-EID beacon with the service\nare supported:\n\n1. Perform an ECDH key exchange via this API, including a previous call\n to `GET /v1beta1/eidparams`. In this case the fields\n `beacon_ecdh_public_key` and `service_ecdh_public_key` should be\n populated and `beacon_identity_key` should not be populated. This\n method ensures that only the two parties in the ECDH key exchange can\n compute the identity key, which becomes a secret between them.\n2. Derive or obtain the beacon's identity key via other secure means\n (perhaps an ECDH key exchange between the beacon and a mobile device\n or any other secure method), and then submit the resulting identity key\n to the service. In this case `beacon_identity_key` field should be\n populated, and neither of `beacon_ecdh_public_key` nor\n `service_ecdh_public_key` fields should be. The security of this method\n depends on how securely the parties involved (in particular the\n bluetooth client) handle the identity key, and obviously on how\n securely the identity key was generated.\n\nSee [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.", - "type": "object", - "properties": { - "initialEid": { - "format": "byte", - "description": "An initial ephemeral ID calculated using the clock value submitted as\n`initial_clock_value`, and the secret key generated by the\nDiffie-Hellman key exchange using `service_ecdh_public_key` and\n`service_ecdh_public_key`. This initial EID value will be used by the\nservice to confirm that the key exchange process was successful.", - "type": "string" - }, - "initialClockValue": { - "type": "string", - "format": "uint64", - "description": "The initial clock value of the beacon. The beacon's clock must have\nbegun counting at this value immediately prior to transmitting this\nvalue to the resolving service. Significant delay in transmitting this\nvalue to the service risks registration or resolution failures. If a\nvalue is not provided, the default is zero." - }, - "beaconEcdhPublicKey": { - "format": "byte", - "description": "The beacon's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `service_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.", - "type": "string" - }, - "rotationPeriodExponent": { - "format": "uint32", - "description": "Indicates the nominal period between each rotation of the beacon's\nephemeral ID. \"Nominal\" because the beacon should randomize the\nactual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)\nfor details. This value corresponds to a power-of-two scaler on the\nbeacon's clock: when the scaler value is K, the beacon will begin\nbroadcasting a new ephemeral ID on average every 2^K seconds.", - "type": "integer" - }, - "serviceEcdhPublicKey": { - "format": "byte", - "description": "The service's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `beacon_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.", - "type": "string" - }, - "beaconIdentityKey": { - "type": "string", - "format": "byte", - "description": "The private key of the beacon. If this field is populated,\n`beacon_ecdh_public_key` and `service_ecdh_public_key` must not be\npopulated." - } - }, - "id": "EphemeralIdRegistration" - }, - "LatLng": { - "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", - "type": "object", - "properties": { - "latitude": { - "format": "double", - "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", - "type": "number" - }, - "longitude": { - "format": "double", - "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", - "type": "number" - } - }, - "id": "LatLng" - }, - "ListBeaconAttachmentsResponse": { - "description": "Response to `ListBeaconAttachments` that contains the requested attachments.", - "type": "object", - "properties": { - "attachments": { - "items": { - "$ref": "BeaconAttachment" - }, - "type": "array", - "description": "The attachments that corresponded to the request params." - } - }, - "id": "ListBeaconAttachmentsResponse" - }, - "Namespace": { - "properties": { - "namespaceName": { - "description": "Resource name of this namespace. Namespaces names have the format:\n\u003ccode\u003enamespaces/\u003cvar\u003enamespace\u003c/var\u003e\u003c/code\u003e.", - "type": "string" - }, - "servingVisibility": { - "description": "Specifies what clients may receive attachments under this namespace\nvia `beaconinfo.getforobserved`.", - "type": "string", - "enumDescriptions": [ - "Do not use this value.", - "Served only to the project that owns the namespace.", - "Any project can subscribe to attachments under the namespace." - ], - "enum": [ - "VISIBILITY_UNSPECIFIED", - "UNLISTED", - "PUBLIC" - ] - } - }, - "id": "Namespace", - "description": "An attachment namespace defines read and write access for all the attachments\ncreated under it. Each namespace is globally unique, and owned by one\nproject which is the only project that can create attachments under it.", - "type": "object" - }, - "AttachmentInfo": { - "properties": { - "namespacedType": { - "description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e, for\nexample \u003ccode\u003escrupulous-wombat-12345/welcome-message\u003c/code\u003e", - "type": "string" - }, - "data": { - "format": "byte", - "description": "An opaque data container for client-provided data.", - "type": "string" - } - }, - "id": "AttachmentInfo", - "description": "A subset of attachment information served via the\n`beaconinfo.getforobserved` method, used when your users encounter your\nbeacons.", - "type": "object" - }, - "BeaconInfo": { - "description": "A subset of beacon information served via the `beaconinfo.getforobserved`\nmethod, which you call when users of your app encounter your beacons.", - "type": "object", - "properties": { - "attachments": { - "description": "Attachments matching the type(s) requested.\nMay be empty if no attachment types were requested.", - "items": { - "$ref": "AttachmentInfo" - }, - "type": "array" - }, - "advertisedId": { - "$ref": "AdvertisedId", - "description": "The ID advertised by the beacon." - }, - "beaconName": { - "description": "The name under which the beacon is registered.", - "type": "string" - } - }, - "id": "BeaconInfo" } }, + "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "protocol": "rest" + "version": "v1beta1", + "baseUrl": "https://proximitybeacon.googleapis.com/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/userlocation.beacon.registry": { + "description": "View and modify your beacons" + } + } + } + }, + "kind": "discovery#restDescription", + "description": "Registers, manages, indexes, and searches beacons.", + "servicePath": "", + "rootUrl": "https://proximitybeacon.googleapis.com/" } diff --git a/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-gen.go b/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-gen.go index c15801393..7878ca8b9 100644 --- a/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-gen.go +++ b/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-gen.go @@ -411,6 +411,33 @@ type BeaconAttachment struct { // Required. Data string `json:"data,omitempty"` + // MaxDistanceMeters: The distance away from the beacon at which this + // attachment should be + // delivered to a mobile app. + // + // Setting this to a value greater than zero indicates that the app + // should + // behave as if the beacon is "seen" when the mobile device is less than + // this + // distance away from the beacon. + // + // Different attachments on the same beacon can have different max + // distances. + // + // Note that even though this value is expressed with fractional + // meter + // precision, real-world behavior is likley to be much less precise than + // one + // meter, due to the nature of current Bluetooth radio + // technology. + // + // Optional. When not set or zero, the attachment should be delivered at + // the + // beacon's outer limit of detection. + // + // Negative values are invalid and return an error. + MaxDistanceMeters float64 `json:"maxDistanceMeters,omitempty"` + // NamespacedType: Specifies what kind of attachment this is. Tells a // client how to // interpret the `data` field. Format is namespace/type. @@ -450,6 +477,20 @@ func (s *BeaconAttachment) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +func (s *BeaconAttachment) UnmarshalJSON(data []byte) error { + type noMethod BeaconAttachment + var s1 struct { + MaxDistanceMeters gensupport.JSONFloat64 `json:"maxDistanceMeters"` + *noMethod + } + s1.noMethod = (*noMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.MaxDistanceMeters = float64(s1.MaxDistanceMeters) + return nil +} + // BeaconInfo: A subset of beacon information served via the // `beaconinfo.getforobserved` // method, which you call when users of your app encounter your beacons. @@ -576,18 +617,27 @@ type Diagnostics struct { // // Possible values: // "ALERT_UNSPECIFIED" - Invalid value. Should never appear. - // "WRONG_LOCATION" - The beacon has been reported in a location - // different than its registered - // location. This may indicate that the beacon has been moved. This - // signal - // is not 100% accurate, but indicates that further investigation is - // worth - // while. + // "WRONG_LOCATION" - The beacon has been reported far from its + // expected location (the beacon's + // lat_lng field if populated, otherwise, if the beacon's place_id field + // is + // present, the center of that place). This may indicate that the beacon + // has + // been moved. This signal is not 100% accurate, but indicates that + // further + // investigation is worthwhile. // "LOW_BATTERY" - The battery level for the beacon is low enough // that, given the beacon's // current use, its battery will run out with in the next 60 days. // This // indicates that the battery should be replaced soon. + // "LOW_ACTIVITY" - The beacon has been reported at a very low rate or + // not at all. This may + // indicate that the beacon is broken or just that no one has gone near + // the + // beacon in recent days. If this status appears unexpectedly, the + // beacon + // owner should investigate further. Alerts []string `json:"alerts,omitempty"` // BeaconName: Resource name of the beacon. For Eddystone-EID beacons, @@ -3477,6 +3527,7 @@ func (r *BeaconsDiagnosticsService) List(beaconName string) *BeaconsDiagnosticsL // "ALERT_UNSPECIFIED" // "WRONG_LOCATION" // "LOW_BATTERY" +// "LOW_ACTIVITY" func (c *BeaconsDiagnosticsListCall) AlertFilter(alertFilter string) *BeaconsDiagnosticsListCall { c.urlParams_.Set("alertFilter", alertFilter) return c @@ -3615,7 +3666,8 @@ func (c *BeaconsDiagnosticsListCall) Do(opts ...googleapi.CallOption) (*ListDiag // "enum": [ // "ALERT_UNSPECIFIED", // "WRONG_LOCATION", - // "LOW_BATTERY" + // "LOW_BATTERY", + // "LOW_ACTIVITY" // ], // "location": "query", // "type": "string" diff --git a/vendor/google.golang.org/api/pubsub/v1/pubsub-api.json b/vendor/google.golang.org/api/pubsub/v1/pubsub-api.json index 722930a8d..d767fe744 100644 --- a/vendor/google.golang.org/api/pubsub/v1/pubsub-api.json +++ b/vendor/google.golang.org/api/pubsub/v1/pubsub-api.json @@ -1,22 +1,215 @@ { + "version": "v1", + "baseUrl": "https://pubsub.googleapis.com/", + "canonicalName": "Pubsub", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/pubsub": { + "description": "View and manage Pub/Sub topics and subscriptions" + } + } + } + }, + "servicePath": "", + "kind": "discovery#restDescription", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.\n", + "rootUrl": "https://pubsub.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "pubsub", + "batchPath": "batch", "id": "pubsub:v1", - "revision": "20170918", "documentationLink": "https://cloud.google.com/pubsub/docs", + "revision": "20171003", "title": "Google Cloud Pub/Sub API", "ownerName": "Google", "discoveryVersion": "v1", "resources": { "projects": { "resources": { - "snapshots": { + "topics": { "methods": { - "setIamPolicy": { - "path": "v1/{+resource}:setIamPolicy", - "id": "pubsub.projects.snapshots.setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "request": { - "$ref": "SetIamPolicyRequest" + "get": { + "description": "Gets the configuration of a topic.", + "httpMethod": "GET", + "response": { + "$ref": "Topic" }, + "parameterOrder": [ + "topic" + ], + "parameters": { + "topic": { + "description": "The name of the topic to get.\nFormat is `projects/{project}/topics/{topic}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", + "path": "v1/{+topic}", + "id": "pubsub.projects.topics.get" + }, + "publish": { + "response": { + "$ref": "PublishResponse" + }, + "parameterOrder": [ + "topic" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "topic": { + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path", + "description": "The messages in the request will be published on this topic.\nFormat is `projects/{project}/topics/{topic}`.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:publish", + "id": "pubsub.projects.topics.publish", + "path": "v1/{+topic}:publish", + "request": { + "$ref": "PublishRequest" + }, + "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute." + }, + "testIamPermissions": { + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:testIamPermissions", + "id": "pubsub.projects.topics.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." + }, + "delete": { + "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "topic" + ], + "httpMethod": "DELETE", + "parameters": { + "topic": { + "description": "Name of the topic to delete.\nFormat is `projects/{project}/topics/{topic}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", + "id": "pubsub.projects.topics.delete", + "path": "v1/{+topic}" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListTopicsResponse" + }, + "parameterOrder": [ + "project" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data." + }, + "pageSize": { + "format": "int32", + "description": "Maximum number of topics to return.", + "type": "integer", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "The name of the cloud project that topics belong to.\nFormat is `projects/{project}`." + } + }, + "flatPath": "v1/projects/{projectsId}/topics", + "path": "v1/{+project}/topics", + "id": "pubsub.projects.topics.list", + "description": "Lists matching topics." + }, + "create": { + "id": "pubsub.projects.topics.create", + "path": "v1/{+name}", + "description": "Creates the given topic with the given name.", + "request": { + "$ref": "Topic" + }, + "response": { + "$ref": "Topic" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "parameters": { + "name": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path", + "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}" + }, + "setIamPolicy": { "httpMethod": "POST", "parameterOrder": [ "resource" @@ -24,50 +217,100 @@ "response": { "$ref": "Policy" }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], "parameters": { "resource": { - "pattern": "^projects/[^/]+/snapshots/[^/]+$", - "location": "path", "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}:setIamPolicy" - }, - "testIamPermissions": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "pubsub.projects.topics.setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy." + }, + "getIamPolicy": { "parameters": { "resource": { - "pattern": "^projects/[^/]+/snapshots/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], - "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}:testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "id": "pubsub.projects.snapshots.testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "TestIamPermissionsRequest" + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "pubsub.projects.topics.getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "httpMethod": "GET", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ] + } + }, + "resources": { + "subscriptions": { + "methods": { + "list": { + "path": "v1/{+topic}/subscriptions", + "id": "pubsub.projects.topics.subscriptions.list", + "description": "Lists the name of the subscriptions for this topic.", + "httpMethod": "GET", + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "ListTopicSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates\nthat this is a continuation of a prior `ListTopicSubscriptions` call, and\nthat the system should return the next page of data.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "Maximum number of subscription names to return.", + "type": "integer", + "location": "query" + }, + "topic": { + "description": "The name of the topic that subscriptions are attached to.\nFormat is `projects/{project}/topics/{topic}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/topics/{topicsId}/subscriptions" + } } - }, + } + } + }, + "snapshots": { + "methods": { "getIamPolicy": { "response": { "$ref": "Policy" @@ -93,57 +336,8 @@ "id": "pubsub.projects.snapshots.getIamPolicy", "path": "v1/{+resource}:getIamPolicy", "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." - } - } - }, - "subscriptions": { - "methods": { - "create": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "name": { - "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", - "path": "v1/{+name}", - "id": "pubsub.projects.subscriptions.create", - "request": { - "$ref": "Subscription" - }, - "description": "Creates a subscription to a given topic.\nIf the subscription already exists, returns `ALREADY_EXISTS`.\nIf the corresponding topic doesn't exist, returns `NOT_FOUND`.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic, conforming\nto the\n[resource name format](https://cloud.google.com/pubsub/docs/overview#names).\nThe generated name is populated in the returned Subscription object.\nNote that for REST API requests, you must specify a name in the request.", - "httpMethod": "PUT", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Subscription" - } }, "setIamPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:setIamPolicy", - "id": "pubsub.projects.subscriptions.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", "request": { "$ref": "SetIamPolicyRequest" }, @@ -154,46 +348,336 @@ "parameterOrder": [ "resource" ], - "httpMethod": "POST" - }, - "getIamPolicy": { + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], "parameters": { "resource": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+/snapshots/[^/]+$", + "location": "path" } }, - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:getIamPolicy", - "id": "pubsub.projects.subscriptions.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}:setIamPolicy", + "id": "pubsub.projects.snapshots.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy" + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "httpMethod": "POST", "parameterOrder": [ "resource" ], - "httpMethod": "GET", "response": { - "$ref": "Policy" - } + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/snapshots/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "pubsub.projects.snapshots.testIamPermissions" + } + } + }, + "subscriptions": { + "methods": { + "get": { + "response": { + "$ref": "Subscription" + }, + "parameterOrder": [ + "subscription" + ], + "httpMethod": "GET", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path", + "description": "The name of the subscription to get.\nFormat is `projects/{project}/subscriptions/{sub}`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", + "id": "pubsub.projects.subscriptions.get", + "path": "v1/{+subscription}", + "description": "Gets the configuration details of a subscription." }, - "modifyAckDeadline": { + "testIamPermissions": { + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "pubsub.projects.subscriptions.testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyPushConfig": { + "request": { + "$ref": "ModifyPushConfigRequest" + }, + "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.", + "httpMethod": "POST", + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Empty" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], "parameters": { "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", "description": "The name of the subscription.\nFormat is `projects/{project}/subscriptions/{sub}`.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyPushConfig", + "path": "v1/{+subscription}:modifyPushConfig", + "id": "pubsub.projects.subscriptions.modifyPushConfig" + }, + "delete": { + "description": "Deletes an existing subscription. All messages retained in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription or its topic unless the same topic is specified.", + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "subscription" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "subscription": { + "description": "The subscription to delete.\nFormat is `projects/{project}/subscriptions/{sub}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", + "path": "v1/{+subscription}", + "id": "pubsub.projects.subscriptions.delete" + }, + "pull": { + "response": { + "$ref": "PullResponse" + }, + "parameterOrder": [ + "subscription" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "subscription": { + "location": "path", + "description": "The subscription from which messages should be pulled.\nFormat is `projects/{project}/subscriptions/{sub}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", + "id": "pubsub.projects.subscriptions.pull", + "path": "v1/{+subscription}:pull", + "request": { + "$ref": "PullRequest" + }, + "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription." + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "parameters": { + "project": { + "description": "The name of the cloud project that subscriptions belong to.\nFormat is `projects/{project}`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, + "pageToken": { + "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.", + "type": "string", + "location": "query" + }, + "pageSize": { + "format": "int32", + "description": "Maximum number of subscriptions to return.", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/subscriptions", + "path": "v1/{+project}/subscriptions", + "id": "pubsub.projects.subscriptions.list", + "description": "Lists matching subscriptions." + }, + "setIamPolicy": { + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "pubsub.projects.subscriptions.setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + } + }, + "create": { + "description": "Creates a subscription to a given topic.\nIf the subscription already exists, returns `ALREADY_EXISTS`.\nIf the corresponding topic doesn't exist, returns `NOT_FOUND`.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic, conforming\nto the\n[resource name format](https://cloud.google.com/pubsub/docs/overview#names).\nThe generated name is populated in the returned Subscription object.\nNote that for REST API requests, you must specify a name in the request.", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "parameters": { + "name": { + "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", + "id": "pubsub.projects.subscriptions.create", + "path": "v1/{+name}" + }, + "getIamPolicy": { + "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:getIamPolicy", + "id": "pubsub.projects.subscriptions.getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "response": { + "$ref": "Policy" + }, + "httpMethod": "GET", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyAckDeadline": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "subscription" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "subscription": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path", + "description": "The name of the subscription.\nFormat is `projects/{project}/subscriptions/{sub}`." } }, "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyAckDeadline", @@ -202,14 +686,7 @@ "request": { "$ref": "ModifyAckDeadlineRequest" }, - "description": "Modifies the ack deadline for a specific message. This method is useful\nto indicate that more time is needed to process a message by the\nsubscriber, or to make the message available for redelivery if the\nprocessing was interrupted. Note that this does not modify the\nsubscription-level `ackDeadlineSeconds` used for subsequent messages.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "POST" + "description": "Modifies the ack deadline for a specific message. This method is useful\nto indicate that more time is needed to process a message by the\nsubscriber, or to make the message available for redelivery if the\nprocessing was interrupted. Note that this does not modify the\nsubscription-level `ackDeadlineSeconds` used for subsequent messages." }, "acknowledge": { "response": { @@ -239,460 +716,6 @@ "$ref": "AcknowledgeRequest" }, "description": "Acknowledges the messages associated with the `ack_ids` in the\n`AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages\nfrom the subscription.\n\nAcknowledging a message whose ack deadline has expired may succeed,\nbut such a message may be redelivered later. Acknowledging a message more\nthan once will not result in an error." - }, - "get": { - "response": { - "$ref": "Subscription" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "GET", - "parameters": { - "subscription": { - "description": "The name of the subscription to get.\nFormat is `projects/{project}/subscriptions/{sub}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", - "id": "pubsub.projects.subscriptions.get", - "path": "v1/{+subscription}", - "description": "Gets the configuration details of a subscription." - }, - "testIamPermissions": { - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:testIamPermissions", - "id": "pubsub.projects.subscriptions.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions" - }, - "modifyPushConfig": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "The name of the subscription.\nFormat is `projects/{project}/subscriptions/{sub}`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyPushConfig", - "id": "pubsub.projects.subscriptions.modifyPushConfig", - "path": "v1/{+subscription}:modifyPushConfig", - "request": { - "$ref": "ModifyPushConfigRequest" - }, - "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "POST" - }, - "delete": { - "path": "v1/{+subscription}", - "id": "pubsub.projects.subscriptions.delete", - "description": "Deletes an existing subscription. All messages retained in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription or its topic unless the same topic is specified.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "subscription" - ], - "parameters": { - "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "The subscription to delete.\nFormat is `projects/{project}/subscriptions/{sub}`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}" - }, - "pull": { - "parameters": { - "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "The subscription from which messages should be pulled.\nFormat is `projects/{project}/subscriptions/{sub}`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", - "id": "pubsub.projects.subscriptions.pull", - "path": "v1/{+subscription}:pull", - "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription.", - "request": { - "$ref": "PullRequest" - }, - "response": { - "$ref": "PullResponse" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "POST" - }, - "list": { - "path": "v1/{+project}/subscriptions", - "id": "pubsub.projects.subscriptions.list", - "description": "Lists matching subscriptions.", - "httpMethod": "GET", - "response": { - "$ref": "ListSubscriptionsResponse" - }, - "parameterOrder": [ - "project" - ], - "parameters": { - "pageToken": { - "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of subscriptions to return.", - "type": "integer", - "location": "query" - }, - "project": { - "pattern": "^projects/[^/]+$", - "location": "path", - "description": "The name of the cloud project that subscriptions belong to.\nFormat is `projects/{project}`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/subscriptions" - } - } - }, - "topics": { - "methods": { - "create": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "name": { - "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", - "path": "v1/{+name}", - "id": "pubsub.projects.topics.create", - "request": { - "$ref": "Topic" - }, - "description": "Creates the given topic with the given name.", - "httpMethod": "PUT", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Topic" - } - }, - "setIamPolicy": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "id": "pubsub.projects.topics.setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - } - }, - "getIamPolicy": { - "path": "v1/{+resource}:getIamPolicy", - "id": "pubsub.projects.topics.getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "httpMethod": "GET", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:getIamPolicy" - }, - "get": { - "parameters": { - "topic": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "The name of the topic to get.\nFormat is `projects/{project}/topics/{topic}`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", - "path": "v1/{+topic}", - "id": "pubsub.projects.topics.get", - "description": "Gets the configuration of a topic.", - "httpMethod": "GET", - "parameterOrder": [ - "topic" - ], - "response": { - "$ref": "Topic" - } - }, - "publish": { - "response": { - "$ref": "PublishResponse" - }, - "parameterOrder": [ - "topic" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "topic": { - "description": "The messages in the request will be published on this topic.\nFormat is `projects/{project}/topics/{topic}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:publish", - "id": "pubsub.projects.topics.publish", - "path": "v1/{+topic}:publish", - "request": { - "$ref": "PublishRequest" - }, - "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute." - }, - "testIamPermissions": { - "path": "v1/{+resource}:testIamPermissions", - "id": "pubsub.projects.topics.testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}:testIamPermissions" - }, - "delete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "topic": { - "description": "Name of the topic to delete.\nFormat is `projects/{project}/topics/{topic}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", - "path": "v1/{+topic}", - "id": "pubsub.projects.topics.delete", - "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.", - "httpMethod": "DELETE", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "topic" - ] - }, - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Maximum number of topics to return.", - "type": "integer", - "location": "query" - }, - "project": { - "description": "The name of the cloud project that topics belong to.\nFormat is `projects/{project}`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/topics", - "path": "v1/{+project}/topics", - "id": "pubsub.projects.topics.list", - "description": "Lists matching topics.", - "httpMethod": "GET", - "response": { - "$ref": "ListTopicsResponse" - }, - "parameterOrder": [ - "project" - ] - } - }, - "resources": { - "subscriptions": { - "methods": { - "list": { - "description": "Lists the name of the subscriptions for this topic.", - "response": { - "$ref": "ListTopicSubscriptionsResponse" - }, - "parameterOrder": [ - "topic" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "pageToken": { - "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates\nthat this is a continuation of a prior `ListTopicSubscriptions` call, and\nthat the system should return the next page of data.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Maximum number of subscription names to return.", - "type": "integer" - }, - "topic": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "The name of the topic that subscriptions are attached to.\nFormat is `projects/{project}/topics/{topic}`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectsId}/topics/{topicsId}/subscriptions", - "id": "pubsub.projects.topics.subscriptions.list", - "path": "v1/{+topic}/subscriptions" - } - } } } } @@ -700,38 +723,44 @@ } }, "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "bearer_token": { + "description": "OAuth bearer token.", "type": "string", "location": "query" }, - "prettyPrint": { + "upload_protocol": { "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "boolean", + "location": "query" }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, "$.xgafv": { + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -741,13 +770,7 @@ "1", "2" ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" + "description": "V1 error format." }, "alt": { "enumDescriptions": [ @@ -766,9 +789,9 @@ "type": "string" }, "access_token": { - "location": "query", "description": "OAuth access token.", - "type": "string" + "type": "string", + "location": "query" }, "key": { "location": "query", @@ -781,21 +804,20 @@ "location": "query" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" } }, "schemas": { "ModifyAckDeadlineRequest": { - "description": "Request for the ModifyAckDeadline method.", "type": "object", "properties": { "ackDeadlineSeconds": { + "type": "integer", "format": "int32", - "description": "The new ack deadline with respect to the time this request was sent to\nthe Pub/Sub system. For example, if the value is 10, the new\nack deadline will expire 10 seconds after the `ModifyAckDeadline` call\nwas made. Specifying zero may immediately make the message available for\nanother pull request.\nThe minimum deadline you can specify is 0 seconds.\nThe maximum deadline you can specify is 600 seconds (10 minutes).", - "type": "integer" + "description": "The new ack deadline with respect to the time this request was sent to\nthe Pub/Sub system. For example, if the value is 10, the new\nack deadline will expire 10 seconds after the `ModifyAckDeadline` call\nwas made. Specifying zero may immediately make the message available for\nanother pull request.\nThe minimum deadline you can specify is 0 seconds.\nThe maximum deadline you can specify is 600 seconds (10 minutes)." }, "ackIds": { "description": "List of acknowledgment IDs.", @@ -805,10 +827,10 @@ "type": "array" } }, - "id": "ModifyAckDeadlineRequest" + "id": "ModifyAckDeadlineRequest", + "description": "Request for the ModifyAckDeadline method." }, "SetIamPolicyRequest": { - "id": "SetIamPolicyRequest", "description": "Request message for `SetIamPolicy` method.", "type": "object", "properties": { @@ -816,17 +838,24 @@ "$ref": "Policy", "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." } - } + }, + "id": "SetIamPolicyRequest" + }, + "ModifyPushConfigRequest": { + "description": "Request for the ModifyPushConfig method.", + "type": "object", + "properties": { + "pushConfig": { + "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` or `StreamingPull` is not called.", + "$ref": "PushConfig" + } + }, + "id": "ModifyPushConfigRequest" }, "PubsubMessage": { "description": "A message data and its attributes. The message payload must not be empty;\nit must contain either a non-empty data field, or at least one attribute.", "type": "object", "properties": { - "publishTime": { - "format": "google-datetime", - "description": "The time at which the message was published, populated by the server when\nit receives the `Publish` call. It must not be populated by the\npublisher in a `Publish` call.", - "type": "string" - }, "data": { "format": "byte", "description": "The message payload.", @@ -842,38 +871,32 @@ }, "description": "Optional attributes for this message.", "type": "object" + }, + "publishTime": { + "format": "google-datetime", + "description": "The time at which the message was published, populated by the server when\nit receives the `Publish` call. It must not be populated by the\npublisher in a `Publish` call.", + "type": "string" } }, "id": "PubsubMessage" }, - "ModifyPushConfigRequest": { - "id": "ModifyPushConfigRequest", - "description": "Request for the ModifyPushConfig method.", - "type": "object", - "properties": { - "pushConfig": { - "$ref": "PushConfig", - "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` or `StreamingPull` is not called." - } - } - }, "Binding": { - "id": "Binding", - "description": "Associates `members` with a `role`.", - "type": "object", "properties": { + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + }, "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", "items": { "type": "string" }, "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" } - } + }, + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" }, "AcknowledgeRequest": { "description": "Request for the Acknowledge method.", @@ -899,16 +922,16 @@ "description": "Response for the `ListTopics` method.", "type": "object", "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more topics that match the\nrequest; this value should be passed in a new `ListTopicsRequest`.", + "type": "string" + }, "topics": { "description": "The resulting topics.", "items": { "$ref": "Topic" }, "type": "array" - }, - "nextPageToken": { - "description": "If not empty, indicates that there may be more topics that match the\nrequest; this value should be passed in a new `ListTopicsRequest`.", - "type": "string" } }, "id": "ListTopicsResponse" @@ -917,16 +940,16 @@ "description": "Response for the `ListTopicSubscriptions` method.", "type": "object", "properties": { - "subscriptions": { - "description": "The names of the subscriptions that match the request.", - "items": { - "type": "string" - }, - "type": "array" - }, "nextPageToken": { "description": "If not empty, indicates that there may be more subscriptions that match\nthe request; this value should be passed in a new\n`ListTopicSubscriptionsRequest` to get more subscriptions.", "type": "string" + }, + "subscriptions": { + "items": { + "type": "string" + }, + "type": "array", + "description": "The names of the subscriptions that match the request." } }, "id": "ListTopicSubscriptionsResponse" @@ -950,36 +973,35 @@ "description": "A message and its corresponding acknowledgment ID.", "type": "object", "properties": { - "message": { - "description": "The message.", - "$ref": "PubsubMessage" - }, "ackId": { - "description": "This ID can be used to acknowledge the received message.", - "type": "string" + "type": "string", + "description": "This ID can be used to acknowledge the received message." + }, + "message": { + "$ref": "PubsubMessage", + "description": "The message." } } }, "PushConfig": { - "id": "PushConfig", "description": "Configuration for a push delivery endpoint.", "type": "object", "properties": { "attributes": { + "type": "object", "additionalProperties": { "type": "string" }, - "description": "Endpoint configuration attributes.\n\nEvery endpoint has a set of API supported attributes that can be used to\ncontrol different aspects of the message delivery.\n\nThe currently supported attribute is `x-goog-version`, which you can\nuse to change the format of the pushed message. This attribute\nindicates the version of the data expected by the endpoint. This\ncontrols the shape of the pushed message (i.e., its fields and metadata).\nThe endpoint version is based on the version of the Pub/Sub API.\n\nIf not present during the `CreateSubscription` call, it will default to\nthe version of the API used to make such call. If not present during a\n`ModifyPushConfig` call, its value will not be changed. `GetSubscription`\ncalls will always return a valid version, even if the subscription was\ncreated without this attribute.\n\nThe possible values for this attribute are:\n\n* `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.\n* `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.", - "type": "object" + "description": "Endpoint configuration attributes.\n\nEvery endpoint has a set of API supported attributes that can be used to\ncontrol different aspects of the message delivery.\n\nThe currently supported attribute is `x-goog-version`, which you can\nuse to change the format of the pushed message. This attribute\nindicates the version of the data expected by the endpoint. This\ncontrols the shape of the pushed message (i.e., its fields and metadata).\nThe endpoint version is based on the version of the Pub/Sub API.\n\nIf not present during the `CreateSubscription` call, it will default to\nthe version of the API used to make such call. If not present during a\n`ModifyPushConfig` call, its value will not be changed. `GetSubscription`\ncalls will always return a valid version, even if the subscription was\ncreated without this attribute.\n\nThe possible values for this attribute are:\n\n* `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.\n* `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API." }, "pushEndpoint": { "description": "A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use \"https://example.com/push\".", "type": "string" } - } + }, + "id": "PushConfig" }, "TestIamPermissionsResponse": { - "id": "TestIamPermissionsResponse", "description": "Response message for `TestIamPermissions` method.", "type": "object", "properties": { @@ -990,7 +1012,8 @@ }, "type": "array" } - } + }, + "id": "TestIamPermissionsResponse" }, "PullRequest": { "description": "Request for the `Pull` method.", @@ -1009,7 +1032,6 @@ "id": "PullRequest" }, "ListSubscriptionsResponse": { - "id": "ListSubscriptionsResponse", "description": "Response for the `ListSubscriptions` method.", "type": "object", "properties": { @@ -1024,11 +1046,10 @@ }, "type": "array" } - } + }, + "id": "ListSubscriptionsResponse" }, "PublishRequest": { - "id": "PublishRequest", - "description": "Request for the Publish method.", "type": "object", "properties": { "messages": { @@ -1038,10 +1059,11 @@ }, "type": "array" } - } + }, + "id": "PublishRequest", + "description": "Request for the Publish method." }, "PublishResponse": { - "description": "Response for the `Publish` method.", "type": "object", "properties": { "messageIds": { @@ -1052,13 +1074,18 @@ "type": "array" } }, - "id": "PublishResponse" + "id": "PublishResponse", + "description": "Response for the `Publish` method." }, "Subscription": { - "id": "Subscription", "description": "A subscription resource.", "type": "object", "properties": { + "ackDeadlineSeconds": { + "format": "int32", + "description": "This value is the maximum time after a subscriber receives a message\nbefore the subscriber should acknowledge the message. After message\ndelivery but before the ack deadline expires and before the message is\nacknowledged, it is an outstanding message and will not be delivered\nagain during that time (on a best-effort basis).\n\nFor pull subscriptions, this value is used as the initial value for the ack\ndeadline. To override this value for a given message, call\n`ModifyAckDeadline` with the corresponding `ack_id` if using\nnon-streaming pull or send the `ack_id` in a\n`StreamingModifyAckDeadlineRequest` if using streaming pull.\nThe minimum custom deadline you can specify is 10 seconds.\nThe maximum custom deadline you can specify is 600 seconds (10 minutes).\nIf this parameter is 0, a default value of 10 seconds is used.\n\nFor push delivery, this value is also used to set the request timeout for\nthe call to the push endpoint.\n\nIf the subscriber never acknowledges the message, the Pub/Sub\nsystem will eventually redeliver the message.", + "type": "integer" + }, "name": { "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.", "type": "string" @@ -1070,16 +1097,11 @@ "pushConfig": { "$ref": "PushConfig", "description": "If push delivery is used with this subscription, this field is\nused to configure it. An empty `pushConfig` signifies that the subscriber\nwill pull and ack messages using API methods." - }, - "ackDeadlineSeconds": { - "format": "int32", - "description": "This value is the maximum time after a subscriber receives a message\nbefore the subscriber should acknowledge the message. After message\ndelivery but before the ack deadline expires and before the message is\nacknowledged, it is an outstanding message and will not be delivered\nagain during that time (on a best-effort basis).\n\nFor pull subscriptions, this value is used as the initial value for the ack\ndeadline. To override this value for a given message, call\n`ModifyAckDeadline` with the corresponding `ack_id` if using\nnon-streaming pull or send the `ack_id` in a\n`StreamingModifyAckDeadlineRequest` if using streaming pull.\nThe minimum custom deadline you can specify is 10 seconds.\nThe maximum custom deadline you can specify is 600 seconds (10 minutes).\nIf this parameter is 0, a default value of 10 seconds is used.\n\nFor push delivery, this value is also used to set the request timeout for\nthe call to the push endpoint.\n\nIf the subscriber never acknowledges the message, the Pub/Sub\nsystem will eventually redeliver the message.", - "type": "integer" } - } + }, + "id": "Subscription" }, "TestIamPermissionsRequest": { - "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { @@ -1090,13 +1112,29 @@ }, "type": "array" } - } + }, + "id": "TestIamPermissionsRequest" + }, + "Topic": { + "description": "A topic resource.", + "type": "object", + "properties": { + "name": { + "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", + "type": "string" + } + }, + "id": "Topic" }, "Policy": { - "id": "Policy", "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { + "etag": { + "format": "byte", + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "type": "string" + }, "version": { "format": "int32", "description": "Version of the `Policy`. The default version is 0.", @@ -1108,52 +1146,14 @@ "$ref": "Binding" }, "type": "array" - }, - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" } - } - }, - "Topic": { - "id": "Topic", - "description": "A topic resource.", - "type": "object", - "properties": { - "name": { - "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", - "type": "string" - } - } + }, + "id": "Policy" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "version": "v1", - "baseUrl": "https://pubsub.googleapis.com/", - "canonicalName": "Pubsub", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/pubsub": { - "description": "View and manage Pub/Sub topics and subscriptions" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "description": "Provides reliable, many-to-many, asynchronous messaging between applications.\n", - "servicePath": "", - "kind": "discovery#restDescription", - "rootUrl": "https://pubsub.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "pubsub", - "batchPath": "batch" + "protocol": "rest" } diff --git a/vendor/google.golang.org/api/pubsub/v1beta1a/pubsub-api.json b/vendor/google.golang.org/api/pubsub/v1beta1a/pubsub-api.json index 91580d396..5261cb019 100644 --- a/vendor/google.golang.org/api/pubsub/v1beta1a/pubsub-api.json +++ b/vendor/google.golang.org/api/pubsub/v1beta1a/pubsub-api.json @@ -1,116 +1,8 @@ { - "batchPath": "batch", - "revision": "20170918", - "documentationLink": "https://cloud.google.com/pubsub/docs", - "id": "pubsub:v1beta1a", - "title": "Google Cloud Pub/Sub API", - "discoveryVersion": "v1", - "ownerName": "Google", "resources": { "subscriptions": { "methods": { - "modifyPushConfig": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": {}, - "flatPath": "v1beta1a/subscriptions/modifyPushConfig", - "id": "pubsub.subscriptions.modifyPushConfig", - "path": "v1beta1a/subscriptions/modifyPushConfig", - "request": { - "$ref": "ModifyPushConfigRequest" - }, - "description": "Modifies the \u003ccode\u003ePushConfig\u003c/code\u003e for a specified subscription.\nThis method can be used to suspend the flow of messages to an endpoint\nby clearing the \u003ccode\u003ePushConfig\u003c/code\u003e field in the request. Messages\nwill be accumulated for delivery even if no push configuration is\ndefined or while the configuration is modified." - }, - "pull": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "PullResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": {}, - "flatPath": "v1beta1a/subscriptions/pull", - "path": "v1beta1a/subscriptions/pull", - "id": "pubsub.subscriptions.pull", - "request": { - "$ref": "PullRequest" - }, - "description": "Pulls a single message from the server.\nIf return_immediately is true, and no messages are available in the\nsubscription, this method returns FAILED_PRECONDITION. The system is free\nto return an UNAVAILABLE error if no messages are available in a\nreasonable amount of time (to reduce system load)." - }, - "delete": { - "path": "v1beta1a/subscriptions/{+subscription}", - "id": "pubsub.subscriptions.delete", - "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to Pull after deletion will return\nNOT_FOUND.", - "httpMethod": "DELETE", - "parameterOrder": [ - "subscription" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "subscription": { - "description": "The subscription to delete.", - "type": "string", - "required": true, - "pattern": "^.+$", - "location": "path" - } - }, - "flatPath": "v1beta1a/subscriptions/{subscriptionsId}" - }, - "list": { - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListSubscriptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "pageToken": { - "description": "The value obtained in the last \u003ccode\u003eListSubscriptionsResponse\u003c/code\u003e\nfor continuation.", - "type": "string", - "location": "query" - }, - "maxResults": { - "type": "integer", - "location": "query", - "format": "int32", - "description": "Maximum number of subscriptions to return." - }, - "query": { - "description": "A valid label query expression.", - "type": "string", - "location": "query" - } - }, - "flatPath": "v1beta1a/subscriptions", - "path": "v1beta1a/subscriptions", - "id": "pubsub.subscriptions.list", - "description": "Lists matching subscriptions." - }, "create": { - "request": { - "$ref": "Subscription" - }, - "description": "Creates a subscription on a given topic for a given subscriber.\nIf the subscription already exists, returns ALREADY_EXISTS.\nIf the corresponding topic doesn't exist, returns NOT_FOUND.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic.", "response": { "$ref": "Subscription" }, @@ -123,28 +15,36 @@ "parameters": {}, "flatPath": "v1beta1a/subscriptions", "id": "pubsub.subscriptions.create", - "path": "v1beta1a/subscriptions" + "path": "v1beta1a/subscriptions", + "request": { + "$ref": "Subscription" + }, + "description": "Creates a subscription on a given topic for a given subscriber.\nIf the subscription already exists, returns ALREADY_EXISTS.\nIf the corresponding topic doesn't exist, returns NOT_FOUND.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic." }, "acknowledge": { - "description": "Acknowledges a particular received message: the Pub/Sub system can remove\nthe given message from the subscription. Acknowledging a message whose\nAck deadline has expired may succeed, but the message could have been\nalready redelivered. Acknowledging a message more than once will not\nresult in an error. This is only used for messages received via pull.", - "request": { - "$ref": "AcknowledgeRequest" - }, "response": { "$ref": "Empty" }, "parameterOrder": [], "httpMethod": "POST", - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], + "parameters": {}, "flatPath": "v1beta1a/subscriptions/acknowledge", "id": "pubsub.subscriptions.acknowledge", - "path": "v1beta1a/subscriptions/acknowledge" + "path": "v1beta1a/subscriptions/acknowledge", + "request": { + "$ref": "AcknowledgeRequest" + }, + "description": "Acknowledges a particular received message: the Pub/Sub system can remove\nthe given message from the subscription. Acknowledging a message whose\nAck deadline has expired may succeed, but the message could have been\nalready redelivered. Acknowledging a message more than once will not\nresult in an error. This is only used for messages received via pull." }, "modifyAckDeadline": { + "description": "Modifies the Ack deadline for a message received from a pull request.", + "request": { + "$ref": "ModifyAckDeadlineRequest" + }, "response": { "$ref": "Empty" }, @@ -157,32 +57,29 @@ ], "flatPath": "v1beta1a/subscriptions/modifyAckDeadline", "id": "pubsub.subscriptions.modifyAckDeadline", - "path": "v1beta1a/subscriptions/modifyAckDeadline", - "description": "Modifies the Ack deadline for a message received from a pull request.", - "request": { - "$ref": "ModifyAckDeadlineRequest" - } + "path": "v1beta1a/subscriptions/modifyAckDeadline" }, "pullBatch": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": {}, - "flatPath": "v1beta1a/subscriptions/pullBatch", "id": "pubsub.subscriptions.pullBatch", "path": "v1beta1a/subscriptions/pullBatch", + "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The system is free to return UNAVAILABLE\nif there are too many pull requests outstanding for the given subscription.", "request": { "$ref": "PullBatchRequest" }, - "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The system is free to return UNAVAILABLE\nif there are too many pull requests outstanding for the given subscription.", "response": { "$ref": "PullBatchResponse" }, "parameterOrder": [], - "httpMethod": "POST" + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta1a/subscriptions/pullBatch" }, "get": { + "description": "Gets the configuration details of a subscription.", "response": { "$ref": "Subscription" }, @@ -205,38 +102,153 @@ }, "flatPath": "v1beta1a/subscriptions/{subscriptionsId}", "id": "pubsub.subscriptions.get", - "path": "v1beta1a/subscriptions/{+subscription}", - "description": "Gets the configuration details of a subscription." - } - } - }, - "topics": { - "methods": { - "get": { - "flatPath": "v1beta1a/topics/{topicsId}", - "path": "v1beta1a/topics/{+topic}", - "id": "pubsub.topics.get", - "description": "Gets the configuration of a topic. Since the topic only has the name\nattribute, this method is only useful to check the existence of a topic.\nIf other attributes are added in the future, they will be returned here.", - "httpMethod": "GET", - "parameterOrder": [ - "topic" - ], - "response": { - "$ref": "Topic" + "path": "v1beta1a/subscriptions/{+subscription}" + }, + "modifyPushConfig": { + "id": "pubsub.subscriptions.modifyPushConfig", + "path": "v1beta1a/subscriptions/modifyPushConfig", + "request": { + "$ref": "ModifyPushConfigRequest" }, + "description": "Modifies the \u003ccode\u003ePushConfig\u003c/code\u003e for a specified subscription.\nThis method can be used to suspend the flow of messages to an endpoint\nby clearing the \u003ccode\u003ePushConfig\u003c/code\u003e field in the request. Messages\nwill be accumulated for delivery even if no push configuration is\ndefined or while the configuration is modified.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": {}, + "flatPath": "v1beta1a/subscriptions/modifyPushConfig" + }, + "pull": { + "request": { + "$ref": "PullRequest" + }, + "description": "Pulls a single message from the server.\nIf return_immediately is true, and no messages are available in the\nsubscription, this method returns FAILED_PRECONDITION. The system is free\nto return an UNAVAILABLE error if no messages are available in a\nreasonable amount of time (to reduce system load).", + "response": { + "$ref": "PullResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": {}, + "flatPath": "v1beta1a/subscriptions/pull", + "id": "pubsub.subscriptions.pull", + "path": "v1beta1a/subscriptions/pull" + }, + "delete": { + "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to Pull after deletion will return\nNOT_FOUND.", + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "subscription" + ], "parameters": { - "topic": { - "location": "path", - "description": "The name of the topic to get.", + "subscription": { + "description": "The subscription to delete.", "type": "string", "required": true, - "pattern": "^.+$" + "pattern": "^.+$", + "location": "path" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" - ] + ], + "flatPath": "v1beta1a/subscriptions/{subscriptionsId}", + "path": "v1beta1a/subscriptions/{+subscription}", + "id": "pubsub.subscriptions.delete" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "parameterOrder": [], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "pageToken": { + "description": "The value obtained in the last \u003ccode\u003eListSubscriptionsResponse\u003c/code\u003e\nfor continuation.", + "type": "string", + "location": "query" + }, + "maxResults": { + "location": "query", + "format": "int32", + "description": "Maximum number of subscriptions to return.", + "type": "integer" + }, + "query": { + "description": "A valid label query expression.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1beta1a/subscriptions", + "path": "v1beta1a/subscriptions", + "id": "pubsub.subscriptions.list", + "description": "Lists matching subscriptions." + } + } + }, + "topics": { + "methods": { + "create": { + "response": { + "$ref": "Topic" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": {}, + "flatPath": "v1beta1a/topics", + "id": "pubsub.topics.create", + "path": "v1beta1a/topics", + "request": { + "$ref": "Topic" + }, + "description": "Creates the given topic with the given name." + }, + "get": { + "description": "Gets the configuration of a topic. Since the topic only has the name\nattribute, this method is only useful to check the existence of a topic.\nIf other attributes are added in the future, they will be returned here.", + "httpMethod": "GET", + "response": { + "$ref": "Topic" + }, + "parameterOrder": [ + "topic" + ], + "parameters": { + "topic": { + "description": "The name of the topic to get.", + "type": "string", + "required": true, + "pattern": "^.+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta1a/topics/{topicsId}", + "path": "v1beta1a/topics/{+topic}", + "id": "pubsub.topics.get" }, "publish": { "response": { @@ -258,20 +270,20 @@ } }, "delete": { + "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ "topic" ], - "httpMethod": "DELETE", "parameters": { "topic": { + "description": "Name of the topic to delete.", "type": "string", "required": true, "pattern": "^.+$", - "location": "path", - "description": "Name of the topic to delete." + "location": "path" } }, "scopes": [ @@ -279,45 +291,47 @@ "https://www.googleapis.com/auth/pubsub" ], "flatPath": "v1beta1a/topics/{topicsId}", - "id": "pubsub.topics.delete", "path": "v1beta1a/topics/{+topic}", + "id": "pubsub.topics.delete", "description": "Deletes the topic with the given name. Returns NOT_FOUND if the topic does\nnot exist. After a topic is deleted, a new topic may be created with the\nsame name." }, "publishBatch": { + "id": "pubsub.topics.publishBatch", + "path": "v1beta1a/topics/publishBatch", "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does\nnot exist.", "request": { "$ref": "PublishBatchRequest" }, - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "PublishBatchResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], - "flatPath": "v1beta1a/topics/publishBatch", - "path": "v1beta1a/topics/publishBatch", - "id": "pubsub.topics.publishBatch" + "flatPath": "v1beta1a/topics/publishBatch" }, "list": { + "path": "v1beta1a/topics", + "id": "pubsub.topics.list", "description": "Lists matching topics.", + "httpMethod": "GET", "response": { "$ref": "ListTopicsResponse" }, "parameterOrder": [], - "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], "parameters": { "pageToken": { - "location": "query", "description": "The value obtained in the last \u003ccode\u003eListTopicsResponse\u003c/code\u003e\nfor continuation.", - "type": "string" + "type": "string", + "location": "query" }, "maxResults": { "format": "int32", @@ -331,53 +345,43 @@ "type": "string" } }, - "flatPath": "v1beta1a/topics", - "id": "pubsub.topics.list", - "path": "v1beta1a/topics" - }, - "create": { - "flatPath": "v1beta1a/topics", - "id": "pubsub.topics.create", - "path": "v1beta1a/topics", - "request": { - "$ref": "Topic" - }, - "description": "Creates the given topic with the given name.", - "response": { - "$ref": "Topic" - }, - "parameterOrder": [], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": {} + "flatPath": "v1beta1a/topics" } } } }, "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", "location": "query" }, - "oauth_token": { + "bearer_token": { "location": "query", - "description": "OAuth 2.0 token for the current user.", + "description": "OAuth bearer token.", "type": "string" }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean" + "type": "boolean", + "location": "query" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", @@ -390,22 +394,22 @@ "location": "query" }, "$.xgafv": { + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query", - "enum": [ - "1", - "2" - ] + "location": "query" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "alt": { "enumDescriptions": [ @@ -423,89 +427,28 @@ ], "type": "string" }, - "key": { - "type": "string", - "location": "query", - "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." - }, "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { "location": "query", - "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.", + "description": "OAuth access token.", "type": "string" }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", + "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.", + "type": "string", "location": "query" } }, "schemas": { - "PublishBatchResponse": { - "properties": { - "messageIds": { - "description": "The server-assigned ID of each published message, in the same order as\nthe messages in the request. IDs are guaranteed to be unique within\nthe topic.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "PublishBatchResponse", - "description": "Response for the PublishBatch method.", - "type": "object" - }, - "Subscription": { - "id": "Subscription", - "description": "A subscription resource.", - "type": "object", - "properties": { - "ackDeadlineSeconds": { - "format": "int32", - "description": "For either push or pull delivery, the value is the maximum time after a\nsubscriber receives a message before the subscriber should acknowledge or\nNack the message. If the Ack deadline for a message passes without an\nAck or a Nack, the Pub/Sub system will eventually redeliver the message.\nIf a subscriber acknowledges after the deadline, the Pub/Sub system may\naccept the Ack, but it is possible that the message has been already\ndelivered again. Multiple Acks to the message are allowed and will\nsucceed.\n\nFor push delivery, this value is used to set the request timeout for\nthe call to the push endpoint.\n\nFor pull delivery, this value is used as the initial value for the Ack\ndeadline. It may be overridden for each message using its corresponding\nack_id with \u003ccode\u003eModifyAckDeadline\u003c/code\u003e.\nWhile a message is outstanding (i.e. it has been delivered to a pull\nsubscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub\nsystem will not deliver that message to another pull subscriber\n(on a best-effort basis).", - "type": "integer" - }, - "name": { - "type": "string", - "description": "Name of the subscription." - }, - "topic": { - "description": "The name of the topic from which this subscription is receiving messages.", - "type": "string" - }, - "pushConfig": { - "$ref": "PushConfig", - "description": "If push delivery is used with this subscription, this field is\nused to configure it." - } - } - }, - "Topic": { - "description": "A topic resource.", - "type": "object", - "properties": { - "name": { - "description": "Name of the topic.", - "type": "string" - } - }, - "id": "Topic" - }, "Label": { - "type": "object", "properties": { "strValue": { "description": "A string value.", "type": "string" }, "numValue": { - "type": "string", "format": "int64", - "description": "An integer value." + "description": "An integer value.", + "type": "string" }, "key": { "description": "The key of a label is a syntactically valid URL (as per RFC 1738) with\nthe \"scheme\" and initial slashes omitted and with the additional\nrestrictions noted below. Each key should be globally unique. The\n\"host\" portion is called the \"namespace\" and is not necessarily\nresolvable to a network endpoint. Instead, the namespace indicates what\nsystem or entity defines the semantics of the label. Namespaces do not\nrestrict the set of objects to which a label may be associated.\n\nKeys are defined by the following grammar:\n\n key = hostname \"/\" kpath\n kpath = ksegment *[ \"/\" ksegment ]\n ksegment = alphadigit | *[ alphadigit | \"-\" | \"_\" | \".\" ]\n\nwhere \"hostname\" and \"alphadigit\" are defined as in RFC 1738.\n\nExample key:\n spanner.google.com/universe", @@ -513,20 +456,11 @@ } }, "id": "Label", - "description": "A key-value pair applied to a given object." + "description": "A key-value pair applied to a given object.", + "type": "object" }, "ModifyAckDeadlineRequest": { - "id": "ModifyAckDeadlineRequest", - "description": "Request for the ModifyAckDeadline method.", - "type": "object", "properties": { - "ackIds": { - "description": "List of acknowledgment IDs. Either this field or ack_id\nshould be populated, not both.", - "items": { - "type": "string" - }, - "type": "array" - }, "subscription": { "description": "Next Index: 5\nThe name of the subscription from which messages are being pulled.", "type": "string" @@ -539,11 +473,20 @@ "format": "int32", "description": "The new ack deadline with respect to the time this request was sent to the\nPub/Sub system. Must be \u003e= 0. For example, if the value is 10, the new ack\ndeadline will expire 10 seconds after the ModifyAckDeadline call was made.\nSpecifying zero may immediately make the message available for another pull\nrequest.", "type": "integer" + }, + "ackIds": { + "description": "List of acknowledgment IDs. Either this field or ack_id\nshould be populated, not both.", + "items": { + "type": "string" + }, + "type": "array" } - } + }, + "id": "ModifyAckDeadlineRequest", + "description": "Request for the ModifyAckDeadline method.", + "type": "object" }, "PullBatchRequest": { - "id": "PullBatchRequest", "description": "Request for the PullBatch method.", "type": "object", "properties": { @@ -560,13 +503,14 @@ "description": "The maximum number of PubsubEvents returned for this request. The Pub/Sub\nsystem may return fewer than the number of events specified.", "type": "integer" } - } + }, + "id": "PullBatchRequest" }, "PubsubMessage": { "properties": { "messageId": { - "type": "string", - "description": "ID of this message assigned by the server at publication time. Guaranteed\nto be unique within the topic. This value may be read by a subscriber\nthat receives a PubsubMessage via a Pull call or a push delivery. It must\nnot be populated by a publisher in a Publish call." + "description": "ID of this message assigned by the server at publication time. Guaranteed\nto be unique within the topic. This value may be read by a subscriber\nthat receives a PubsubMessage via a Pull call or a push delivery. It must\nnot be populated by a publisher in a Publish call.", + "type": "string" }, "publishTime": { "format": "int64", @@ -591,6 +535,8 @@ "type": "object" }, "ModifyPushConfigRequest": { + "description": "Request for the ModifyPushConfig method.", + "type": "object", "properties": { "pushConfig": { "$ref": "PushConfig", @@ -601,9 +547,7 @@ "type": "string" } }, - "id": "ModifyPushConfigRequest", - "description": "Request for the ModifyPushConfig method.", - "type": "object" + "id": "ModifyPushConfigRequest" }, "ListTopicsResponse": { "description": "Response for the ListTopics method.", @@ -614,18 +558,16 @@ "type": "string" }, "topic": { + "description": "The resulting topics.", "items": { "$ref": "Topic" }, - "type": "array", - "description": "The resulting topics." + "type": "array" } }, "id": "ListTopicsResponse" }, "PublishBatchRequest": { - "description": "Request for the PublishBatch method.", - "type": "object", "properties": { "messages": { "description": "The messages to publish.", @@ -639,11 +581,17 @@ "type": "string" } }, - "id": "PublishBatchRequest" + "id": "PublishBatchRequest", + "description": "Request for the PublishBatch method.", + "type": "object" + }, + "Empty": { + "properties": {}, + "id": "Empty", + "description": "An empty message that you can re-use to avoid defining duplicated empty\nmessages in your project. A typical example is to use it as argument or the\nreturn value of a service API. For instance:\n\n service Foo {\n rpc Bar (proto2.Empty) returns (proto2.Empty) { };\n };\n\nBEGIN GOOGLE-INTERNAL\nThe difference between this one and net/rpc/empty-message.proto is that\n1) The generated message here is in proto2 C++ API.\n2) The proto2.Empty has minimum dependencies\n (no message_set or net/rpc dependencies)\nEND GOOGLE-INTERNAL", + "type": "object" }, "PullBatchResponse": { - "description": "Response for the PullBatch method.", - "type": "object", "properties": { "pullResponses": { "description": "Received Pub/Sub messages or status events. The Pub/Sub system will return\nzero messages if there are no more messages available in the backlog. The\nPub/Sub system may return fewer than the max_events requested even if\nthere are more messages available in the backlog.", @@ -653,11 +601,11 @@ "type": "array" } }, - "id": "PullBatchResponse" + "id": "PullBatchResponse", + "description": "Response for the PullBatch method.", + "type": "object" }, "AcknowledgeRequest": { - "description": "Request for the Acknowledge method.", - "type": "object", "properties": { "subscription": { "description": "The subscription whose message is being acknowledged.", @@ -671,39 +619,35 @@ "type": "array" } }, - "id": "AcknowledgeRequest" - }, - "Empty": { - "properties": {}, - "id": "Empty", - "description": "An empty message that you can re-use to avoid defining duplicated empty\nmessages in your project. A typical example is to use it as argument or the\nreturn value of a service API. For instance:\n\n service Foo {\n rpc Bar (proto2.Empty) returns (proto2.Empty) { };\n };\n\nBEGIN GOOGLE-INTERNAL\nThe difference between this one and net/rpc/empty-message.proto is that\n1) The generated message here is in proto2 C++ API.\n2) The proto2.Empty has minimum dependencies\n (no message_set or net/rpc dependencies)\nEND GOOGLE-INTERNAL", + "id": "AcknowledgeRequest", + "description": "Request for the Acknowledge method.", "type": "object" }, "PullResponse": { "description": "Either a \u003ccode\u003ePubsubMessage\u003c/code\u003e or a truncation event. One of these two\nmust be populated.", "type": "object", "properties": { - "ackId": { - "description": "This ID must be used to acknowledge the received event or message.", - "type": "string" - }, "pubsubEvent": { "$ref": "PubsubEvent", "description": "A pubsub message or truncation event." + }, + "ackId": { + "description": "This ID must be used to acknowledge the received event or message.", + "type": "string" } }, "id": "PullResponse" }, "PushConfig": { - "type": "object", "properties": { "pushEndpoint": { - "type": "string", - "description": "A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use \"https://example.com/push\"." + "description": "A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use \"https://example.com/push\".", + "type": "string" } }, "id": "PushConfig", - "description": "Configuration for a push delivery endpoint." + "description": "Configuration for a push delivery endpoint.", + "type": "object" }, "PullRequest": { "properties": { @@ -733,19 +677,17 @@ "type": "boolean" }, "message": { - "$ref": "PubsubMessage", - "description": "A received message." + "description": "A received message.", + "$ref": "PubsubMessage" }, "subscription": { - "type": "string", - "description": "The subscription that received the event." + "description": "The subscription that received the event.", + "type": "string" } }, "id": "PubsubEvent" }, "ListSubscriptionsResponse": { - "description": "Response for the ListSubscriptions method.", - "type": "object", "properties": { "subscription": { "description": "The subscriptions that match the request.", @@ -759,29 +701,80 @@ "type": "string" } }, - "id": "ListSubscriptionsResponse" + "id": "ListSubscriptionsResponse", + "description": "Response for the ListSubscriptions method.", + "type": "object" }, "PublishRequest": { - "description": "Request for the Publish method.", - "type": "object", "properties": { + "message": { + "$ref": "PubsubMessage", + "description": "The message to publish." + }, "topic": { "description": "The message in the request will be published on this topic.", "type": "string" - }, - "message": { - "description": "The message to publish.", - "$ref": "PubsubMessage" } }, - "id": "PublishRequest" + "id": "PublishRequest", + "description": "Request for the Publish method.", + "type": "object" + }, + "PublishBatchResponse": { + "description": "Response for the PublishBatch method.", + "type": "object", + "properties": { + "messageIds": { + "description": "The server-assigned ID of each published message, in the same order as\nthe messages in the request. IDs are guaranteed to be unique within\nthe topic.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "PublishBatchResponse" + }, + "Subscription": { + "properties": { + "ackDeadlineSeconds": { + "format": "int32", + "description": "For either push or pull delivery, the value is the maximum time after a\nsubscriber receives a message before the subscriber should acknowledge or\nNack the message. If the Ack deadline for a message passes without an\nAck or a Nack, the Pub/Sub system will eventually redeliver the message.\nIf a subscriber acknowledges after the deadline, the Pub/Sub system may\naccept the Ack, but it is possible that the message has been already\ndelivered again. Multiple Acks to the message are allowed and will\nsucceed.\n\nFor push delivery, this value is used to set the request timeout for\nthe call to the push endpoint.\n\nFor pull delivery, this value is used as the initial value for the Ack\ndeadline. It may be overridden for each message using its corresponding\nack_id with \u003ccode\u003eModifyAckDeadline\u003c/code\u003e.\nWhile a message is outstanding (i.e. it has been delivered to a pull\nsubscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub\nsystem will not deliver that message to another pull subscriber\n(on a best-effort basis).", + "type": "integer" + }, + "name": { + "description": "Name of the subscription.", + "type": "string" + }, + "topic": { + "description": "The name of the topic from which this subscription is receiving messages.", + "type": "string" + }, + "pushConfig": { + "$ref": "PushConfig", + "description": "If push delivery is used with this subscription, this field is\nused to configure it." + } + }, + "id": "Subscription", + "description": "A subscription resource.", + "type": "object" + }, + "Topic": { + "properties": { + "name": { + "description": "Name of the topic.", + "type": "string" + } + }, + "id": "Topic", + "description": "A topic resource.", + "type": "object" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1beta1a", "baseUrl": "https://pubsub.googleapis.com/", "canonicalName": "Pubsub", @@ -797,11 +790,18 @@ } } }, - "kind": "discovery#restDescription", - "description": "Provides reliable, many-to-many, asynchronous messaging between applications.\n", "servicePath": "", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.\n", + "kind": "discovery#restDescription", "rootUrl": "https://pubsub.googleapis.com/", "basePath": "", "ownerDomain": "google.com", - "name": "pubsub" + "name": "pubsub", + "batchPath": "batch", + "revision": "20171003", + "documentationLink": "https://cloud.google.com/pubsub/docs", + "id": "pubsub:v1beta1a", + "title": "Google Cloud Pub/Sub API", + "ownerName": "Google", + "discoveryVersion": "v1" } diff --git a/vendor/google.golang.org/api/pubsub/v1beta2/pubsub-api.json b/vendor/google.golang.org/api/pubsub/v1beta2/pubsub-api.json index 654992e05..3df742cba 100644 --- a/vendor/google.golang.org/api/pubsub/v1beta2/pubsub-api.json +++ b/vendor/google.golang.org/api/pubsub/v1beta2/pubsub-api.json @@ -1,12 +1,159 @@ { - "discoveryVersion": "v1", + "ownerDomain": "google.com", + "name": "pubsub", + "batchPath": "batch", + "id": "pubsub:v1beta2", + "documentationLink": "https://cloud.google.com/pubsub/docs", + "revision": "20171003", + "title": "Google Cloud Pub/Sub API", "ownerName": "Google", + "discoveryVersion": "v1", "resources": { "projects": { "resources": { "subscriptions": { "methods": { + "get": { + "path": "v1beta2/{+subscription}", + "id": "pubsub.projects.subscriptions.get", + "description": "Gets the configuration details of a subscription.", + "httpMethod": "GET", + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "subscription": { + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path", + "description": "The name of the subscription to get.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}" + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:testIamPermissions", + "path": "v1beta2/{+resource}:testIamPermissions", + "id": "pubsub.projects.subscriptions.testIamPermissions" + }, + "modifyPushConfig": { + "httpMethod": "POST", + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "subscription": { + "location": "path", + "description": "The name of the subscription.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyPushConfig", + "path": "v1beta2/{+subscription}:modifyPushConfig", + "id": "pubsub.projects.subscriptions.modifyPushConfig", + "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.", + "request": { + "$ref": "ModifyPushConfigRequest" + } + }, + "delete": { + "path": "v1beta2/{+subscription}", + "id": "pubsub.projects.subscriptions.delete", + "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription, or its topic unless the same topic is specified.", + "httpMethod": "DELETE", + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "subscription": { + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path", + "description": "The subscription to delete.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}" + }, + "pull": { + "response": { + "$ref": "PullResponse" + }, + "parameterOrder": [ + "subscription" + ], + "httpMethod": "POST", + "parameters": { + "subscription": { + "location": "path", + "description": "The subscription from which messages should be pulled.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", + "id": "pubsub.projects.subscriptions.pull", + "path": "v1beta2/{+subscription}:pull", + "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription.", + "request": { + "$ref": "PullRequest" + } + }, "list": { + "description": "Lists matching subscriptions.", "httpMethod": "GET", "response": { "$ref": "ListSubscriptionsResponse" @@ -14,43 +161,46 @@ "parameterOrder": [ "project" ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], "parameters": { + "pageToken": { + "location": "query", + "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.", + "type": "string" + }, "pageSize": { + "location": "query", "format": "int32", "description": "Maximum number of subscriptions to return.", - "type": "integer", - "location": "query" + "type": "integer" }, "project": { + "pattern": "^projects/[^/]+$", "location": "path", "description": "The name of the cloud project that subscriptions belong to.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - }, - "pageToken": { - "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.", - "type": "string", - "location": "query" + "required": true } }, + "flatPath": "v1beta2/projects/{projectsId}/subscriptions", + "path": "v1beta2/{+project}/subscriptions", + "id": "pubsub.projects.subscriptions.list" + }, + "setIamPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], - "flatPath": "v1beta2/projects/{projectsId}/subscriptions", - "path": "v1beta2/{+project}/subscriptions", - "id": "pubsub.projects.subscriptions.list", - "description": "Lists matching subscriptions." - }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", "parameters": { "resource": { "pattern": "^projects/[^/]+/subscriptions/[^/]+$", @@ -60,17 +210,13 @@ "required": true } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:setIamPolicy", - "id": "pubsub.projects.subscriptions.setIamPolicy", "path": "v1beta2/{+resource}:setIamPolicy", - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "id": "pubsub.projects.subscriptions.setIamPolicy", "request": { "$ref": "SetIamPolicyRequest" - } + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy." }, "create": { "httpMethod": "PUT", @@ -82,11 +228,11 @@ }, "parameters": { "name": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.", "type": "string", - "required": true + "required": true, + "pattern": "^projects/[^/]+/subscriptions/[^/]+$", + "location": "path" } }, "scopes": [ @@ -102,233 +248,121 @@ } }, "getIamPolicy": { + "path": "v1beta2/{+resource}:getIamPolicy", + "id": "pubsub.projects.subscriptions.getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", "httpMethod": "GET", - "response": { - "$ref": "Policy" - }, "parameterOrder": [ "resource" ], + "response": { + "$ref": "Policy" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], "parameters": { "resource": { + "location": "path", "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path" + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" } }, - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:getIamPolicy", - "path": "v1beta2/{+resource}:getIamPolicy", - "id": "pubsub.projects.subscriptions.getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:getIamPolicy" }, "modifyAckDeadline": { - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyAckDeadline", - "id": "pubsub.projects.subscriptions.modifyAckDeadline", - "path": "v1beta2/{+subscription}:modifyAckDeadline", "request": { "$ref": "ModifyAckDeadlineRequest" }, "description": "Modifies the ack deadline for a specific message. This method is useful\nto indicate that more time is needed to process a message by the\nsubscriber, or to make the message available for redelivery if the\nprocessing was interrupted. Note that this does not modify the\nsubscription-level `ackDeadlineSeconds` used for subsequent messages.", - "response": { - "$ref": "Empty" - }, + "httpMethod": "POST", "parameterOrder": [ "subscription" ], - "httpMethod": "POST", + "response": { + "$ref": "Empty" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], "parameters": { "subscription": { + "location": "path", "description": "The name of the subscription.", "type": "string", "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path" - } - } - }, - "acknowledge": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "The subscription whose message is being acknowledged.", - "type": "string", - "required": true + "pattern": "^projects/[^/]+/subscriptions/[^/]+$" } }, + "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyAckDeadline", + "path": "v1beta2/{+subscription}:modifyAckDeadline", + "id": "pubsub.projects.subscriptions.modifyAckDeadline" + }, + "acknowledge": { "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:acknowledge", "id": "pubsub.projects.subscriptions.acknowledge", "path": "v1beta2/{+subscription}:acknowledge", + "description": "Acknowledges the messages associated with the `ack_ids` in the\n`AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages\nfrom the subscription.\n\nAcknowledging a message whose ack deadline has expired may succeed,\nbut such a message may be redelivered later. Acknowledging a message more\nthan once will not result in an error.", "request": { "$ref": "AcknowledgeRequest" }, - "description": "Acknowledges the messages associated with the `ack_ids` in the\n`AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages\nfrom the subscription.\n\nAcknowledging a message whose ack deadline has expired may succeed,\nbut such a message may be redelivered later. Acknowledging a message more\nthan once will not result in an error.", "response": { "$ref": "Empty" }, "parameterOrder": [ "subscription" ], - "httpMethod": "POST" - }, - "get": { - "response": { - "$ref": "Subscription" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "GET", + "httpMethod": "POST", "parameters": { "subscription": { "type": "string", "required": true, "pattern": "^projects/[^/]+/subscriptions/[^/]+$", "location": "path", - "description": "The name of the subscription to get." + "description": "The subscription whose message is being acknowledged." } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}", - "id": "pubsub.projects.subscriptions.get", - "path": "v1beta2/{+subscription}", - "description": "Gets the configuration details of a subscription." - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:testIamPermissions", - "id": "pubsub.projects.subscriptions.testIamPermissions", - "path": "v1beta2/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." - }, - "modifyPushConfig": { - "request": { - "$ref": "ModifyPushConfigRequest" - }, - "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.", - "httpMethod": "POST", - "parameterOrder": [ - "subscription" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "subscription": { - "location": "path", - "description": "The name of the subscription.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyPushConfig", - "path": "v1beta2/{+subscription}:modifyPushConfig", - "id": "pubsub.projects.subscriptions.modifyPushConfig" - }, - "delete": { - "id": "pubsub.projects.subscriptions.delete", - "path": "v1beta2/{+subscription}", - "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription, or its topic unless the same topic is specified.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "subscription" - ], - "httpMethod": "DELETE", - "parameters": { - "subscription": { - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path", - "description": "The subscription to delete.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}" - }, - "pull": { - "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription.", - "request": { - "$ref": "PullRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "subscription" - ], - "response": { - "$ref": "PullResponse" - }, - "parameters": { - "subscription": { - "description": "The subscription from which messages should be pulled.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/subscriptions/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", - "path": "v1beta2/{+subscription}:pull", - "id": "pubsub.projects.subscriptions.pull" + ] } } }, "topics": { "methods": { + "delete": { + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", + "id": "pubsub.projects.topics.delete", + "path": "v1beta2/{+topic}", + "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "topic" + ], + "httpMethod": "DELETE", + "parameters": { + "topic": { + "location": "path", + "description": "Name of the topic to delete.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "list": { + "description": "Lists matching topics.", "httpMethod": "GET", "response": { "$ref": "ListTopicsResponse" @@ -337,23 +371,23 @@ "project" ], "parameters": { + "project": { + "description": "The name of the cloud project that topics belong to.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path" + }, "pageToken": { + "type": "string", "location": "query", - "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data.", - "type": "string" + "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data." }, "pageSize": { "location": "query", "format": "int32", "description": "Maximum number of topics to return.", "type": "integer" - }, - "project": { - "location": "path", - "description": "The name of the cloud project that topics belong to.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" } }, "scopes": [ @@ -362,10 +396,41 @@ ], "flatPath": "v1beta2/projects/{projectsId}/topics", "path": "v1beta2/{+project}/topics", - "id": "pubsub.projects.topics.list", - "description": "Lists matching topics." + "id": "pubsub.projects.topics.list" + }, + "create": { + "response": { + "$ref": "Topic" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "parameters": { + "name": { + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path", + "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", + "id": "pubsub.projects.topics.create", + "path": "v1beta2/{+name}", + "description": "Creates the given topic with the given name.", + "request": { + "$ref": "Topic" + } }, "setIamPolicy": { + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:setIamPolicy", + "path": "v1beta2/{+resource}:setIamPolicy", + "id": "pubsub.projects.topics.setIamPolicy", "request": { "$ref": "SetIamPolicyRequest" }, @@ -383,189 +448,129 @@ ], "parameters": { "resource": { + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path", "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:setIamPolicy", - "path": "v1beta2/{+resource}:setIamPolicy", - "id": "pubsub.projects.topics.setIamPolicy" - }, - "create": { - "request": { - "$ref": "Topic" - }, - "description": "Creates the given topic with the given name.", - "httpMethod": "PUT", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Topic" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "name": { - "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", - "path": "v1beta2/{+name}", - "id": "pubsub.projects.topics.create" - }, - "getIamPolicy": { - "httpMethod": "GET", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:getIamPolicy", - "path": "v1beta2/{+resource}:getIamPolicy", - "id": "pubsub.projects.topics.getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." - }, - "get": { - "id": "pubsub.projects.topics.get", - "path": "v1beta2/{+topic}", - "description": "Gets the configuration of a topic.", - "response": { - "$ref": "Topic" - }, - "parameterOrder": [ - "topic" - ], - "httpMethod": "GET", - "parameters": { - "topic": { - "description": "The name of the topic to get.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}" - }, - "publish": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "parameters": { - "topic": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "The messages in the request will be published on this topic." - } - }, - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:publish", - "id": "pubsub.projects.topics.publish", - "path": "v1beta2/{+topic}:publish", - "request": { - "$ref": "PublishRequest" - }, - "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute.", - "response": { - "$ref": "PublishResponse" - }, - "parameterOrder": [ - "topic" - ], - "httpMethod": "POST" - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/pubsub" - ], - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:testIamPermissions", - "id": "pubsub.projects.topics.testIamPermissions", - "path": "v1beta2/{+resource}:testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "TestIamPermissionsRequest" - } - }, - "delete": { - "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "topic" - ], - "httpMethod": "DELETE", - "parameters": { - "topic": { - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path", - "description": "Name of the topic to delete.", - "type": "string", "required": true } + } + }, + "getIamPolicy": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:getIamPolicy", + "id": "pubsub.projects.topics.getIamPolicy", + "path": "v1beta2/{+resource}:getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "parameterOrder": [ + "resource" + ], + "httpMethod": "GET", + "response": { + "$ref": "Policy" + } + }, + "get": { + "path": "v1beta2/{+topic}", + "id": "pubsub.projects.topics.get", + "description": "Gets the configuration of a topic.", + "httpMethod": "GET", + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Topic" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", - "id": "pubsub.projects.topics.delete", - "path": "v1beta2/{+topic}" + "parameters": { + "topic": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path", + "description": "The name of the topic to get." + } + }, + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}" + }, + "publish": { + "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute.", + "request": { + "$ref": "PublishRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "PublishResponse" + }, + "parameters": { + "topic": { + "description": "The messages in the request will be published on this topic.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:publish", + "path": "v1beta2/{+topic}:publish", + "id": "pubsub.projects.topics.publish" + }, + "testIamPermissions": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:testIamPermissions", + "path": "v1beta2/{+resource}:testIamPermissions", + "id": "pubsub.projects.topics.testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + } } }, "resources": { "subscriptions": { "methods": { "list": { - "id": "pubsub.projects.topics.subscriptions.list", - "path": "v1beta2/{+topic}/subscriptions", "description": "Lists the name of the subscriptions for this topic.", "response": { "$ref": "ListTopicSubscriptionsResponse" @@ -575,30 +580,32 @@ ], "httpMethod": "GET", "parameters": { - "topic": { - "description": "The name of the topic that subscriptions are attached to.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/topics/[^/]+$", - "location": "path" - }, "pageToken": { "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates\nthat this is a continuation of a prior `ListTopicSubscriptions` call, and\nthat the system should return the next page of data.", "type": "string", "location": "query" }, "pageSize": { + "location": "query", "format": "int32", "description": "Maximum number of subscription names to return.", - "type": "integer", - "location": "query" + "type": "integer" + }, + "topic": { + "location": "path", + "description": "The name of the topic that subscriptions are attached to.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/topics/[^/]+$" } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/pubsub" ], - "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}/subscriptions" + "flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}/subscriptions", + "id": "pubsub.projects.topics.subscriptions.list", + "path": "v1beta2/{+topic}/subscriptions" } } } @@ -608,6 +615,16 @@ } }, "parameters": { + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, "upload_protocol": { "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string", @@ -619,22 +636,23 @@ "default": "true", "type": "boolean" }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" }, "callback": { - "location": "query", "description": "JSONP", - "type": "string" + "type": "string", + "location": "query" }, "$.xgafv": { + "location": "query", "enum": [ "1", "2" @@ -644,8 +662,7 @@ "enumDescriptions": [ "v1 error format", "v2 error format" - ], - "location": "query" + ] }, "alt": { "location": "query", @@ -663,16 +680,16 @@ "Responses with Content-Type of application/x-protobuf" ] }, - "access_token": { - "type": "string", - "location": "query", - "description": "OAuth access token." - }, "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.", "type": "string", "location": "query" }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, "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.", "type": "string", @@ -683,16 +700,6 @@ "description": "Pretty-print response.", "default": "true", "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" } }, "schemas": { @@ -730,18 +737,19 @@ }, "id": "SetIamPolicyRequest" }, + "ModifyPushConfigRequest": { + "properties": { + "pushConfig": { + "$ref": "PushConfig", + "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` is not called." + } + }, + "id": "ModifyPushConfigRequest", + "description": "Request for the ModifyPushConfig method.", + "type": "object" + }, "PubsubMessage": { "properties": { - "publishTime": { - "format": "google-datetime", - "description": "The time at which the message was published, populated by the server when\nit receives the `Publish` call. It must not be populated by the\npublisher in a `Publish` call.", - "type": "string" - }, - "data": { - "format": "byte", - "description": "The message payload. For JSON requests, the value of this field must be\n[base64-encoded](https://tools.ietf.org/html/rfc4648).", - "type": "string" - }, "messageId": { "description": "ID of this message, assigned by the server when the message is published.\nGuaranteed to be unique within the topic. This value may be read by a\nsubscriber that receives a `PubsubMessage` via a `Pull` call or a push\ndelivery. It must not be populated by the publisher in a `Publish` call.", "type": "string" @@ -752,26 +760,23 @@ }, "description": "Optional attributes for this message.", "type": "object" + }, + "publishTime": { + "format": "google-datetime", + "description": "The time at which the message was published, populated by the server when\nit receives the `Publish` call. It must not be populated by the\npublisher in a `Publish` call.", + "type": "string" + }, + "data": { + "format": "byte", + "description": "The message payload. For JSON requests, the value of this field must be\n[base64-encoded](https://tools.ietf.org/html/rfc4648).", + "type": "string" } }, "id": "PubsubMessage", "description": "A message data and its attributes. The message payload must not be empty;\nit must contain either a non-empty data field, or at least one attribute.", "type": "object" }, - "ModifyPushConfigRequest": { - "description": "Request for the ModifyPushConfig method.", - "type": "object", - "properties": { - "pushConfig": { - "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` is not called.", - "$ref": "PushConfig" - } - }, - "id": "ModifyPushConfigRequest" - }, "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", "properties": { "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", @@ -785,7 +790,29 @@ "type": "string" } }, - "id": "Binding" + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" + }, + "Empty": { + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {} + }, + "AcknowledgeRequest": { + "type": "object", + "properties": { + "ackIds": { + "description": "The acknowledgment ID for the messages being acknowledged that was returned\nby the Pub/Sub system in the `Pull` response. Must not be empty.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "AcknowledgeRequest", + "description": "Request for the Acknowledge method." }, "ListTopicsResponse": { "description": "Response for the `ListTopics` method.", @@ -805,43 +832,23 @@ }, "id": "ListTopicsResponse" }, - "Empty": { - "properties": {}, - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object" - }, - "AcknowledgeRequest": { - "description": "Request for the Acknowledge method.", - "type": "object", - "properties": { - "ackIds": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The acknowledgment ID for the messages being acknowledged that was returned\nby the Pub/Sub system in the `Pull` response. Must not be empty." - } - }, - "id": "AcknowledgeRequest" - }, "ListTopicSubscriptionsResponse": { + "description": "Response for the `ListTopicSubscriptions` method.", + "type": "object", "properties": { "nextPageToken": { "description": "If not empty, indicates that there may be more subscriptions that match\nthe request; this value should be passed in a new\n`ListTopicSubscriptionsRequest` to get more subscriptions.", "type": "string" }, "subscriptions": { - "description": "The names of the subscriptions that match the request.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "description": "The names of the subscriptions that match the request." } }, - "id": "ListTopicSubscriptionsResponse", - "description": "Response for the `ListTopicSubscriptions` method.", - "type": "object" + "id": "ListTopicSubscriptionsResponse" }, "PullResponse": { "id": "PullResponse", @@ -858,19 +865,19 @@ } }, "ReceivedMessage": { + "description": "A message and its corresponding acknowledgment ID.", + "type": "object", "properties": { - "message": { - "description": "The message.", - "$ref": "PubsubMessage" - }, "ackId": { - "description": "This ID can be used to acknowledge the received message.", - "type": "string" + "type": "string", + "description": "This ID can be used to acknowledge the received message." + }, + "message": { + "$ref": "PubsubMessage", + "description": "The message." } }, - "id": "ReceivedMessage", - "description": "A message and its corresponding acknowledgment ID.", - "type": "object" + "id": "ReceivedMessage" }, "PushConfig": { "description": "Configuration for a push delivery endpoint.", @@ -891,6 +898,7 @@ "id": "PushConfig" }, "TestIamPermissionsResponse": { + "id": "TestIamPermissionsResponse", "description": "Response message for `TestIamPermissions` method.", "type": "object", "properties": { @@ -901,44 +909,44 @@ }, "type": "array" } - }, - "id": "TestIamPermissionsResponse" + } }, "PullRequest": { - "id": "PullRequest", - "description": "Request for the `Pull` method.", - "type": "object", "properties": { "returnImmediately": { "description": "If this is specified as true the system will respond immediately even if\nit is not able to return a message in the `Pull` response. Otherwise the\nsystem is allowed to wait until at least one message is available rather\nthan returning no messages. The client may cancel the request if it does\nnot wish to wait any longer for the response.", "type": "boolean" }, "maxMessages": { - "type": "integer", "format": "int32", - "description": "The maximum number of messages returned for this request. The Pub/Sub\nsystem may return fewer than the number specified." + "description": "The maximum number of messages returned for this request. The Pub/Sub\nsystem may return fewer than the number specified.", + "type": "integer" } - } + }, + "id": "PullRequest", + "description": "Request for the `Pull` method.", + "type": "object" }, "ListSubscriptionsResponse": { "description": "Response for the `ListSubscriptions` method.", "type": "object", "properties": { + "nextPageToken": { + "description": "If not empty, indicates that there may be more subscriptions that match\nthe request; this value should be passed in a new\n`ListSubscriptionsRequest` to get more subscriptions.", + "type": "string" + }, "subscriptions": { "description": "The subscriptions that match the request.", "items": { "$ref": "Subscription" }, "type": "array" - }, - "nextPageToken": { - "description": "If not empty, indicates that there may be more subscriptions that match\nthe request; this value should be passed in a new\n`ListSubscriptionsRequest` to get more subscriptions.", - "type": "string" } }, "id": "ListSubscriptionsResponse" }, "PublishRequest": { + "description": "Request for the Publish method.", "type": "object", "properties": { "messages": { @@ -949,8 +957,7 @@ "type": "array" } }, - "id": "PublishRequest", - "description": "Request for the Publish method." + "id": "PublishRequest" }, "PublishResponse": { "description": "Response for the `Publish` method.", @@ -970,28 +977,27 @@ "description": "A subscription resource.", "type": "object", "properties": { + "topic": { + "description": "The name of the topic from which this subscription is receiving messages.\nThe value of this field will be `_deleted-topic_` if the topic has been\ndeleted.", + "type": "string" + }, + "pushConfig": { + "$ref": "PushConfig", + "description": "If push delivery is used with this subscription, this field is\nused to configure it. An empty `pushConfig` signifies that the subscriber\nwill pull and ack messages using API methods." + }, "ackDeadlineSeconds": { "format": "int32", "description": "This value is the maximum time after a subscriber receives a message\nbefore the subscriber should acknowledge the message. After message\ndelivery but before the ack deadline expires and before the message is\nacknowledged, it is an outstanding message and will not be delivered\nagain during that time (on a best-effort basis).\n\nFor pull subscriptions, this value is used as the initial value for the ack\ndeadline. To override this value for a given message, call\n`ModifyAckDeadline` with the corresponding `ack_id` if using pull.\nThe maximum custom deadline you can specify is 600 seconds (10 minutes).\n\nFor push delivery, this value is also used to set the request timeout for\nthe call to the push endpoint.\n\nIf the subscriber never acknowledges the message, the Pub/Sub\nsystem will eventually redeliver the message.\n\nIf this parameter is 0, a default value of 10 seconds is used.", "type": "integer" }, "name": { - "type": "string", - "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`." - }, - "topic": { - "type": "string", - "description": "The name of the topic from which this subscription is receiving messages.\nThe value of this field will be `_deleted-topic_` if the topic has been\ndeleted." - }, - "pushConfig": { - "$ref": "PushConfig", - "description": "If push delivery is used with this subscription, this field is\nused to configure it. An empty `pushConfig` signifies that the subscriber\nwill pull and ack messages using API methods." + "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.", + "type": "string" } }, "id": "Subscription" }, "TestIamPermissionsRequest": { - "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { @@ -1002,10 +1008,10 @@ }, "type": "array" } - } + }, + "id": "TestIamPermissionsRequest" }, "Policy": { - "id": "Policy", "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { @@ -1026,9 +1032,11 @@ }, "type": "array" } - } + }, + "id": "Policy" }, "Topic": { + "id": "Topic", "description": "A topic resource.", "type": "object", "properties": { @@ -1036,8 +1044,7 @@ "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.", "type": "string" } - }, - "id": "Topic" + } } }, "protocol": "rest", @@ -1060,16 +1067,9 @@ } } }, - "servicePath": "", "kind": "discovery#restDescription", "description": "Provides reliable, many-to-many, asynchronous messaging between applications.\n", + "servicePath": "", "rootUrl": "https://pubsub.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "pubsub", - "batchPath": "batch", - "revision": "20170918", - "documentationLink": "https://cloud.google.com/pubsub/docs", - "id": "pubsub:v1beta2", - "title": "Google Cloud Pub/Sub API" + "basePath": "" } diff --git a/vendor/google.golang.org/api/runtimeconfig/v1/runtimeconfig-api.json b/vendor/google.golang.org/api/runtimeconfig/v1/runtimeconfig-api.json index 726611ed3..993bd77fb 100644 --- a/vendor/google.golang.org/api/runtimeconfig/v1/runtimeconfig-api.json +++ b/vendor/google.golang.org/api/runtimeconfig/v1/runtimeconfig-api.json @@ -1,4 +1,122 @@ { + "id": "runtimeconfig:v1", + "documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", + "revision": "20171019", + "discoveryVersion": "v1", + "version_module": true, + "schemas": { + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "type": "object", + "properties": {}, + "id": "CancelOperationRequest" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + } + }, + "id": "Status" + }, + "Operation": { + "properties": { + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "response": { + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + } + }, + "id": "Operation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object" + }, + "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" + } + }, + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + } + }, + "protocol": "rest", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "canonicalName": "Cloud RuntimeConfig", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/cloudruntimeconfig": { + "description": "Manage your Google Cloud Platform services' runtime configuration" + } + } + } + }, + "rootUrl": "https://runtimeconfig.googleapis.com/", "ownerDomain": "google.com", "name": "runtimeconfig", "batchPath": "batch", @@ -9,12 +127,6 @@ "operations": { "methods": { "cancel": { - "path": "v1/{+name}:cancel", - "id": "runtimeconfig.operations.cancel", - "request": { - "$ref": "CancelOperationRequest" - }, - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", "httpMethod": "POST", "parameterOrder": [ "name" @@ -28,14 +140,20 @@ ], "parameters": { "name": { + "pattern": "^operations/.+$", "location": "path", "description": "The name of the operation resource to be cancelled.", "type": "string", - "required": true, - "pattern": "^operations/.+$" + "required": true } }, - "flatPath": "v1/operations/{operationsId}:cancel" + "flatPath": "v1/operations/{operationsId}:cancel", + "path": "v1/{+name}:cancel", + "id": "runtimeconfig.operations.cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`." }, "delete": { "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", @@ -64,16 +182,14 @@ "path": "v1/{+name}" }, "list": { - "id": "runtimeconfig.operations.list", - "path": "v1/{+name}", "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", "response": { "$ref": "ListOperationsResponse" }, - "httpMethod": "GET", "parameterOrder": [ "name" ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" @@ -97,24 +213,20 @@ "location": "path" }, "pageSize": { + "location": "query", "format": "int32", "description": "The standard list page size.", - "type": "integer", - "location": "query" + "type": "integer" } }, - "flatPath": "v1/operations" + "flatPath": "v1/operations", + "id": "runtimeconfig.operations.list", + "path": "v1/{+name}" } } } }, "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", "type": "string", @@ -136,22 +248,24 @@ "default": "true", "type": "boolean" }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, - "uploadType": { + "fields": { "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, "callback": { + "location": "query", "description": "JSONP", - "type": "string", - "location": "query" + "type": "string" }, "$.xgafv": { + "description": "V1 error format.", + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -160,17 +274,9 @@ "enum": [ "1", "2" - ], - "description": "V1 error format.", - "type": "string" + ] }, "alt": { - "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", "description": "Data format for response.", "default": "json", "enum": [ @@ -178,22 +284,34 @@ "media", "proto" ], - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" + "type": "string", + "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" }, "access_token": { "location": "query", "description": "OAuth access token.", "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.", + "type": "string", + "location": "query" + }, "quotaUser": { "location": "query", "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.", "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" } }, "version": "v1", @@ -201,123 +319,5 @@ "servicePath": "", "description": "The Runtime Configurator allows you to dynamically configure and expose variables through Google Cloud Platform. In addition, you can also set Watchers and Waiters that will watch for changes to your data and return based on certain conditions.", "kind": "discovery#restDescription", - "basePath": "", - "revision": "20170829", - "documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", - "id": "runtimeconfig:v1", - "discoveryVersion": "v1", - "version_module": true, - "schemas": { - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" - } - }, - "id": "Operation" - }, - "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", - "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" - } - }, - "id": "ListOperationsResponse" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "CancelOperationRequest": { - "properties": {}, - "id": "CancelOperationRequest", - "description": "The request message for Operations.CancelOperation.", - "type": "object" - } - }, - "protocol": "rest", - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - }, - "canonicalName": "Cloud RuntimeConfig", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloudruntimeconfig": { - "description": "Manage your Google Cloud Platform services' runtime configuration" - }, - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "rootUrl": "https://runtimeconfig.googleapis.com/" + "basePath": "" } diff --git a/vendor/google.golang.org/api/runtimeconfig/v1beta1/runtimeconfig-api.json b/vendor/google.golang.org/api/runtimeconfig/v1beta1/runtimeconfig-api.json index c64fdde97..3c8d15773 100644 --- a/vendor/google.golang.org/api/runtimeconfig/v1beta1/runtimeconfig-api.json +++ b/vendor/google.golang.org/api/runtimeconfig/v1beta1/runtimeconfig-api.json @@ -1,29 +1,138 @@ { - "ownerName": "Google", "resources": { "projects": { "resources": { "configs": { "methods": { + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:getIamPolicy", + "path": "v1beta1/{+resource}:getIamPolicy", + "id": "runtimeconfig.projects.configs.getIamPolicy", + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." + }, + "get": { + "httpMethod": "GET", + "response": { + "$ref": "RuntimeConfig" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the RuntimeConfig resource to retrieve, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", + "id": "runtimeconfig.projects.configs.get", + "path": "v1beta1/{+name}", + "description": "Gets information about a RuntimeConfig resource." + }, + "update": { + "request": { + "$ref": "RuntimeConfig" + }, + "description": "Updates a RuntimeConfig resource. The configuration must exist beforehand.", + "response": { + "$ref": "RuntimeConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "parameters": { + "name": { + "location": "path", + "description": "The name of the RuntimeConfig resource to update, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", + "path": "v1beta1/{+name}", + "id": "runtimeconfig.projects.configs.update" + }, + "testIamPermissions": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:testIamPermissions", + "id": "runtimeconfig.projects.configs.testIamPermissions", + "path": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." + }, "delete": { - "httpMethod": "DELETE", "response": { "$ref": "Empty" }, "parameterOrder": [ "name" ], + "httpMethod": "DELETE", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" ], "parameters": { "name": { - "pattern": "^projects/[^/]+/configs/[^/]+$", "location": "path", "description": "The RuntimeConfig resource to delete, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", + "required": true, "type": "string", - "required": true + "pattern": "^projects/[^/]+/configs/[^/]+$" } }, "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", @@ -40,21 +149,17 @@ "response": { "$ref": "ListConfigsResponse" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], "parameters": { "pageSize": { "location": "query", - "format": "int32", "description": "Specifies the number of results to return per page. If there are fewer\nelements than the specified number, returns all elements.", + "format": "int32", "type": "integer" }, "parent": { "description": "The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)\nfor this request, in the format `projects/[PROJECT_ID]`.", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+$", "location": "path" }, @@ -64,47 +169,30 @@ "location": "query" } }, - "flatPath": "v1beta1/projects/{projectsId}/configs", - "path": "v1beta1/{+parent}/configs", - "id": "runtimeconfig.projects.configs.list" - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/configs/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:setIamPolicy", - "id": "runtimeconfig.projects.configs.setIamPolicy", - "path": "v1beta1/{+resource}:setIamPolicy" + "flatPath": "v1beta1/projects/{projectsId}/configs", + "id": "runtimeconfig.projects.configs.list", + "path": "v1beta1/{+parent}/configs" }, "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], + "description": "Creates a new RuntimeConfig resource. The configuration name must be\nunique within project.", + "request": { + "$ref": "RuntimeConfig" + }, "response": { "$ref": "RuntimeConfig" }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], "parameters": { "requestId": { "location": "query", @@ -112,231 +200,62 @@ "type": "string" }, "parent": { + "location": "path", "description": "The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)\nfor this request, in the format `projects/[PROJECT_ID]`.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" + "type": "string", + "pattern": "^projects/[^/]+$" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], "flatPath": "v1beta1/projects/{projectsId}/configs", "path": "v1beta1/{+parent}/configs", - "id": "runtimeconfig.projects.configs.create", - "description": "Creates a new RuntimeConfig resource. The configuration name must be\nunique within project.", - "request": { - "$ref": "RuntimeConfig" - } + "id": "runtimeconfig.projects.configs.create" }, - "getIamPolicy": { - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:getIamPolicy", - "path": "v1beta1/{+resource}:getIamPolicy", - "id": "runtimeconfig.projects.configs.getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "httpMethod": "GET", + "setIamPolicy": { + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:setIamPolicy", + "id": "runtimeconfig.projects.configs.setIamPolicy", + "path": "v1beta1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], "response": { "$ref": "Policy" }, - "parameterOrder": [ - "resource" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], "parameters": { "resource": { "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+$" - } - } - }, - "get": { - "description": "Gets information about a RuntimeConfig resource.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "RuntimeConfig" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/configs/[^/]+$", - "location": "path", - "description": "The name of the RuntimeConfig resource to retrieve, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", - "path": "v1beta1/{+name}", - "id": "runtimeconfig.projects.configs.get" - }, - "update": { - "description": "Updates a RuntimeConfig resource. The configuration must exist beforehand.", - "request": { - "$ref": "RuntimeConfig" - }, - "response": { - "$ref": "RuntimeConfig" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PUT", - "parameters": { - "name": { - "description": "The name of the RuntimeConfig resource to update, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", - "id": "runtimeconfig.projects.configs.update", - "path": "v1beta1/{+name}" - }, - "testIamPermissions": { - "id": "runtimeconfig.projects.configs.testIamPermissions", - "path": "v1beta1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, "pattern": "^projects/[^/]+/configs/[^/]+$" } }, - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}:testIamPermissions" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ] } }, "resources": { "variables": { "methods": { - "get": { - "description": "Gets information about a single variable.", - "response": { - "$ref": "Variable" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The name of the variable to return, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIBLE_NAME]`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", - "id": "runtimeconfig.projects.configs.variables.get", - "path": "v1beta1/{+name}" - }, - "watch": { - "response": { - "$ref": "Variable" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The name of the variable to watch, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}:watch", - "id": "runtimeconfig.projects.configs.variables.watch", - "path": "v1beta1/{+name}:watch", - "description": "Watches a specific variable and waits for a change in the variable's value.\nWhen there is a change, this method returns the new value or times out.\n\nIf a variable is deleted while being watched, the `variableState` state is\nset to `DELETED` and the method returns the last known variable `value`.\n\nIf you set the deadline for watching to a larger value than internal timeout\n(60 seconds), the current variable value is returned and the `variableState`\nwill be `VARIABLE_STATE_UNSPECIFIED`.\n\nTo learn more about creating a watcher, read the\n[Watching a Variable for Changes](/deployment-manager/runtime-configurator/watching-a-variable)\ndocumentation.", - "request": { - "$ref": "WatchVariableRequest" - } - }, - "update": { - "response": { - "$ref": "Variable" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PUT", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", - "location": "path", - "description": "The name of the variable to update, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", - "id": "runtimeconfig.projects.configs.variables.update", - "path": "v1beta1/{+name}", - "description": "Updates an existing variable with a new value.", - "request": { - "$ref": "Variable" - } - }, "testIamPermissions": { - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, "response": { "$ref": "TestIamPermissionsResponse" }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" @@ -344,21 +263,18 @@ "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", "location": "path" } }, "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}:testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", - "id": "runtimeconfig.projects.configs.variables.testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." + "id": "runtimeconfig.projects.configs.variables.testIamPermissions" }, "delete": { + "description": "Deletes a variable or multiple variables.\n\nIf you specify a variable name, then that variable is deleted. If you\nspecify a prefix and `recursive` is true, then all variables with that\nprefix are deleted. You must set a `recursive` to true if you delete\nvariables by prefix.", "response": { "$ref": "Empty" }, @@ -373,11 +289,11 @@ "type": "boolean" }, "name": { - "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", - "location": "path", "description": "The name of the variable to delete, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`", + "required": true, "type": "string", - "required": true + "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", + "location": "path" } }, "scopes": [ @@ -385,58 +301,60 @@ "https://www.googleapis.com/auth/cloudruntimeconfig" ], "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", - "id": "runtimeconfig.projects.configs.variables.delete", "path": "v1beta1/{+name}", - "description": "Deletes a variable or multiple variables.\n\nIf you specify a variable name, then that variable is deleted. If you\nspecify a prefix and `recursive` is true, then all variables with that\nprefix are deleted. You must set a `recursive` to true if you delete\nvariables by prefix." + "id": "runtimeconfig.projects.configs.variables.delete" }, "list": { - "description": "Lists variables within given a configuration, matching any provided filters.\nThis only lists variable names, not the values, unless `return_values` is\ntrue, in which case only variables that user has IAM permission to GetVariable\nwill be returned.", + "httpMethod": "GET", "response": { "$ref": "ListVariablesResponse" }, - "httpMethod": "GET", "parameterOrder": [ "parent" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], "parameters": { "filter": { "description": "Filters variables by matching the specified filter. For example:\n\n`projects/example-project/config/[CONFIG_NAME]/variables/example-variable`.", "type": "string", "location": "query" }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken`\nreturned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + }, "returnValues": { "description": "The flag indicates whether the user wants to return values of variables.\nIf true, then only those variables that user has IAM GetVariable permission\nwill be returned along with their values.", "type": "boolean", "location": "query" }, - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken`\nreturned by a previous list request to get the next page of results.", - "type": "string" - }, "pageSize": { - "format": "int32", "description": "Specifies the number of results to return per page. If there are fewer\nelements than the specified number, returns all elements.", + "format": "int32", "type": "integer", "location": "query" }, "parent": { "description": "The path to the RuntimeConfig resource for which you want to list variables.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+/configs/[^/]+$", "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables", "id": "runtimeconfig.projects.configs.variables.list", - "path": "v1beta1/{+parent}/variables" + "path": "v1beta1/{+parent}/variables", + "description": "Lists variables within given a configuration, matching any provided filters.\nThis only lists variable names, not the values, unless `return_values` is\ntrue, in which case only variables that user has IAM permission to GetVariable\nwill be returned." }, "create": { + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables", + "path": "v1beta1/{+parent}/variables", + "id": "runtimeconfig.projects.configs.variables.create", "request": { "$ref": "Variable" }, @@ -448,10 +366,6 @@ "parent" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], "parameters": { "requestId": { "description": "An optional but recommended unique `request_id`. If the server\nreceives two `create()` requests with the same\n`request_id`, then the second request will be ignored and the\nfirst resource created and stored in the backend is returned.\nEmpty `request_id` fields are ignored.\n\nIt is responsibility of the client to ensure uniqueness of the\n`request_id` strings.\n\n`request_id` strings are limited to 64 characters.", @@ -460,180 +374,106 @@ }, "parent": { "description": "The path to the RutimeConfig resource that this variable should belong to.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", - "type": "string", "required": true, + "type": "string", "pattern": "^projects/[^/]+/configs/[^/]+$", "location": "path" } }, - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables", - "id": "runtimeconfig.projects.configs.variables.create", - "path": "v1beta1/{+parent}/variables" - } - } - }, - "waiters": { - "methods": { - "delete": { - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", - "id": "runtimeconfig.projects.configs.waiters.delete", - "path": "v1beta1/{+name}", - "description": "Deletes the waiter with the specified name.", - "response": { - "$ref": "Empty" - }, - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "parameters": { - "name": { - "description": "The Waiter resource to delete, in the format:\n\n `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", - "location": "path" - } - } + ] }, "get": { - "httpMethod": "GET", + "description": "Gets information about a single variable.", "response": { - "$ref": "Waiter" + "$ref": "Variable" }, "parameterOrder": [ "name" ], + "httpMethod": "GET", + "parameters": { + "name": { + "location": "path", + "description": "The name of the variable to return, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIBLE_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", + "path": "v1beta1/{+name}", + "id": "runtimeconfig.projects.configs.variables.get" + }, + "watch": { + "description": "Watches a specific variable and waits for a change in the variable's value.\nWhen there is a change, this method returns the new value or times out.\n\nIf a variable is deleted while being watched, the `variableState` state is\nset to `DELETED` and the method returns the last known variable `value`.\n\nIf you set the deadline for watching to a larger value than internal timeout\n(60 seconds), the current variable value is returned and the `variableState`\nwill be `VARIABLE_STATE_UNSPECIFIED`.\n\nTo learn more about creating a watcher, read the\n[Watching a Variable for Changes](/deployment-manager/runtime-configurator/watching-a-variable)\ndocumentation.", + "request": { + "$ref": "WatchVariableRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Variable" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" ], "parameters": { "name": { - "description": "The fully-qualified name of the Waiter resource object to retrieve, in the\nformat:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", - "type": "string", + "description": "The name of the variable to watch, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$", "location": "path" } }, - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}:watch", + "id": "runtimeconfig.projects.configs.variables.watch", + "path": "v1beta1/{+name}:watch" + }, + "update": { + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", "path": "v1beta1/{+name}", - "id": "runtimeconfig.projects.configs.waiters.get", - "description": "Gets information about a single waiter." - }, - "list": { - "id": "runtimeconfig.projects.configs.waiters.list", - "path": "v1beta1/{+parent}/waiters", - "description": "List waiters within the given configuration.", - "response": { - "$ref": "ListWaitersResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken`\nreturned by a previous list request to get the next page of results.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "Specifies the number of results to return per page. If there are fewer\nelements than the specified number, returns all elements.", - "type": "integer" - }, - "parent": { - "location": "path", - "description": "The path to the configuration for which you want to get a list of waiters.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+$" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters" - }, - "create": { - "httpMethod": "POST", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "requestId": { - "location": "query", - "description": "An optional but recommended unique `request_id`. If the server\nreceives two `create()` requests with the same\n`request_id`, then the second request will be ignored and the\nfirst resource created and stored in the backend is returned.\nEmpty `request_id` fields are ignored.\n\nIt is responsibility of the client to ensure uniqueness of the\n`request_id` strings.\n\n`request_id` strings are limited to 64 characters.", - "type": "string" - }, - "parent": { - "location": "path", - "description": "The path to the configuration that will own the waiter.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters", - "path": "v1beta1/{+parent}/waiters", - "id": "runtimeconfig.projects.configs.waiters.create", - "description": "Creates a Waiter resource. This operation returns a long-running Operation\nresource which can be polled for completion. However, a waiter with the\ngiven name will exist (and can be retrieved) prior to the operation\ncompleting. If the operation fails, the failed Waiter resource will\nstill exist and must be deleted prior to subsequent creation attempts.", + "id": "runtimeconfig.projects.configs.variables.update", + "description": "Updates an existing variable with a new value.", "request": { - "$ref": "Waiter" + "$ref": "Variable" + }, + "response": { + "$ref": "Variable" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the variable to update, in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/variables/.+$" + } } - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloudruntimeconfig" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$" - } - }, - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}:testIamPermissions", - "id": "runtimeconfig.projects.configs.waiters.testIamPermissions", - "path": "v1beta1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning." } } }, "operations": { "methods": { "testIamPermissions": { - "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/operations/{operationsId}:testIamPermissions", - "id": "runtimeconfig.projects.configs.operations.testIamPermissions", - "path": "v1beta1/{+resource}:testIamPermissions", "request": { "$ref": "TestIamPermissionsRequest" }, @@ -645,36 +485,38 @@ "resource" ], "httpMethod": "POST", + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/operations/.+$" + } + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloudruntimeconfig" ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/operations/.+$", - "location": "path" - } - } + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/operations/{operationsId}:testIamPermissions", + "path": "v1beta1/{+resource}:testIamPermissions", + "id": "runtimeconfig.projects.configs.operations.testIamPermissions" }, "get": { - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "httpMethod": "GET", "response": { "$ref": "Operation" }, "parameterOrder": [ "name" ], - "httpMethod": "GET", "parameters": { "name": { - "location": "path", "description": "The name of the operation resource.", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/configs/[^/]+/operations/.+$" + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/operations/.+$", + "location": "path" } }, "scopes": [ @@ -683,7 +525,164 @@ ], "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/operations/{operationsId}", "id": "runtimeconfig.projects.configs.operations.get", - "path": "v1beta1/{+name}" + "path": "v1beta1/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + } + } + }, + "waiters": { + "methods": { + "list": { + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters", + "path": "v1beta1/{+parent}/waiters", + "id": "runtimeconfig.projects.configs.waiters.list", + "description": "List waiters within the given configuration.", + "response": { + "$ref": "ListWaitersResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageSize": { + "description": "Specifies the number of results to return per page. If there are fewer\nelements than the specified number, returns all elements.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "parent": { + "description": "The path to the configuration for which you want to get a list of waiters.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$", + "location": "path" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken`\nreturned by a previous list request to get the next page of results.", + "type": "string", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ] + }, + "get": { + "response": { + "$ref": "Waiter" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "name": { + "description": "The fully-qualified name of the Waiter resource object to retrieve, in the\nformat:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", + "path": "v1beta1/{+name}", + "id": "runtimeconfig.projects.configs.waiters.get", + "description": "Gets information about a single waiter." + }, + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "requestId": { + "description": "An optional but recommended unique `request_id`. If the server\nreceives two `create()` requests with the same\n`request_id`, then the second request will be ignored and the\nfirst resource created and stored in the backend is returned.\nEmpty `request_id` fields are ignored.\n\nIt is responsibility of the client to ensure uniqueness of the\n`request_id` strings.\n\n`request_id` strings are limited to 64 characters.", + "type": "string", + "location": "query" + }, + "parent": { + "location": "path", + "description": "The path to the configuration that will own the waiter.\nThe configuration must exist beforehand; the path must be in the format:\n\n`projects/[PROJECT_ID]/configs/[CONFIG_NAME]`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters", + "path": "v1beta1/{+parent}/waiters", + "id": "runtimeconfig.projects.configs.waiters.create", + "description": "Creates a Waiter resource. This operation returns a long-running Operation\nresource which can be polled for completion. However, a waiter with the\ngiven name will exist (and can be retrieved) prior to the operation\ncompleting. If the operation fails, the failed Waiter resource will\nstill exist and must be deleted prior to subsequent creation attempts.", + "request": { + "$ref": "Waiter" + } + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}:testIamPermissions", + "path": "v1beta1/{+resource}:testIamPermissions", + "id": "runtimeconfig.projects.configs.waiters.testIamPermissions" + }, + "delete": { + "description": "Deletes the waiter with the specified name.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudruntimeconfig" + ], + "parameters": { + "name": { + "location": "path", + "description": "The Waiter resource to delete, in the format:\n\n `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$" + } + }, + "flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", + "path": "v1beta1/{+name}", + "id": "runtimeconfig.projects.configs.waiters.delete" } } } @@ -693,18 +692,24 @@ } }, "parameters": { - "fields": { - "description": "Selector specifying which fields to include in a partial response.", + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string", "location": "query" }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, "uploadType": { + "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, - "callback": { - "description": "JSONP", + "fields": { + "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, @@ -721,6 +726,11 @@ "2" ] }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "alt": { "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -737,16 +747,16 @@ ], "type": "string" }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "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.", "type": "string", "location": "query" }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, "quotaUser": { "location": "query", "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.", @@ -754,8 +764,8 @@ }, "pp": { "description": "Pretty-print response.", - "default": "true", "type": "boolean", + "default": "true", "location": "query" }, "oauth_token": { @@ -764,20 +774,9 @@ "location": "query" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" } }, "version": "v1beta1", @@ -788,10 +787,93 @@ "basePath": "", "id": "runtimeconfig:v1beta1", "documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", - "revision": "20170829", + "revision": "20171019", "discoveryVersion": "v1", "version_module": true, "schemas": { + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "Cardinality": { + "description": "A Cardinality condition for the Waiter resource. A cardinality condition is\nmet when the number of variables under a specified path prefix reaches a\npredefined number. For example, if you set a Cardinality condition where\nthe `path` is set to `/foo` and the number of paths is set to 2, the\nfollowing variables would meet the condition in a RuntimeConfig resource:\n\n+ `/foo/variable1 = \"value1\"`\n+ `/foo/variable2 = \"value2\"`\n+ `/bar/variable3 = \"value3\"`\n\nIt would not would not satisify the same condition with the `number` set to\n3, however, because there is only 2 paths that start with `/foo`.\nCardinality conditions are recursive; all subtrees under the specific\npath prefix are counted.", + "type": "object", + "properties": { + "path": { + "description": "The root of the variable subtree to monitor. For example, `/foo`.", + "type": "string" + }, + "number": { + "description": "The number variables under the `path` that must exist to meet this\ncondition. Defaults to 1 if not specified.", + "format": "int32", + "type": "integer" + } + }, + "id": "Cardinality" + }, + "ListConfigsResponse": { + "description": "`ListConfigs()` returns the following response. The order of returned\nobjects is arbitrary; that is, it is not ordered in any particular way.", + "type": "object", + "properties": { + "configs": { + "description": "A list of the configurations in the project. The order of returned\nobjects is arbitrary; that is, it is not ordered in any particular way.", + "type": "array", + "items": { + "$ref": "RuntimeConfig" + } + }, + "nextPageToken": { + "description": "This token allows you to get the next page of results for list requests.\nIf the number of results is larger than `pageSize`, use the `nextPageToken`\nas a value for the query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to continue\npaging through the results", + "type": "string" + } + }, + "id": "ListConfigsResponse" + }, + "EndCondition": { + "description": "The condition that a Waiter resource is waiting for.", + "type": "object", + "properties": { + "cardinality": { + "description": "The cardinality of the `EndCondition`.", + "$ref": "Cardinality" + } + }, + "id": "EndCondition" + }, + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "type": "object", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "TestIamPermissionsResponse" + }, + "ListVariablesResponse": { + "description": "Response for the `ListVariables()` method.", + "type": "object", + "properties": { + "variables": { + "description": "A list of variables and their values. The order of returned variable\nobjects is arbitrary.", + "type": "array", + "items": { + "$ref": "Variable" + } + }, + "nextPageToken": { + "description": "This token allows you to get the next page of results for list requests.\nIf the number of results is larger than `pageSize`, use the `nextPageToken`\nas a value for the query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to continue\npaging through the results", + "type": "string" + } + }, + "id": "ListVariablesResponse" + }, "RuntimeConfig": { "description": "A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig\nservice. A RuntimeConfig resource consists of metadata and a hierarchy of\nvariables.", "type": "object", @@ -812,8 +894,8 @@ "type": "object", "properties": { "newerThan": { - "format": "google-datetime", "description": "If specified, checks the current timestamp of the variable and if the\ncurrent timestamp is newer than `newerThan` timestamp, the method returns\nimmediately.\n\nIf not specified or the variable has an older timestamp, the watcher waits\nfor a the value to change before returning.", + "format": "google-datetime", "type": "string" } }, @@ -823,35 +905,23 @@ "description": "Response for the `ListWaiters()` method.\nOrder of returned waiter objects is arbitrary.", "type": "object", "properties": { + "waiters": { + "description": "Found waiters in the project.", + "type": "array", + "items": { + "$ref": "Waiter" + } + }, "nextPageToken": { "description": "This token allows you to get the next page of results for list requests.\nIf the number of results is larger than `pageSize`, use the `nextPageToken`\nas a value for the query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to continue\npaging through the results", "type": "string" - }, - "waiters": { - "description": "Found waiters in the project.", - "items": { - "$ref": "Waiter" - }, - "type": "array" } }, "id": "ListWaitersResponse" }, - "TestIamPermissionsRequest": { - "description": "Request message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsRequest" - }, "Waiter": { + "description": "A Waiter resource waits for some end condition within a RuntimeConfig resource\nto be met before it returns. For example, assume you have a distributed\nsystem where each node writes to a Variable resource indidicating the node's\nreadiness as part of the startup process.\n\nYou then configure a Waiter resource with the success condition set to wait\nuntil some number of nodes have checked in. Afterwards, your application\nruns some arbitrary code after the condition has been met and the waiter\nreturns successfully.\n\nOnce created, a Waiter resource is immutable.\n\nTo learn more about using waiters, read the\n[Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)\ndocumentation.", + "type": "object", "properties": { "error": { "description": "[Output Only] If the waiter ended due to a failure or timeout, this value\nwill be set.", @@ -870,13 +940,13 @@ "type": "boolean" }, "createTime": { - "format": "google-datetime", "description": "[Output Only] The instant at which this Waiter resource was created. Adding\nthe value of `timeout` to this instant yields the timeout deadline for the\nwaiter.", + "format": "google-datetime", "type": "string" }, "timeout": { - "format": "google-duration", "description": "[Required] Specifies the timeout of the waiter in seconds, beginning from\nthe instant that `waiters().create` method is called. If this time elapses\nbefore the success or failure conditions are met, the waiter fails and sets\nthe `error` code to `DEADLINE_EXCEEDED`.", + "format": "google-duration", "type": "string" }, "name": { @@ -884,89 +954,89 @@ "type": "string" } }, - "id": "Waiter", - "description": "A Waiter resource waits for some end condition within a RuntimeConfig resource\nto be met before it returns. For example, assume you have a distributed\nsystem where each node writes to a Variable resource indidicating the node's\nreadiness as part of the startup process.\n\nYou then configure a Waiter resource with the success condition set to wait\nuntil some number of nodes have checked in. Afterwards, your application\nruns some arbitrary code after the condition has been met and the waiter\nreturns successfully.\n\nOnce created, a Waiter resource is immutable.\n\nTo learn more about using waiters, read the\n[Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)\ndocumentation.", - "type": "object" + "id": "Waiter" }, - "Policy": { + "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "type": "object", "properties": { - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - }, - "bindings": { - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "type": "array", "items": { - "$ref": "Binding" - }, - "type": "array" + "type": "string" + } } }, - "id": "Policy", - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object" + "id": "TestIamPermissionsRequest" }, "Variable": { "description": "Describes a single variable within a RuntimeConfig resource.\nThe name denotes the hierarchical variable name. For example,\n`ports/serving_port` is a valid variable name. The variable value is an\nopaque string and only leaf variables can have values (that is, variables\nthat do not have any child variables).", "type": "object", "properties": { - "text": { - "description": "The string value of the variable. The length of the value must be less\nthan 4096 bytes. Empty values are also accepted. For example,\n`text: \"my text value\"`. The string must be valid UTF-8.", - "type": "string" - }, - "value": { - "format": "byte", - "description": "The binary value of the variable. The length of the value must be less\nthan 4096 bytes. Empty values are also accepted. The value must be\nbase64 encoded. Only one of `value` or `text` can be set.", + "updateTime": { + "description": "[Output Only] The time of the last variable update.", + "format": "google-datetime", "type": "string" }, "state": { + "enumDescriptions": [ + "Default variable state.", + "The variable was updated, while `variables().watch` was executing.", + "The variable was deleted, while `variables().watch` was executing." + ], "enum": [ "VARIABLE_STATE_UNSPECIFIED", "UPDATED", "DELETED" ], "description": "[Ouput only] The current state of the variable. The variable state indicates\nthe outcome of the `variables().watch` call and is visible through the\n`get` and `list` calls.", - "type": "string", - "enumDescriptions": [ - "Default variable state.", - "The variable was updated, while `variables().watch` was executing.", - "The variable was deleted, while `variables().watch` was executing." - ] - }, - "updateTime": { - "format": "google-datetime", - "description": "[Output Only] The time of the last variable update.", "type": "string" }, "name": { "description": "The name of the variable resource, in the format:\n\n projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]\n\nThe `[PROJECT_ID]` must be a valid project ID, `[CONFIG_NAME]` must be a\nvalid RuntimeConfig reource and `[VARIABLE_NAME]` follows Unix file system\nfile path naming.\n\nThe `[VARIABLE_NAME]` can contain ASCII letters, numbers, slashes and\ndashes. Slashes are used as path element separators and are not part of the\n`[VARIABLE_NAME]` itself, so `[VARIABLE_NAME]` must contain at least one\nnon-slash character. Multiple slashes are coalesced into single slash\ncharacter. Each path segment should follow RFC 1035 segment specification.\nThe length of a `[VARIABLE_NAME]` must be less than 256 bytes.\n\nOnce you create a variable, you cannot change the variable name.", "type": "string" + }, + "text": { + "description": "The string value of the variable. The length of the value must be less\nthan 4096 bytes. Empty values are also accepted. For example,\n`text: \"my text value\"`. The string must be valid UTF-8.", + "type": "string" + }, + "value": { + "description": "The binary value of the variable. The length of the value must be less\nthan 4096 bytes. Empty values are also accepted. The value must be\nbase64 encoded. Only one of `value` or `text` can be set.", + "format": "byte", + "type": "string" } }, "id": "Variable" }, + "Policy": { + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object", + "properties": { + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Version of the `Policy`. The default version is 0.", + "format": "int32", + "type": "integer" + }, + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "type": "array", + "items": { + "$ref": "Binding" + } + } + }, + "id": "Policy" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, "error": { "description": "The error result of the operation in case of failure or cancellation.", "$ref": "Status" @@ -982,6 +1052,18 @@ "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", "type": "boolean" + }, + "response": { + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" } }, "id": "Operation" @@ -991,8 +1073,8 @@ "type": "object", "properties": { "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" } }, "id": "SetIamPolicyRequest" @@ -1001,129 +1083,46 @@ "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", "items": { + "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - }, - "type": "object" - }, - "type": "array" + } + } }, "code": { - "format": "int32", "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" } }, "id": "Status" }, "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", "properties": { "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "role": { "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", "type": "string" } }, - "id": "Binding", - "description": "Associates `members` with a `role`.", - "type": "object" - }, - "Empty": { - "properties": {}, - "id": "Empty", - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object" - }, - "Cardinality": { - "description": "A Cardinality condition for the Waiter resource. A cardinality condition is\nmet when the number of variables under a specified path prefix reaches a\npredefined number. For example, if you set a Cardinality condition where\nthe `path` is set to `/foo` and the number of paths is set to 2, the\nfollowing variables would meet the condition in a RuntimeConfig resource:\n\n+ `/foo/variable1 = \"value1\"`\n+ `/foo/variable2 = \"value2\"`\n+ `/bar/variable3 = \"value3\"`\n\nIt would not would not satisify the same condition with the `number` set to\n3, however, because there is only 2 paths that start with `/foo`.\nCardinality conditions are recursive; all subtrees under the specific\npath prefix are counted.", - "type": "object", - "properties": { - "number": { - "format": "int32", - "description": "The number variables under the `path` that must exist to meet this\ncondition. Defaults to 1 if not specified.", - "type": "integer" - }, - "path": { - "description": "The root of the variable subtree to monitor. For example, `/foo`.", - "type": "string" - } - }, - "id": "Cardinality" - }, - "ListConfigsResponse": { - "properties": { - "nextPageToken": { - "description": "This token allows you to get the next page of results for list requests.\nIf the number of results is larger than `pageSize`, use the `nextPageToken`\nas a value for the query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to continue\npaging through the results", - "type": "string" - }, - "configs": { - "description": "A list of the configurations in the project. The order of returned\nobjects is arbitrary; that is, it is not ordered in any particular way.", - "items": { - "$ref": "RuntimeConfig" - }, - "type": "array" - } - }, - "id": "ListConfigsResponse", - "description": "`ListConfigs()` returns the following response. The order of returned\nobjects is arbitrary; that is, it is not ordered in any particular way.", - "type": "object" - }, - "EndCondition": { - "description": "The condition that a Waiter resource is waiting for.", - "type": "object", - "properties": { - "cardinality": { - "$ref": "Cardinality", - "description": "The cardinality of the `EndCondition`." - } - }, - "id": "EndCondition" - }, - "TestIamPermissionsResponse": { - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse", - "description": "Response message for `TestIamPermissions` method.", - "type": "object" - }, - "ListVariablesResponse": { - "properties": { - "variables": { - "description": "A list of variables and their values. The order of returned variable\nobjects is arbitrary.", - "items": { - "$ref": "Variable" - }, - "type": "array" - }, - "nextPageToken": { - "description": "This token allows you to get the next page of results for list requests.\nIf the number of results is larger than `pageSize`, use the `nextPageToken`\nas a value for the query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to continue\npaging through the results", - "type": "string" - } - }, - "id": "ListVariablesResponse", - "description": "Response for the `ListVariables()` method.", - "type": "object" + "id": "Binding" } }, "protocol": "rest", @@ -1135,11 +1134,11 @@ "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/cloudruntimeconfig": { "description": "Manage your Google Cloud Platform services' runtime configuration" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } @@ -1149,5 +1148,6 @@ "name": "runtimeconfig", "batchPath": "batch", "fullyEncodeReservedExpansion": true, - "title": "Google Cloud Runtime Configuration API" + "title": "Google Cloud Runtime Configuration API", + "ownerName": "Google" } diff --git a/vendor/google.golang.org/api/safebrowsing/v4/safebrowsing-api.json b/vendor/google.golang.org/api/safebrowsing/v4/safebrowsing-api.json index 628fb1cdb..1aa8caefc 100644 --- a/vendor/google.golang.org/api/safebrowsing/v4/safebrowsing-api.json +++ b/vendor/google.golang.org/api/safebrowsing/v4/safebrowsing-api.json @@ -1,9 +1,7 @@ { - "name": "safebrowsing", - "batchPath": "batch", - "revision": "20170927", - "documentationLink": "https://developers.google.com/safe-browsing/", "id": "safebrowsing:v4", + "documentationLink": "https://developers.google.com/safe-browsing/", + "revision": "20171016", "title": "Google Safe Browsing API", "ownerName": "Google", "discoveryVersion": "v1", @@ -11,26 +9,44 @@ "fullHashes": { "methods": { "find": { - "path": "v4/fullHashes:find", - "id": "safebrowsing.fullHashes.find", "description": "Finds the full hashes that match the requested hash prefixes.", "request": { "$ref": "FindFullHashesRequest" }, - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "FindFullHashesResponse" }, + "parameterOrder": [], + "httpMethod": "POST", "parameters": {}, - "flatPath": "v4/fullHashes:find" + "flatPath": "v4/fullHashes:find", + "path": "v4/fullHashes:find", + "id": "safebrowsing.fullHashes.find" } } }, "encodedUpdates": { "methods": { "get": { + "flatPath": "v4/encodedUpdates/{encodedRequest}", + "path": "v4/encodedUpdates/{encodedRequest}", + "id": "safebrowsing.encodedUpdates.get", + "description": "", + "response": { + "$ref": "FetchThreatListUpdatesResponse" + }, + "parameterOrder": [ + "encodedRequest" + ], + "httpMethod": "GET", "parameters": { + "encodedRequest": { + "location": "path", + "description": "A serialized FetchThreatListUpdatesRequest proto.", + "format": "byte", + "required": true, + "type": "string" + }, "clientId": { "location": "query", "description": "A client ID that uniquely identifies the client implementation of the Safe\nBrowsing API.", @@ -40,25 +56,7 @@ "location": "query", "description": "The version of the client implementation.", "type": "string" - }, - "encodedRequest": { - "location": "path", - "format": "byte", - "description": "A serialized FetchThreatListUpdatesRequest proto.", - "type": "string", - "required": true } - }, - "flatPath": "v4/encodedUpdates/{encodedRequest}", - "path": "v4/encodedUpdates/{encodedRequest}", - "id": "safebrowsing.encodedUpdates.get", - "description": "", - "httpMethod": "GET", - "parameterOrder": [ - "encodedRequest" - ], - "response": { - "$ref": "FetchThreatListUpdatesResponse" } } } @@ -66,81 +64,80 @@ "threatListUpdates": { "methods": { "fetch": { - "id": "safebrowsing.threatListUpdates.fetch", - "path": "v4/threatListUpdates:fetch", - "request": { - "$ref": "FetchThreatListUpdatesRequest" - }, - "description": "Fetches the most recent threat list updates. A client can request updates\nfor multiple lists at once.", "response": { "$ref": "FetchThreatListUpdatesResponse" }, "parameterOrder": [], "httpMethod": "POST", "parameters": {}, - "flatPath": "v4/threatListUpdates:fetch" + "flatPath": "v4/threatListUpdates:fetch", + "path": "v4/threatListUpdates:fetch", + "id": "safebrowsing.threatListUpdates.fetch", + "request": { + "$ref": "FetchThreatListUpdatesRequest" + }, + "description": "Fetches the most recent threat list updates. A client can request updates\nfor multiple lists at once." } } }, "encodedFullHashes": { "methods": { "get": { - "description": "", - "response": { - "$ref": "FindFullHashesResponse" - }, "httpMethod": "GET", "parameterOrder": [ "encodedRequest" ], + "response": { + "$ref": "FindFullHashesResponse" + }, "parameters": { - "encodedRequest": { - "format": "byte", - "description": "A serialized FindFullHashesRequest proto.", - "type": "string", - "required": true, - "location": "path" - }, "clientId": { + "location": "query", "description": "A client ID that (hopefully) uniquely identifies the client implementation\nof the Safe Browsing API.", - "type": "string", - "location": "query" + "type": "string" }, "clientVersion": { "description": "The version of the client implementation.", "type": "string", "location": "query" + }, + "encodedRequest": { + "description": "A serialized FindFullHashesRequest proto.", + "format": "byte", + "required": true, + "type": "string", + "location": "path" } }, "flatPath": "v4/encodedFullHashes/{encodedRequest}", "id": "safebrowsing.encodedFullHashes.get", - "path": "v4/encodedFullHashes/{encodedRequest}" + "path": "v4/encodedFullHashes/{encodedRequest}", + "description": "" } } }, "threatLists": { "methods": { "list": { + "flatPath": "v4/threatLists", + "id": "safebrowsing.threatLists.list", + "path": "v4/threatLists", "description": "Lists the Safe Browsing threat lists available for download.", + "httpMethod": "GET", + "parameterOrder": [], "response": { "$ref": "ListThreatListsResponse" }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": {}, - "flatPath": "v4/threatLists", - "id": "safebrowsing.threatLists.list", - "path": "v4/threatLists" + "parameters": {} } } }, "threatMatches": { "methods": { "find": { - "parameters": {}, "flatPath": "v4/threatMatches:find", - "id": "safebrowsing.threatMatches.find", "path": "v4/threatMatches:find", + "id": "safebrowsing.threatMatches.find", "description": "Finds the threat entries that match the Safe Browsing lists.", "request": { "$ref": "FindThreatMatchesRequest" @@ -149,18 +146,67 @@ "$ref": "FindThreatMatchesResponse" }, "parameterOrder": [], - "httpMethod": "POST" + "httpMethod": "POST", + "parameters": {} } } } }, "parameters": { - "callback": { - "description": "JSONP", + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "oauth_token": { + "type": "string", + "location": "query", + "description": "OAuth 2.0 token for the current user." + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, "$.xgafv": { + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -170,10 +216,19 @@ "1", "2" ], - "description": "V1 error format.", + "description": "V1 error format." + }, + "callback": { + "location": "query", + "description": "JSONP", "type": "string" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -182,125 +237,59 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" + "default": "json" } }, "schemas": { - "ThreatMatch": { - "description": "A match when checking a threat entry in the Safe Browsing threat lists.", + "FetchThreatListUpdatesRequest": { + "description": "Describes a Safe Browsing API update request. Clients can request updates for\nmultiple lists in a single request.\nNOTE: Field index 2 is unused.\nNEXT: 5", "type": "object", "properties": { - "platformType": { - "enumDescriptions": [ - "Unknown platform.", - "Threat posed to Windows.", - "Threat posed to Linux.", - "Threat posed to Android.", - "Threat posed to OS X.", - "Threat posed to iOS.", - "Threat posed to at least one of the defined platforms.", - "Threat posed to all defined platforms.", - "Threat posed to Chrome." - ], - "enum": [ - "PLATFORM_TYPE_UNSPECIFIED", - "WINDOWS", - "LINUX", - "ANDROID", - "OSX", - "IOS", - "ANY_PLATFORM", - "ALL_PLATFORMS", - "CHROME" - ], - "description": "The platform type matching this threat.", - "type": "string" + "listUpdateRequests": { + "description": "The requested threat list updates.", + "type": "array", + "items": { + "$ref": "ListUpdateRequest" + } }, - "threatEntryType": { - "description": "The threat entry type matching this threat.", + "client": { + "$ref": "ClientInfo", + "description": "The client metadata." + } + }, + "id": "FetchThreatListUpdatesRequest" + }, + "ListUpdateResponse": { + "description": "An update to an individual list.", + "type": "object", + "properties": { + "additions": { + "type": "array", + "items": { + "$ref": "ThreatEntrySet" + }, + "description": "A set of entries to add to a local threat type's list. Repeated to allow\nfor a combination of compressed and raw data to be sent in a single\nresponse." + }, + "checksum": { + "$ref": "Checksum", + "description": "The expected SHA256 hash of the client state; that is, of the sorted list\nof all hashes present in the database after applying the provided update.\nIf the client state doesn't match the expected state, the client must\ndisregard this update and retry later." + }, + "responseType": { + "description": "The type of response. This may indicate that an action is required by the\nclient when the response is received.", "type": "string", "enumDescriptions": [ - "Unspecified.", - "A URL.", - "An executable program.", - "An IP range.", - "Chrome extension.", - "Filename.", - "CERT" + "Unknown.", + "Partial updates are applied to the client's existing local database.", + "Full updates replace the client's entire local database. This means\nthat either the client was seriously out-of-date or the client is\nbelieved to be corrupt." ], "enum": [ - "THREAT_ENTRY_TYPE_UNSPECIFIED", - "URL", - "EXECUTABLE", - "IP_RANGE", - "CHROME_EXTENSION", - "FILENAME", - "CERT" + "RESPONSE_TYPE_UNSPECIFIED", + "PARTIAL_UPDATE", + "FULL_UPDATE" ] }, - "cacheDuration": { - "format": "google-duration", - "description": "The cache lifetime for the returned match. Clients must not cache this\nresponse for more than this duration to avoid false positives.", - "type": "string" - }, "threatType": { + "type": "string", "enumDescriptions": [ "Unknown.", "Malware threat type.", @@ -333,119 +322,18 @@ "APK_MALWARE_OFFLINE", "SUBRESOURCE_FILTER" ], - "description": "The threat type matching this threat.", - "type": "string" + "description": "The threat type for which data is returned." }, - "threatEntryMetadata": { - "description": "Optional metadata associated with this threat.", - "$ref": "ThreatEntryMetadata" - }, - "threat": { - "$ref": "ThreatEntry", - "description": "The threat matching this threat." - } - }, - "id": "ThreatMatch" - }, - "ListThreatListsResponse": { - "id": "ListThreatListsResponse", - "type": "object", - "properties": { - "threatLists": { - "description": "The lists available for download by the client.", + "removals": { + "description": "A set of entries to remove from a local threat type's list. In practice,\nthis field is empty or contains exactly one ThreatEntrySet.", + "type": "array", "items": { - "$ref": "ThreatListDescriptor" - }, - "type": "array" - } - } - }, - "RiceDeltaEncoding": { - "description": "The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or\ncompressed removal indices.", - "type": "object", - "properties": { - "encodedData": { + "$ref": "ThreatEntrySet" + } + }, + "newClientState": { + "description": "The new client state, in encrypted format. Opaque to clients.", "format": "byte", - "description": "The encoded deltas that are encoded using the Golomb-Rice coder.", - "type": "string" - }, - "firstValue": { - "format": "int64", - "description": "The offset of the first entry in the encoded data, or, if only a single\ninteger was encoded, that single integer's value.", - "type": "string" - }, - "numEntries": { - "format": "int32", - "description": "The number of entries that are delta encoded in the encoded data. If only a\nsingle integer was encoded, this will be zero and the single value will be\nstored in `first_value`.", - "type": "integer" - }, - "riceParameter": { - "format": "int32", - "description": "The Golomb-Rice parameter, which is a number between 2 and 28. This field\nis missing (that is, zero) if `num_entries` is zero.", - "type": "integer" - } - }, - "id": "RiceDeltaEncoding" - }, - "ThreatEntry": { - "description": "An individual threat; for example, a malicious URL or its hash\nrepresentation. Only one of these fields should be set.", - "type": "object", - "properties": { - "url": { - "description": "A URL.", - "type": "string" - }, - "digest": { - "format": "byte", - "description": "The digest of an executable in SHA256 format. The API supports both\nbinary and hex digests. For JSON requests, digests are base64-encoded.", - "type": "string" - }, - "hash": { - "format": "byte", - "description": "A hash prefix, consisting of the most significant 4-32 bytes of a SHA256\nhash. This field is in binary format. For JSON requests, hashes are\nbase64-encoded.", - "type": "string" - } - }, - "id": "ThreatEntry" - }, - "FindThreatMatchesResponse": { - "id": "FindThreatMatchesResponse", - "type": "object", - "properties": { - "matches": { - "description": "The threat list matches.", - "items": { - "$ref": "ThreatMatch" - }, - "type": "array" - } - } - }, - "ThreatListDescriptor": { - "id": "ThreatListDescriptor", - "description": "Describes an individual threat list. A list is defined by three parameters:\nthe type of threat posed, the type of platform targeted by the threat, and\nthe type of entries in the list.", - "type": "object", - "properties": { - "threatEntryType": { - "enumDescriptions": [ - "Unspecified.", - "A URL.", - "An executable program.", - "An IP range.", - "Chrome extension.", - "Filename.", - "CERT" - ], - "enum": [ - "THREAT_ENTRY_TYPE_UNSPECIFIED", - "URL", - "EXECUTABLE", - "IP_RANGE", - "CHROME_EXTENSION", - "FILENAME", - "CERT" - ], - "description": "The entry types contained in the list.", "type": "string" }, "platformType": { @@ -471,9 +359,280 @@ "ALL_PLATFORMS", "CHROME" ], - "description": "The platform type targeted by the list's entries.", + "description": "The platform type for which data is returned.", "type": "string" }, + "threatEntryType": { + "enumDescriptions": [ + "Unspecified.", + "A URL.", + "An executable program.", + "An IP range.", + "Chrome extension.", + "Filename.", + "CERT" + ], + "enum": [ + "THREAT_ENTRY_TYPE_UNSPECIFIED", + "URL", + "EXECUTABLE", + "IP_RANGE", + "CHROME_EXTENSION", + "FILENAME", + "CERT" + ], + "description": "The format of the threats.", + "type": "string" + } + }, + "id": "ListUpdateResponse" + }, + "Constraints": { + "description": "The constraints for this update.", + "type": "object", + "properties": { + "supportedCompressions": { + "enumDescriptions": [ + "Unknown.", + "Raw, uncompressed data.", + "Rice-Golomb encoded data." + ], + "description": "The compression types supported by the client.", + "type": "array", + "items": { + "enum": [ + "COMPRESSION_TYPE_UNSPECIFIED", + "RAW", + "RICE" + ], + "type": "string" + } + }, + "maxUpdateEntries": { + "description": "The maximum size in number of entries. The update will not contain more\nentries than this value. This should be a power of 2 between 2**10 and\n2**20. If zero, no update size limit is set.", + "format": "int32", + "type": "integer" + }, + "maxDatabaseEntries": { + "description": "Sets the maximum number of entries that the client is willing to have\nin the local database. This should be a power of 2 between 2**10 and\n2**20. If zero, no database size limit is set.", + "format": "int32", + "type": "integer" + }, + "region": { + "description": "Requests the list for a specific geographic location. If not set the\nserver may pick that value based on the user's IP address. Expects ISO\n3166-1 alpha-2 format.", + "type": "string" + } + }, + "id": "Constraints" + }, + "ThreatMatch": { + "description": "A match when checking a threat entry in the Safe Browsing threat lists.", + "type": "object", + "properties": { + "threatType": { + "description": "The threat type matching this threat.", + "type": "string", + "enumDescriptions": [ + "Unknown.", + "Malware threat type.", + "Social engineering threat type.", + "Unwanted software threat type.", + "Potentially harmful application threat type.", + "Social engineering threat type for internal use.", + "API abuse threat type.", + "Malicious binary threat type.", + "Client side detection whitelist threat type.", + "Client side download detection whitelist threat type.", + "Client incident threat type.", + "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.", + "List used for offline APK checks in PAM.", + "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list." + ], + "enum": [ + "THREAT_TYPE_UNSPECIFIED", + "MALWARE", + "SOCIAL_ENGINEERING", + "UNWANTED_SOFTWARE", + "POTENTIALLY_HARMFUL_APPLICATION", + "SOCIAL_ENGINEERING_INTERNAL", + "API_ABUSE", + "MALICIOUS_BINARY", + "CSD_WHITELIST", + "CSD_DOWNLOAD_WHITELIST", + "CLIENT_INCIDENT", + "CLIENT_INCIDENT_WHITELIST", + "APK_MALWARE_OFFLINE", + "SUBRESOURCE_FILTER" + ] + }, + "threatEntryMetadata": { + "$ref": "ThreatEntryMetadata", + "description": "Optional metadata associated with this threat." + }, + "threat": { + "$ref": "ThreatEntry", + "description": "The threat matching this threat." + }, + "platformType": { + "enum": [ + "PLATFORM_TYPE_UNSPECIFIED", + "WINDOWS", + "LINUX", + "ANDROID", + "OSX", + "IOS", + "ANY_PLATFORM", + "ALL_PLATFORMS", + "CHROME" + ], + "description": "The platform type matching this threat.", + "type": "string", + "enumDescriptions": [ + "Unknown platform.", + "Threat posed to Windows.", + "Threat posed to Linux.", + "Threat posed to Android.", + "Threat posed to OS X.", + "Threat posed to iOS.", + "Threat posed to at least one of the defined platforms.", + "Threat posed to all defined platforms.", + "Threat posed to Chrome." + ] + }, + "threatEntryType": { + "enum": [ + "THREAT_ENTRY_TYPE_UNSPECIFIED", + "URL", + "EXECUTABLE", + "IP_RANGE", + "CHROME_EXTENSION", + "FILENAME", + "CERT" + ], + "description": "The threat entry type matching this threat.", + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "A URL.", + "An executable program.", + "An IP range.", + "Chrome extension.", + "Filename.", + "CERT" + ] + }, + "cacheDuration": { + "description": "The cache lifetime for the returned match. Clients must not cache this\nresponse for more than this duration to avoid false positives.", + "format": "google-duration", + "type": "string" + } + }, + "id": "ThreatMatch" + }, + "RiceDeltaEncoding": { + "description": "The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or\ncompressed removal indices.", + "type": "object", + "properties": { + "numEntries": { + "description": "The number of entries that are delta encoded in the encoded data. If only a\nsingle integer was encoded, this will be zero and the single value will be\nstored in `first_value`.", + "format": "int32", + "type": "integer" + }, + "riceParameter": { + "description": "The Golomb-Rice parameter, which is a number between 2 and 28. This field\nis missing (that is, zero) if `num_entries` is zero.", + "format": "int32", + "type": "integer" + }, + "firstValue": { + "description": "The offset of the first entry in the encoded data, or, if only a single\ninteger was encoded, that single integer's value.", + "format": "int64", + "type": "string" + }, + "encodedData": { + "description": "The encoded deltas that are encoded using the Golomb-Rice coder.", + "format": "byte", + "type": "string" + } + }, + "id": "RiceDeltaEncoding" + }, + "ListThreatListsResponse": { + "type": "object", + "properties": { + "threatLists": { + "description": "The lists available for download by the client.", + "type": "array", + "items": { + "$ref": "ThreatListDescriptor" + } + } + }, + "id": "ListThreatListsResponse" + }, + "ThreatEntry": { + "description": "An individual threat; for example, a malicious URL or its hash\nrepresentation. Only one of these fields should be set.", + "type": "object", + "properties": { + "hash": { + "type": "string", + "description": "A hash prefix, consisting of the most significant 4-32 bytes of a SHA256\nhash. This field is in binary format. For JSON requests, hashes are\nbase64-encoded.", + "format": "byte" + }, + "url": { + "type": "string", + "description": "A URL." + }, + "digest": { + "description": "The digest of an executable in SHA256 format. The API supports both\nbinary and hex digests. For JSON requests, digests are base64-encoded.", + "format": "byte", + "type": "string" + } + }, + "id": "ThreatEntry" + }, + "FindThreatMatchesResponse": { + "type": "object", + "properties": { + "matches": { + "description": "The threat list matches.", + "type": "array", + "items": { + "$ref": "ThreatMatch" + } + } + }, + "id": "FindThreatMatchesResponse" + }, + "ThreatListDescriptor": { + "description": "Describes an individual threat list. A list is defined by three parameters:\nthe type of threat posed, the type of platform targeted by the threat, and\nthe type of entries in the list.", + "type": "object", + "properties": { + "platformType": { + "description": "The platform type targeted by the list's entries.", + "type": "string", + "enumDescriptions": [ + "Unknown platform.", + "Threat posed to Windows.", + "Threat posed to Linux.", + "Threat posed to Android.", + "Threat posed to OS X.", + "Threat posed to iOS.", + "Threat posed to at least one of the defined platforms.", + "Threat posed to all defined platforms.", + "Threat posed to Chrome." + ], + "enum": [ + "PLATFORM_TYPE_UNSPECIFIED", + "WINDOWS", + "LINUX", + "ANDROID", + "OSX", + "IOS", + "ANY_PLATFORM", + "ALL_PLATFORMS", + "CHROME" + ] + }, "threatType": { "description": "The threat type posed by the list's entries.", "type": "string", @@ -509,331 +668,7 @@ "APK_MALWARE_OFFLINE", "SUBRESOURCE_FILTER" ] - } - } - }, - "MetadataEntry": { - "id": "MetadataEntry", - "description": "A single metadata entry.", - "type": "object", - "properties": { - "value": { - "format": "byte", - "description": "The metadata entry value. For JSON requests, the value is base64-encoded.", - "type": "string" }, - "key": { - "format": "byte", - "description": "The metadata entry key. For JSON requests, the key is base64-encoded.", - "type": "string" - } - } - }, - "ClientInfo": { - "id": "ClientInfo", - "description": "The client metadata associated with Safe Browsing API requests.", - "type": "object", - "properties": { - "clientId": { - "description": "A client ID that (hopefully) uniquely identifies the client implementation\nof the Safe Browsing API.", - "type": "string" - }, - "clientVersion": { - "description": "The version of the client implementation.", - "type": "string" - } - } - }, - "FindThreatMatchesRequest": { - "description": "Request to check entries against lists.", - "type": "object", - "properties": { - "client": { - "description": "The client metadata.", - "$ref": "ClientInfo" - }, - "threatInfo": { - "$ref": "ThreatInfo", - "description": "The lists and entries to be checked for matches." - } - }, - "id": "FindThreatMatchesRequest" - }, - "ThreatInfo": { - "description": "The information regarding one or more threats that a client submits when\nchecking for matches in threat lists.", - "type": "object", - "properties": { - "threatEntryTypes": { - "description": "The entry types to be checked.", - "items": { - "enum": [ - "THREAT_ENTRY_TYPE_UNSPECIFIED", - "URL", - "EXECUTABLE", - "IP_RANGE", - "CHROME_EXTENSION", - "FILENAME", - "CERT" - ], - "type": "string" - }, - "type": "array", - "enumDescriptions": [ - "Unspecified.", - "A URL.", - "An executable program.", - "An IP range.", - "Chrome extension.", - "Filename.", - "CERT" - ] - }, - "threatTypes": { - "enumDescriptions": [ - "Unknown.", - "Malware threat type.", - "Social engineering threat type.", - "Unwanted software threat type.", - "Potentially harmful application threat type.", - "Social engineering threat type for internal use.", - "API abuse threat type.", - "Malicious binary threat type.", - "Client side detection whitelist threat type.", - "Client side download detection whitelist threat type.", - "Client incident threat type.", - "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.", - "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list." - ], - "description": "The threat types to be checked.", - "items": { - "enum": [ - "THREAT_TYPE_UNSPECIFIED", - "MALWARE", - "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE", - "POTENTIALLY_HARMFUL_APPLICATION", - "SOCIAL_ENGINEERING_INTERNAL", - "API_ABUSE", - "MALICIOUS_BINARY", - "CSD_WHITELIST", - "CSD_DOWNLOAD_WHITELIST", - "CLIENT_INCIDENT", - "CLIENT_INCIDENT_WHITELIST", - "APK_MALWARE_OFFLINE", - "SUBRESOURCE_FILTER" - ], - "type": "string" - }, - "type": "array" - }, - "platformTypes": { - "description": "The platform types to be checked.", - "items": { - "type": "string", - "enum": [ - "PLATFORM_TYPE_UNSPECIFIED", - "WINDOWS", - "LINUX", - "ANDROID", - "OSX", - "IOS", - "ANY_PLATFORM", - "ALL_PLATFORMS", - "CHROME" - ] - }, - "type": "array", - "enumDescriptions": [ - "Unknown platform.", - "Threat posed to Windows.", - "Threat posed to Linux.", - "Threat posed to Android.", - "Threat posed to OS X.", - "Threat posed to iOS.", - "Threat posed to at least one of the defined platforms.", - "Threat posed to all defined platforms.", - "Threat posed to Chrome." - ] - }, - "threatEntries": { - "description": "The threat entries to be checked.", - "items": { - "$ref": "ThreatEntry" - }, - "type": "array" - } - }, - "id": "ThreatInfo" - }, - "ThreatEntryMetadata": { - "description": "The metadata associated with a specific threat entry. The client is expected\nto know the metadata key/value pairs associated with each threat type.", - "type": "object", - "properties": { - "entries": { - "description": "The metadata entries.", - "items": { - "$ref": "MetadataEntry" - }, - "type": "array" - } - }, - "id": "ThreatEntryMetadata" - }, - "RawIndices": { - "id": "RawIndices", - "description": "A set of raw indices to remove from a local list.", - "type": "object", - "properties": { - "indices": { - "description": "The indices to remove from a lexicographically-sorted local list.", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" - } - } - }, - "RawHashes": { - "description": "The uncompressed threat entries in hash format of a particular prefix length.\nHashes can be anywhere from 4 to 32 bytes in size. A large majority are 4\nbytes, but some hashes are lengthened if they collide with the hash of a\npopular URL.\n\nUsed for sending ThreatEntrySet to clients that do not support compression,\nor when sending non-4-byte hashes to clients that do support compression.", - "type": "object", - "properties": { - "rawHashes": { - "format": "byte", - "description": "The hashes, in binary format, concatenated into one long string. Hashes are\nsorted in lexicographic order. For JSON API users, hashes are\nbase64-encoded.", - "type": "string" - }, - "prefixSize": { - "format": "int32", - "description": "The number of bytes for each prefix encoded below. This field can be\nanywhere from 4 (shortest prefix) to 32 (full SHA256 hash).", - "type": "integer" - } - }, - "id": "RawHashes" - }, - "FetchThreatListUpdatesResponse": { - "id": "FetchThreatListUpdatesResponse", - "type": "object", - "properties": { - "minimumWaitDuration": { - "format": "google-duration", - "description": "The minimum duration the client must wait before issuing any update\nrequest. If this field is not set clients may update as soon as they want.", - "type": "string" - }, - "listUpdateResponses": { - "description": "The list updates requested by the clients.", - "items": { - "$ref": "ListUpdateResponse" - }, - "type": "array" - } - } - }, - "Checksum": { - "description": "The expected state of a client's local database.", - "type": "object", - "properties": { - "sha256": { - "format": "byte", - "description": "The SHA256 hash of the client state; that is, of the sorted list of all\nhashes present in the database.", - "type": "string" - } - }, - "id": "Checksum" - }, - "FindFullHashesResponse": { - "id": "FindFullHashesResponse", - "type": "object", - "properties": { - "minimumWaitDuration": { - "format": "google-duration", - "description": "The minimum duration the client must wait before issuing any find hashes\nrequest. If this field is not set, clients can issue a request as soon as\nthey want.", - "type": "string" - }, - "matches": { - "description": "The full hashes that matched the requested prefixes.", - "items": { - "$ref": "ThreatMatch" - }, - "type": "array" - }, - "negativeCacheDuration": { - "format": "google-duration", - "description": "For requested entities that did not match the threat list, how long to\ncache the response.", - "type": "string" - } - } - }, - "ThreatEntrySet": { - "id": "ThreatEntrySet", - "description": "A set of threats that should be added or removed from a client's local\ndatabase.", - "type": "object", - "properties": { - "riceIndices": { - "$ref": "RiceDeltaEncoding", - "description": "The encoded local, lexicographically-sorted list indices, using a\nGolomb-Rice encoding. Used for sending compressed removal indices. The\nremoval indices (uint32) are sorted in ascending order, then delta encoded\nand stored as encoded_data." - }, - "compressionType": { - "description": "The compression type for the entries in this set.", - "type": "string", - "enumDescriptions": [ - "Unknown.", - "Raw, uncompressed data.", - "Rice-Golomb encoded data." - ], - "enum": [ - "COMPRESSION_TYPE_UNSPECIFIED", - "RAW", - "RICE" - ] - }, - "rawIndices": { - "description": "The raw removal indices for a local list.", - "$ref": "RawIndices" - }, - "rawHashes": { - "description": "The raw SHA256-formatted entries.", - "$ref": "RawHashes" - }, - "riceHashes": { - "$ref": "RiceDeltaEncoding", - "description": "The encoded 4-byte prefixes of SHA256-formatted entries, using a\nGolomb-Rice encoding. The hashes are converted to uint32, sorted in\nascending order, then delta encoded and stored as encoded_data." - } - } - }, - "FindFullHashesRequest": { - "id": "FindFullHashesRequest", - "description": "Request to return full hashes matched by the provided hash prefixes.", - "type": "object", - "properties": { - "clientStates": { - "description": "The current client states for each of the client's local threat lists.", - "items": { - "format": "byte", - "type": "string" - }, - "type": "array" - }, - "client": { - "$ref": "ClientInfo", - "description": "The client metadata." - }, - "threatInfo": { - "description": "The lists and hashes to be checked.", - "$ref": "ThreatInfo" - }, - "apiClient": { - "description": "Client metadata associated with callers of higher-level APIs built on top\nof the client's implementation.", - "$ref": "ClientInfo" - } - } - }, - "ListUpdateRequest": { - "id": "ListUpdateRequest", - "description": "A single list update request.", - "type": "object", - "properties": { "threatEntryType": { "enumDescriptions": [ "Unspecified.", @@ -853,15 +688,363 @@ "FILENAME", "CERT" ], - "description": "The types of entries present in the list.", + "description": "The entry types contained in the list.", + "type": "string" + } + }, + "id": "ThreatListDescriptor" + }, + "MetadataEntry": { + "description": "A single metadata entry.", + "type": "object", + "properties": { + "key": { + "description": "The metadata entry key. For JSON requests, the key is base64-encoded.", + "format": "byte", "type": "string" }, - "state": { + "value": { + "description": "The metadata entry value. For JSON requests, the value is base64-encoded.", "format": "byte", + "type": "string" + } + }, + "id": "MetadataEntry" + }, + "ClientInfo": { + "description": "The client metadata associated with Safe Browsing API requests.", + "type": "object", + "properties": { + "clientId": { + "description": "A client ID that (hopefully) uniquely identifies the client implementation\nof the Safe Browsing API.", + "type": "string" + }, + "clientVersion": { + "description": "The version of the client implementation.", + "type": "string" + } + }, + "id": "ClientInfo" + }, + "ThreatInfo": { + "description": "The information regarding one or more threats that a client submits when\nchecking for matches in threat lists.", + "type": "object", + "properties": { + "threatEntryTypes": { + "description": "The entry types to be checked.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "THREAT_ENTRY_TYPE_UNSPECIFIED", + "URL", + "EXECUTABLE", + "IP_RANGE", + "CHROME_EXTENSION", + "FILENAME", + "CERT" + ] + }, + "enumDescriptions": [ + "Unspecified.", + "A URL.", + "An executable program.", + "An IP range.", + "Chrome extension.", + "Filename.", + "CERT" + ] + }, + "threatTypes": { + "description": "The threat types to be checked.", + "type": "array", + "items": { + "enum": [ + "THREAT_TYPE_UNSPECIFIED", + "MALWARE", + "SOCIAL_ENGINEERING", + "UNWANTED_SOFTWARE", + "POTENTIALLY_HARMFUL_APPLICATION", + "SOCIAL_ENGINEERING_INTERNAL", + "API_ABUSE", + "MALICIOUS_BINARY", + "CSD_WHITELIST", + "CSD_DOWNLOAD_WHITELIST", + "CLIENT_INCIDENT", + "CLIENT_INCIDENT_WHITELIST", + "APK_MALWARE_OFFLINE", + "SUBRESOURCE_FILTER" + ], + "type": "string" + }, + "enumDescriptions": [ + "Unknown.", + "Malware threat type.", + "Social engineering threat type.", + "Unwanted software threat type.", + "Potentially harmful application threat type.", + "Social engineering threat type for internal use.", + "API abuse threat type.", + "Malicious binary threat type.", + "Client side detection whitelist threat type.", + "Client side download detection whitelist threat type.", + "Client incident threat type.", + "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.", + "List used for offline APK checks in PAM.", + "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list." + ] + }, + "platformTypes": { + "enumDescriptions": [ + "Unknown platform.", + "Threat posed to Windows.", + "Threat posed to Linux.", + "Threat posed to Android.", + "Threat posed to OS X.", + "Threat posed to iOS.", + "Threat posed to at least one of the defined platforms.", + "Threat posed to all defined platforms.", + "Threat posed to Chrome." + ], + "description": "The platform types to be checked.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "PLATFORM_TYPE_UNSPECIFIED", + "WINDOWS", + "LINUX", + "ANDROID", + "OSX", + "IOS", + "ANY_PLATFORM", + "ALL_PLATFORMS", + "CHROME" + ] + } + }, + "threatEntries": { + "description": "The threat entries to be checked.", + "type": "array", + "items": { + "$ref": "ThreatEntry" + } + } + }, + "id": "ThreatInfo" + }, + "FindThreatMatchesRequest": { + "description": "Request to check entries against lists.", + "type": "object", + "properties": { + "client": { + "$ref": "ClientInfo", + "description": "The client metadata." + }, + "threatInfo": { + "$ref": "ThreatInfo", + "description": "The lists and entries to be checked for matches." + } + }, + "id": "FindThreatMatchesRequest" + }, + "ThreatEntryMetadata": { + "id": "ThreatEntryMetadata", + "description": "The metadata associated with a specific threat entry. The client is expected\nto know the metadata key/value pairs associated with each threat type.", + "type": "object", + "properties": { + "entries": { + "description": "The metadata entries.", + "type": "array", + "items": { + "$ref": "MetadataEntry" + } + } + } + }, + "RawIndices": { + "description": "A set of raw indices to remove from a local list.", + "type": "object", + "properties": { + "indices": { + "description": "The indices to remove from a lexicographically-sorted local list.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "id": "RawIndices" + }, + "RawHashes": { + "id": "RawHashes", + "description": "The uncompressed threat entries in hash format of a particular prefix length.\nHashes can be anywhere from 4 to 32 bytes in size. A large majority are 4\nbytes, but some hashes are lengthened if they collide with the hash of a\npopular URL.\n\nUsed for sending ThreatEntrySet to clients that do not support compression,\nor when sending non-4-byte hashes to clients that do support compression.", + "type": "object", + "properties": { + "rawHashes": { + "description": "The hashes, in binary format, concatenated into one long string. Hashes are\nsorted in lexicographic order. For JSON API users, hashes are\nbase64-encoded.", + "format": "byte", + "type": "string" + }, + "prefixSize": { + "description": "The number of bytes for each prefix encoded below. This field can be\nanywhere from 4 (shortest prefix) to 32 (full SHA256 hash).", + "format": "int32", + "type": "integer" + } + } + }, + "FetchThreatListUpdatesResponse": { + "type": "object", + "properties": { + "listUpdateResponses": { + "description": "The list updates requested by the clients.", + "type": "array", + "items": { + "$ref": "ListUpdateResponse" + } + }, + "minimumWaitDuration": { + "description": "The minimum duration the client must wait before issuing any update\nrequest. If this field is not set clients may update as soon as they want.", + "format": "google-duration", + "type": "string" + } + }, + "id": "FetchThreatListUpdatesResponse" + }, + "Checksum": { + "id": "Checksum", + "description": "The expected state of a client's local database.", + "type": "object", + "properties": { + "sha256": { + "description": "The SHA256 hash of the client state; that is, of the sorted list of all\nhashes present in the database.", + "format": "byte", + "type": "string" + } + } + }, + "FindFullHashesResponse": { + "type": "object", + "properties": { + "minimumWaitDuration": { + "description": "The minimum duration the client must wait before issuing any find hashes\nrequest. If this field is not set, clients can issue a request as soon as\nthey want.", + "format": "google-duration", + "type": "string" + }, + "matches": { + "description": "The full hashes that matched the requested prefixes.", + "type": "array", + "items": { + "$ref": "ThreatMatch" + } + }, + "negativeCacheDuration": { + "description": "For requested entities that did not match the threat list, how long to\ncache the response.", + "format": "google-duration", + "type": "string" + } + }, + "id": "FindFullHashesResponse" + }, + "ThreatEntrySet": { + "description": "A set of threats that should be added or removed from a client's local\ndatabase.", + "type": "object", + "properties": { + "rawIndices": { + "$ref": "RawIndices", + "description": "The raw removal indices for a local list." + }, + "rawHashes": { + "description": "The raw SHA256-formatted entries.", + "$ref": "RawHashes" + }, + "riceHashes": { + "$ref": "RiceDeltaEncoding", + "description": "The encoded 4-byte prefixes of SHA256-formatted entries, using a\nGolomb-Rice encoding. The hashes are converted to uint32, sorted in\nascending order, then delta encoded and stored as encoded_data." + }, + "compressionType": { + "enumDescriptions": [ + "Unknown.", + "Raw, uncompressed data.", + "Rice-Golomb encoded data." + ], + "enum": [ + "COMPRESSION_TYPE_UNSPECIFIED", + "RAW", + "RICE" + ], + "description": "The compression type for the entries in this set.", + "type": "string" + }, + "riceIndices": { + "$ref": "RiceDeltaEncoding", + "description": "The encoded local, lexicographically-sorted list indices, using a\nGolomb-Rice encoding. Used for sending compressed removal indices. The\nremoval indices (uint32) are sorted in ascending order, then delta encoded\nand stored as encoded_data." + } + }, + "id": "ThreatEntrySet" + }, + "FindFullHashesRequest": { + "id": "FindFullHashesRequest", + "description": "Request to return full hashes matched by the provided hash prefixes.", + "type": "object", + "properties": { + "apiClient": { + "$ref": "ClientInfo", + "description": "Client metadata associated with callers of higher-level APIs built on top\nof the client's implementation." + }, + "clientStates": { + "type": "array", + "items": { + "format": "byte", + "type": "string" + }, + "description": "The current client states for each of the client's local threat lists." + }, + "client": { + "description": "The client metadata.", + "$ref": "ClientInfo" + }, + "threatInfo": { + "$ref": "ThreatInfo", + "description": "The lists and hashes to be checked." + } + } + }, + "ListUpdateRequest": { + "description": "A single list update request.", + "type": "object", + "properties": { + "threatEntryType": { + "description": "The types of entries present in the list.", + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "A URL.", + "An executable program.", + "An IP range.", + "Chrome extension.", + "Filename.", + "CERT" + ], + "enum": [ + "THREAT_ENTRY_TYPE_UNSPECIFIED", + "URL", + "EXECUTABLE", + "IP_RANGE", + "CHROME_EXTENSION", + "FILENAME", + "CERT" + ] + }, + "state": { "description": "The current state of the client for the requested list (the encrypted\nclient state that was received from the last successful list update).", + "format": "byte", "type": "string" }, "platformType": { + "description": "The type of platform at risk by entries present in the list.", + "type": "string", "enumDescriptions": [ "Unknown platform.", "Threat posed to Windows.", @@ -883,13 +1066,7 @@ "ANY_PLATFORM", "ALL_PLATFORMS", "CHROME" - ], - "description": "The type of platform at risk by entries present in the list.", - "type": "string" - }, - "constraints": { - "$ref": "Constraints", - "description": "The constraints associated with this request." + ] }, "threatType": { "enumDescriptions": [ @@ -926,192 +1103,13 @@ ], "description": "The type of threat posed by entries present in the list.", "type": "string" - } - } - }, - "FetchThreatListUpdatesRequest": { - "description": "Describes a Safe Browsing API update request. Clients can request updates for\nmultiple lists in a single request.\nNOTE: Field index 2 is unused.\nNEXT: 5", - "type": "object", - "properties": { - "listUpdateRequests": { - "description": "The requested threat list updates.", - "items": { - "$ref": "ListUpdateRequest" - }, - "type": "array" }, - "client": { - "$ref": "ClientInfo", - "description": "The client metadata." + "constraints": { + "$ref": "Constraints", + "description": "The constraints associated with this request." } }, - "id": "FetchThreatListUpdatesRequest" - }, - "ListUpdateResponse": { - "description": "An update to an individual list.", - "type": "object", - "properties": { - "removals": { - "description": "A set of entries to remove from a local threat type's list. In practice,\nthis field is empty or contains exactly one ThreatEntrySet.", - "items": { - "$ref": "ThreatEntrySet" - }, - "type": "array" - }, - "newClientState": { - "format": "byte", - "description": "The new client state, in encrypted format. Opaque to clients.", - "type": "string" - }, - "platformType": { - "description": "The platform type for which data is returned.", - "type": "string", - "enumDescriptions": [ - "Unknown platform.", - "Threat posed to Windows.", - "Threat posed to Linux.", - "Threat posed to Android.", - "Threat posed to OS X.", - "Threat posed to iOS.", - "Threat posed to at least one of the defined platforms.", - "Threat posed to all defined platforms.", - "Threat posed to Chrome." - ], - "enum": [ - "PLATFORM_TYPE_UNSPECIFIED", - "WINDOWS", - "LINUX", - "ANDROID", - "OSX", - "IOS", - "ANY_PLATFORM", - "ALL_PLATFORMS", - "CHROME" - ] - }, - "threatEntryType": { - "enumDescriptions": [ - "Unspecified.", - "A URL.", - "An executable program.", - "An IP range.", - "Chrome extension.", - "Filename.", - "CERT" - ], - "enum": [ - "THREAT_ENTRY_TYPE_UNSPECIFIED", - "URL", - "EXECUTABLE", - "IP_RANGE", - "CHROME_EXTENSION", - "FILENAME", - "CERT" - ], - "description": "The format of the threats.", - "type": "string" - }, - "additions": { - "description": "A set of entries to add to a local threat type's list. Repeated to allow\nfor a combination of compressed and raw data to be sent in a single\nresponse.", - "items": { - "$ref": "ThreatEntrySet" - }, - "type": "array" - }, - "checksum": { - "$ref": "Checksum", - "description": "The expected SHA256 hash of the client state; that is, of the sorted list\nof all hashes present in the database after applying the provided update.\nIf the client state doesn't match the expected state, the client must\ndisregard this update and retry later." - }, - "responseType": { - "description": "The type of response. This may indicate that an action is required by the\nclient when the response is received.", - "type": "string", - "enumDescriptions": [ - "Unknown.", - "Partial updates are applied to the client's existing local database.", - "Full updates replace the client's entire local database. This means\nthat either the client was seriously out-of-date or the client is\nbelieved to be corrupt." - ], - "enum": [ - "RESPONSE_TYPE_UNSPECIFIED", - "PARTIAL_UPDATE", - "FULL_UPDATE" - ] - }, - "threatType": { - "description": "The threat type for which data is returned.", - "type": "string", - "enumDescriptions": [ - "Unknown.", - "Malware threat type.", - "Social engineering threat type.", - "Unwanted software threat type.", - "Potentially harmful application threat type.", - "Social engineering threat type for internal use.", - "API abuse threat type.", - "Malicious binary threat type.", - "Client side detection whitelist threat type.", - "Client side download detection whitelist threat type.", - "Client incident threat type.", - "Whitelist used when detecting client incident threats.\nThis enum was never launched and should be re-used for the next list.", - "List used for offline APK checks in PAM.", - "Patterns to be used for activating the subresource filter. Interstitial\nwill not be shown for patterns from this list." - ], - "enum": [ - "THREAT_TYPE_UNSPECIFIED", - "MALWARE", - "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE", - "POTENTIALLY_HARMFUL_APPLICATION", - "SOCIAL_ENGINEERING_INTERNAL", - "API_ABUSE", - "MALICIOUS_BINARY", - "CSD_WHITELIST", - "CSD_DOWNLOAD_WHITELIST", - "CLIENT_INCIDENT", - "CLIENT_INCIDENT_WHITELIST", - "APK_MALWARE_OFFLINE", - "SUBRESOURCE_FILTER" - ] - } - }, - "id": "ListUpdateResponse" - }, - "Constraints": { - "id": "Constraints", - "description": "The constraints for this update.", - "type": "object", - "properties": { - "maxUpdateEntries": { - "format": "int32", - "description": "The maximum size in number of entries. The update will not contain more\nentries than this value. This should be a power of 2 between 2**10 and\n2**20. If zero, no update size limit is set.", - "type": "integer" - }, - "region": { - "description": "Requests the list for a specific geographic location. If not set the\nserver may pick that value based on the user's IP address. Expects ISO\n3166-1 alpha-2 format.", - "type": "string" - }, - "maxDatabaseEntries": { - "format": "int32", - "description": "Sets the maximum number of entries that the client is willing to have\nin the local database. This should be a power of 2 between 2**10 and\n2**20. If zero, no database size limit is set.", - "type": "integer" - }, - "supportedCompressions": { - "description": "The compression types supported by the client.", - "items": { - "enum": [ - "COMPRESSION_TYPE_UNSPECIFIED", - "RAW", - "RICE" - ], - "type": "string" - }, - "type": "array", - "enumDescriptions": [ - "Unknown.", - "Raw, uncompressed data.", - "Rice-Golomb encoded data." - ] - } - } + "id": "ListUpdateRequest" } }, "protocol": "rest", @@ -1121,10 +1119,12 @@ }, "version": "v4", "baseUrl": "https://safebrowsing.googleapis.com/", - "servicePath": "", "kind": "discovery#restDescription", "description": "Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources.", + "servicePath": "", "rootUrl": "https://safebrowsing.googleapis.com/", "basePath": "", - "ownerDomain": "google.com" + "ownerDomain": "google.com", + "name": "safebrowsing", + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/script/v1/script-api.json b/vendor/google.golang.org/api/script/v1/script-api.json index 163c5e7eb..a6d0fb28e 100644 --- a/vendor/google.golang.org/api/script/v1/script-api.json +++ b/vendor/google.golang.org/api/script/v1/script-api.json @@ -1,15 +1,37 @@ { + "servicePath": "", + "description": "An API for managing and executing Google Apps Script projects.", + "kind": "discovery#restDescription", + "rootUrl": "https://script.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "script", + "batchPath": "batch", + "revision": "20171010", + "documentationLink": "https://developers.google.com/apps-script/execution/rest/v1/scripts/run", + "id": "script:v1", + "fullyEncodeReservedExpansion": true, + "title": "Google Apps Script Execution API", + "discoveryVersion": "v1", + "ownerName": "Google", "resources": { "scripts": { "methods": { "run": { - "response": { - "$ref": "Operation" + "flatPath": "v1/scripts/{scriptId}:run", + "id": "script.scripts.run", + "path": "v1/scripts/{scriptId}:run", + "request": { + "$ref": "ExecutionRequest" }, + "description": "Runs a function in an Apps Script project. The project must be deployed\nfor use with the Apps Script Execution API.\n\nThis method requires authorization with an OAuth 2.0 token that includes at\nleast one of the scopes listed in the [Authorization](#authorization)\nsection; script projects that do not require authorization cannot be\nexecuted through this API. To find the correct scopes to include in the\nauthentication token, open the project in the script editor, then select\n**File \u003e Project properties** and click the **Scopes** tab.", + "httpMethod": "POST", "parameterOrder": [ "scriptId" ], - "httpMethod": "POST", + "response": { + "$ref": "Operation" + }, "parameters": { "scriptId": { "location": "path", @@ -30,48 +52,34 @@ "https://www.googleapis.com/auth/groups", "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/userinfo.email" - ], - "flatPath": "v1/scripts/{scriptId}:run", - "path": "v1/scripts/{scriptId}:run", - "id": "script.scripts.run", - "request": { - "$ref": "ExecutionRequest" - }, - "description": "Runs a function in an Apps Script project. The project must be deployed\nfor use with the Apps Script Execution API.\n\nThis method requires authorization with an OAuth 2.0 token that includes at\nleast one of the scopes listed in the [Authorization](#authorization)\nsection; script projects that do not require authorization cannot be\nexecuted through this API. To find the correct scopes to include in the\nauthentication token, open the project in the script editor, then select\n**File \u003e Project properties** and click the **Scopes** tab." + ] } } } }, "parameters": { "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", "type": "boolean", - "default": "true" + "default": "true", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, "$.xgafv": { - "description": "V1 error format.", - "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -80,9 +88,18 @@ "enum": [ "1", "2" - ] + ], + "description": "V1 error format.", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" }, "alt": { + "description": "Data format for response.", + "default": "json", "enum": [ "json", "media", @@ -94,166 +111,45 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query", - "description": "Data format for response.", - "default": "json" + "location": "query" }, "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { "location": "query", - "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.", + "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.", "type": "string" }, - "pp": { + "access_token": { + "type": "string", "location": "query", + "description": "OAuth access token." + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { "description": "Pretty-print response.", "type": "boolean", - "default": "true" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", + "default": "true", "location": "query" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", "type": "string" } }, "schemas": { - "ExecutionResponse": { - "description": "An object that provides the return value of a function executed through the\nApps Script Execution API. If a\n`run` call succeeds and the\nscript function returns successfully, the response body's\n`response` field contains this\n`ExecutionResponse` object.", - "type": "object", - "properties": { - "result": { - "description": "The return value of the script function. The type matches the object type\nreturned in Apps Script. Functions called through the Execution API cannot\nreturn Apps Script-specific objects (such as a `Document` or a `Calendar`);\nthey can only return primitive types such as a `string`, `number`, `array`,\n`object`, or `boolean`.", - "type": "any" - } - }, - "id": "ExecutionResponse" - }, - "Operation": { - "description": "The response will not arrive until the function finishes executing. The maximum runtime is listed in the guide to [limitations in Apps Script](https://developers.google.com/apps-script/guides/services/quotas#current_limitations).\n\u003cp\u003eIf the script function returns successfully, the `response` field will contain an `ExecutionResponse` object with the function's return value in the object's `result` field.\u003c/p\u003e\n\u003cp\u003eIf the script function (or Apps Script itself) throws an exception, the `error` field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.\u003c/p\u003e\n\u003cp\u003eIf the `run` call itself fails (for example, because of a malformed request or an authorization error), the method will return an HTTP response code in the 4XX range with a different format for the response body. Client libraries will automatically convert a 4XX response into an exception class.\u003c/p\u003e", - "type": "object", - "properties": { - "error": { - "description": "If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, this field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.", - "$ref": "Status" - }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "This field is not used.", - "type": "object" - }, - "done": { - "description": "This field is only used with asynchronous executions and indicates whether or not the script execution has completed. A completed execution has a populated response field containing the `ExecutionResponse` from function that was executed.", - "type": "boolean" - }, - "response": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "If the script function returns successfully, this field will contain an `ExecutionResponse` object with the function's return value as the object's `result` field.", - "type": "object" - } - }, - "id": "Operation" - }, - "ScriptStackTraceElement": { - "description": "A stack trace through the script that shows where the execution failed.", - "type": "object", - "properties": { - "function": { - "description": "The name of the function that failed.", - "type": "string" - }, - "lineNumber": { - "description": "The line number where the script failed.", - "format": "int32", - "type": "integer" - } - }, - "id": "ScriptStackTraceElement" - }, - "ExecutionError": { - "description": "An object that provides information about the nature of an error in the Apps\nScript Execution API. If an\n`run` call succeeds but the\nscript function (or Apps Script itself) throws an exception, the response\nbody's `error` field contains a\n`Status` object. The `Status` object's `details` field\ncontains an array with a single one of these `ExecutionError` objects.", - "type": "object", - "properties": { - "errorType": { - "description": "The error type, for example `TypeError` or `ReferenceError`. If the error\ntype is unavailable, this field is not included.", - "type": "string" - }, - "errorMessage": { - "type": "string", - "description": "The error message thrown by Apps Script, usually localized into the user's\nlanguage." - }, - "scriptStackTraceElements": { - "type": "array", - "items": { - "$ref": "ScriptStackTraceElement" - }, - "description": "An array of objects that provide a stack trace through the script to show\nwhere the execution failed, with the deepest call first." - } - }, - "id": "ExecutionError" - }, - "Status": { - "properties": { - "message": { - "description": "A developer-facing error message, which is in English. Any user-facing error message is localized and sent in the [`google.rpc.Status.details`](google.rpc.Status.details) field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "An array that contains a single `ExecutionError` object that provides information about the nature of the error.", - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - }, - "code": { - "description": "The status code. For this API, this value will always be 3, corresponding to an \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e error.", - "format": "int32", - "type": "integer" - } - }, - "id": "Status", - "description": "If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, the response body's `error` field will contain this `Status` object.", - "type": "object" - }, "ExecutionRequest": { - "id": "ExecutionRequest", "description": "A request to run the function in a script. The script is identified by the\nspecified `script_id`. Executing a function on a script returns results\nbased on the implementation of the script.", "type": "object", "properties": { - "parameters": { - "type": "array", - "items": { - "type": "any" - }, - "description": "The parameters to be passed to the function being executed. The object type\nfor each parameter should match the expected type in Apps Script.\nParameters cannot be Apps Script-specific object types (such as a\n`Document` or a `Calendar`); they can only be primitive types such as\n`string`, `number`, `array`, `object`, or `boolean`. Optional." - }, - "sessionState": { - "description": "For Android add-ons only. An ID that represents the user's current session\nin the Android app for Google Docs or Sheets, included as extra data in the\n[`Intent`](https://developer.android.com/guide/components/intents-filters.html)\nthat launches the add-on. When an Android add-on is run with a session\nstate, it gains the privileges of a\n[bound](https://developers.google.com/apps-script/guides/bound) script —\nthat is, it can access information like the user's current cursor position\n(in Docs) or selected cell (in Sheets). To retrieve the state, call\n`Intent.getStringExtra(\"com.google.android.apps.docs.addons.SessionState\")`.\nOptional.", - "type": "string" - }, "function": { "description": "The name of the function to execute in the given script. The name does not\ninclude parentheses or parameters.", "type": "string" @@ -261,13 +157,132 @@ "devMode": { "description": "If `true` and the user is an owner of the script, the script runs at the\nmost recently saved version rather than the version deployed for use with\nthe Execution API. Optional; default is `false`.", "type": "boolean" + }, + "parameters": { + "description": "The parameters to be passed to the function being executed. The object type\nfor each parameter should match the expected type in Apps Script.\nParameters cannot be Apps Script-specific object types (such as a\n`Document` or a `Calendar`); they can only be primitive types such as\n`string`, `number`, `array`, `object`, or `boolean`. Optional.", + "type": "array", + "items": { + "type": "any" + } + }, + "sessionState": { + "description": "For Android add-ons only. An ID that represents the user's current session\nin the Android app for Google Docs or Sheets, included as extra data in the\n[`Intent`](https://developer.android.com/guide/components/intents-filters.html)\nthat launches the add-on. When an Android add-on is run with a session\nstate, it gains the privileges of a\n[bound](https://developers.google.com/apps-script/guides/bound) script —\nthat is, it can access information like the user's current cursor position\n(in Docs) or selected cell (in Sheets). To retrieve the state, call\n`Intent.getStringExtra(\"com.google.android.apps.docs.addons.SessionState\")`.\nOptional.", + "type": "string" + } + }, + "id": "ExecutionRequest" + }, + "ExecutionResponse": { + "id": "ExecutionResponse", + "description": "An object that provides the return value of a function executed through the\nApps Script Execution API. If a\n`run` call succeeds and the\nscript function returns successfully, the response body's\n`response` field contains this\n`ExecutionResponse` object.", + "type": "object", + "properties": { + "result": { + "description": "The return value of the script function. The type matches the object type\nreturned in Apps Script. Functions called through the Execution API cannot\nreturn Apps Script-specific objects (such as a `Document` or a `Calendar`);\nthey can only return primitive types such as a `string`, `number`, `array`,\n`object`, or `boolean`.", + "type": "any" } } + }, + "Operation": { + "properties": { + "error": { + "$ref": "Status", + "description": "If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, this field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error." + }, + "metadata": { + "description": "This field is not used.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "done": { + "type": "boolean", + "description": "This field is only used with asynchronous executions and indicates whether or not the script execution has completed. A completed execution has a populated response field containing the `ExecutionResponse` from function that was executed." + }, + "response": { + "description": "If the script function returns successfully, this field will contain an `ExecutionResponse` object with the function's return value as the object's `result` field.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "id": "Operation", + "description": "The response will not arrive until the function finishes executing. The maximum runtime is listed in the guide to [limitations in Apps Script](https://developers.google.com/apps-script/guides/services/quotas#current_limitations).\n\u003cp\u003eIf the script function returns successfully, the `response` field will contain an `ExecutionResponse` object with the function's return value in the object's `result` field.\u003c/p\u003e\n\u003cp\u003eIf the script function (or Apps Script itself) throws an exception, the `error` field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.\u003c/p\u003e\n\u003cp\u003eIf the `run` call itself fails (for example, because of a malformed request or an authorization error), the method will return an HTTP response code in the 4XX range with a different format for the response body. Client libraries will automatically convert a 4XX response into an exception class.\u003c/p\u003e", + "type": "object" + }, + "ScriptStackTraceElement": { + "description": "A stack trace through the script that shows where the execution failed.", + "type": "object", + "properties": { + "lineNumber": { + "description": "The line number where the script failed.", + "format": "int32", + "type": "integer" + }, + "function": { + "type": "string", + "description": "The name of the function that failed." + } + }, + "id": "ScriptStackTraceElement" + }, + "ExecutionError": { + "properties": { + "errorType": { + "description": "The error type, for example `TypeError` or `ReferenceError`. If the error\ntype is unavailable, this field is not included.", + "type": "string" + }, + "errorMessage": { + "description": "The error message thrown by Apps Script, usually localized into the user's\nlanguage.", + "type": "string" + }, + "scriptStackTraceElements": { + "description": "An array of objects that provide a stack trace through the script to show\nwhere the execution failed, with the deepest call first.", + "type": "array", + "items": { + "$ref": "ScriptStackTraceElement" + } + } + }, + "id": "ExecutionError", + "description": "An object that provides information about the nature of an error in the Apps\nScript Execution API. If an\n`run` call succeeds but the\nscript function (or Apps Script itself) throws an exception, the response\nbody's `error` field contains a\n`Status` object. The `Status` object's `details` field\ncontains an array with a single one of these `ExecutionError` objects.", + "type": "object" + }, + "Status": { + "type": "object", + "properties": { + "details": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + }, + "description": "An array that contains a single `ExecutionError` object that provides information about the nature of the error." + }, + "code": { + "description": "The status code. For this API, this value will always be 3, corresponding to an \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e error.", + "format": "int32", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which is in English. Any user-facing error message is localized and sent in the [`google.rpc.Status.details`](google.rpc.Status.details) field, or localized by the client.", + "type": "string" + } + }, + "id": "Status", + "description": "If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, the response body's `error` field will contain this `Status` object." } }, "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, "protocol": "rest", "version": "v1", @@ -275,6 +290,21 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/drive": { + "description": "View and manage the files in your Google Drive" + }, + "https://www.googleapis.com/auth/spreadsheets": { + "description": "View and manage your spreadsheets in Google Drive" + }, + "https://mail.google.com/": { + "description": "Read, send, delete, and manage your email" + }, + "https://www.googleapis.com/auth/admin.directory.group": { + "description": "View and manage the provisioning of groups on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user": { + "description": "View and manage the provisioning of users on your domain" + }, "https://www.googleapis.com/auth/forms": { "description": "View and manage your forms in Google Drive" }, @@ -292,38 +322,8 @@ }, "https://www.googleapis.com/auth/forms.currentonly": { "description": "View and manage forms that this application has been installed in" - }, - "https://www.googleapis.com/auth/drive": { - "description": "View and manage the files in your Google Drive" - }, - "https://www.googleapis.com/auth/admin.directory.user": { - "description": "View and manage the provisioning of users on your domain" - }, - "https://www.googleapis.com/auth/admin.directory.group": { - "description": "View and manage the provisioning of groups on your domain" - }, - "https://mail.google.com/": { - "description": "Read, send, delete, and manage your email" - }, - "https://www.googleapis.com/auth/spreadsheets": { - "description": "View and manage your spreadsheets in Google Drive" } } } - }, - "kind": "discovery#restDescription", - "description": "An API for managing and executing Google Apps Script projects.", - "servicePath": "", - "rootUrl": "https://script.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "script", - "batchPath": "batch", - "revision": "20170927", - "documentationLink": "https://developers.google.com/apps-script/execution/rest/v1/scripts/run", - "id": "script:v1", - "fullyEncodeReservedExpansion": true, - "title": "Google Apps Script Execution API", - "ownerName": "Google", - "discoveryVersion": "v1" + } } diff --git a/vendor/google.golang.org/api/searchconsole/v1/searchconsole-api.json b/vendor/google.golang.org/api/searchconsole/v1/searchconsole-api.json index 3fa1c264c..74e463416 100644 --- a/vendor/google.golang.org/api/searchconsole/v1/searchconsole-api.json +++ b/vendor/google.golang.org/api/searchconsole/v1/searchconsole-api.json @@ -1,15 +1,53 @@ { + "discoveryVersion": "v1", + "ownerName": "Google", + "version_module": true, + "resources": { + "urlTestingTools": { + "resources": { + "mobileFriendlyTest": { + "methods": { + "run": { + "request": { + "$ref": "RunMobileFriendlyTestRequest" + }, + "description": "Runs Mobile-Friendly Test for a given URL.", + "response": { + "$ref": "RunMobileFriendlyTestResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "flatPath": "v1/urlTestingTools/mobileFriendlyTest:run", + "path": "v1/urlTestingTools/mobileFriendlyTest:run", + "id": "searchconsole.urlTestingTools.mobileFriendlyTest.run" + } + } + } + } + } + }, "parameters": { - "upload_protocol": { + "oauth_token": { "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "description": "OAuth 2.0 token for the current user.", "type": "string" }, - "prettyPrint": { + "bearer_token": { "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { "description": "Returns response with indentations and line breaks.", "type": "boolean", - "default": "true" + "default": "true", + "location": "query" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", @@ -22,17 +60,17 @@ "type": "string" }, "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" ], - "location": "query" + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format." }, "callback": { "location": "query", @@ -61,9 +99,9 @@ "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.", "type": "string", - "location": "query", - "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" }, "quotaUser": { "location": "query", @@ -75,63 +113,13 @@ "type": "boolean", "default": "true", "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" } }, "schemas": { - "MobileFriendlyIssue": { - "properties": { - "rule": { - "enum": [ - "MOBILE_FRIENDLY_RULE_UNSPECIFIED", - "USES_INCOMPATIBLE_PLUGINS", - "CONFIGURE_VIEWPORT", - "FIXED_WIDTH_VIEWPORT", - "SIZE_CONTENT_TO_VIEWPORT", - "USE_LEGIBLE_FONT_SIZES", - "TAP_TARGETS_TOO_CLOSE" - ], - "description": "Rule violated.", - "type": "string", - "enumDescriptions": [ - "Unknown rule. Sorry, we don't have any description for the rule that was\nbroken.", - "Plugins incompatible with mobile devices are being used. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#flash_usage).", - "Viewsport is not specified using the meta viewport tag. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#viewport_not_configured).", - "Viewport defined to a fixed width. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#fixed-width_viewport).", - "Content not sized to viewport. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#content_not_sized_to_viewport).", - "Font size is too small for easy reading on a small screen. [Learn More]\n(https://support.google.com/webmasters/answer/6352293#small_font_size).", - "Touch elements are too close to each other. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#touch_elements_too_close)." - ] - } - }, - "id": "MobileFriendlyIssue", - "description": "Mobile-friendly issue.", - "type": "object" - }, "RunMobileFriendlyTestResponse": { "description": "Mobile-friendly test response, including mobile-friendly issues and resource\nissues.", "type": "object", "properties": { - "testStatus": { - "$ref": "TestStatus", - "description": "Final state of the test, can be either complete or an error." - }, - "resourceIssues": { - "description": "Information about embedded resources issues.", - "type": "array", - "items": { - "$ref": "ResourceIssue" - } - }, "mobileFriendliness": { "enum": [ "MOBILE_FRIENDLY_TEST_RESULT_UNSPECIFIED", @@ -156,38 +144,52 @@ "screenshot": { "$ref": "Image", "description": "Screenshot of the requested URL." + }, + "testStatus": { + "$ref": "TestStatus", + "description": "Final state of the test, can be either complete or an error." + }, + "resourceIssues": { + "description": "Information about embedded resources issues.", + "type": "array", + "items": { + "$ref": "ResourceIssue" + } } }, "id": "RunMobileFriendlyTestResponse" }, "ResourceIssue": { - "description": "Information about a resource with issue.", - "type": "object", "properties": { "blockedResource": { - "description": "Describes a blocked resource issue.", - "$ref": "BlockedResource" + "$ref": "BlockedResource", + "description": "Describes a blocked resource issue." } }, - "id": "ResourceIssue" + "id": "ResourceIssue", + "description": "Information about a resource with issue.", + "type": "object" }, "BlockedResource": { + "description": "Blocked resource.", + "type": "object", "properties": { "url": { - "type": "string", - "description": "URL of the blocked resource." + "description": "URL of the blocked resource.", + "type": "string" } }, - "id": "BlockedResource", - "description": "Blocked resource.", - "type": "object" + "id": "BlockedResource" }, "TestStatus": { "description": "Final state of the test, including error details if necessary.", "type": "object", "properties": { + "details": { + "description": "Error details if applicable.", + "type": "string" + }, "status": { - "description": "Status of the test.", "type": "string", "enumDescriptions": [ "Internal error when running this test. Please try running the test again.", @@ -200,11 +202,8 @@ "COMPLETE", "INTERNAL_ERROR", "PAGE_UNREACHABLE" - ] - }, - "details": { - "description": "Error details if applicable.", - "type": "string" + ], + "description": "Status of the test." } }, "id": "TestStatus" @@ -225,6 +224,8 @@ "type": "object" }, "Image": { + "description": "Describe image data.", + "type": "object", "properties": { "mimeType": { "description": "The mime-type of the image data.", @@ -236,57 +237,56 @@ "type": "string" } }, - "id": "Image", - "description": "Describe image data.", - "type": "object" + "id": "Image" + }, + "MobileFriendlyIssue": { + "description": "Mobile-friendly issue.", + "type": "object", + "properties": { + "rule": { + "enum": [ + "MOBILE_FRIENDLY_RULE_UNSPECIFIED", + "USES_INCOMPATIBLE_PLUGINS", + "CONFIGURE_VIEWPORT", + "FIXED_WIDTH_VIEWPORT", + "SIZE_CONTENT_TO_VIEWPORT", + "USE_LEGIBLE_FONT_SIZES", + "TAP_TARGETS_TOO_CLOSE" + ], + "description": "Rule violated.", + "type": "string", + "enumDescriptions": [ + "Unknown rule. Sorry, we don't have any description for the rule that was\nbroken.", + "Plugins incompatible with mobile devices are being used. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#flash_usage).", + "Viewsport is not specified using the meta viewport tag. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#viewport_not_configured).", + "Viewport defined to a fixed width. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#fixed-width_viewport).", + "Content not sized to viewport. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#content_not_sized_to_viewport).", + "Font size is too small for easy reading on a small screen. [Learn More]\n(https://support.google.com/webmasters/answer/6352293#small_font_size).", + "Touch elements are too close to each other. [Learn more]\n(https://support.google.com/webmasters/answer/6352293#touch_elements_too_close)." + ] + } + }, + "id": "MobileFriendlyIssue" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1", "baseUrl": "https://searchconsole.googleapis.com/", "canonicalName": "Search Console", "kind": "discovery#restDescription", - "description": "Provides tools for running validation tests against single URLs", "servicePath": "", + "description": "Provides tools for running validation tests against single URLs", "rootUrl": "https://searchconsole.googleapis.com/", "basePath": "", "ownerDomain": "google.com", "name": "searchconsole", "batchPath": "batch", - "id": "searchconsole:v1", + "revision": "20171016", "documentationLink": "https://developers.google.com/webmaster-tools/search-console-api/", - "revision": "20170927", - "title": "Google Search Console URL Testing Tools API", - "ownerName": "Google", - "discoveryVersion": "v1", - "version_module": true, - "resources": { - "urlTestingTools": { - "resources": { - "mobileFriendlyTest": { - "methods": { - "run": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "RunMobileFriendlyTestResponse" - }, - "parameters": {}, - "flatPath": "v1/urlTestingTools/mobileFriendlyTest:run", - "id": "searchconsole.urlTestingTools.mobileFriendlyTest.run", - "path": "v1/urlTestingTools/mobileFriendlyTest:run", - "request": { - "$ref": "RunMobileFriendlyTestRequest" - }, - "description": "Runs Mobile-Friendly Test for a given URL." - } - } - } - } - } - } + "id": "searchconsole:v1", + "title": "Google Search Console URL Testing Tools API" } diff --git a/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-api.json b/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-api.json index d2a171df5..2fd81ed53 100644 --- a/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-api.json +++ b/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-api.json @@ -1,8 +1,74 @@ { + "ownerDomain": "google.com", + "name": "servicecontrol", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Google Service Control API", + "ownerName": "Google", "resources": { "services": { "methods": { + "releaseQuota": { + "request": { + "$ref": "ReleaseQuotaRequest" + }, + "description": "Releases previously allocated quota done through AllocateQuota method.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Cloud IAM](https://cloud.google.com/iam).\n\n\n**NOTE:** The client **must** fail-open on server errors `INTERNAL`,\n`UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system\nreliability, the server may inject these errors to prohibit any hard\ndependency on the quota functionality.", + "httpMethod": "POST", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "ReleaseQuotaResponse" + }, + "parameters": { + "serviceName": { + "location": "path", + "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/servicecontrol" + ], + "flatPath": "v1/services/{serviceName}:releaseQuota", + "id": "servicecontrol.services.releaseQuota", + "path": "v1/services/{serviceName}:releaseQuota" + }, + "endReconciliation": { + "flatPath": "v1/services/{serviceName}:endReconciliation", + "id": "servicecontrol.services.endReconciliation", + "path": "v1/services/{serviceName}:endReconciliation", + "request": { + "$ref": "EndReconciliationRequest" + }, + "description": "Signals the quota controller that service ends the ongoing usage\nreconciliation.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", + "httpMethod": "POST", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "EndReconciliationResponse" + }, + "parameters": { + "serviceName": { + "location": "path", + "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/servicecontrol" + ] + }, "report": { + "request": { + "$ref": "ReportRequest" + }, + "description": "Reports operation results to Google Service Control, such as logs and\nmetrics. It should be called after an operation is completed.\n\nIf feasible, the client should aggregate reporting data for up to 5\nseconds to reduce API traffic. Limiting aggregation to 5 seconds is to\nreduce data loss during client crashes. Clients should carefully choose\nthe aggregation time window to avoid data loss risk more than 0.01%\nfor business and compliance reasons.\n\nNOTE: the ReportRequest has the size limit of 1MB.\n\nThis method requires the `servicemanagement.services.report` permission\non the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", "response": { "$ref": "ReportResponse" }, @@ -14,8 +80,8 @@ "serviceName": { "location": "path", "description": "The service name as specified in its service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee\n[google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)\nfor the definition of a service name.", - "type": "string", - "required": true + "required": true, + "type": "string" } }, "scopes": [ @@ -23,14 +89,14 @@ "https://www.googleapis.com/auth/servicecontrol" ], "flatPath": "v1/services/{serviceName}:report", - "id": "servicecontrol.services.report", "path": "v1/services/{serviceName}:report", - "description": "Reports operation results to Google Service Control, such as logs and\nmetrics. It should be called after an operation is completed.\n\nIf feasible, the client should aggregate reporting data for up to 5\nseconds to reduce API traffic. Limiting aggregation to 5 seconds is to\nreduce data loss during client crashes. Clients should carefully choose\nthe aggregation time window to avoid data loss risk more than 0.01%\nfor business and compliance reasons.\n\nNOTE: the ReportRequest has the size limit of 1MB.\n\nThis method requires the `servicemanagement.services.report` permission\non the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", - "request": { - "$ref": "ReportRequest" - } + "id": "servicecontrol.services.report" }, "allocateQuota": { + "request": { + "$ref": "AllocateQuotaRequest" + }, + "description": "Attempts to allocate quota for the specified consumer. It should be called\nbefore the operation is executed.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Cloud IAM](https://cloud.google.com/iam).\n\n**NOTE:** The client **must** fail-open on server errors `INTERNAL`,\n`UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system\nreliability, the server may inject these errors to prohibit any hard\ndependency on the quota functionality.", "response": { "$ref": "AllocateQuotaResponse" }, @@ -38,44 +104,36 @@ "serviceName" ], "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/servicecontrol" - ], "parameters": { "serviceName": { "location": "path", "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", - "type": "string", - "required": true + "required": true, + "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/servicecontrol" + ], "flatPath": "v1/services/{serviceName}:allocateQuota", - "id": "servicecontrol.services.allocateQuota", "path": "v1/services/{serviceName}:allocateQuota", - "request": { - "$ref": "AllocateQuotaRequest" - }, - "description": "Attempts to allocate quota for the specified consumer. It should be called\nbefore the operation is executed.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Cloud IAM](https://cloud.google.com/iam).\n\n**NOTE:** The client **must** fail-open on server errors `INTERNAL`,\n`UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system\nreliability, the server may inject these errors to prohibit any hard\ndependency on the quota functionality." + "id": "servicecontrol.services.allocateQuota" }, "startReconciliation": { - "description": "Unlike rate quota, allocation quota does not get refilled periodically.\nSo, it is possible that the quota usage as seen by the service differs from\nwhat the One Platform considers the usage is. This is expected to happen\nonly rarely, but over time this can accumulate. Services can invoke\nStartReconciliation and EndReconciliation to correct this usage drift, as\ndescribed below:\n1. Service sends StartReconciliation with a timestamp in future for each\n metric that needs to be reconciled. The timestamp being in future allows\n to account for in-flight AllocateQuota and ReleaseQuota requests for the\n same metric.\n2. One Platform records this timestamp and starts tracking subsequent\n AllocateQuota and ReleaseQuota requests until EndReconciliation is\n called.\n3. At or after the time specified in the StartReconciliation, service\n sends EndReconciliation with the usage that needs to be reconciled to.\n4. One Platform adjusts its own record of usage for that metric to the\n value specified in EndReconciliation by taking in to account any\n allocation or release between StartReconciliation and EndReconciliation.\n\nSignals the quota controller that the service wants to perform a usage\nreconciliation as specified in the request.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", - "request": { - "$ref": "StartReconciliationRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "serviceName" - ], "response": { "$ref": "StartReconciliationResponse" }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "POST", "parameters": { "serviceName": { + "location": "path", "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", - "type": "string", "required": true, - "location": "path" + "type": "string" } }, "scopes": [ @@ -84,9 +142,17 @@ ], "flatPath": "v1/services/{serviceName}:startReconciliation", "path": "v1/services/{serviceName}:startReconciliation", - "id": "servicecontrol.services.startReconciliation" + "id": "servicecontrol.services.startReconciliation", + "request": { + "$ref": "StartReconciliationRequest" + }, + "description": "Unlike rate quota, allocation quota does not get refilled periodically.\nSo, it is possible that the quota usage as seen by the service differs from\nwhat the One Platform considers the usage is. This is expected to happen\nonly rarely, but over time this can accumulate. Services can invoke\nStartReconciliation and EndReconciliation to correct this usage drift, as\ndescribed below:\n1. Service sends StartReconciliation with a timestamp in future for each\n metric that needs to be reconciled. The timestamp being in future allows\n to account for in-flight AllocateQuota and ReleaseQuota requests for the\n same metric.\n2. One Platform records this timestamp and starts tracking subsequent\n AllocateQuota and ReleaseQuota requests until EndReconciliation is\n called.\n3. At or after the time specified in the StartReconciliation, service\n sends EndReconciliation with the usage that needs to be reconciled to.\n4. One Platform adjusts its own record of usage for that metric to the\n value specified in EndReconciliation by taking in to account any\n allocation or release between StartReconciliation and EndReconciliation.\n\nSignals the quota controller that the service wants to perform a usage\nreconciliation as specified in the request.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam)." }, "check": { + "description": "Checks an operation with Google Service Control to decide whether\nthe given operation should proceed. It should be called before the\noperation is executed.\n\nIf feasible, the client should cache the check results and reuse them for\n60 seconds. In case of server errors, the client can rely on the cached\nresults for longer time.\n\nNOTE: the CheckRequest has the size limit of 64KB.\n\nThis method requires the `servicemanagement.services.check` permission\non the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", + "request": { + "$ref": "CheckRequest" + }, "response": { "$ref": "CheckResponse" }, @@ -102,153 +168,33 @@ "serviceName": { "location": "path", "description": "The service name as specified in its service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee\n[google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)\nfor the definition of a service name.", - "type": "string", - "required": true + "required": true, + "type": "string" } }, "flatPath": "v1/services/{serviceName}:check", - "id": "servicecontrol.services.check", "path": "v1/services/{serviceName}:check", - "request": { - "$ref": "CheckRequest" - }, - "description": "Checks an operation with Google Service Control to decide whether\nthe given operation should proceed. It should be called before the\noperation is executed.\n\nIf feasible, the client should cache the check results and reuse them for\n60 seconds. In case of server errors, the client can rely on the cached\nresults for longer time.\n\nNOTE: the CheckRequest has the size limit of 64KB.\n\nThis method requires the `servicemanagement.services.check` permission\non the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam)." - }, - "releaseQuota": { - "httpMethod": "POST", - "parameterOrder": [ - "serviceName" - ], - "response": { - "$ref": "ReleaseQuotaResponse" - }, - "parameters": { - "serviceName": { - "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/servicecontrol" - ], - "flatPath": "v1/services/{serviceName}:releaseQuota", - "path": "v1/services/{serviceName}:releaseQuota", - "id": "servicecontrol.services.releaseQuota", - "description": "Releases previously allocated quota done through AllocateQuota method.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Cloud IAM](https://cloud.google.com/iam).\n\n\n**NOTE:** The client **must** fail-open on server errors `INTERNAL`,\n`UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system\nreliability, the server may inject these errors to prohibit any hard\ndependency on the quota functionality.", - "request": { - "$ref": "ReleaseQuotaRequest" - } - }, - "endReconciliation": { - "flatPath": "v1/services/{serviceName}:endReconciliation", - "id": "servicecontrol.services.endReconciliation", - "path": "v1/services/{serviceName}:endReconciliation", - "description": "Signals the quota controller that service ends the ongoing usage\nreconciliation.\n\nThis method requires the `servicemanagement.services.quota`\npermission on the specified service. For more information, see\n[Google Cloud IAM](https://cloud.google.com/iam).", - "request": { - "$ref": "EndReconciliationRequest" - }, - "response": { - "$ref": "EndReconciliationResponse" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "POST", - "parameters": { - "serviceName": { - "location": "path", - "description": "Name of the service as specified in the service configuration. For example,\n`\"pubsub.googleapis.com\"`.\n\nSee google.api.Service for the definition of a service name.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/servicecontrol" - ] + "id": "servicecontrol.services.check" } } } }, "parameters": { - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], "type": "string", "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" + "location": "query", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ] }, "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.", @@ -259,107 +205,80 @@ "description": "OAuth access token.", "type": "string", "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format." } }, "version": "v1", "baseUrl": "https://servicecontrol.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Google Service Control provides control plane functionality to managed services, such as logging, monitoring, and status checks.", "servicePath": "", + "description": "Google Service Control provides control plane functionality to managed services, such as logging, monitoring, and status checks.", + "kind": "discovery#restDescription", "basePath": "", - "id": "servicecontrol:v1", "documentationLink": "https://cloud.google.com/service-control/", - "revision": "20170925", + "id": "servicecontrol:v1", + "revision": "20171019", "discoveryVersion": "v1", "version_module": true, "schemas": { - "CheckRequest": { - "properties": { - "skipActivationCheck": { - "description": "Indicates if service activation check should be skipped for this request.\nDefault behavior is to perform the check and apply relevant quota.", - "type": "boolean" - }, - "requestProjectSettings": { - "description": "Requests the project settings to be returned as part of the check response.", - "type": "boolean" - }, - "operation": { - "description": "The operation to be checked.", - "$ref": "Operation" - }, - "serviceConfigId": { - "description": "Specifies which version of service configuration should be used to process\nthe request.\n\nIf unspecified or no matching version can be found, the\nlatest one will be used.", - "type": "string" - } - }, - "id": "CheckRequest", - "description": "Request message for the Check method.", - "type": "object" - }, - "QuotaOperation": { - "description": "Represents information regarding a quota operation.", - "type": "object", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels describing the operation.", - "type": "object" - }, - "consumerId": { - "description": "Identity of the consumer for whom this quota operation is being performed.\n\nThis can be in one of the following formats:\n project:\u003cproject_id\u003e,\n project_number:\u003cproject_number\u003e,\n api_key:\u003capi_key\u003e.", - "type": "string" - }, - "operationId": { - "description": "Identity of the operation. This is expected to be unique within the scope\nof the service that generated the operation, and guarantees idempotency in\ncase of retries.\n\nUUID version 4 is recommended, though not required. In scenarios where an\noperation is computed from existing information and an idempotent id is\ndesirable for deduplication purpose, UUID version 5 is recommended. See\nRFC 4122 for details.", - "type": "string" - }, - "quotaMode": { - "enumDescriptions": [ - "Guard against implicit default. Must not be used.", - "For AllocateQuota request, allocates quota for the amount specified in\nthe service configuration or specified using the quota metrics. If the\namount is higher than the available quota, allocation error will be\nreturned and no quota will be allocated.\nFor ReleaseQuota request, this mode is supported only for precise quota\nlimits. In this case, this operation releases quota for the amount\nspecified in the service configuration or specified using the quota\nmetrics. If the release can make used quota negative, release error\nwill be returned and no quota will be released.", - "For AllocateQuota request, this mode is supported only for imprecise\nquota limits. In this case, the operation allocates quota for the amount\nspecified in the service configuration or specified using the quota\nmetrics. If the amount is higher than the available quota, request does\nnot fail but all available quota will be allocated.\nFor ReleaseQuota request, this mode is supported for both precise quota\nlimits and imprecise quota limits. In this case, this operation releases\nquota for the amount specified in the service configuration or specified\nusing the quota metrics. If the release can make used quota\nnegative, request does not fail but only the used quota will be\nreleased. After the ReleaseQuota request completes, the used quota\nwill be 0, and never goes to negative.", - "For AllocateQuota request, only checks if there is enough quota\navailable and does not change the available quota. No lock is placed on\nthe available quota either. Not supported for ReleaseQuota request." - ], - "enum": [ - "UNSPECIFIED", - "NORMAL", - "BEST_EFFORT", - "CHECK_ONLY" - ], - "description": "Quota mode for this operation.", - "type": "string" - }, - "methodName": { - "description": "Fully qualified name of the API method for which this quota operation is\nrequested. This name is used for matching quota rules or metric rules and\nbilling status rules defined in service configuration. This field is not\nrequired if the quota operation is performed on non-API resources.\n\nExample of an RPC method name:\n google.example.library.v1.LibraryService.CreateShelf", - "type": "string" - }, - "quotaMetrics": { - "description": "Represents information about this operation. Each MetricValueSet\ncorresponds to a metric defined in the service configuration.\nThe data type used in the MetricValueSet must agree with\nthe data type specified in the metric definition.\n\nWithin a single operation, it is not allowed to have more than one\nMetricValue instances that have the same metric names and identical\nlabel value combinations. If a request has such duplicated MetricValue\ninstances, the entire request is rejected with\nan invalid argument error.", - "items": { - "$ref": "MetricValueSet" - }, - "type": "array" - } - }, - "id": "QuotaOperation" - }, - "EndReconciliationRequest": { - "description": "Request message for QuotaController.EndReconciliation.", - "type": "object", - "properties": { - "reconciliationOperation": { - "$ref": "QuotaOperation", - "description": "Operation that describes the quota reconciliation." - }, - "serviceConfigId": { - "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", - "type": "string" - } - }, - "id": "EndReconciliationRequest" - }, "ReportInfo": { "description": "Contains additional info about the report operation.", "type": "object", @@ -375,11 +294,38 @@ }, "id": "ReportInfo" }, + "ReportResponse": { + "properties": { + "reportInfos": { + "type": "array", + "items": { + "$ref": "ReportInfo" + }, + "description": "Quota usage for each quota release `Operation` request.\n\nFully or partially failed quota release request may or may not be present\nin `report_quota_info`. For example, a failed quota release request will\nhave the current quota usage info when precise quota library returns the\ninfo. A deadline exceeded quota request will not have quota usage info.\n\nIf there is no quota release request, report_quota_info will be empty.\n" + }, + "serviceConfigId": { + "description": "The actual config id used to process the request.", + "type": "string" + }, + "reportErrors": { + "description": "Partial failures, one for each `Operation` in the request that failed\nprocessing. There are three possible combinations of the RPC status:\n\n1. The combination of a successful RPC status and an empty `report_errors`\n list indicates a complete success where all `Operations` in the\n request are processed successfully.\n2. The combination of a successful RPC status and a non-empty\n `report_errors` list indicates a partial success where some\n `Operations` in the request succeeded. Each\n `Operation` that failed processing has a corresponding item\n in this list.\n3. A failed RPC status indicates a general non-deterministic failure.\n When this happens, it's impossible to know which of the\n 'Operations' in the request succeeded or failed.", + "type": "array", + "items": { + "$ref": "ReportError" + } + } + }, + "id": "ReportResponse", + "description": "Response message for the Report method.", + "type": "object" + }, "Operation": { + "description": "Represents information regarding an operation.", + "type": "object", "properties": { "quotaProperties": { - "description": "Represents the properties needed for quota check. Applicable only if this\noperation is for a quota check request. If this is not specified, no quota\ncheck will be performed.", - "$ref": "QuotaProperties" + "$ref": "QuotaProperties", + "description": "Represents the properties needed for quota check. Applicable only if this\noperation is for a quota check request. If this is not specified, no quota\ncheck will be performed." }, "consumerId": { "description": "Identity of the consumer who is using the service.\nThis field should be filled in for the operations initiated by a\nconsumer, but not for service-initiated operations that are\nnot related to a specific consumer.\n\nThis can be in one of the following formats:\n project:\u003cproject_id\u003e,\n project_number:\u003cproject_number\u003e,\n api_key:\u003capi_key\u003e.", @@ -389,21 +335,23 @@ "description": "Identity of the operation. This must be unique within the scope of the\nservice that generated the operation. If the service calls\nCheck() and Report() on the same operation, the two calls should carry\nthe same id.\n\nUUID version 4 is recommended, though not required.\nIn scenarios where an operation is computed from existing information\nand an idempotent id is desirable for deduplication purpose, UUID version 5\nis recommended. See RFC 4122 for details.", "type": "string" }, + "endTime": { + "description": "End time of the operation.\nRequired when the operation is used in ServiceController.Report,\nbut optional when the operation is used in ServiceController.Check.", + "format": "google-datetime", + "type": "string" + }, "operationName": { "description": "Fully qualified name of the operation. Reserved for future use.", "type": "string" }, - "endTime": { - "format": "google-datetime", - "description": "End time of the operation.\nRequired when the operation is used in ServiceController.Report,\nbut optional when the operation is used in ServiceController.Check.", - "type": "string" - }, "startTime": { - "format": "google-datetime", "description": "Required. Start time of the operation.", + "format": "google-datetime", "type": "string" }, "importance": { + "description": "DO NOT USE. This is an experimental field.", + "type": "string", "enumDescriptions": [ "The API implementation may cache and aggregate the data.\nThe data may be lost when rare and unexpected system failures occur.", "The API implementation doesn't cache and aggregate the data.\nIf the method returns successfully, it's guaranteed that the data has\nbeen persisted in durable storage.", @@ -413,169 +361,148 @@ "LOW", "HIGH", "DEBUG" - ], - "description": "DO NOT USE. This is an experimental field.", - "type": "string" + ] }, "resourceContainer": { "description": "DO NOT USE. This field is deprecated, use \"resources\" field instead.\nThe resource name of the parent of a resource in the resource hierarchy.\n\nThis can be in one of the following formats:\n - “projects/\u003cproject-id or project-number\u003e”\n - “folders/\u003cfolder-id\u003e”\n - “organizations/\u003corganization-id\u003e”", "type": "string" }, "labels": { + "type": "object", "additionalProperties": { "type": "string" }, - "description": "Labels describing the operation. Only the following labels are allowed:\n\n- Labels describing monitored resources as defined in\n the service configuration.\n- Default labels of metric values. When specified, labels defined in the\n metric value override these default.\n- The following labels defined by Google Cloud Platform:\n - `cloud.googleapis.com/location` describing the location where the\n operation happened,\n - `servicecontrol.googleapis.com/user_agent` describing the user agent\n of the API request,\n - `servicecontrol.googleapis.com/service_agent` describing the service\n used to handle the API request (e.g. ESP),\n - `servicecontrol.googleapis.com/platform` describing the platform\n where the API is served (e.g. GAE, GCE, GKE).", - "type": "object" + "description": "Labels describing the operation. Only the following labels are allowed:\n\n- Labels describing monitored resources as defined in\n the service configuration.\n- Default labels of metric values. When specified, labels defined in the\n metric value override these default.\n- The following labels defined by Google Cloud Platform:\n - `cloud.googleapis.com/location` describing the location where the\n operation happened,\n - `servicecontrol.googleapis.com/user_agent` describing the user agent\n of the API request,\n - `servicecontrol.googleapis.com/service_agent` describing the service\n used to handle the API request (e.g. ESP),\n - `servicecontrol.googleapis.com/platform` describing the platform\n where the API is served (e.g. GAE, GCE, GKE)." }, "resources": { "description": "The resources that are involved in the operation.", + "type": "array", "items": { "$ref": "ResourceInfo" - }, - "type": "array" + } }, "logEntries": { "description": "Represents information to be logged.", + "type": "array", "items": { "$ref": "LogEntry" - }, - "type": "array" + } }, "userLabels": { + "type": "object", "additionalProperties": { "type": "string" }, - "description": "User defined labels for the resource that this operation is associated\nwith. Only a combination of 1000 user labels per consumer project are\nallowed.", - "type": "object" + "description": "User defined labels for the resource that this operation is associated\nwith. Only a combination of 1000 user labels per consumer project are\nallowed." }, "metricValueSets": { "description": "Represents information about this operation. Each MetricValueSet\ncorresponds to a metric defined in the service configuration.\nThe data type used in the MetricValueSet must agree with\nthe data type specified in the metric definition.\n\nWithin a single operation, it is not allowed to have more than one\nMetricValue instances that have the same metric names and identical\nlabel value combinations. If a request has such duplicated MetricValue\ninstances, the entire request is rejected with\nan invalid argument error.", + "type": "array", "items": { "$ref": "MetricValueSet" - }, - "type": "array" + } } }, - "id": "Operation", - "description": "Represents information regarding an operation.", - "type": "object" - }, - "ReportResponse": { - "description": "Response message for the Report method.", - "type": "object", - "properties": { - "reportErrors": { - "description": "Partial failures, one for each `Operation` in the request that failed\nprocessing. There are three possible combinations of the RPC status:\n\n1. The combination of a successful RPC status and an empty `report_errors`\n list indicates a complete success where all `Operations` in the\n request are processed successfully.\n2. The combination of a successful RPC status and a non-empty\n `report_errors` list indicates a partial success where some\n `Operations` in the request succeeded. Each\n `Operation` that failed processing has a corresponding item\n in this list.\n3. A failed RPC status indicates a general non-deterministic failure.\n When this happens, it's impossible to know which of the\n 'Operations' in the request succeeded or failed.", - "items": { - "$ref": "ReportError" - }, - "type": "array" - }, - "reportInfos": { - "description": "Quota usage for each quota release `Operation` request.\n\nFully or partially failed quota release request may or may not be present\nin `report_quota_info`. For example, a failed quota release request will\nhave the current quota usage info when precise quota library returns the\ninfo. A deadline exceeded quota request will not have quota usage info.\n\nIf there is no quota release request, report_quota_info will be empty.\n", - "items": { - "$ref": "ReportInfo" - }, - "type": "array" - }, - "serviceConfigId": { - "description": "The actual config id used to process the request.", - "type": "string" - } - }, - "id": "ReportResponse" + "id": "Operation" }, "CheckResponse": { + "id": "CheckResponse", "description": "Response message for the Check method.", "type": "object", "properties": { - "checkInfo": { - "description": "Feedback data returned from the server during processing a Check request.", - "$ref": "CheckInfo" - }, - "checkErrors": { - "description": "Indicate the decision of the check.\n\nIf no check errors are present, the service should process the operation.\nOtherwise the service should use the list of errors to determine the\nappropriate action.", - "items": { - "$ref": "CheckError" - }, - "type": "array" - }, "operationId": { "description": "The same operation_id value used in the CheckRequest.\nUsed for logging and diagnostics purposes.", "type": "string" }, + "checkErrors": { + "description": "Indicate the decision of the check.\n\nIf no check errors are present, the service should process the operation.\nOtherwise the service should use the list of errors to determine the\nappropriate action.", + "type": "array", + "items": { + "$ref": "CheckError" + } + }, + "checkInfo": { + "$ref": "CheckInfo", + "description": "Feedback data returned from the server during processing a Check request." + }, + "quotaInfo": { + "$ref": "QuotaInfo", + "description": "Quota information for the check request associated with this response.\n" + }, "serviceConfigId": { "description": "The actual config id used to process the request.", "type": "string" + } + } + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" }, - "quotaInfo": { - "description": "Quota information for the check request associated with this response.\n", - "$ref": "QuotaInfo" + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "code": { + "type": "integer", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32" } }, - "id": "CheckResponse" + "id": "Status" + }, + "ReportRequest": { + "description": "Request message for the Report method.", + "type": "object", + "properties": { + "operations": { + "description": "Operations to be reported.\n\nTypically the service should report one operation per request.\nPutting multiple operations into a single request is allowed, but should\nbe used only when multiple operations are natually available at the time\nof the report.\n\nIf multiple operations are in a single request, the total request size\nshould be no larger than 1MB. See ReportResponse.report_errors for\npartial failure behavior.", + "type": "array", + "items": { + "$ref": "Operation" + } + }, + "serviceConfigId": { + "type": "string", + "description": "Specifies which version of service config should be used to process the\nrequest.\n\nIf unspecified or no matching version can be found, the\nlatest one will be used." + } + }, + "id": "ReportRequest" }, "AllocateInfo": { "type": "object", "properties": { "unusedArguments": { "description": "A list of label keys that were unused by the server in processing the\nrequest. Thus, for similar requests repeated in a certain future time\nwindow, the caller can choose to ignore these labels in the requests\nto achieve better client-side cache hits and quota aggregation.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, "id": "AllocateInfo" }, - "ReportRequest": { - "description": "Request message for the Report method.", - "type": "object", - "properties": { - "serviceConfigId": { - "description": "Specifies which version of service config should be used to process the\nrequest.\n\nIf unspecified or no matching version can be found, the\nlatest one will be used.", - "type": "string" - }, - "operations": { - "description": "Operations to be reported.\n\nTypically the service should report one operation per request.\nPutting multiple operations into a single request is allowed, but should\nbe used only when multiple operations are natually available at the time\nof the report.\n\nIf multiple operations are in a single request, the total request size\nshould be no larger than 1MB. See ReportResponse.report_errors for\npartial failure behavior.", - "items": { - "$ref": "Operation" - }, - "type": "array" - } - }, - "id": "ReportRequest" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status" - }, "AuditLog": { + "type": "object", "properties": { + "authorizationInfo": { + "description": "Authorization information. If there are multiple\nresources or permissions involved, then there is\none AuthorizationInfo element for each {resource, permission} tuple.", + "type": "array", + "items": { + "$ref": "AuthorizationInfo" + } + }, "request": { "additionalProperties": { "description": "Properties of the object.", @@ -588,14 +515,14 @@ "description": "Metadata about the operation.", "$ref": "RequestMetadata" }, - "authenticationInfo": { - "$ref": "AuthenticationInfo", - "description": "Authentication information." - }, "status": { "description": "The status of the overall operation.", "$ref": "Status" }, + "authenticationInfo": { + "description": "Authentication information.", + "$ref": "AuthenticationInfo" + }, "serviceName": { "description": "The name of the API service performing the operation. For example,\n`\"datastore.googleapis.com\"`.", "type": "string" @@ -610,14 +537,11 @@ }, "metadata": { "description": "Other service-specific data about the request, response, and other\ninformation associated with the current audited event.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - }, - "type": "array" + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object." + } }, "methodName": { "description": "The name of the service method or operation.\nFor API calls, this should be the name of the API method.\nFor example,\n\n \"google.datastore.v1.Datastore.RunQuery\"\n \"google.logging.v1.LoggingService.DeleteLog\"", @@ -636,43 +560,25 @@ "type": "object" }, "numResponseItems": { - "format": "int64", "description": "The number of items returned from a List or Query API method,\nif applicable.", + "format": "int64", "type": "string" - }, - "authorizationInfo": { - "description": "Authorization information. If there are multiple\nresources or permissions involved, then there is\none AuthorizationInfo element for each {resource, permission} tuple.", - "items": { - "$ref": "AuthorizationInfo" - }, - "type": "array" } }, "id": "AuditLog", - "description": "Common audit log format for Google Cloud Platform API operations.\n\n", - "type": "object" + "description": "Common audit log format for Google Cloud Platform API operations.\n\n" }, "LogEntry": { + "type": "object", "properties": { "labels": { - "description": "A set of user-defined (key, value) data that provides additional\ninformation about the log entry.", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "A set of user-defined (key, value) data that provides additional\ninformation about the log entry.", + "type": "object" }, "severity": { - "enumDescriptions": [ - "(0) The log entry has no assigned severity level.", - "(100) Debug or trace information.", - "(200) Routine information, such as ongoing status or performance.", - "(300) Normal but significant events, such as start up, shut down, or\na configuration change.", - "(400) Warning events might cause problems.", - "(500) Error events are likely to cause problems.", - "(600) Critical events cause more severe problems or outages.", - "(700) A person must take an action immediately.", - "(800) One or more systems are unusable." - ], "enum": [ "DEFAULT", "DEBUG", @@ -685,23 +591,34 @@ "EMERGENCY" ], "description": "The severity of the log entry. The default value is\n`LogSeverity.DEFAULT`.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "(0) The log entry has no assigned severity level.", + "(100) Debug or trace information.", + "(200) Routine information, such as ongoing status or performance.", + "(300) Normal but significant events, such as start up, shut down, or\na configuration change.", + "(400) Warning events might cause problems.", + "(500) Error events are likely to cause problems.", + "(600) Critical events cause more severe problems or outages.", + "(700) A person must take an action immediately.", + "(800) One or more systems are unusable." + ] }, "insertId": { - "description": "A unique ID for the log entry used for deduplication. If omitted,\nthe implementation will generate one based on operation_id.", - "type": "string" + "type": "string", + "description": "A unique ID for the log entry used for deduplication. If omitted,\nthe implementation will generate one based on operation_id." }, "name": { "description": "Required. The log to which this log entry belongs. Examples: `\"syslog\"`,\n`\"book_log\"`.", "type": "string" }, "structPayload": { + "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" }, - "description": "The log entry payload, represented as a structure that\nis expressed as a JSON object.", - "type": "object" + "description": "The log entry payload, represented as a structure that\nis expressed as a JSON object." }, "textPayload": { "description": "The log entry payload, represented as a Unicode string (UTF-8).", @@ -716,49 +633,39 @@ "type": "object" }, "timestamp": { - "format": "google-datetime", "description": "The time the event described by the log entry occurred. If\nomitted, defaults to operation start time.", + "format": "google-datetime", "type": "string" } }, "id": "LogEntry", - "description": "An individual log entry.", - "type": "object" + "description": "An individual log entry." }, "MetricValue": { "description": "Represents a single metric value.", "type": "object", "properties": { - "int64Value": { - "format": "int64", - "description": "A signed 64-bit integer value.", - "type": "string" - }, "distributionValue": { - "description": "A distribution value.", - "$ref": "Distribution" + "$ref": "Distribution", + "description": "A distribution value." }, "boolValue": { "description": "A boolean value.", "type": "boolean" }, "endTime": { - "format": "google-datetime", "description": "The end of the time period over which this metric value's measurement\napplies.", + "format": "google-datetime", "type": "string" }, "startTime": { - "format": "google-datetime", "description": "The start of the time period over which this metric value's measurement\napplies. The time period has different semantics for different metric\ntypes (cumulative, delta, and gauge). See the metric definition\ndocumentation in the service configuration for details.", + "format": "google-datetime", "type": "string" }, "moneyValue": { - "description": "A money value.", - "$ref": "Money" - }, - "stringValue": { - "description": "A text string value.", - "type": "string" + "$ref": "Money", + "description": "A money value." }, "labels": { "additionalProperties": { @@ -767,157 +674,168 @@ "description": "The labels describing the metric value.\nSee comments on google.api.servicecontrol.v1.Operation.labels for\nthe overriding relationship.", "type": "object" }, + "stringValue": { + "description": "A text string value.", + "type": "string" + }, "doubleValue": { - "format": "double", "description": "A double precision floating point value.", + "format": "double", "type": "number" + }, + "int64Value": { + "description": "A signed 64-bit integer value.", + "format": "int64", + "type": "string" } }, "id": "MetricValue" }, - "EndReconciliationResponse": { - "properties": { - "reconciliationErrors": { - "description": "Indicates the decision of the reconciliation end.", - "items": { - "$ref": "QuotaError" - }, - "type": "array" - }, - "operationId": { - "description": "The same operation_id value used in the EndReconciliationRequest. Used for\nlogging and diagnostics purposes.", - "type": "string" - }, - "serviceConfigId": { - "description": "ID of the actual config used to process the request.", - "type": "string" - }, - "quotaMetrics": { - "description": "Metric values as tracked by One Platform before the adjustment was made.\nThe following metrics will be included:\n\n1. Per quota metric total usage will be specified using the following gauge\nmetric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n2. Value for each quota limit associated with the metrics will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/quota/limit\"\n\n3. Delta value of the usage after the reconciliation for limits associated\nwith the metrics will be specified using the following metric:\n \"serviceruntime.googleapis.com/allocation/reconciliation_delta\"\nThe delta value is defined as:\n new_usage_from_client - existing_value_in_spanner.\nThis metric is not defined in serviceruntime.yaml or in Cloud Monarch.\nThis metric is meant for callers' use only. Since this metric is not\ndefined in the monitoring backend, reporting on this metric will result in\nan error.", - "items": { - "$ref": "MetricValueSet" - }, - "type": "array" - } - }, - "id": "EndReconciliationResponse", - "description": "Response message for QuotaController.EndReconciliation.", - "type": "object" - }, "Money": { "description": "Represents an amount of money with its currency type.", "type": "object", "properties": { + "nanos": { + "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", + "format": "int32", + "type": "integer" + }, "units": { - "format": "int64", "description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", + "format": "int64", "type": "string" }, "currencyCode": { "description": "The 3-letter currency code defined in ISO 4217.", "type": "string" - }, - "nanos": { - "format": "int32", - "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", - "type": "integer" } }, "id": "Money" }, - "Distribution": { - "description": "Distribution represents a frequency distribution of double-valued sample\npoints. It contains the size of the population of sample points plus\nadditional optional information:\n\n - the arithmetic mean of the samples\n - the minimum and maximum of the samples\n - the sum-squared-deviation of the samples, used to compute variance\n - a histogram of the values of the sample points", + "EndReconciliationResponse": { "type": "object", "properties": { - "count": { - "format": "int64", - "description": "The total number of samples in the distribution. Must be \u003e= 0.", + "quotaMetrics": { + "description": "Metric values as tracked by One Platform before the adjustment was made.\nThe following metrics will be included:\n\n1. Per quota metric total usage will be specified using the following gauge\nmetric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n2. Value for each quota limit associated with the metrics will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/quota/limit\"\n\n3. Delta value of the usage after the reconciliation for limits associated\nwith the metrics will be specified using the following metric:\n \"serviceruntime.googleapis.com/allocation/reconciliation_delta\"\nThe delta value is defined as:\n new_usage_from_client - existing_value_in_spanner.\nThis metric is not defined in serviceruntime.yaml or in Cloud Monarch.\nThis metric is meant for callers' use only. Since this metric is not\ndefined in the monitoring backend, reporting on this metric will result in\nan error.", + "type": "array", + "items": { + "$ref": "MetricValueSet" + } + }, + "operationId": { + "description": "The same operation_id value used in the EndReconciliationRequest. Used for\nlogging and diagnostics purposes.", "type": "string" }, - "mean": { - "format": "double", - "description": "The arithmetic mean of the samples in the distribution. If `count` is\nzero then this field must be zero.", - "type": "number" - }, - "bucketCounts": { - "description": "The number of samples in each histogram bucket. `bucket_counts` are\noptional. If present, they must sum to the `count` value.\n\nThe buckets are defined below in `bucket_option`. There are N buckets.\n`bucket_counts[0]` is the number of samples in the underflow bucket.\n`bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples\nin each of the finite buckets. And `bucket_counts[N] is the number\nof samples in the overflow bucket. See the comments of `bucket_option`\nbelow for more details.\n\nAny suffix of trailing zeros may be omitted.", + "reconciliationErrors": { + "type": "array", "items": { - "format": "int64", - "type": "string" + "$ref": "QuotaError" }, - "type": "array" - }, - "explicitBuckets": { - "$ref": "ExplicitBuckets", - "description": "Buckets with arbitrary user-provided width." + "description": "Indicates the decision of the reconciliation end." }, + "serviceConfigId": { + "type": "string", + "description": "ID of the actual config used to process the request." + } + }, + "id": "EndReconciliationResponse", + "description": "Response message for QuotaController.EndReconciliation." + }, + "Distribution": { + "type": "object", + "properties": { "maximum": { - "format": "double", "description": "The maximum of the population of values. Ignored if `count` is zero.", + "format": "double", "type": "number" }, "sumOfSquaredDeviation": { - "format": "double", + "type": "number", "description": "The sum of squared deviations from the mean:\n Sum[i=1..count]((x_i - mean)^2)\nwhere each x_i is a sample values. If `count` is zero then this field\nmust be zero, otherwise validation of the request fails.", - "type": "number" + "format": "double" }, "exponentialBuckets": { "description": "Buckets with exponentially growing width.", "$ref": "ExponentialBuckets" }, - "minimum": { - "format": "double", - "description": "The minimum of the population of values. Ignored if `count` is zero.", - "type": "number" - }, "linearBuckets": { "description": "Buckets with constant width.", "$ref": "LinearBuckets" + }, + "minimum": { + "description": "The minimum of the population of values. Ignored if `count` is zero.", + "format": "double", + "type": "number" + }, + "mean": { + "description": "The arithmetic mean of the samples in the distribution. If `count` is\nzero then this field must be zero.", + "format": "double", + "type": "number" + }, + "count": { + "description": "The total number of samples in the distribution. Must be \u003e= 0.", + "format": "int64", + "type": "string" + }, + "bucketCounts": { + "description": "The number of samples in each histogram bucket. `bucket_counts` are\noptional. If present, they must sum to the `count` value.\n\nThe buckets are defined below in `bucket_option`. There are N buckets.\n`bucket_counts[0]` is the number of samples in the underflow bucket.\n`bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples\nin each of the finite buckets. And `bucket_counts[N] is the number\nof samples in the overflow bucket. See the comments of `bucket_option`\nbelow for more details.\n\nAny suffix of trailing zeros may be omitted.", + "type": "array", + "items": { + "format": "int64", + "type": "string" + } + }, + "explicitBuckets": { + "$ref": "ExplicitBuckets", + "description": "Buckets with arbitrary user-provided width." } }, - "id": "Distribution" + "id": "Distribution", + "description": "Distribution represents a frequency distribution of double-valued sample\npoints. It contains the size of the population of sample points plus\nadditional optional information:\n\n - the arithmetic mean of the samples\n - the minimum and maximum of the samples\n - the sum-squared-deviation of the samples, used to compute variance\n - a histogram of the values of the sample points" }, "ExplicitBuckets": { - "description": "Describing buckets with arbitrary user-provided width.", - "type": "object", "properties": { "bounds": { "description": "'bound' is a list of strictly increasing boundaries between\nbuckets. Note that a list of length N-1 defines N buckets because\nof fenceposting. See comments on `bucket_options` for details.\n\nThe i'th finite bucket covers the interval\n [bound[i-1], bound[i])\nwhere i ranges from 1 to bound_size() - 1. Note that there are no\nfinite buckets at all if 'bound' only contains a single element; in\nthat special case the single bound defines the boundary between the\nunderflow and overflow buckets.\n\nbucket number lower bound upper bound\n i == 0 (underflow) -inf bound[i]\n 0 \u003c i \u003c bound_size() bound[i-1] bound[i]\n i == bound_size() (overflow) bound[i-1] +inf", + "type": "array", "items": { - "format": "double", - "type": "number" - }, - "type": "array" + "type": "number", + "format": "double" + } } }, - "id": "ExplicitBuckets" + "id": "ExplicitBuckets", + "description": "Describing buckets with arbitrary user-provided width.", + "type": "object" }, "ExponentialBuckets": { "description": "Describing buckets with exponentially growing width.", "type": "object", "properties": { "growthFactor": { - "format": "double", "description": "The i'th exponential bucket covers the interval\n [scale * growth_factor^(i-1), scale * growth_factor^i)\nwhere i ranges from 1 to num_finite_buckets inclusive.\nMust be larger than 1.0.", + "format": "double", "type": "number" }, "scale": { - "format": "double", "description": "The i'th exponential bucket covers the interval\n [scale * growth_factor^(i-1), scale * growth_factor^i)\nwhere i ranges from 1 to num_finite_buckets inclusive.\nMust be \u003e 0.", + "format": "double", "type": "number" }, "numFiniteBuckets": { - "format": "int32", "description": "The number of finite buckets. With the underflow and overflow buckets,\nthe total number of buckets is `num_finite_buckets` + 2.\nSee comments on `bucket_options` for details.", + "format": "int32", "type": "integer" } }, "id": "ExponentialBuckets" }, "AuthorizationInfo": { - "description": "Authorization information for the operation.", - "type": "object", "properties": { + "permission": { + "type": "string", + "description": "The required IAM permission." + }, "resource": { "description": "The resource being accessed, as a REST-style string. For example:\n\n bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID", "type": "string" @@ -925,13 +843,11 @@ "granted": { "description": "Whether or not authorization for `resource` and `permission`\nwas granted.", "type": "boolean" - }, - "permission": { - "description": "The required IAM permission.", - "type": "string" } }, - "id": "AuthorizationInfo" + "id": "AuthorizationInfo", + "description": "Authorization information for the operation.", + "type": "object" }, "ResourceInfo": { "description": "Describes a resource associated with this operation.", @@ -949,39 +865,41 @@ "id": "ResourceInfo" }, "StartReconciliationResponse": { + "description": "Response message for QuotaController.StartReconciliation.", + "type": "object", "properties": { "quotaMetrics": { "description": "Metric values as tracked by One Platform before the start of\nreconciliation. The following metrics will be included:\n\n1. Per quota metric total usage will be specified using the following gauge\nmetric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n2. Value for each quota limit associated with the metrics will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/quota/limit\"", + "type": "array", "items": { "$ref": "MetricValueSet" - }, - "type": "array" - }, - "reconciliationErrors": { - "description": "Indicates the decision of the reconciliation start.", - "items": { - "$ref": "QuotaError" - }, - "type": "array" + } }, "operationId": { "description": "The same operation_id value used in the StartReconciliationRequest. Used\nfor logging and diagnostics purposes.", "type": "string" }, + "reconciliationErrors": { + "description": "Indicates the decision of the reconciliation start.", + "type": "array", + "items": { + "$ref": "QuotaError" + } + }, "serviceConfigId": { "description": "ID of the actual config used to process the request.", "type": "string" } }, - "id": "StartReconciliationResponse", - "description": "Response message for QuotaController.StartReconciliation.", - "type": "object" + "id": "StartReconciliationResponse" }, "QuotaProperties": { "description": "Represents the properties needed for quota operations.", "type": "object", "properties": { "quotaMode": { + "description": "Quota mode for this operation.", + "type": "string", "enumDescriptions": [ "Decreases available quota by the cost specified for the operation.\nIf cost is higher than available quota, operation fails and returns\nerror.", "Decreases available quota by the cost specified for the operation.\nIf cost is higher than available quota, operation does not fail and\navailable quota goes down to zero but it returns error.", @@ -993,9 +911,7 @@ "ACQUIRE_BEST_EFFORT", "CHECK", "RELEASE" - ], - "description": "Quota mode for this operation.", - "type": "string" + ] } }, "id": "QuotaProperties" @@ -1004,125 +920,101 @@ "description": "Describing buckets with constant width.", "type": "object", "properties": { + "offset": { + "description": "The i'th linear bucket covers the interval\n [offset + (i-1) * width, offset + i * width)\nwhere i ranges from 1 to num_finite_buckets, inclusive.", + "format": "double", + "type": "number" + }, "numFiniteBuckets": { - "format": "int32", "description": "The number of finite buckets. With the underflow and overflow buckets,\nthe total number of buckets is `num_finite_buckets` + 2.\nSee comments on `bucket_options` for details.", + "format": "int32", "type": "integer" }, "width": { - "format": "double", "description": "The i'th linear bucket covers the interval\n [offset + (i-1) * width, offset + i * width)\nwhere i ranges from 1 to num_finite_buckets, inclusive.\nMust be strictly positive.", - "type": "number" - }, - "offset": { "format": "double", - "description": "The i'th linear bucket covers the interval\n [offset + (i-1) * width, offset + i * width)\nwhere i ranges from 1 to num_finite_buckets, inclusive.", "type": "number" } }, "id": "LinearBuckets" }, "AuthenticationInfo": { + "description": "Authentication information for the operation.", + "type": "object", "properties": { "authoritySelector": { "description": "The authority selector specified by the requestor, if any.\nIt is not guaranteed that the principal was allowed to use this authority.", "type": "string" }, "thirdPartyPrincipal": { + "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" }, - "description": "The third party identification (if any) of the authenticated user making\nthe request.\nWhen the JSON object represented here has a proto equivalent, the proto\nname will be indicated in the `@type` property.", - "type": "object" + "description": "The third party identification (if any) of the authenticated user making\nthe request.\nWhen the JSON object represented here has a proto equivalent, the proto\nname will be indicated in the `@type` property." }, "principalEmail": { "description": "The email address of the authenticated user (or service account on behalf\nof third party principal) making the request. For privacy reasons, the\nprincipal email address is redacted for all read-only operations that fail\nwith a \"permission denied\" error.", "type": "string" } }, - "id": "AuthenticationInfo", - "description": "Authentication information for the operation.", - "type": "object" + "id": "AuthenticationInfo" }, "AllocateQuotaResponse": { - "description": "Response message for the AllocateQuota method.", - "type": "object", "properties": { - "operationId": { - "description": "The same operation_id value used in the AllocateQuotaRequest. Used for\nlogging and diagnostics purposes.", - "type": "string" - }, - "allocateInfo": { - "$ref": "AllocateInfo", - "description": "WARNING: DO NOT use this field until this warning message is removed." - }, "serviceConfigId": { "description": "ID of the actual config used to process the request.", "type": "string" }, + "allocateInfo": { + "description": "WARNING: DO NOT use this field until this warning message is removed.", + "$ref": "AllocateInfo" + }, "allocateErrors": { "description": "Indicates the decision of the allocate.", + "type": "array", "items": { "$ref": "QuotaError" - }, - "type": "array" + } }, "quotaMetrics": { - "description": "Quota metrics to indicate the result of allocation. Depending on the\nrequest, one or more of the following metrics will be included:\n\n1. For rate quota, per quota group or per quota metric incremental usage\nwill be specified using the following delta metric:\n \"serviceruntime.googleapis.com/api/consumer/quota_used_count\"\n\n2. For allocation quota, per quota metric total usage will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n3. For both rate quota and allocation quota, the quota limit reached\ncondition will be specified using the following boolean metric:\n \"serviceruntime.googleapis.com/quota/exceeded\"\n\n4. For allocation quota, value for each quota limit associated with\nthe metrics will be specified using the following gauge metric:\n \"serviceruntime.googleapis.com/quota/limit\"", + "description": "Quota metrics to indicate the result of allocation. Depending on the\nrequest, one or more of the following metrics will be included:\n\n1. Per quota group or per quota metric incremental usage will be specified\nusing the following delta metric :\n \"serviceruntime.googleapis.com/api/consumer/quota_used_count\"\n\n2. The quota limit reached condition will be specified using the following\nboolean metric :\n \"serviceruntime.googleapis.com/quota/exceeded\"", + "type": "array", "items": { "$ref": "MetricValueSet" - }, - "type": "array" + } + }, + "operationId": { + "type": "string", + "description": "The same operation_id value used in the AllocateQuotaRequest. Used for\nlogging and diagnostics purposes." } }, - "id": "AllocateQuotaResponse" + "id": "AllocateQuotaResponse", + "description": "Response message for the AllocateQuota method.", + "type": "object" }, "ReleaseQuotaRequest": { "description": "Request message for the ReleaseQuota method.", "type": "object", "properties": { - "releaseOperation": { - "$ref": "QuotaOperation", - "description": "Operation that describes the quota release." - }, "serviceConfigId": { "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", "type": "string" + }, + "releaseOperation": { + "$ref": "QuotaOperation", + "description": "Operation that describes the quota release." } }, "id": "ReleaseQuotaRequest" }, - "RequestMetadata": { - "description": "Metadata about the request.", + "QuotaError": { + "description": "Represents error information for QuotaOperation.", "type": "object", "properties": { - "callerNetwork": { - "description": "The network of the caller.\nSet only if the network host project is part of the same GCP organization\n(or project) as the accessed resource.\nSee https://cloud.google.com/compute/docs/vpc/ for more information.\nThis is a scheme-less URI full resource name. For example:\n\n \"//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID\"", - "type": "string" - }, - "callerIp": { - "description": "The IP address of the caller.\nFor caller from internet, this will be public IPv4 or IPv6 address.\nFor caller from a Compute Engine VM with external IP address, this\nwill be the VM's external IP address. For caller from a Compute\nEngine VM without external IP address, if the VM is in the same\norganization (or project) as the accessed resource, `caller_ip` will\nbe the VM's internal IPv4 address, otherwise the `caller_ip` will be\nredacted to \"gce-internal-ip\".\nSee https://cloud.google.com/compute/docs/vpc/ for more information.", - "type": "string" - }, - "callerSuppliedUserAgent": { - "description": "The user agent of the caller.\nThis information is not authenticated and should be treated accordingly.\nFor example:\n\n+ `google-api-python-client/1.4.0`:\n The request was made by the Google API client for Python.\n+ `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`:\n The request was made by the Google Cloud SDK CLI (gcloud).\n+ `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`:\n The request was made from the `my-project` App Engine app.\nNOLINT", - "type": "string" - } - }, - "id": "RequestMetadata" - }, - "QuotaError": { - "properties": { - "description": { - "description": "Free-form text that provides details on the cause of the error.", - "type": "string" - }, - "subject": { - "description": "Subject to whom this error applies. See the specific enum for more details\non this field. For example, \"clientip:\u003cip address of client\u003e\" or\n\"project:\u003cGoogle developer project id\u003e\".", - "type": "string" - }, "code": { + "type": "string", "enumDescriptions": [ "This is never used.", "Quota allocation failed.\nSame as google.rpc.Code.RESOURCE_EXHAUSTED.", @@ -1155,49 +1047,82 @@ "BILLING_STATUS_UNAVAILABLE", "QUOTA_SYSTEM_UNAVAILABLE" ], - "description": "Error code.", + "description": "Error code." + }, + "subject": { + "description": "Subject to whom this error applies. See the specific enum for more details\non this field. For example, \"clientip:\u003cip address of client\u003e\" or\n\"project:\u003cGoogle developer project id\u003e\".", + "type": "string" + }, + "description": { + "description": "Free-form text that provides details on the cause of the error.", "type": "string" } }, - "id": "QuotaError", - "description": "Represents error information for QuotaOperation.", - "type": "object" + "id": "QuotaError" + }, + "RequestMetadata": { + "description": "Metadata about the request.", + "type": "object", + "properties": { + "callerSuppliedUserAgent": { + "description": "The user agent of the caller.\nThis information is not authenticated and should be treated accordingly.\nFor example:\n\n+ `google-api-python-client/1.4.0`:\n The request was made by the Google API client for Python.\n+ `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`:\n The request was made by the Google Cloud SDK CLI (gcloud).\n+ `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`:\n The request was made from the `my-project` App Engine app.\nNOLINT", + "type": "string" + }, + "callerNetwork": { + "type": "string", + "description": "The network of the caller.\nSet only if the network host project is part of the same GCP organization\n(or project) as the accessed resource.\nSee https://cloud.google.com/compute/docs/vpc/ for more information.\nThis is a scheme-less URI full resource name. For example:\n\n \"//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID\"" + }, + "callerIp": { + "description": "The IP address of the caller.\nFor caller from internet, this will be public IPv4 or IPv6 address.\nFor caller from a Compute Engine VM with external IP address, this\nwill be the VM's external IP address. For caller from a Compute\nEngine VM without external IP address, if the VM is in the same\norganization (or project) as the accessed resource, `caller_ip` will\nbe the VM's internal IPv4 address, otherwise the `caller_ip` will be\nredacted to \"gce-internal-ip\".\nSee https://cloud.google.com/compute/docs/vpc/ for more information.", + "type": "string" + } + }, + "id": "RequestMetadata" }, "CheckInfo": { + "description": "Contains additional information about the check operation.", + "type": "object", "properties": { "unusedArguments": { "description": "A list of fields and label keys that are ignored by the server.\nThe client doesn't need to send them for following requests to improve\nperformance and allow better aggregation.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "consumerInfo": { "$ref": "ConsumerInfo", "description": "Consumer info of this check." } }, - "id": "CheckInfo", - "description": "Contains additional information about the check operation.", - "type": "object" + "id": "CheckInfo" + }, + "AllocateQuotaRequest": { + "description": "Request message for the AllocateQuota method.", + "type": "object", + "properties": { + "serviceConfigId": { + "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", + "type": "string" + }, + "allocateOperation": { + "$ref": "QuotaOperation", + "description": "Operation that describes the quota allocation." + } + }, + "id": "AllocateQuotaRequest" }, "ReleaseQuotaResponse": { + "id": "ReleaseQuotaResponse", "description": "Response message for the ReleaseQuota method.", "type": "object", "properties": { - "releaseErrors": { - "description": "Indicates the decision of the release.", - "items": { - "$ref": "QuotaError" - }, - "type": "array" - }, "quotaMetrics": { "description": "Quota metrics to indicate the result of release. Depending on the\nrequest, one or more of the following metrics will be included:\n\n1. For rate quota, per quota group or per quota metric released amount\nwill be specified using the following delta metric:\n \"serviceruntime.googleapis.com/api/consumer/quota_refund_count\"\n\n2. For allocation quota, per quota metric total usage will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n3. For allocation quota, value for each quota limit associated with\nthe metrics will be specified using the following gauge metric:\n \"serviceruntime.googleapis.com/quota/limit\"", + "type": "array", "items": { "$ref": "MetricValueSet" - }, - "type": "array" + } }, "operationId": { "description": "The same operation_id value used in the ReleaseQuotaRequest. Used for\nlogging and diagnostics purposes.", @@ -1206,26 +1131,19 @@ "serviceConfigId": { "description": "ID of the actual config used to process the request.", "type": "string" - } - }, - "id": "ReleaseQuotaResponse" - }, - "AllocateQuotaRequest": { - "description": "Request message for the AllocateQuota method.", - "type": "object", - "properties": { - "allocateOperation": { - "description": "Operation that describes the quota allocation.", - "$ref": "QuotaOperation" }, - "serviceConfigId": { - "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", - "type": "string" + "releaseErrors": { + "description": "Indicates the decision of the release.", + "type": "array", + "items": { + "$ref": "QuotaError" + } } - }, - "id": "AllocateQuotaRequest" + } }, "MetricValueSet": { + "description": "Represents a set of metric values in the same metric.\nEach metric value in the set should have a unique combination of start time,\nend time, and label values.", + "type": "object", "properties": { "metricName": { "description": "The metric name defined in the service configuration.", @@ -1233,17 +1151,16 @@ }, "metricValues": { "description": "The values in this metric.", + "type": "array", "items": { "$ref": "MetricValue" - }, - "type": "array" + } } }, - "id": "MetricValueSet", - "description": "Represents a set of metric values in the same metric.\nEach metric value in the set should have a unique combination of start time,\nend time, and label values.", - "type": "object" + "id": "MetricValueSet" }, "ReportError": { + "id": "ReportError", "description": "Represents the processing error of one Operation in the request.", "type": "object", "properties": { @@ -1255,14 +1172,13 @@ "description": "The Operation.operation_id value from the request.", "type": "string" } - }, - "id": "ReportError" + } }, "StartReconciliationRequest": { "properties": { "reconciliationOperation": { - "description": "Operation that describes the quota reconciliation.", - "$ref": "QuotaOperation" + "$ref": "QuotaOperation", + "description": "Operation that describes the quota reconciliation." }, "serviceConfigId": { "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", @@ -1277,10 +1193,6 @@ "description": "Defines the errors to be returned in\ngoogle.api.servicecontrol.v1.CheckResponse.check_errors.", "type": "object", "properties": { - "detail": { - "description": "Free-form text providing details on the error cause of the error.", - "type": "string" - }, "code": { "enumDescriptions": [ "This is never used in `CheckResponse`.", @@ -1352,12 +1264,15 @@ ], "description": "The error code.", "type": "string" + }, + "detail": { + "description": "Free-form text providing details on the error cause of the error.", + "type": "string" } }, "id": "CheckError" }, "QuotaInfo": { - "description": "Contains the quota information for a quota check response.", "type": "object", "properties": { "quotaConsumed": { @@ -1370,57 +1285,139 @@ }, "quotaMetrics": { "description": "Quota metrics to indicate the usage. Depending on the check request, one or\nmore of the following metrics will be included:\n\n1. For rate quota, per quota group or per quota metric incremental usage\nwill be specified using the following delta metric:\n \"serviceruntime.googleapis.com/api/consumer/quota_used_count\"\n\n2. For allocation quota, per quota metric total usage will be specified\nusing the following gauge metric:\n \"serviceruntime.googleapis.com/allocation/consumer/quota_used_count\"\n\n3. For both rate quota and allocation quota, the quota limit reached\ncondition will be specified using the following boolean metric:\n \"serviceruntime.googleapis.com/quota/exceeded\"", + "type": "array", "items": { "$ref": "MetricValueSet" - }, - "type": "array" + } }, "limitExceeded": { "description": "Quota Metrics that have exceeded quota limits.\nFor QuotaGroup-based quota, this is QuotaGroup.name\nFor QuotaLimit-based quota, this is QuotaLimit.name\nSee: google.api.Quota\nDeprecated: Use quota_metrics to get per quota group limit exceeded status.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, - "id": "QuotaInfo" + "id": "QuotaInfo", + "description": "Contains the quota information for a quota check response." }, "ConsumerInfo": { + "id": "ConsumerInfo", "description": "`ConsumerInfo` provides information about the consumer project.", "type": "object", "properties": { "projectNumber": { - "format": "int64", "description": "The Google cloud project number, e.g. 1234567890. A value of 0 indicates\nno project number is found.", + "format": "int64", + "type": "string" + } + } + }, + "CheckRequest": { + "description": "Request message for the Check method.", + "type": "object", + "properties": { + "operation": { + "$ref": "Operation", + "description": "The operation to be checked." + }, + "requestProjectSettings": { + "description": "Requests the project settings to be returned as part of the check response.", + "type": "boolean" + }, + "serviceConfigId": { + "description": "Specifies which version of service configuration should be used to process\nthe request.\n\nIf unspecified or no matching version can be found, the\nlatest one will be used.", + "type": "string" + }, + "skipActivationCheck": { + "description": "Indicates if service activation check should be skipped for this request.\nDefault behavior is to perform the check and apply relevant quota.", + "type": "boolean" + } + }, + "id": "CheckRequest" + }, + "QuotaOperation": { + "description": "Represents information regarding a quota operation.", + "type": "object", + "properties": { + "quotaMetrics": { + "description": "Represents information about this operation. Each MetricValueSet\ncorresponds to a metric defined in the service configuration.\nThe data type used in the MetricValueSet must agree with\nthe data type specified in the metric definition.\n\nWithin a single operation, it is not allowed to have more than one\nMetricValue instances that have the same metric names and identical\nlabel value combinations. If a request has such duplicated MetricValue\ninstances, the entire request is rejected with\nan invalid argument error.\n\nThis field is mutually exclusive with method_name.", + "type": "array", + "items": { + "$ref": "MetricValueSet" + } + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels describing the operation.", + "type": "object" + }, + "consumerId": { + "description": "Identity of the consumer for whom this quota operation is being performed.\n\nThis can be in one of the following formats:\n project:\u003cproject_id\u003e,\n project_number:\u003cproject_number\u003e,\n api_key:\u003capi_key\u003e.", + "type": "string" + }, + "operationId": { + "description": "Identity of the operation. This is expected to be unique within the scope\nof the service that generated the operation, and guarantees idempotency in\ncase of retries.\n\nUUID version 4 is recommended, though not required. In scenarios where an\noperation is computed from existing information and an idempotent id is\ndesirable for deduplication purpose, UUID version 5 is recommended. See\nRFC 4122 for details.", + "type": "string" + }, + "quotaMode": { + "enum": [ + "UNSPECIFIED", + "NORMAL", + "BEST_EFFORT", + "CHECK_ONLY" + ], + "description": "Quota mode for this operation.", + "type": "string", + "enumDescriptions": [ + "Guard against implicit default. Must not be used.", + "For AllocateQuota request, allocates quota for the amount specified in\nthe service configuration or specified using the quota metrics. If the\namount is higher than the available quota, allocation error will be\nreturned and no quota will be allocated.", + "The operation allocates quota for the amount specified in the service\nconfiguration or specified using the quota metrics. If the amount is\nhigher than the available quota, request does not fail but all available\nquota will be allocated.", + "For AllocateQuota request, only checks if there is enough quota\navailable and does not change the available quota. No lock is placed on\nthe available quota either." + ] + }, + "methodName": { + "description": "Fully qualified name of the API method for which this quota operation is\nrequested. This name is used for matching quota rules or metric rules and\nbilling status rules defined in service configuration.\n\nThis field should not be set if any of the following is true:\n(1) the quota operation is performed on non-API resources.\n(2) quota_metrics is set because the caller is doing quota override.\n\nExample of an RPC method name:\n google.example.library.v1.LibraryService.CreateShelf", "type": "string" } }, - "id": "ConsumerInfo" + "id": "QuotaOperation" + }, + "EndReconciliationRequest": { + "description": "Request message for QuotaController.EndReconciliation.", + "type": "object", + "properties": { + "reconciliationOperation": { + "description": "Operation that describes the quota reconciliation.", + "$ref": "QuotaOperation" + }, + "serviceConfigId": { + "description": "Specifies which version of service configuration should be used to process\nthe request. If unspecified or no matching version can be found, the latest\none will be used.", + "type": "string" + } + }, + "id": "EndReconciliationRequest" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "canonicalName": "Service Control", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - }, "https://www.googleapis.com/auth/servicecontrol": { "description": "Manage your Google Service Control data" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" } } } }, - "rootUrl": "https://servicecontrol.googleapis.com/", - "ownerDomain": "google.com", - "name": "servicecontrol", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Service Control API", - "ownerName": "Google" + "rootUrl": "https://servicecontrol.googleapis.com/" } diff --git a/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-gen.go b/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-gen.go index 80cb74036..1e1b2e39f 100644 --- a/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-gen.go +++ b/vendor/google.golang.org/api/servicecontrol/v1/servicecontrol-gen.go @@ -175,27 +175,15 @@ type AllocateQuotaResponse struct { // Depending on the // request, one or more of the following metrics will be included: // - // 1. For rate quota, per quota group or per quota metric incremental - // usage - // will be specified using the following delta metric: + // 1. Per quota group or per quota metric incremental usage will be + // specified + // using the following delta metric : // "serviceruntime.googleapis.com/api/consumer/quota_used_count" // - // 2. For allocation quota, per quota metric total usage will be - // specified - // using the following gauge metric: - // - // "serviceruntime.googleapis.com/allocation/consumer/quota_used_count" - // - // - // 3. For both rate quota and allocation quota, the quota limit - // reached - // condition will be specified using the following boolean metric: + // 2. The quota limit reached condition will be specified using the + // following + // boolean metric : // "serviceruntime.googleapis.com/quota/exceeded" - // - // 4. For allocation quota, value for each quota limit associated - // with - // the metrics will be specified using the following gauge metric: - // "serviceruntime.googleapis.com/quota/limit" QuotaMetrics []*MetricValueSet `json:"quotaMetrics,omitempty"` // ServiceConfigId: ID of the actual config used to process the request. @@ -246,7 +234,7 @@ type AuditLog struct { // Metadata: Other service-specific data about the request, response, // and other // information associated with the current audited event. - Metadata []googleapi.RawMessage `json:"metadata,omitempty"` + Metadata googleapi.RawMessage `json:"metadata,omitempty"` // MethodName: The name of the service method or operation. // For API calls, this should be the name of the API method. @@ -1626,10 +1614,12 @@ type QuotaOperation struct { // quota operation is // requested. This name is used for matching quota rules or metric rules // and - // billing status rules defined in service configuration. This field is - // not - // required if the quota operation is performed on non-API - // resources. + // billing status rules defined in service configuration. + // + // This field should not be set if any of the following is true: + // (1) the quota operation is performed on non-API resources. + // (2) quota_metrics is set because the caller is doing quota + // override. // // Example of an RPC method name: // google.example.library.v1.LibraryService.CreateShelf @@ -1664,6 +1654,8 @@ type QuotaOperation struct { // MetricValue // instances, the entire request is rejected with // an invalid argument error. + // + // This field is mutually exclusive with method_name. QuotaMetrics []*MetricValueSet `json:"quotaMetrics,omitempty"` // QuotaMode: Quota mode for this operation. @@ -1677,41 +1669,18 @@ type QuotaOperation struct { // amount is higher than the available quota, allocation error will // be // returned and no quota will be allocated. - // For ReleaseQuota request, this mode is supported only for precise - // quota - // limits. In this case, this operation releases quota for the - // amount - // specified in the service configuration or specified using the - // quota - // metrics. If the release can make used quota negative, release - // error - // will be returned and no quota will be released. - // "BEST_EFFORT" - For AllocateQuota request, this mode is supported - // only for imprecise - // quota limits. In this case, 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 ReleaseQuota request, this mode is supported for both precise - // quota - // limits and imprecise quota limits. In this case, this operation - // releases - // quota for the amount specified in the service configuration or - // specified - // using the quota metrics. If the release can make used quota - // negative, request does not fail but only the used quota will - // be - // released. After the ReleaseQuota request completes, the used - // quota - // will be 0, and never goes to negative. + // "BEST_EFFORT" - 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. // "CHECK_ONLY" - 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. Not supported for ReleaseQuota request. + // the available quota either. QuotaMode string `json:"quotaMode,omitempty"` // ForceSendFields is a list of field names (e.g. "ConsumerId") to diff --git a/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-api.json b/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-api.json index 6bf82b2f7..b06030917 100644 --- a/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-api.json +++ b/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-api.json @@ -1,1704 +1,908 @@ { - "basePath": "", - "id": "servicemanagement:v1", - "revision": "20170926", - "documentationLink": "https://cloud.google.com/service-management/", - "discoveryVersion": "v1", - "schemas": { - "LogDescriptor": { - "description": "A description of a log type. Example in YAML format:\n\n - name: library.googleapis.com/activity_history\n description: The history of borrowing and returning library items.\n display_name: Activity\n labels:\n - key: /customer_id\n description: Identifier of a library customer", - "type": "object", - "properties": { - "labels": { - "description": "The set of labels that are available to describe a specific log entry.\nRuntime requests that contain labels not specified here are\nconsidered invalid.", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - }, - "name": { - "description": "The name of the log. It must be less than 512 characters long and can\ninclude the following characters: upper- and lower-case alphanumeric\ncharacters [A-Za-z0-9], and punctuation characters including\nslash, underscore, hyphen, period [/_-.].", - "type": "string" - }, - "displayName": { - "description": "The human-readable name for this log. This information appears on\nthe user interface and should be concise.", - "type": "string" - }, - "description": { - "description": "A human-readable description of this log. This information appears in\nthe documentation and can contain details.", - "type": "string" - } - }, - "id": "LogDescriptor" - }, - "ConfigFile": { - "description": "Generic specification of a source configuration file", - "type": "object", - "properties": { - "filePath": { - "description": "The file name of the configuration file (full or relative path).", - "type": "string" - }, - "fileType": { - "enumDescriptions": [ - "Unknown file type.", - "YAML-specification of service.", - "OpenAPI specification, serialized in JSON.", - "OpenAPI specification, serialized in YAML.", - "FileDescriptorSet, generated by protoc.\n\nTo generate, use protoc with imports and source info included.\nFor an example test.proto file, the following command would put the value\nin a new file named out.pb.\n\n$protoc --include_imports --include_source_info test.proto -o out.pb", - "Uncompiled Proto file. Used for storage and display purposes only,\ncurrently server-side compilation is not supported. Should match the\ninputs to 'protoc' command used to generated FILE_DESCRIPTOR_SET_PROTO. A\nfile of this type can only be included if at least one file of type\nFILE_DESCRIPTOR_SET_PROTO is included." - ], - "enum": [ - "FILE_TYPE_UNSPECIFIED", - "SERVICE_CONFIG_YAML", - "OPEN_API_JSON", - "OPEN_API_YAML", - "FILE_DESCRIPTOR_SET_PROTO", - "PROTO_FILE" - ], - "description": "The type of configuration file this represents.", - "type": "string" - }, - "fileContents": { - "format": "byte", - "description": "The bytes that constitute the file.", - "type": "string" - } - }, - "id": "ConfigFile" - }, - "MonitoredResourceDescriptor": { - "description": "An object that describes the schema of a MonitoredResource object using a\ntype name and a set of labels. For example, the monitored resource\ndescriptor for Google Compute Engine VM instances has a type of\n`\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and\n`\"zone\"` to identify particular VM instances.\n\nDifferent APIs can support different monitored resource types. APIs generally\nprovide a `list` method that returns the monitored resource descriptors used\nby the API.", - "type": "object", - "properties": { - "labels": { - "description": "Required. A set of labels used to describe instances of this monitored\nresource type. For example, an individual Google Cloud SQL database is\nidentified by values for the labels `\"database_id\"` and `\"zone\"`.", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - }, - "name": { - "description": "Optional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type. APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`.", - "type": "string" - }, - "description": { - "description": "Optional. A detailed description of the monitored resource type that might\nbe used in documentation.", - "type": "string" - }, - "displayName": { - "description": "Optional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`.", - "type": "string" - }, - "type": { - "description": "Required. The monitored resource type. For example, the type\n`\"cloudsql_database\"` represents databases in Google Cloud SQL.\nThe maximum length of this value is 256 characters.", - "type": "string" - } - }, - "id": "MonitoredResourceDescriptor" - }, - "CustomErrorRule": { - "description": "A custom error rule.", - "type": "object", - "properties": { - "isErrorType": { - "description": "Mark this message as possible payload in error response. Otherwise,\nobjects of this type will be filtered when they appear in error payload.", - "type": "boolean" - }, - "selector": { - "description": "Selects messages to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "CustomErrorRule" - }, - "MediaDownload": { - "type": "object", - "properties": { - "maxDirectDownloadSize": { - "format": "int64", - "description": "Optional maximum acceptable size for direct download.\nThe size is specified in bytes.", - "type": "string" - }, - "dropzone": { - "type": "string", - "description": "Name of the Scotty dropzone to use for the current API." - }, - "useDirectDownload": { - "description": "A boolean that determines if direct download from ESF should be used for\ndownload of this media.", - "type": "boolean" - }, - "completeNotification": { - "description": "A boolean that determines whether a notification for the completion of a\ndownload should be sent to the backend.", - "type": "boolean" - }, - "enabled": { - "description": "Whether download is enabled.", - "type": "boolean" - }, - "downloadService": { - "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the download service if one is used for download.", - "type": "string" - } - }, - "id": "MediaDownload", - "description": "Defines the Media configuration for a service in case of a download.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods." - }, - "CustomAuthRequirements": { - "properties": { - "provider": { - "description": "A configuration string containing connection information for the\nauthentication provider, typically formatted as a SmartService string\n(go/smartservice).", - "type": "string" - } - }, - "id": "CustomAuthRequirements", - "description": "Configuration for a custom authentication provider.", - "type": "object" - }, - "ChangeReport": { - "description": "Change report associated with a particular service configuration.\n\nIt contains a list of ConfigChanges based on the comparison between\ntwo service configurations.", - "type": "object", - "properties": { - "configChanges": { - "items": { - "$ref": "ConfigChange" - }, - "type": "array", - "description": "List of changes between two service configurations.\nThe changes will be alphabetically sorted based on the identifier\nof each change.\nA ConfigChange identifier is a dot separated path to the configuration.\nExample: visibility.rules[selector='LibraryService.CreateBook'].restriction" - } - }, - "id": "ChangeReport" - }, - "DisableServiceRequest": { - "description": "Request message for DisableService method.", - "type": "object", - "properties": { - "consumerId": { - "description": "The identity of consumer resource which service disablement will be\napplied to.\n\nThe Google Service Management implementation accepts the following\nforms:\n- \"project:\u003cproject_id\u003e\"\n\nNote: this is made compatible with\ngoogle.api.servicecontrol.v1.Operation.consumer_id.", - "type": "string" - } - }, - "id": "DisableServiceRequest" - }, - "SubmitConfigSourceResponse": { - "description": "Response message for SubmitConfigSource method.", - "type": "object", - "properties": { - "serviceConfig": { - "description": "The generated service configuration.", - "$ref": "Service" - } - }, - "id": "SubmitConfigSourceResponse" - }, - "MediaUpload": { - "description": "Defines the Media configuration for a service in case of an upload.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods.", - "type": "object", - "properties": { - "completeNotification": { - "description": "A boolean that determines whether a notification for the completion of an\nupload should be sent to the backend. These notifications will not be seen\nby the client and will not consume quota.", - "type": "boolean" - }, - "progressNotification": { - "type": "boolean", - "description": "Whether to receive a notification for progress changes of media upload." - }, - "enabled": { - "description": "Whether upload is enabled.", - "type": "boolean" - }, - "dropzone": { - "description": "Name of the Scotty dropzone to use for the current API.", - "type": "string" - }, - "startNotification": { - "description": "Whether to receive a notification on the start of media upload.", - "type": "boolean" - }, - "uploadService": { - "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the upload service if one is used for upload.", - "type": "string" - }, - "maxSize": { - "format": "int64", - "description": "Optional maximum acceptable size for an upload.\nThe size is specified in bytes.", - "type": "string" - }, - "mimeTypes": { - "description": "An array of mimetype patterns. Esf will only accept uploads that match one\nof the given patterns.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "MediaUpload" - }, - "BillingDestination": { - "type": "object", - "properties": { - "monitoredResource": { - "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.", - "type": "string" - }, - "metrics": { - "description": "Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "BillingDestination", - "description": "Configuration of a specific billing destination (Currently only support\nbill against consumer project)." - }, - "Advice": { - "id": "Advice", - "description": "Generated advice about this change, used for providing more\ninformation about how a change will affect the existing service.", - "type": "object", - "properties": { - "description": { - "description": "Useful description for why this advice was applied and what actions should\nbe taken to mitigate any implied risks.", - "type": "string" - } - } - }, - "ManagedService": { - "properties": { - "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements.", - "type": "string" - }, - "producerProjectId": { - "description": "ID of the project that produces and owns this service.", - "type": "string" - } - }, - "id": "ManagedService", - "description": "The full representation of a Service that is managed by\nGoogle Service Management.", - "type": "object" - }, - "UsageRule": { - "description": "Usage configuration rules for the service.\n\nNOTE: Under development.\n\n\nUse this rule to configure unregistered calls for the service. Unregistered\ncalls are calls that do not contain consumer project identity.\n(Example: calls that do not contain an API key).\nBy default, API methods do not allow unregistered calls, and each method call\nmust be identified by a consumer project identity. Use this rule to\nallow/disallow unregistered calls.\n\nExample of an API that wants to allow unregistered calls for entire service.\n\n usage:\n rules:\n - selector: \"*\"\n allow_unregistered_calls: true\n\nExample of a method that wants to allow unregistered calls.\n\n usage:\n rules:\n - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n allow_unregistered_calls: true", - "type": "object", - "properties": { - "selector": { - "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "skipServiceControl": { - "description": "True, if the method should skip service control. If so, no control plane\nfeature (like quota and billing) will be enabled.", - "type": "boolean" - }, - "allowUnregisteredCalls": { - "description": "True, if the method allows unregistered calls; false otherwise.", - "type": "boolean" - } - }, - "id": "UsageRule" - }, - "AuthRequirement": { - "description": "User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", - "type": "object", - "properties": { - "audiences": { - "description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", - "type": "string" - }, - "providerId": { - "description": "id from authentication provider.\n\nExample:\n\n provider_id: bookstore_auth", - "type": "string" - } - }, - "id": "AuthRequirement" - }, - "TrafficPercentStrategy": { - "id": "TrafficPercentStrategy", - "description": "Strategy that specifies how clients of Google Service Controller want to\nsend traffic to use different config versions. This is generally\nused by API proxy to split traffic based on your configured precentage for\neach config version.\n\nOne example of how to gradually rollout a new service configuration using\nthis\nstrategy:\nDay 1\n\n Rollout {\n id: \"example.googleapis.com/rollout_20160206\"\n traffic_percent_strategy {\n percentages: {\n \"example.googleapis.com/20160201\": 70.00\n \"example.googleapis.com/20160206\": 30.00\n }\n }\n }\n\nDay 2\n\n Rollout {\n id: \"example.googleapis.com/rollout_20160207\"\n traffic_percent_strategy: {\n percentages: {\n \"example.googleapis.com/20160206\": 100.00\n }\n }\n }", - "type": "object", - "properties": { - "percentages": { - "additionalProperties": { - "format": "double", - "type": "number" - }, - "description": "Maps service configuration IDs to their corresponding traffic percentage.\nKey is the service configuration ID, Value is the traffic percentage\nwhich must be greater than 0.0 and the sum must equal to 100.0.", - "type": "object" - } - } - }, - "Documentation": { - "description": "`Documentation` provides the information for describing a service.\n\nExample:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: \u003e\n The Google Calendar API gives access\n to most calendar features.\n pages:\n - name: Overview\n content: (== include google/foo/overview.md ==)\n - name: Tutorial\n content: (== include google/foo/tutorial.md ==)\n subpages;\n - name: Java\n content: (== include google/foo/tutorial_java.md ==)\n rules:\n - selector: google.calendar.Calendar.Get\n description: \u003e\n ...\n - selector: google.calendar.Calendar.Put\n description: \u003e\n ...\n\u003c/code\u003e\u003c/pre\u003e\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n\u003cpre\u003e\u003ccode\u003e[fully.qualified.proto.name][]\u003c/code\u003e\u003c/pre\u003e\nTo override the display text used for the link, this can be used:\n\u003cpre\u003e\u003ccode\u003e[display text][fully.qualified.proto.name]\u003c/code\u003e\u003c/pre\u003e\nText can be excluded from doc using the following notation:\n\u003cpre\u003e\u003ccode\u003e(-- internal comment --)\u003c/code\u003e\u003c/pre\u003e\nComments can be made conditional using a visibility label. The below\ntext will be only rendered if the `BETA` label is available:\n\u003cpre\u003e\u003ccode\u003e(--BETA: comment for BETA users --)\u003c/code\u003e\u003c/pre\u003e\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n\u003cpre\u003e\u003ccode\u003e(== include path/to/file ==)\u003c/code\u003e\u003c/pre\u003e\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n\u003cpre\u003e\u003ccode\u003e(== resource_for v1.shelves.books ==)\u003c/code\u003e\u003c/pre\u003e\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.", - "type": "object", - "properties": { - "summary": { - "type": "string", - "description": "A short summary of what the service does. Can only be provided by\nplain text." - }, - "documentationRootUrl": { - "type": "string", - "description": "The URL to the root of documentation." - }, - "overview": { - "description": "Declares a single overview page. For example:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n overview: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nThis is a shortcut for the following declaration (using pages style):\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n pages:\n - name: Overview\n content: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nNote: you cannot specify both `overview` field and `pages` field.", - "type": "string" - }, - "rules": { - "description": "A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "DocumentationRule" - }, - "type": "array" - }, - "pages": { - "description": "The top level pages for the documentation set.", - "items": { - "$ref": "Page" - }, - "type": "array" - } - }, - "id": "Documentation" - }, - "AuditLogConfig": { - "properties": { - "logType": { - "enumDescriptions": [ - "Default case. Should never be this.", - "Admin reads. Example: CloudIAM getIamPolicy", - "Data writes. Example: CloudSQL Users create", - "Data reads. Example: CloudSQL Users list" - ], - "enum": [ - "LOG_TYPE_UNSPECIFIED", - "ADMIN_READ", - "DATA_WRITE", - "DATA_READ" - ], - "description": "The log type that this config enables.", - "type": "string" - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "AuditLogConfig", - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object" - }, - "ConfigSource": { - "id": "ConfigSource", - "description": "Represents a source file which is used to generate the service configuration\ndefined by `google.api.Service`.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead." - }, - "files": { - "description": "Set of source configuration files that are used to generate a service\nconfiguration (`google.api.Service`).", - "items": { - "$ref": "ConfigFile" - }, - "type": "array" - } - } - }, - "BackendRule": { - "description": "A backend rule provides configuration for an individual API element.", - "type": "object", - "properties": { - "minDeadline": { - "format": "double", - "description": "Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.", - "type": "number" - }, - "address": { - "description": "The address of the API backend.", - "type": "string" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "deadline": { - "format": "double", - "description": "The number of seconds to wait for a response from a request. The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.", - "type": "number" - } - }, - "id": "BackendRule" - }, - "AuthenticationRule": { - "type": "object", - "properties": { - "allowWithoutCredential": { - "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.", - "type": "boolean" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "customAuth": { - "$ref": "CustomAuthRequirements", - "description": "Configuration for custom authentication." - }, - "oauth": { - "$ref": "OAuthRequirements", - "description": "The requirements for OAuth credentials." - }, - "requirements": { - "items": { - "$ref": "AuthRequirement" - }, - "type": "array", - "description": "Requirements for additional authentication providers." - } - }, - "id": "AuthenticationRule", - "description": "Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored." - }, - "UndeleteServiceResponse": { - "description": "Response message for UndeleteService method.", - "type": "object", - "properties": { - "service": { - "description": "Revived service resource.", - "$ref": "ManagedService" - } - }, - "id": "UndeleteServiceResponse" - }, - "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", - "type": "object", - "properties": { - "etag": { - "format": "byte", - "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", - "type": "string" - }, - "version": { - "format": "int32", - "description": "Version of the `Policy`. The default version is 0.", - "type": "integer" - }, - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "AuditConfig" - }, - "type": "array" - }, - "bindings": { - "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", - "items": { - "$ref": "Binding" - }, - "type": "array" - }, - "iamOwned": { - "type": "boolean" - } - }, - "id": "Policy" - }, - "Api": { - "type": "object", - "properties": { - "name": { - "description": "The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.", - "type": "string" - }, - "sourceContext": { - "description": "Source context for the protocol buffer service represented by this\nmessage.", - "$ref": "SourceContext" - }, - "syntax": { - "enum": [ - "SYNTAX_PROTO2", - "SYNTAX_PROTO3" - ], - "description": "The source syntax of the service.", - "type": "string", - "enumDescriptions": [ - "Syntax `proto2`.", - "Syntax `proto3`." - ] - }, - "version": { - "description": "A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v\u003cmajor-version\u003e`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n", - "type": "string" - }, - "mixins": { - "description": "Included interfaces. See Mixin.", - "items": { - "$ref": "Mixin" - }, - "type": "array" - }, - "options": { - "description": "Any metadata attached to the interface.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "methods": { - "description": "The methods of this interface, in unspecified order.", - "items": { - "$ref": "Method" - }, - "type": "array" - } - }, - "id": "Api", - "description": "Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology." - }, - "MetricRule": { - "properties": { - "metricCosts": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "Metrics to update when the selected methods are called, and the associated\ncost applied to each metric.\n\nThe key of the map is the metric name, and the values are the amount\nincreased for the metric against which the quota limits are defined.\nThe value must not be negative.", - "type": "object" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "MetricRule", - "description": "Bind API methods to metrics. Binding a method to a metric causes that\nmetric's configured quota behaviors to apply to the method call.", - "type": "object" - }, - "Authentication": { - "description": "`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n name: calendar.googleapis.com\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", - "type": "object", - "properties": { - "rules": { - "items": { - "$ref": "AuthenticationRule" - }, - "type": "array", - "description": "A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order." - }, - "providers": { - "description": "Defines a set of authentication providers that a service supports.", - "items": { - "$ref": "AuthProvider" - }, - "type": "array" - } - }, - "id": "Authentication" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" - } - }, - "id": "Operation" - }, - "Page": { - "description": "Represents a documentation page. A page can contain subpages to represent\nnested documentation set structure.", - "type": "object", - "properties": { - "name": { - "description": "The name of the page. It will be used as an identity of the page to\ngenerate URI of the page, text of the link to this page in navigation,\netc. The full page name (start from the root page name to this page\nconcatenated with `.`) can be used as reference to the page in your\ndocumentation. For example:\n\u003cpre\u003e\u003ccode\u003epages:\n- name: Tutorial\n content: (== include tutorial.md ==)\n subpages:\n - name: Java\n content: (== include tutorial_java.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nYou can reference `Java` page using Markdown reference link syntax:\n`Java`.", - "type": "string" - }, - "content": { - "description": "The Markdown content of the page. You can use \u003ccode\u003e(== include {path} ==)\u003c/code\u003e\nto include content from a Markdown file.", - "type": "string" - }, - "subpages": { - "description": "Subpages of this page. The order of subpages specified here will be\nhonored in the generated docset.", - "items": { - "$ref": "Page" - }, - "type": "array" - } - }, - "id": "Page" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" + "ownerDomain": "google.com", + "name": "servicemanagement", + "batchPath": "batch", + "fullyEncodeReservedExpansion": true, + "title": "Google Service Management API", + "ownerName": "Google", + "resources": { + "operations": { + "methods": { + "list": { + "parameters": { + "filter": { + "location": "query", + "description": "A string for filtering Operations.\n The following filter fields are supported:\n\n * serviceName: Required. Only `=` operator is allowed.\n * startTime: The time this job was started, in ISO 8601 format.\n Allowed operators are `\u003e=`, `\u003e`, `\u003c=`, and `\u003c`.\n * status: Can be `done`, `in_progress`, or `failed`. Allowed\n operators are `=`, and `!=`.\n\n Filter expression supports conjunction (AND) and disjunction (OR)\n logical operators. However, the serviceName restriction must be at the\n top-level and can only be combined with other restrictions via the AND\n logical operator.\n\n Examples:\n\n * `serviceName={some-service}.googleapis.com`\n * `serviceName={some-service}.googleapis.com AND startTime\u003e=\"2017-02-01\"`\n * `serviceName={some-service}.googleapis.com AND status=done`\n * `serviceName={some-service}.googleapis.com AND (status=done OR startTime\u003e=\"2017-02-01\")`", + "type": "string" }, - "type": "object" - }, - "type": "array" - } - }, - "id": "Status" - }, - "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - }, - "condition": { - "$ref": "Expr", - "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." - } - }, - "id": "Binding" - }, - "AuthProvider": { - "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", - "type": "object", - "properties": { - "authorizationUrl": { - "description": "Redirect URL if JWT token is required but no present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.", - "type": "string" - }, - "issuer": { - "description": "Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com", - "type": "string" - }, - "id": { - "description": "The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".", - "type": "string" - }, - "jwksUri": { - "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs", - "type": "string" - }, - "audiences": { - "description": "The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", - "type": "string" - } - }, - "id": "AuthProvider" - }, - "Service": { - "id": "Service", - "description": "`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n type: google.api.Service\n config_version: 3\n name: calendar.googleapis.com\n title: Google Calendar API\n apis:\n - name: google.calendar.v3.Calendar\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", - "type": "object", - "properties": { - "context": { - "$ref": "Context", - "description": "Context configuration." - }, - "enums": { - "description": "A list of all enum types included in this API service. Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded. Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n enums:\n - name: google.someapi.v1.SomeEnum", - "items": { - "$ref": "Enum" - }, - "type": "array" - }, - "id": { - "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead.", - "type": "string" - }, - "usage": { - "$ref": "Usage", - "description": "Configuration controlling usage of this service." - }, - "metrics": { - "description": "Defines the metrics used by this service.", - "items": { - "$ref": "MetricDescriptor" - }, - "type": "array" - }, - "authentication": { - "$ref": "Authentication", - "description": "Auth configuration." - }, - "experimental": { - "description": "Experimental configuration.", - "$ref": "Experimental" - }, - "control": { - "$ref": "Control", - "description": "Configuration for the service control plane." - }, - "configVersion": { - "format": "uint32", - "description": "The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.", - "type": "integer" - }, - "monitoring": { - "$ref": "Monitoring", - "description": "Monitoring configuration." - }, - "systemTypes": { - "description": "A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.", - "items": { - "$ref": "Type" - }, - "type": "array" - }, - "producerProjectId": { - "description": "The Google project that owns this service.", - "type": "string" - }, - "visibility": { - "description": "API visibility configuration.", - "$ref": "Visibility" - }, - "quota": { - "$ref": "Quota", - "description": "Quota configuration." - }, - "billing": { - "description": "Billing configuration.", - "$ref": "Billing" - }, - "name": { - "description": "The DNS address at which this service is available,\ne.g. `calendar.googleapis.com`.", - "type": "string" - }, - "customError": { - "$ref": "CustomError", - "description": "Custom error configuration." - }, - "title": { - "description": "The product title for this service.", - "type": "string" - }, - "endpoints": { - "description": "Configuration for network endpoints. If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.", - "items": { - "$ref": "Endpoint" - }, - "type": "array" - }, - "apis": { - "description": "A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files.", - "items": { - "$ref": "Api" - }, - "type": "array" - }, - "logs": { - "description": "Defines the logs used by this service.", - "items": { - "$ref": "LogDescriptor" - }, - "type": "array" - }, - "types": { - "description": "A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included. Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n types:\n - name: google.protobuf.Int32", - "items": { - "$ref": "Type" - }, - "type": "array" - }, - "sourceInfo": { - "description": "Output only. The source information for this configuration if available.", - "$ref": "SourceInfo" - }, - "http": { - "description": "HTTP configuration.", - "$ref": "Http" - }, - "backend": { - "description": "API backend configuration.", - "$ref": "Backend" - }, - "systemParameters": { - "$ref": "SystemParameters", - "description": "System parameter configuration." - }, - "documentation": { - "$ref": "Documentation", - "description": "Additional API documentation." - }, - "monitoredResources": { - "description": "Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations.", - "items": { - "$ref": "MonitoredResourceDescriptor" - }, - "type": "array" - }, - "logging": { - "$ref": "Logging", - "description": "Logging configuration." - } - } - }, - "EnumValue": { - "description": "Enum value definition.", - "type": "object", - "properties": { - "number": { - "format": "int32", - "description": "Enum value number.", - "type": "integer" - }, - "name": { - "type": "string", - "description": "Enum value name." - }, - "options": { - "description": "Protocol buffer options.", - "items": { - "$ref": "Option" - }, - "type": "array" - } - }, - "id": "EnumValue" - }, - "ListOperationsResponse": { - "type": "object", - "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" - } - }, - "id": "ListOperationsResponse", - "description": "The response message for Operations.ListOperations." - }, - "CustomHttpPattern": { - "description": "A custom pattern is used for defining custom HTTP verb.", - "type": "object", - "properties": { - "kind": { - "description": "The name of this custom HTTP verb.", - "type": "string" - }, - "path": { - "description": "The path matched by this custom verb.", - "type": "string" - } - }, - "id": "CustomHttpPattern" - }, - "OperationMetadata": { - "description": "The metadata associated with a long running operation resource.", - "type": "object", - "properties": { - "progressPercentage": { - "format": "int32", - "description": "Percentage of completion of this operation, ranging from 0 to 100.", - "type": "integer" - }, - "startTime": { - "format": "google-datetime", - "description": "The start time of the operation.", - "type": "string" - }, - "steps": { - "description": "Detailed status information for each step. The order is undetermined.", - "items": { - "$ref": "Step" - }, - "type": "array" - }, - "resourceNames": { - "description": "The full name of the resources that this operation is directly\nassociated with.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "OperationMetadata" - }, - "SystemParameterRule": { - "description": "Define a system parameter rule mapping system parameter definitions to\nmethods.", - "type": "object", - "properties": { - "parameters": { - "description": "Define parameters. Multiple names may be defined for a parameter.\nFor a given method call, only one of them should be used. If multiple\nnames are used the behavior is implementation-dependent.\nIf none of the specified names are present the behavior is\nparameter-dependent.", - "items": { - "$ref": "SystemParameter" - }, - "type": "array" - }, - "selector": { - "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "SystemParameterRule" - }, - "HttpRule": { - "description": "`HttpRule` defines the mapping of an RPC method to one or more HTTP\nREST API methods. The mapping specifies how different portions of the RPC\nrequest message are mapped to URL path, URL query parameters, and\nHTTP request body. The mapping is typically specified as an\n`google.api.http` annotation on the RPC method,\nsee \"google/api/annotations.proto\" for details.\n\nThe mapping consists of a field specifying the path template and\nmethod kind. The path template can refer to fields in the request\nmessage, as in the example below which describes a REST GET\noperation on a resource collection of messages:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}/{sub.subfield}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n SubMessage sub = 2; // `sub.subfield` is url-mapped\n }\n message Message {\n string text = 1; // content of the resource\n }\n\nThe same http annotation can alternatively be expressed inside the\n`GRPC API Configuration` YAML file.\n\n http:\n rules:\n - selector: \u003cproto_package_name\u003e.Messaging.GetMessage\n get: /v1/messages/{message_id}/{sub.subfield}\n\nThis definition enables an automatic, bidrectional mapping of HTTP\nJSON to RPC. Example:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456/foo` | `GetMessage(message_id: \"123456\" sub: SubMessage(subfield: \"foo\"))`\n\nIn general, not only fields but also field paths can be referenced\nfrom a path pattern. Fields mapped to the path pattern cannot be\nrepeated and must have a primitive (non-message) type.\n\nAny fields in the request message which are not bound by the path\npattern automatically become (optional) HTTP query\nparameters. Assume the following definition of the request message:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n int64 revision = 2; // becomes a parameter\n SubMessage sub = 3; // `sub.subfield` becomes a parameter\n }\n\n\nThis enables a HTTP JSON to RPC mapping as below:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))`\n\nNote that fields which are mapped to HTTP parameters must have a\nprimitive type or a repeated primitive type. Message types are not\nallowed. In the case of a repeated type, the parameter can be\nrepeated in the URL, as in `...?param=A¶m=B`.\n\nFor HTTP method kinds which allow a request body, the `body` field\nspecifies the mapping. Consider a REST update method on the\nmessage resource collection:\n\n\n service Messaging {\n rpc UpdateMessage(UpdateMessageRequest) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"message\"\n };\n }\n }\n message UpdateMessageRequest {\n string message_id = 1; // mapped to the URL\n Message message = 2; // mapped to the body\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled, where the\nrepresentation of the JSON in the request body is determined by\nprotos JSON encoding:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })`\n\nThe special name `*` can be used in the body mapping to define that\nevery field not bound by the path template should be mapped to the\nrequest body. This enables the following alternative definition of\nthe update method:\n\n service Messaging {\n rpc UpdateMessage(Message) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"*\"\n };\n }\n }\n message Message {\n string message_id = 1;\n string text = 2;\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" text: \"Hi!\")`\n\nNote that when using `*` in the body mapping, it is not possible to\nhave HTTP parameters, as all fields not bound by the path end in\nthe body. This makes this option more rarely used in practice of\ndefining REST APIs. The common usage of `*` is in custom methods\nwhich don't use the URL at all for transferring data.\n\nIt is possible to define multiple HTTP methods for one RPC by using\nthe `additional_bindings` option. Example:\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http) = {\n get: \"/v1/messages/{message_id}\"\n additional_bindings {\n get: \"/v1/users/{user_id}/messages/{message_id}\"\n }\n };\n }\n }\n message GetMessageRequest {\n string message_id = 1;\n string user_id = 2;\n }\n\n\nThis enables the following two alternative HTTP JSON to RPC\nmappings:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456` | `GetMessage(message_id: \"123456\")`\n`GET /v1/users/me/messages/123456` | `GetMessage(user_id: \"me\" message_id: \"123456\")`\n\n# Rules for HTTP mapping\n\nThe rules for mapping HTTP path, query parameters, and body fields\nto the request message are as follows:\n\n1. The `body` field specifies either `*` or a field path, or is\n omitted. If omitted, it indicates there is no HTTP request body.\n2. Leaf fields (recursive expansion of nested messages in the\n request) can be classified into three types:\n (a) Matched in the URL template.\n (b) Covered by body (if body is `*`, everything except (a) fields;\n else everything under the body field)\n (c) All other fields.\n3. URL query parameters found in the HTTP request are mapped to (c) fields.\n4. Any body sent with an HTTP request can contain only (b) fields.\n\nThe syntax of the path template is as follows:\n\n Template = \"/\" Segments [ Verb ] ;\n Segments = Segment { \"/\" Segment } ;\n Segment = \"*\" | \"**\" | LITERAL | Variable ;\n Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ;\n FieldPath = IDENT { \".\" IDENT } ;\n Verb = \":\" LITERAL ;\n\nThe syntax `*` matches a single path segment. The syntax `**` matches zero\nor more path segments, which must be the last part of the path except the\n`Verb`. The syntax `LITERAL` matches literal text in the path.\n\nThe syntax `Variable` matches part of the URL path as specified by its\ntemplate. A variable template must not contain other variables. If a variable\nmatches a single path segment, its template may be omitted, e.g. `{var}`\nis equivalent to `{var=*}`.\n\nIf a variable contains exactly one path segment, such as `\"{var}\"` or\n`\"{var=*}\"`, when such a variable is expanded into a URL path, all characters\nexcept `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the\nDiscovery Document as `{var}`.\n\nIf a variable contains one or more path segments, such as `\"{var=foo/*}\"`\nor `\"{var=**}\"`, when such a variable is expanded into a URL path, all\ncharacters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables\nshow up in the Discovery Document as `{+var}`.\n\nNOTE: While the single segment variable matches the semantics of\n[RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2\nSimple String Expansion, the multi segment variable **does not** match\nRFC 6570 Reserved Expansion. The reason is that the Reserved Expansion\ndoes not expand special characters like `?` and `#`, which would lead\nto invalid URLs.\n\nNOTE: the field paths in variables and in the `body` must not refer to\nrepeated fields or map fields.", - "type": "object", - "properties": { - "additionalBindings": { - "description": "Additional HTTP bindings for the selector. Nested bindings must\nnot contain an `additional_bindings` field themselves (that is,\nthe nesting may only be one level deep).", - "items": { - "$ref": "HttpRule" - }, - "type": "array" - }, - "responseBody": { - "description": "The name of the response field whose value is mapped to the HTTP body of\nresponse. Other response fields are ignored. This field is optional. When\nnot set, the response message will be used as HTTP body of response.\nNOTE: the referred field must be not a repeated field and must be present\nat the top-level of response message type.", - "type": "string" - }, - "mediaUpload": { - "description": "Use this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead\n[][google.bytestream.RestByteStream] as an API to your\nconfiguration for Bytestream methods.", - "$ref": "MediaUpload" - }, - "selector": { - "description": "Selects methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "custom": { - "$ref": "CustomHttpPattern", - "description": "The custom pattern is used for specifying an HTTP method that is not\nincluded in the `pattern` field, such as HEAD, or \"*\" to leave the\nHTTP method unspecified for this rule. The wild-card rule is useful\nfor services that provide content to Web (HTML) clients." - }, - "patch": { - "description": "Used for updating a resource.", - "type": "string" - }, - "get": { - "type": "string", - "description": "Used for listing and getting information about resources." - }, - "put": { - "description": "Used for updating a resource.", - "type": "string" - }, - "delete": { - "description": "Used for deleting a resource.", - "type": "string" - }, - "body": { - "type": "string", - "description": "The name of the request field whose value is mapped to the HTTP body, or\n`*` for mapping all fields not captured by the path pattern to the HTTP\nbody. NOTE: the referred field must not be a repeated field and must be\npresent at the top-level of request message type." - }, - "mediaDownload": { - "$ref": "MediaDownload", - "description": "Use this only for Scotty Requests. Do not use this for bytestream methods.\nFor media support, add instead [][google.bytestream.RestByteStream] as an\nAPI to your configuration." - }, - "post": { - "description": "Used for creating a resource.", - "type": "string" - } - }, - "id": "HttpRule" - }, - "VisibilityRule": { - "description": "A visibility rule provides visibility configuration for an individual API\nelement.", - "type": "object", - "properties": { - "restriction": { - "description": "A comma-separated list of visibility labels that apply to the `selector`.\nAny of the listed labels can be used to grant the visibility.\n\nIf a rule has multiple labels, removing one of the labels but not all of\nthem can break clients.\n\nExample:\n\n visibility:\n rules:\n - selector: google.calendar.Calendar.EnhancedSearch\n restriction: GOOGLE_INTERNAL, TRUSTED_TESTER\n\nRemoving GOOGLE_INTERNAL from this restriction will break clients that\nrely on this method and only had access to it through GOOGLE_INTERNAL.", - "type": "string" - }, - "selector": { - "type": "string", - "description": "Selects methods, messages, fields, enums, etc. to which this rule applies.\n\nRefer to selector for syntax details." - } - }, - "id": "VisibilityRule" - }, - "MonitoringDestination": { - "description": "Configuration of a specific monitoring destination (the producer project\nor the consumer project).", - "type": "object", - "properties": { - "monitoredResource": { - "type": "string", - "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section." - }, - "metrics": { - "description": "Names of the metrics to report to this monitoring destination.\nEach name must be defined in Service.metrics section.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "MonitoringDestination" - }, - "Visibility": { - "type": "object", - "properties": { - "rules": { - "description": "A list of visibility rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "VisibilityRule" - }, - "type": "array" - } - }, - "id": "Visibility", - "description": "`Visibility` defines restrictions for the visibility of service\nelements. Restrictions are specified using visibility labels\n(e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.\n\nUsers and projects can have access to more than one visibility label. The\neffective visibility for multiple labels is the union of each label's\nelements, plus any unrestricted elements.\n\nIf an element and its parents have no restrictions, visibility is\nunconditionally granted.\n\nExample:\n\n visibility:\n rules:\n - selector: google.calendar.Calendar.EnhancedSearch\n restriction: TRUSTED_TESTER\n - selector: google.calendar.Calendar.Delegate\n restriction: GOOGLE_INTERNAL\n\nHere, all methods are publicly visible except for the restricted methods\nEnhancedSearch and Delegate." - }, - "SystemParameters": { - "id": "SystemParameters", - "description": "### System parameter configuration\n\nA system parameter is a special kind of parameter defined by the API\nsystem, not by an individual API. It is typically mapped to an HTTP header\nand/or a URL query parameter. This configuration specifies which methods\nchange the names of the system parameters.", - "type": "object", - "properties": { - "rules": { - "description": "Define system parameters.\n\nThe parameters defined here will override the default parameters\nimplemented by the system. If this field is missing from the service\nconfig, default system parameters will be used. Default system parameters\nand names is implementation-dependent.\n\nExample: define api key for all methods\n\n system_parameters\n rules:\n - selector: \"*\"\n parameters:\n - name: api_key\n url_query_parameter: api_key\n\n\nExample: define 2 api key names for a specific method.\n\n system_parameters\n rules:\n - selector: \"/ListShelves\"\n parameters:\n - name: api_key\n http_header: Api-Key1\n - name: api_key\n http_header: Api-Key2\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "SystemParameterRule" - }, - "type": "array" - } - } - }, - "ConfigChange": { - "type": "object", - "properties": { - "changeType": { - "enum": [ - "CHANGE_TYPE_UNSPECIFIED", - "ADDED", - "REMOVED", - "MODIFIED" - ], - "description": "The type for this change, either ADDED, REMOVED, or MODIFIED.", - "type": "string", - "enumDescriptions": [ - "No value was provided.", - "The changed object exists in the 'new' service configuration, but not\nin the 'old' service configuration.", - "The changed object exists in the 'old' service configuration, but not\nin the 'new' service configuration.", - "The changed object exists in both service configurations, but its value\nis different." - ] - }, - "element": { - "description": "Object hierarchy path to the change, with levels separated by a '.'\ncharacter. For repeated fields, an applicable unique identifier field is\nused for the index (usually selector, name, or id). For maps, the term\n'key' is used. If the field has no unique identifier, the numeric index\nis used.\nExamples:\n- visibility.rules[selector==\"google.LibraryService.CreateBook\"].restriction\n- quota.metric_rules[selector==\"google\"].metric_costs[key==\"reads\"].value\n- logging.producer_destinations[0]", - "type": "string" - }, - "advices": { - "description": "Collection of advice provided for this change, useful for determining the\npossible impact of this change.", - "items": { - "$ref": "Advice" - }, - "type": "array" - }, - "oldValue": { - "type": "string", - "description": "Value of the changed object in the old Service configuration,\nin JSON format. This field will not be populated if ChangeType == ADDED." - }, - "newValue": { - "description": "Value of the changed object in the new Service configuration,\nin JSON format. This field will not be populated if ChangeType == REMOVED.", - "type": "string" - } - }, - "id": "ConfigChange", - "description": "Output generated from semantically comparing two versions of a service\nconfiguration.\n\nIncludes detailed information about a field that have changed with\napplicable advice about potential consequences for the change, such as\nbackwards-incompatibility." - }, - "Quota": { - "properties": { - "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one\nor more metrics.", - "items": { - "$ref": "MetricRule" - }, - "type": "array" - }, - "limits": { - "description": "List of `QuotaLimit` definitions for the service.", - "items": { - "$ref": "QuotaLimit" - }, - "type": "array" - } - }, - "id": "Quota", - "description": "Quota configuration helps to achieve fairness and budgeting in service\nusage.\n\nThe quota configuration works this way:\n- The service configuration defines a set of metrics.\n- For API calls, the quota.metric_rules maps methods to metrics with\n corresponding costs.\n- The quota.limits defines limits on the metrics, which will be used for\n quota checks at runtime.\n\nAn example quota configuration in yaml format:\n\n quota:\n\n - name: apiWriteQpsPerProject\n metric: library.googleapis.com/write_calls\n unit: \"1/min/{project}\" # rate limit for consumer projects\n values:\n STANDARD: 10000\n\n\n # The metric rules bind all methods to the read_calls metric,\n # except for the UpdateBook and DeleteBook methods. These two methods\n # are mapped to the write_calls metric, with the UpdateBook method\n # consuming at twice rate as the DeleteBook method.\n metric_rules:\n - selector: \"*\"\n metric_costs:\n library.googleapis.com/read_calls: 1\n - selector: google.example.library.v1.LibraryService.UpdateBook\n metric_costs:\n library.googleapis.com/write_calls: 2\n - selector: google.example.library.v1.LibraryService.DeleteBook\n metric_costs:\n library.googleapis.com/write_calls: 1\n\n Corresponding Metric definition:\n\n metrics:\n - name: library.googleapis.com/read_calls\n display_name: Read requests\n metric_kind: DELTA\n value_type: INT64\n\n - name: library.googleapis.com/write_calls\n display_name: Write requests\n metric_kind: DELTA\n value_type: INT64", - "type": "object" - }, - "Rollout": { - "description": "A rollout resource that defines how service configuration versions are pushed\nto control plane systems. Typically, you create a new version of the\nservice config, and then create a Rollout to push the service config.", - "type": "object", - "properties": { - "rolloutId": { - "description": "Optional unique identifier of this Rollout. Only lower case letters, digits\n and '-' are allowed.\n\nIf not specified by client, the server will generate one. The generated id\nwill have the form of \u003cdate\u003e\u003crevision number\u003e, where \"date\" is the create\ndate in ISO 8601 format. \"revision number\" is a monotonically increasing\npositive number that is reset every day for each service.\nAn example of the generated rollout_id is '2016-02-16r1'", - "type": "string" - }, - "deleteServiceStrategy": { - "description": "The strategy associated with a rollout to delete a `ManagedService`.\nReadonly.", - "$ref": "DeleteServiceStrategy" - }, - "createTime": { - "format": "google-datetime", - "description": "Creation time of the rollout. Readonly.", - "type": "string" - }, - "status": { - "description": "The status of this rollout. Readonly. In case of a failed rollout,\nthe system will automatically rollback to the current Rollout\nversion. Readonly.", - "type": "string", - "enumDescriptions": [ - "No status specified.", - "The Rollout is in progress.", - "The Rollout has completed successfully.", - "The Rollout has been cancelled. This can happen if you have overlapping\nRollout pushes, and the previous ones will be cancelled.", - "The Rollout has failed and the rollback attempt has failed too.", - "The Rollout has not started yet and is pending for execution.", - "The Rollout has failed and rolled back to the previous successful\nRollout." - ], - "enum": [ - "ROLLOUT_STATUS_UNSPECIFIED", - "IN_PROGRESS", - "SUCCESS", - "CANCELLED", - "FAILED", - "PENDING", - "FAILED_ROLLED_BACK" - ] - }, - "serviceName": { - "type": "string", - "description": "The name of the service associated with this Rollout." - }, - "trafficPercentStrategy": { - "$ref": "TrafficPercentStrategy", - "description": "Google Service Control selects service configurations based on\ntraffic percentage." - }, - "createdBy": { - "description": "The user who created the Rollout. Readonly.", - "type": "string" - } - }, - "id": "Rollout" - }, - "GenerateConfigReportRequest": { - "type": "object", - "properties": { - "oldConfig": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Service configuration against which the comparison will be done.\nFor this version of API, the supported types are\ngoogle.api.servicemanagement.v1.ConfigRef,\ngoogle.api.servicemanagement.v1.ConfigSource,\nand google.api.Service", - "type": "object" - }, - "newConfig": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Service configuration for which we want to generate the report.\nFor this version of API, the supported types are\ngoogle.api.servicemanagement.v1.ConfigRef,\ngoogle.api.servicemanagement.v1.ConfigSource,\nand google.api.Service", - "type": "object" - } - }, - "id": "GenerateConfigReportRequest", - "description": "Request message for GenerateConfigReport method." - }, - "SetIamPolicyRequest": { - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest", - "description": "Request message for `SetIamPolicy` method." - }, - "DeleteServiceStrategy": { - "id": "DeleteServiceStrategy", - "description": "Strategy used to delete a service. This strategy is a placeholder only\nused by the system generated rollout to delete a service.", - "type": "object", - "properties": {} - }, - "Step": { - "type": "object", - "properties": { - "status": { - "enumDescriptions": [ - "Unspecifed code.", - "The operation or step has completed without errors.", - "The operation or step has not started yet.", - "The operation or step is in progress.", - "The operation or step has completed with errors. If the operation is\nrollbackable, the rollback completed with errors too.", - "The operation or step has completed with cancellation." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "DONE", - "NOT_STARTED", - "IN_PROGRESS", - "FAILED", - "CANCELLED" - ], - "description": "The status code.", - "type": "string" - }, - "description": { - "description": "The short description of the step.", - "type": "string" - } - }, - "id": "Step", - "description": "Represents the status of one operation step." - }, - "LoggingDestination": { - "description": "Configuration of a specific logging destination (the producer project\nor the consumer project).", - "type": "object", - "properties": { - "logs": { - "description": "Names of the logs to be sent to this destination. Each name must\nbe defined in the Service.logs section. If the log name is\nnot a domain scoped name, it will be automatically prefixed with\nthe service name followed by \"/\".", - "items": { - "type": "string" - }, - "type": "array" - }, - "monitoredResource": { - "description": "The monitored resource type. The type must be defined in the\nService.monitored_resources section.", - "type": "string" - } - }, - "id": "LoggingDestination" - }, - "Option": { - "properties": { - "name": { - "description": "The option's name. For protobuf built-in options (options defined in\ndescriptor.proto), this is the short name. For example, `\"map_entry\"`.\nFor custom options, it should be the fully-qualified name. For example,\n`\"google.api.http\"`.", - "type": "string" - }, - "value": { - "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." - }, - "description": "The option's value packed in an Any message. If the value is a primitive,\nthe corresponding wrapper type defined in google/protobuf/wrappers.proto\nshould be used. If the value is an enum, it should be stored as an int32\nvalue using the google.protobuf.Int32Value type.", - "type": "object" - } - }, - "id": "Option", - "description": "A protocol buffer option, which can be attached to a message, field,\nenumeration, etc.", - "type": "object" - }, - "Logging": { - "description": "Logging configuration of the service.\n\nThe following example shows how to configure logs to be sent to the\nproducer and consumer projects. In the example, the `activity_history`\nlog is sent to both the producer and consumer projects, whereas the\n`purchase_history` log is only sent to the producer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n logs:\n - name: activity_history\n labels:\n - key: /customer_id\n - name: purchase_history\n logging:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history\n - purchase_history\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history", - "type": "object", - "properties": { - "consumerDestinations": { - "description": "Logging configurations for sending logs to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none consumer destination.", - "items": { - "$ref": "LoggingDestination" - }, - "type": "array" - }, - "producerDestinations": { - "description": "Logging configurations for sending logs to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none producer destination.", - "items": { - "$ref": "LoggingDestination" - }, - "type": "array" - } - }, - "id": "Logging" - }, - "QuotaLimit": { - "properties": { - "duration": { - "description": "Duration of this limit in textual notation. Example: \"100s\", \"24h\", \"1d\".\nFor duration longer than a day, only multiple of days is supported. We\nsupport only \"100s\" and \"1d\" for now. Additional support will be added in\nthe future. \"0\" indicates indefinite duration.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "freeTier": { - "format": "int64", - "description": "Free tier value displayed in the Developers Console for this limit.\nThe free tier is the number of tokens that will be subtracted from the\nbilled amount when billing is enabled.\nThis field can only be set on a limit with duration \"1d\", in a billable\ngroup; it is invalid on any other limit. If this field is not set, it\ndefaults to 0, indicating that there is no free tier for this service.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "defaultLimit": { - "format": "int64", - "description": "Default number of tokens that can be consumed during the specified\nduration. This is the number of tokens assigned when a client\napplication developer activates the service for his/her project.\n\nSpecifying a value of 0 will block all requests. This can be used if you\nare provisioning quota to selected consumers and blocking others.\nSimilarly, a value of -1 will indicate an unlimited quota. No other\nnegative values are allowed.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "displayName": { - "type": "string", - "description": "User-visible display name for this limit.\nOptional. If not set, the UI will provide a default display name based on\nthe quota configuration. This field can be used to override the default\ndisplay name generated from the configuration." - }, - "description": { - "description": "Optional. User-visible, extended description for this quota limit.\nShould be used only when more context is needed to understand this limit\nthan provided by the limit's display name (see: `display_name`).", - "type": "string" - }, - "metric": { - "description": "The name of the metric this quota limit applies to. The quota limits with\nthe same metric will be checked together during runtime. The metric must be\ndefined within the service config.\n\nUsed by metric-based quotas only.", - "type": "string" - }, - "values": { - "description": "Tiered limit values, currently only STANDARD is supported.", - "type": "object", - "additionalProperties": { - "format": "int64", - "type": "string" - } - }, - "unit": { - "description": "Specify the unit of the quota limit. It uses the same syntax as\nMetric.unit. The supported unit kinds are determined by the quota\nbackend system.\n\nThe [Google Service Control](https://cloud.google.com/service-control)\nsupports the following unit components:\n* One of the time intevals:\n * \"/min\" for quota every minute.\n * \"/d\" for quota every 24 hours, starting 00:00 US Pacific Time.\n * Otherwise the quota won't be reset by time, such as storage limit.\n* One and only one of the granted containers:\n * \"/{project}\" quota for a project\n\nHere are some examples:\n* \"1/min/{project}\" for quota per minute per project.\n\nNote: the order of unit components is insignificant.\nThe \"1\" at the beginning is required to follow the metric unit syntax.\n\nUsed by metric-based quotas only.", - "type": "string" - }, - "maxLimit": { - "format": "int64", - "description": "Maximum number of tokens that can be consumed during the specified\nduration. Client application developers can override the default limit up\nto this maximum. If specified, this value cannot be set to a value less\nthan the default limit. If not specified, it is set to the default limit.\n\nTo allow clients to apply overrides with no upper bound, set this to -1,\nindicating unlimited maximum quota.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "name": { - "description": "Name of the quota limit. The name is used to refer to the limit when\noverriding the default limit on per-consumer basis.\n\nFor metric-based quota limits, the name must be provided, and it must be\nunique within the service. The name can only include alphanumeric\ncharacters as well as '-'.\n\nThe maximum length of the limit name is 64 characters.\n\nThe name of a limit is used as a unique identifier for this limit.\nTherefore, once a limit has been put into use, its name should be\nimmutable. You can use the display_name field to provide a user-friendly\nname for the limit. The display name can be evolved over time without\naffecting the identity of the limit.", - "type": "string" - } - }, - "id": "QuotaLimit", - "description": "`QuotaLimit` defines a specific limit that applies over a specified duration\nfor a limit type. There can be at most one limit for a duration and limit\ntype combination defined within a `QuotaGroup`.", - "type": "object" - }, - "Method": { - "type": "object", - "properties": { - "responseTypeUrl": { - "type": "string", - "description": "The URL of the output message type." - }, - "options": { - "description": "Any metadata attached to the method.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "responseStreaming": { - "description": "If true, the response is streamed.", - "type": "boolean" - }, - "name": { - "description": "The simple name of this method.", - "type": "string" - }, - "requestTypeUrl": { - "description": "A URL of the input message type.", - "type": "string" - }, - "requestStreaming": { - "description": "If true, the request is streamed.", - "type": "boolean" - }, - "syntax": { - "enumDescriptions": [ - "Syntax `proto2`.", - "Syntax `proto3`." - ], - "enum": [ - "SYNTAX_PROTO2", - "SYNTAX_PROTO3" - ], - "description": "The source syntax of this method.", - "type": "string" - } - }, - "id": "Method", - "description": "Method represents a method of an API interface." - }, - "ListServiceRolloutsResponse": { - "description": "Response message for ListServiceRollouts method.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "The token of the next page of results.", - "type": "string" - }, - "rollouts": { - "description": "The list of rollout resources.", - "items": { - "$ref": "Rollout" - }, - "type": "array" - } - }, - "id": "ListServiceRolloutsResponse" - }, - "ConfigRef": { - "type": "object", - "properties": { - "name": { - "description": "Resource name of a service config. It must have the following\nformat: \"services/{service name}/configs/{config id}\".", - "type": "string" - } - }, - "id": "ConfigRef", - "description": "Represents a service configuration with its name and id." - }, - "Mixin": { - "type": "object", - "properties": { - "name": { - "description": "The fully qualified name of the interface which is included.", - "type": "string" - }, - "root": { - "description": "If non-empty specifies a path under which inherited HTTP paths\nare rooted.", - "type": "string" - } - }, - "id": "Mixin", - "description": "Declares an API Interface to be included in this interface. The including\ninterface must redeclare all the methods from the included interface, but\ndocumentation and options are inherited as follows:\n\n- If after comment and whitespace stripping, the documentation\n string of the redeclared method is empty, it will be inherited\n from the original method.\n\n- Each annotation belonging to the service config (http,\n visibility) which is not set in the redeclared method will be\n inherited.\n\n- If an http annotation is inherited, the path pattern will be\n modified as follows. Any version prefix will be replaced by the\n version of the including interface plus the root path if\n specified.\n\nExample of a simple mixin:\n\n package google.acl.v1;\n service AccessControl {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v1/{resource=**}:getAcl\";\n }\n }\n\n package google.storage.v2;\n service Storage {\n // rpc GetAcl(GetAclRequest) returns (Acl);\n\n // Get a data record.\n rpc GetData(GetDataRequest) returns (Data) {\n option (google.api.http).get = \"/v2/{resource=**}\";\n }\n }\n\nExample of a mixin configuration:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n\nThe mixin construct implies that all methods in `AccessControl` are\nalso declared with same name and request/response types in\n`Storage`. A documentation generator or annotation processor will\nsee the effective `Storage.GetAcl` method after inherting\ndocumentation and annotations as follows:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/{resource=**}:getAcl\";\n }\n ...\n }\n\nNote how the version in the path pattern changed from `v1` to `v2`.\n\nIf the `root` field in the mixin is specified, it should be a\nrelative path under which inherited HTTP paths are placed. Example:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n root: acls\n\nThis implies the following inherited HTTP annotation:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\";\n }\n ...\n }" - }, - "FlowOperationMetadata": { - "id": "FlowOperationMetadata", - "description": "The metadata associated with a long running operation resource.", - "type": "object", - "properties": { - "flowName": { - "description": "The name of the top-level flow corresponding to this operation.\nMust be equal to the \"name\" field for a FlowName enum.", - "type": "string" - }, - "resourceNames": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The full name of the resources that this flow is directly associated with." - }, - "deadline": { - "format": "google-datetime", - "description": "Deadline for the flow to complete, to prevent orphaned Operations.\n\nIf the flow has not completed by this time, it may be terminated by\nthe engine, or force-failed by Operation lookup.\n\nNote that this is not a hard deadline after which the Flow will\ndefinitely be failed, rather it is a deadline after which it is reasonable\nto suspect a problem and other parts of the system may kill operation\nto ensure we don't have orphans.\nsee also: go/prevent-orphaned-operations", - "type": "string" - }, - "cancelState": { - "description": "The state of the operation with respect to cancellation.", - "type": "string", - "enumDescriptions": [ - "Default state, cancellable but not cancelled.", - "The operation has proceeded past the point of no return and cannot\nbe cancelled.", - "The operation has been cancelled, work should cease\nand any needed rollback steps executed." - ], - "enum": [ - "RUNNING", - "UNCANCELLABLE", - "CANCELLED" - ] - }, - "operationType": { - "format": "int32", - "description": "Operation type which is a flow type and subtype info as that is missing in\nour datastore otherwise. This maps to the ordinal value of the enum:\njcg/api/tenant/operations/OperationNamespace.java", - "type": "integer" - }, - "startTime": { - "format": "google-datetime", - "description": "The start time of the operation.", - "type": "string" - }, - "surface": { - "enumDescriptions": [ - "", - "", - "", - "TenancyUnit, ServiceNetworking fall under this" - ], - "enum": [ - "UNSPECIFIED_OP_SERVICE", - "SERVICE_MANAGEMENT", - "SERVICE_USAGE", - "SERVICE_CONSUMER_MANAGEMENT" - ], - "type": "string" - } - } - }, - "CustomError": { - "description": "Customize service error responses. For example, list any service\nspecific protobuf types that can appear in error detail lists of\nerror responses.\n\nExample:\n\n custom_error:\n types:\n - google.foo.v1.CustomError\n - google.foo.v1.AnotherError", - "type": "object", - "properties": { - "types": { - "description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", - "items": { - "type": "string" - }, - "type": "array" - }, - "rules": { - "description": "The list of custom error rules that apply to individual API messages.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "CustomErrorRule" - }, - "type": "array" - } - }, - "id": "CustomError" - }, - "Http": { - "description": "Defines the HTTP configuration for an API service. It contains a list of\nHttpRule, each specifying the mapping of an RPC method\nto one or more HTTP REST API methods.", - "type": "object", - "properties": { - "rules": { - "description": "A list of HTTP configuration rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "HttpRule" - }, - "type": "array" - }, - "fullyDecodeReservedExpansion": { - "description": "When set to true, URL path parmeters will be fully URI-decoded except in\ncases of single segment matches in reserved expansion, where \"%2F\" will be\nleft encoded.\n\nThe default behavior is to not decode RFC 6570 reserved characters in multi\nsegment matches.", - "type": "boolean" - } - }, - "id": "Http" - }, - "SourceInfo": { - "type": "object", - "properties": { - "sourceFiles": { - "description": "All files used during config generation.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" + "name": { + "location": "query", + "description": "Not used.", + "type": "string" + }, + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "The maximum number of operations to return. If unspecified, defaults to\n50. The maximum value is 100.", + "format": "int32", + "type": "integer" } }, - "type": "array" - } - }, - "id": "SourceInfo", - "description": "Source information used to create a Service Config" - }, - "Control": { - "properties": { - "environment": { - "description": "The service control environment to use. If empty, no control plane\nfeature (like quota and billing) will be enabled.", - "type": "string" - } - }, - "id": "Control", - "description": "Selects and configures the service controller used by the service. The\nservice controller handles features like abuse, quota, billing, logging,\nmonitoring, etc.", - "type": "object" - }, - "SystemParameter": { - "description": "Define a parameter's name and location. The parameter may be passed as either\nan HTTP header or a URL query parameter, and if both are passed the behavior\nis implementation-dependent.", - "type": "object", - "properties": { - "urlQueryParameter": { - "description": "Define the URL query parameter name to use for the parameter. It is case\nsensitive.", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/operations", + "path": "v1/operations", + "id": "servicemanagement.operations.list", + "description": "Lists service operations that match the specified filter in the request.", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET" }, - "httpHeader": { - "description": "Define the HTTP header name to use for the parameter. It is case\ninsensitive.", - "type": "string" + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": { + "name": { + "pattern": "^operations/.+$", + "location": "path", + "description": "The name of the operation resource.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/operations/{operationsId}", + "id": "servicemanagement.operations.get", + "path": "v1/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + } + } + }, + "services": { + "methods": { + "setIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^services/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/services/{servicesId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "servicemanagement.services.setIamPolicy", + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "request": { + "$ref": "SetIamPolicyRequest" + } }, - "name": { - "description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.", - "type": "string" + "disable": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "POST", + "parameters": { + "serviceName": { + "location": "path", + "description": "Name of the service to disable. Specifying an unknown service name\nwill cause the request to fail.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services/{serviceName}:disable", + "path": "v1/services/{serviceName}:disable", + "id": "servicemanagement.services.disable", + "request": { + "$ref": "DisableServiceRequest" + }, + "description": "Disables a service for a project, so it can no longer be\nbe used for the project. It prevents accidental usage that may cause\nunexpected billing charges or security leaks.\n\nOperation\u003cresponse: DisableServiceResponse\u003e" + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^services/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/services/{servicesId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "servicemanagement.services.getIamPolicy" + }, + "undelete": { + "httpMethod": "POST", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "serviceName": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services/{serviceName}:undelete", + "id": "servicemanagement.services.undelete", + "path": "v1/services/{serviceName}:undelete", + "description": "Revives a previously deleted managed service. The method restores the\nservice using the configuration at the time the service was deleted.\nThe target service must exist and must have been deleted within the\nlast 30 days.\n\nOperation\u003cresponse: UndeleteServiceResponse\u003e" + }, + "list": { + "path": "v1/services", + "id": "servicemanagement.services.list", + "description": "Lists managed services.\n\nReturns all public services. For authenticated users, also returns all\nservices the calling user has \"servicemanagement.services.get\" permission\nfor.\n\n**BETA:** If the caller specifies the `consumer_id`, it returns only the\nservices enabled on the consumer. The `consumer_id` must have the format\nof \"project:{PROJECT-ID}\".", + "response": { + "$ref": "ListServicesResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "consumerId": { + "location": "query", + "description": "Include services consumed by the specified consumer.\n\nThe Google Service Management implementation accepts the following\nforms:\n- project:\u003cproject_id\u003e", + "type": "string" + }, + "pageToken": { + "description": "Token identifying which result to start with; returned by a previous list\ncall.", + "type": "string", + "location": "query" + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Requested size of the next page of data.", + "format": "int32" + }, + "producerProjectId": { + "type": "string", + "location": "query", + "description": "Include services produced by the specified project." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "flatPath": "v1/services" + }, + "create": { + "description": "Creates a new managed service.\nPlease note one producer project can own no more than 20 services.\n\nOperation\u003cresponse: ManagedService\u003e", + "request": { + "$ref": "ManagedService" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": {}, + "flatPath": "v1/services", + "path": "v1/services", + "id": "servicemanagement.services.create" + }, + "generateConfigReport": { + "request": { + "$ref": "GenerateConfigReportRequest" + }, + "description": "Generates and returns a report (errors, warnings and changes from\nexisting configurations) associated with\nGenerateConfigReportRequest.new_value\n\nIf GenerateConfigReportRequest.old_value is specified,\nGenerateConfigReportRequest will contain a single ChangeReport based on the\ncomparison between GenerateConfigReportRequest.new_value and\nGenerateConfigReportRequest.old_value.\nIf GenerateConfigReportRequest.old_value is not specified, this method\nwill compare GenerateConfigReportRequest.new_value with the last pushed\nservice configuration.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "GenerateConfigReportResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services:generateConfigReport", + "id": "servicemanagement.services.generateConfigReport", + "path": "v1/services:generateConfigReport" + }, + "get": { + "flatPath": "v1/services/{serviceName}", + "path": "v1/services/{serviceName}", + "id": "servicemanagement.services.get", + "description": "Gets a managed service. Authentication is required unless the service is\npublic.", + "response": { + "$ref": "ManagedService" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "GET", + "parameters": { + "serviceName": { + "description": "The name of the service. See the `ServiceManager` overview for naming\nrequirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ] + }, + "testIamPermissions": { + "id": "servicemanagement.services.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^services/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "flatPath": "v1/services/{servicesId}:testIamPermissions" + }, + "getConfig": { + "flatPath": "v1/services/{serviceName}/config", + "path": "v1/services/{serviceName}/config", + "id": "servicemanagement.services.getConfig", + "description": "Gets a service configuration (version) for a managed service.", + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "serviceName": { + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string" + }, + "configId": { + "description": "The id of the service configuration resource.", + "type": "string", + "location": "query" + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", + "type": "string", + "location": "query" + } + } + }, + "delete": { + "description": "Deletes a managed service. This method will change the service to the\n`Soft-Delete` state for 30 days. Within this period, service producers may\ncall UndeleteService to restore the service.\nAfter 30 days, the service will be permanently deleted.\n\nOperation\u003cresponse: google.protobuf.Empty\u003e", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "DELETE", + "parameters": { + "serviceName": { + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services/{serviceName}", + "path": "v1/services/{serviceName}", + "id": "servicemanagement.services.delete" + }, + "enable": { + "description": "Enables a service for a project, so it can be used\nfor the project. See\n[Cloud Auth Guide](https://cloud.google.com/docs/authentication) for\nmore information.\n\nOperation\u003cresponse: EnableServiceResponse\u003e", + "request": { + "$ref": "EnableServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": { + "serviceName": { + "location": "path", + "description": "Name of the service to enable. Specifying an unknown service name will\ncause the request to fail.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/services/{serviceName}:enable", + "path": "v1/services/{serviceName}:enable", + "id": "servicemanagement.services.enable" } }, - "id": "SystemParameter" + "resources": { + "consumers": { + "methods": { + "setIamPolicy": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string", + "pattern": "^services/[^/]+/consumers/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:setIamPolicy", + "id": "servicemanagement.services.consumers.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy." + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "resource": { + "pattern": "^services/[^/]+/consumers/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "servicemanagement.services.consumers.testIamPermissions" + }, + "getIamPolicy": { + "parameters": { + "resource": { + "pattern": "^services/[^/]+/consumers/[^/]+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "servicemanagement.services.consumers.getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST" + } + } + }, + "rollouts": { + "methods": { + "list": { + "path": "v1/services/{serviceName}/rollouts", + "id": "servicemanagement.services.rollouts.list", + "description": "Lists the history of the service configuration rollouts for a managed\nservice, from the newest to the oldest.", + "response": { + "$ref": "ListServiceRolloutsResponse" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "filter": { + "description": "Use `filter` to return subset of rollouts.\nThe following filters are supported:\n -- To limit the results to only those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',\n use filter='status=SUCCESS'\n -- To limit the results to those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'\n or 'FAILED', use filter='status=CANCELLED OR status=FAILED'", + "type": "string", + "location": "query" + }, + "serviceName": { + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string" + }, + "pageToken": { + "location": "query", + "description": "The token of the page to retrieve.", + "type": "string" + }, + "pageSize": { + "description": "The max number of items to include in the response list.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "flatPath": "v1/services/{serviceName}/rollouts" + }, + "get": { + "response": { + "$ref": "Rollout" + }, + "parameterOrder": [ + "serviceName", + "rolloutId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "serviceName": { + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string" + }, + "rolloutId": { + "description": "The id of the rollout resource.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/services/{serviceName}/rollouts/{rolloutId}", + "path": "v1/services/{serviceName}/rollouts/{rolloutId}", + "id": "servicemanagement.services.rollouts.get", + "description": "Gets a service configuration rollout." + }, + "create": { + "request": { + "$ref": "Rollout" + }, + "description": "Creates a new service configuration rollout. Based on rollout, the\nGoogle Service Management will roll out the service configurations to\ndifferent backend services. For example, the logging configuration will be\npushed to Google Cloud Logging.\n\nPlease note that any previous pending and running Rollouts and associated\nOperations will be automatically cancelled so that the latest Rollout will\nnot be blocked by previous Rollouts.\n\nOperation\u003cresponse: Rollout\u003e", + "httpMethod": "POST", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "serviceName": { + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/services/{serviceName}/rollouts", + "id": "servicemanagement.services.rollouts.create", + "path": "v1/services/{serviceName}/rollouts" + } + } + }, + "configs": { + "methods": { + "create": { + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "serviceName" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": { + "serviceName": { + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/services/{serviceName}/configs", + "path": "v1/services/{serviceName}/configs", + "id": "servicemanagement.services.configs.create", + "description": "Creates a new service configuration (version) for a managed service.\nThis method only stores the service configuration. To roll out the service\nconfiguration to backend systems please call\nCreateServiceRollout.", + "request": { + "$ref": "Service" + } + }, + "submit": { + "description": "Creates a new service configuration (version) for a managed service based\non\nuser-supplied configuration source files (for example: OpenAPI\nSpecification). This method stores the source configurations as well as the\ngenerated service configuration. To rollout the service configuration to\nother services,\nplease call CreateServiceRollout.\n\nOperation\u003cresponse: SubmitConfigSourceResponse\u003e", + "request": { + "$ref": "SubmitConfigSourceRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "parameters": { + "serviceName": { + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v1/services/{serviceName}/configs:submit", + "id": "servicemanagement.services.configs.submit", + "path": "v1/services/{serviceName}/configs:submit" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "serviceName" + ], + "response": { + "$ref": "ListServiceConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "parameters": { + "serviceName": { + "required": true, + "type": "string", + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`." + }, + "pageToken": { + "location": "query", + "description": "The token of the page to retrieve.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The max number of items to include in the response list.", + "format": "int32", + "type": "integer" + } + }, + "flatPath": "v1/services/{serviceName}/configs", + "id": "servicemanagement.services.configs.list", + "path": "v1/services/{serviceName}/configs", + "description": "Lists the history of the service configuration for a managed service,\nfrom the newest to the oldest." + }, + "get": { + "description": "Gets a service configuration (version) for a managed service.", + "response": { + "$ref": "Service" + }, + "parameterOrder": [ + "serviceName", + "configId" + ], + "httpMethod": "GET", + "parameters": { + "serviceName": { + "location": "path", + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", + "required": true, + "type": "string" + }, + "configId": { + "location": "path", + "description": "The id of the service configuration resource.", + "required": true, + "type": "string" + }, + "view": { + "location": "query", + "enum": [ + "BASIC", + "FULL" + ], + "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/service.management", + "https://www.googleapis.com/auth/service.management.readonly" + ], + "flatPath": "v1/services/{serviceName}/configs/{configId}", + "path": "v1/services/{serviceName}/configs/{configId}", + "id": "servicemanagement.services.configs.get" + } + } + } + } + } + }, + "parameters": { + "key": { + "type": "string", + "location": "query", + "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." }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + } + }, + "version": "v1", + "baseUrl": "https://servicemanagement.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", + "servicePath": "", + "basePath": "", + "revision": "20171013", + "documentationLink": "https://cloud.google.com/service-management/", + "id": "servicemanagement:v1", + "discoveryVersion": "v1", + "schemas": { "Monitoring": { - "id": "Monitoring", "description": "Monitoring configuration of the service.\n\nThe example below shows how to configure monitored resources and metrics\nfor monitoring. In the example, a monitored resource and two metrics are\ndefined. The `library.googleapis.com/book/returned_count` metric is sent\nto both producer and consumer projects, whereas the\n`library.googleapis.com/book/overdue_count` metric is only sent to the\nconsumer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/returned_count\n metric_kind: DELTA\n value_type: INT64\n labels:\n - key: /customer_id\n - name: library.googleapis.com/book/overdue_count\n metric_kind: GAUGE\n value_type: INT64\n labels:\n - key: /customer_id\n monitoring:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n - library.googleapis.com/book/overdue_count", "type": "object", "properties": { "consumerDestinations": { - "description": "Monitoring configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none consumer destination.", + "type": "array", "items": { "$ref": "MonitoringDestination" }, - "type": "array" + "description": "Monitoring configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none consumer destination." }, "producerDestinations": { "description": "Monitoring configurations for sending metrics to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none producer destination.", + "type": "array", "items": { "$ref": "MonitoringDestination" - }, - "type": "array" + } } - } + }, + "id": "Monitoring" }, "Field": { + "description": "A single field of a message type.", "type": "object", "properties": { + "number": { + "description": "The field number.", + "format": "int32", + "type": "integer" + }, "jsonName": { "description": "The field JSON name.", "type": "string" }, "kind": { - "enum": [ - "TYPE_UNKNOWN", - "TYPE_DOUBLE", - "TYPE_FLOAT", - "TYPE_INT64", - "TYPE_UINT64", - "TYPE_INT32", - "TYPE_FIXED64", - "TYPE_FIXED32", - "TYPE_BOOL", - "TYPE_STRING", - "TYPE_GROUP", - "TYPE_MESSAGE", - "TYPE_BYTES", - "TYPE_UINT32", - "TYPE_ENUM", - "TYPE_SFIXED32", - "TYPE_SFIXED64", - "TYPE_SINT32", - "TYPE_SINT64" - ], "description": "The field type.", "type": "string", "enumDescriptions": [ @@ -1721,25 +925,48 @@ "Field type sfixed64.", "Field type sint32.", "Field type sint64." + ], + "enum": [ + "TYPE_UNKNOWN", + "TYPE_DOUBLE", + "TYPE_FLOAT", + "TYPE_INT64", + "TYPE_UINT64", + "TYPE_INT32", + "TYPE_FIXED64", + "TYPE_FIXED32", + "TYPE_BOOL", + "TYPE_STRING", + "TYPE_GROUP", + "TYPE_MESSAGE", + "TYPE_BYTES", + "TYPE_UINT32", + "TYPE_ENUM", + "TYPE_SFIXED32", + "TYPE_SFIXED64", + "TYPE_SINT32", + "TYPE_SINT64" ] }, "options": { "description": "The protocol buffer options.", + "type": "array", "items": { "$ref": "Option" - }, - "type": "array" + } }, "oneofIndex": { - "format": "int32", "description": "The index of the field type in `Type.oneofs`, for message or enumeration\ntypes. The first type has index 1; zero means the type is not in the list.", + "format": "int32", "type": "integer" }, - "packed": { - "description": "Whether to use alternative packed wire representation.", - "type": "boolean" - }, "cardinality": { + "enum": [ + "CARDINALITY_UNKNOWN", + "CARDINALITY_OPTIONAL", + "CARDINALITY_REQUIRED", + "CARDINALITY_REPEATED" + ], "description": "The field cardinality.", "type": "string", "enumDescriptions": [ @@ -1747,14 +974,12 @@ "For optional fields.", "For required fields. Proto2 syntax only.", "For repeated fields." - ], - "enum": [ - "CARDINALITY_UNKNOWN", - "CARDINALITY_OPTIONAL", - "CARDINALITY_REQUIRED", - "CARDINALITY_REPEATED" ] }, + "packed": { + "description": "Whether to use alternative packed wire representation.", + "type": "boolean" + }, "defaultValue": { "description": "The string value of the default value of this field. Proto2 syntax only.", "type": "string" @@ -1766,89 +991,80 @@ "typeUrl": { "description": "The field type URL, without the scheme, for message or enumeration\ntypes. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", "type": "string" - }, - "number": { - "format": "int32", - "description": "The field number.", - "type": "integer" } }, - "id": "Field", - "description": "A single field of a message type." + "id": "Field" }, "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "type": "object", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "type": "array", "items": { "type": "string" }, - "type": "array" + "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions)." } }, - "id": "TestIamPermissionsRequest", - "description": "Request message for `TestIamPermissions` method.", - "type": "object" + "id": "TestIamPermissionsRequest" }, "Enum": { "description": "Enum type definition.", "type": "object", "properties": { - "enumvalue": { - "description": "Enum value definitions.", - "items": { - "$ref": "EnumValue" - }, - "type": "array" - }, "name": { "description": "Enum type name.", "type": "string" }, + "enumvalue": { + "description": "Enum value definitions.", + "type": "array", + "items": { + "$ref": "EnumValue" + } + }, "options": { - "description": "Protocol buffer options.", + "type": "array", "items": { "$ref": "Option" }, - "type": "array" + "description": "Protocol buffer options." + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "The source context." }, "syntax": { + "enumDescriptions": [ + "Syntax `proto2`.", + "Syntax `proto3`." + ], "enum": [ "SYNTAX_PROTO2", "SYNTAX_PROTO3" ], "description": "The source syntax.", - "type": "string", - "enumDescriptions": [ - "Syntax `proto2`.", - "Syntax `proto3`." - ] - }, - "sourceContext": { - "$ref": "SourceContext", - "description": "The source context." + "type": "string" } }, "id": "Enum" }, "EnableServiceRequest": { - "id": "EnableServiceRequest", "description": "Request message for EnableService method.", "type": "object", "properties": { "consumerId": { - "type": "string", - "description": "The identity of consumer resource which service enablement will be\napplied to.\n\nThe Google Service Management implementation accepts the following\nforms:\n- \"project:\u003cproject_id\u003e\"\n\nNote: this is made compatible with\ngoogle.api.servicecontrol.v1.Operation.consumer_id." + "description": "The identity of consumer resource which service enablement will be\napplied to.\n\nThe Google Service Management implementation accepts the following\nforms:\n- \"project:\u003cproject_id\u003e\"\n\nNote: this is made compatible with\ngoogle.api.servicecontrol.v1.Operation.consumer_id.", + "type": "string" } - } + }, + "id": "EnableServiceRequest" }, "Diagnostic": { + "description": "Represents a diagnostic message (error or warning)", "type": "object", "properties": { - "location": { - "description": "File name and line number of the error or warning.", - "type": "string" - }, "kind": { "enumDescriptions": [ "Warnings and errors", @@ -1862,26 +1078,20 @@ "type": "string" }, "message": { - "description": "Message describing the error or warning.", + "type": "string", + "description": "Message describing the error or warning." + }, + "location": { + "description": "File name and line number of the error or warning.", "type": "string" } }, - "id": "Diagnostic", - "description": "Represents a diagnostic message (error or warning)" + "id": "Diagnostic" }, "LabelDescriptor": { - "id": "LabelDescriptor", "description": "A description of a label.", "type": "object", "properties": { - "key": { - "description": "The label key.", - "type": "string" - }, - "description": { - "description": "A human-readable description for the label.", - "type": "string" - }, "valueType": { "description": "The type of data that can be assigned to the label.", "type": "string", @@ -1895,8 +1105,46 @@ "BOOL", "INT64" ] + }, + "key": { + "description": "The label key.", + "type": "string" + }, + "description": { + "description": "A human-readable description for the label.", + "type": "string" } - } + }, + "id": "LabelDescriptor" + }, + "GenerateConfigReportResponse": { + "description": "Response message for GenerateConfigReport method.", + "type": "object", + "properties": { + "changeReports": { + "description": "list of ChangeReport, each corresponding to comparison between two\nservice configurations.", + "type": "array", + "items": { + "$ref": "ChangeReport" + } + }, + "id": { + "description": "ID of the service configuration this report belongs to.", + "type": "string" + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "Diagnostic" + }, + "description": "Errors / Linter warnings associated with the service definition this\nreport\nbelongs to." + }, + "serviceName": { + "description": "Name of the service this report belongs to.", + "type": "string" + } + }, + "id": "GenerateConfigReportResponse" }, "Type": { "description": "A protocol buffer message type.", @@ -1904,27 +1152,25 @@ "properties": { "fields": { "description": "The list of fields.", + "type": "array", "items": { "$ref": "Field" - }, - "type": "array" + } }, "name": { "description": "The fully qualified message name.", "type": "string" }, "oneofs": { + "description": "The list of types appearing in `oneof` definitions in this type.", + "type": "array", "items": { "type": "string" - }, - "type": "array", - "description": "The list of types appearing in `oneof` definitions in this type." - }, - "sourceContext": { - "$ref": "SourceContext", - "description": "The source context." + } }, "syntax": { + "description": "The source syntax.", + "type": "string", "enumDescriptions": [ "Syntax `proto2`.", "Syntax `proto3`." @@ -1932,68 +1178,24 @@ "enum": [ "SYNTAX_PROTO2", "SYNTAX_PROTO3" - ], - "description": "The source syntax.", - "type": "string" + ] + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "The source context." }, "options": { "description": "The protocol buffer options.", + "type": "array", "items": { "$ref": "Option" - }, - "type": "array" + } } }, "id": "Type" }, - "GenerateConfigReportResponse": { - "description": "Response message for GenerateConfigReport method.", - "type": "object", - "properties": { - "serviceName": { - "type": "string", - "description": "Name of the service this report belongs to." - }, - "changeReports": { - "description": "list of ChangeReport, each corresponding to comparison between two\nservice configurations.", - "items": { - "$ref": "ChangeReport" - }, - "type": "array" - }, - "id": { - "description": "ID of the service configuration this report belongs to.", - "type": "string" - }, - "diagnostics": { - "description": "Errors / Linter warnings associated with the service definition this\nreport\nbelongs to.", - "items": { - "$ref": "Diagnostic" - }, - "type": "array" - } - }, - "id": "GenerateConfigReportResponse" - }, - "ListServiceConfigsResponse": { - "description": "Response message for ListServiceConfigs method.", - "type": "object", - "properties": { - "serviceConfigs": { - "description": "The list of service configuration resources.", - "items": { - "$ref": "Service" - }, - "type": "array" - }, - "nextPageToken": { - "type": "string", - "description": "The token of the next page of results." - } - }, - "id": "ListServiceConfigsResponse" - }, "Experimental": { + "id": "Experimental", "description": "Experimental service configuration. These configuration options can\nonly be used by whitelisted users.", "type": "object", "properties": { @@ -2001,8 +1203,49 @@ "$ref": "AuthorizationConfig", "description": "Authorization configuration." } + } + }, + "ListServiceConfigsResponse": { + "type": "object", + "properties": { + "serviceConfigs": { + "description": "The list of service configuration resources.", + "type": "array", + "items": { + "$ref": "Service" + } + }, + "nextPageToken": { + "type": "string", + "description": "The token of the next page of results." + } }, - "id": "Experimental" + "id": "ListServiceConfigsResponse", + "description": "Response message for ListServiceConfigs method." + }, + "AuditConfig": { + "id": "AuditConfig", + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object", + "properties": { + "service": { + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "type": "string" + }, + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.\nNext ID: 4", + "type": "array", + "items": { + "$ref": "AuditLogConfig" + } + }, + "exemptedMembers": { + "type": "array", + "items": { + "type": "string" + } + } + } }, "Backend": { "description": "`Backend` defines the backend configuration for a service.", @@ -2010,43 +1253,19 @@ "properties": { "rules": { "description": "A list of API backend rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "BackendRule" - }, - "type": "array" + } } }, "id": "Backend" }, - "AuditConfig": { - "id": "AuditConfig", - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", - "type": "object", - "properties": { - "exemptedMembers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", - "type": "string" - }, - "auditLogConfigs": { - "items": { - "$ref": "AuditLogConfig" - }, - "type": "array", - "description": "The configuration for logging of each type of permission.\nNext ID: 4" - } - } - }, "SubmitConfigSourceRequest": { "properties": { "configSource": { - "description": "The source configuration for the service.", - "$ref": "ConfigSource" + "$ref": "ConfigSource", + "description": "The source configuration for the service." }, "validateOnly": { "description": "Optional. If set, this will result in the generation of a\n`google.api.Service` configuration based on the `ConfigSource` provided,\nbut the generated config and the sources will NOT be persisted.", @@ -2057,26 +1276,8 @@ "description": "Request message for SubmitConfigSource method.", "type": "object" }, - "DocumentationRule": { - "description": "A documentation rule provides information about individual API elements.", - "type": "object", - "properties": { - "description": { - "description": "Description of the selected API(s).", - "type": "string" - }, - "deprecationDescription": { - "description": "Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.", - "type": "string" - }, - "selector": { - "description": "The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". To\nspecify a default for all applicable elements, the whole pattern \"*\"\nis used.", - "type": "string" - } - }, - "id": "DocumentationRule" - }, "AuthorizationConfig": { + "id": "AuthorizationConfig", "description": "Configuration of authorization.\n\nThis section determines the authorization provider, if unspecified, then no\nauthorization check will be done.\n\nExample:\n\n experimental:\n authorization:\n provider: firebaserules.googleapis.com", "type": "object", "properties": { @@ -2084,58 +1285,70 @@ "description": "The name of the authorization provider, such as\nfirebaserules.googleapis.com.", "type": "string" } - }, - "id": "AuthorizationConfig" + } }, - "ContextRule": { - "description": "A context rule provides information about the context for an individual API\nelement.", + "DocumentationRule": { "type": "object", "properties": { + "deprecationDescription": { + "description": "Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.", + "type": "string" + }, + "selector": { + "description": "The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". To\nspecify a default for all applicable elements, the whole pattern \"*\"\nis used.", + "type": "string" + }, + "description": { + "description": "Description of the selected API(s).", + "type": "string" + } + }, + "id": "DocumentationRule", + "description": "A documentation rule provides information about individual API elements." + }, + "ContextRule": { + "properties": { + "provided": { + "description": "A list of full type names of provided contexts.", + "type": "array", + "items": { + "type": "string" + } + }, + "requested": { + "description": "A list of full type names of requested contexts.", + "type": "array", + "items": { + "type": "string" + } + }, "selector": { "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", "type": "string" - }, - "provided": { - "description": "A list of full type names of provided contexts.", - "items": { - "type": "string" - }, - "type": "array" - }, - "requested": { - "items": { - "type": "string" - }, - "type": "array", - "description": "A list of full type names of requested contexts." } }, - "id": "ContextRule" + "id": "ContextRule", + "description": "A context rule provides information about the context for an individual API\nelement.", + "type": "object" }, - "SourceContext": { - "id": "SourceContext", - "description": "`SourceContext` represents information about the source of a\nprotobuf element, like the file in which it is defined.", + "Billing": { + "description": "Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/borrowed_count\n metric_kind: DELTA\n value_type: INT64\n billing:\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/borrowed_count", "type": "object", "properties": { - "fileName": { - "description": "The path-qualified name of the .proto file that contained the associated\nprotobuf element. For example: `\"google/protobuf/source_context.proto\"`.", - "type": "string" + "consumerDestinations": { + "description": "Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination.", + "type": "array", + "items": { + "$ref": "BillingDestination" + } } - } + }, + "id": "Billing" }, "MetricDescriptor": { - "description": "Defines a metric type and its schema. Once a metric descriptor is created,\ndeleting or altering it stops data collection and makes the metric type's\nexisting data unusable.", - "type": "object", "properties": { - "labels": { - "description": "The set of labels that can be used to describe a specific\ninstance of this metric type. For example, the\n`appengine.googleapis.com/http/server/response_latencies` metric\ntype has a label for the HTTP response code, `response_code`, so\nyou can look at latencies for successful responses or just\nfor responses that failed.", - "items": { - "$ref": "LabelDescriptor" - }, - "type": "array" - }, "name": { - "description": "The resource name of the metric descriptor. Depending on the\nimplementation, the name typically includes: (1) the parent resource name\nthat defines the scope of the metric type or of its data; and (2) the\nmetric's URL-encoded type, which also appears in the `type` field of this\ndescriptor. For example, following is the resource name of a custom\nmetric within the GCP project `my-project-id`:\n\n \"projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount\"", + "description": "The resource name of the metric descriptor.", "type": "string" }, "type": { @@ -2143,8 +1356,6 @@ "type": "string" }, "valueType": { - "description": "Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.", - "type": "string", "enumDescriptions": [ "Do not use this default value.", "The value is a boolean.\nThis value type can be used only if the metric kind is `GAUGE`.", @@ -2162,15 +1373,11 @@ "STRING", "DISTRIBUTION", "MONEY" - ] + ], + "description": "Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.", + "type": "string" }, "metricKind": { - "enumDescriptions": [ - "Do not use this default value.", - "An instantaneous measurement of a value.", - "The change in a value during a time interval.", - "A value accumulated over a time interval. Cumulative\nmeasurements in a time series should have the same start time\nand increasing end times, until an event resets the cumulative\nvalue to zero and sets a new start time for the following\npoints." - ], "enum": [ "METRIC_KIND_UNSPECIFIED", "GAUGE", @@ -2178,39 +1385,61 @@ "CUMULATIVE" ], "description": "Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Do not use this default value.", + "An instantaneous measurement of a value.", + "The change in a value during a time interval.", + "A value accumulated over a time interval. Cumulative\nmeasurements in a time series should have the same start time\nand increasing end times, until an event resets the cumulative\nvalue to zero and sets a new start time for the following\npoints." + ] }, "description": { "description": "A detailed description of the metric, which can be used in documentation.", "type": "string" }, "displayName": { - "description": "A concise name for the metric, which can be displayed in user interfaces.\nUse sentence case without an ending period, for example \"Request count\".", - "type": "string" + "type": "string", + "description": "A concise name for the metric, which can be displayed in user interfaces.\nUse sentence case without an ending period, for example \"Request count\".\nThis field is optional but it is recommended to be set for any metrics\nassociated with user-visible concepts, such as Quota." }, "unit": { - "description": "The unit in which the metric value is reported. It is only applicable\nif the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The\nsupported units are a subset of [The Unified Code for Units of\nMeasure](http://unitsofmeasure.org/ucum.html) standard:\n\n**Basic units (UNIT)**\n\n* `bit` bit\n* `By` byte\n* `s` second\n* `min` minute\n* `h` hour\n* `d` day\n\n**Prefixes (PREFIX)**\n\n* `k` kilo (10**3)\n* `M` mega (10**6)\n* `G` giga (10**9)\n* `T` tera (10**12)\n* `P` peta (10**15)\n* `E` exa (10**18)\n* `Z` zetta (10**21)\n* `Y` yotta (10**24)\n* `m` milli (10**-3)\n* `u` micro (10**-6)\n* `n` nano (10**-9)\n* `p` pico (10**-12)\n* `f` femto (10**-15)\n* `a` atto (10**-18)\n* `z` zepto (10**-21)\n* `y` yocto (10**-24)\n* `Ki` kibi (2**10)\n* `Mi` mebi (2**20)\n* `Gi` gibi (2**30)\n* `Ti` tebi (2**40)\n\n**Grammar**\n\nThe grammar includes the dimensionless unit `1`, such as `1/s`.\n\nThe grammar also includes these connectors:\n\n* `/` division (as an infix operator, e.g. `1/s`).\n* `.` multiplication (as an infix operator, e.g. `GBy.d`)\n\nThe grammar for a unit is as follows:\n\n Expression = Component { \".\" Component } { \"/\" Component } ;\n\n Component = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\n Annotation = \"{\" NAME \"}\" ;\n\nNotes:\n\n* `Annotation` is just a comment if it follows a `UNIT` and is\n equivalent to `1` if it is used alone. For examples,\n `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.\n* `NAME` is a sequence of non-blank printable ASCII characters not\n containing '{' or '}'.", - "type": "string" + "type": "string", + "description": "The unit in which the metric value is reported. It is only applicable\nif the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The\nsupported units are a subset of [The Unified Code for Units of\nMeasure](http://unitsofmeasure.org/ucum.html) standard:\n\n**Basic units (UNIT)**\n\n* `bit` bit\n* `By` byte\n* `s` second\n* `min` minute\n* `h` hour\n* `d` day\n\n**Prefixes (PREFIX)**\n\n* `k` kilo (10**3)\n* `M` mega (10**6)\n* `G` giga (10**9)\n* `T` tera (10**12)\n* `P` peta (10**15)\n* `E` exa (10**18)\n* `Z` zetta (10**21)\n* `Y` yotta (10**24)\n* `m` milli (10**-3)\n* `u` micro (10**-6)\n* `n` nano (10**-9)\n* `p` pico (10**-12)\n* `f` femto (10**-15)\n* `a` atto (10**-18)\n* `z` zepto (10**-21)\n* `y` yocto (10**-24)\n* `Ki` kibi (2**10)\n* `Mi` mebi (2**20)\n* `Gi` gibi (2**30)\n* `Ti` tebi (2**40)\n\n**Grammar**\n\nThe grammar includes the dimensionless unit `1`, such as `1/s`.\n\nThe grammar also includes these connectors:\n\n* `/` division (as an infix operator, e.g. `1/s`).\n* `.` multiplication (as an infix operator, e.g. `GBy.d`)\n\nThe grammar for a unit is as follows:\n\n Expression = Component { \".\" Component } { \"/\" Component } ;\n\n Component = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\n Annotation = \"{\" NAME \"}\" ;\n\nNotes:\n\n* `Annotation` is just a comment if it follows a `UNIT` and is\n equivalent to `1` if it is used alone. For examples,\n `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.\n* `NAME` is a sequence of non-blank printable ASCII characters not\n containing '{' or '}'." + }, + "labels": { + "description": "The set of labels that can be used to describe a specific\ninstance of this metric type. For example, the\n`appengine.googleapis.com/http/server/response_latencies` metric\ntype has a label for the HTTP response code, `response_code`, so\nyou can look at latencies for successful responses or just\nfor responses that failed.", + "type": "array", + "items": { + "$ref": "LabelDescriptor" + } } }, - "id": "MetricDescriptor" + "id": "MetricDescriptor", + "description": "Defines a metric type and its schema. Once a metric descriptor is created,\ndeleting or altering it stops data collection and makes the metric type's\nexisting data unusable.", + "type": "object" }, - "Billing": { - "description": "Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/borrowed_count\n metric_kind: DELTA\n value_type: INT64\n billing:\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/borrowed_count", + "SourceContext": { + "id": "SourceContext", + "description": "`SourceContext` represents information about the source of a\nprotobuf element, like the file in which it is defined.", "type": "object", "properties": { - "consumerDestinations": { - "description": "Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination.", - "items": { - "$ref": "BillingDestination" - }, - "type": "array" + "fileName": { + "description": "The path-qualified name of the .proto file that contained the associated\nprotobuf element. For example: `\"google/protobuf/source_context.proto\"`.", + "type": "string" } - }, - "id": "Billing" + } }, "Expr": { + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", + "type": "object", "properties": { + "title": { + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", + "type": "string" + }, + "location": { + "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", + "type": "string" + }, "description": { "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", "type": "string" @@ -2218,66 +1447,43 @@ "expression": { "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", "type": "string" - }, - "location": { - "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", - "type": "string" - }, - "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", - "type": "string" } }, - "id": "Expr", - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", - "type": "object" + "id": "Expr" }, "ListServicesResponse": { "description": "Response message for `ListServices` method.", "type": "object", "properties": { + "services": { + "description": "The returned services will only have the name field set.", + "type": "array", + "items": { + "$ref": "ManagedService" + } + }, "nextPageToken": { "description": "Token that can be passed to `ListServices` to resume a paginated query.", "type": "string" - }, - "services": { - "description": "The returned services will only have the name field set.", - "items": { - "$ref": "ManagedService" - }, - "type": "array" } }, "id": "ListServicesResponse" }, "Endpoint": { + "id": "Endpoint", "description": "`Endpoint` describes a network endpoint that serves a set of APIs.\nA service may expose any number of endpoints, and all endpoints share the\nsame service configuration, such as quota configuration and monitoring\nconfiguration.\n\nExample service configuration:\n\n name: library-example.googleapis.com\n endpoints:\n # Below entry makes 'google.example.library.v1.Library'\n # API be served from endpoint address library-example.googleapis.com.\n # It also allows HTTP OPTIONS calls to be passed to the backend, for\n # it to decide whether the subsequent cross-origin request is\n # allowed to proceed.\n - name: library-example.googleapis.com\n allow_cors: true", "type": "object", "properties": { - "features": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The list of features enabled on this endpoint." - }, - "apis": { - "description": "The list of APIs served by this endpoint.\n\nIf no APIs are specified this translates to \"all APIs\" exported by the\nservice, as defined in the top-level service configuration.", - "items": { - "type": "string" - }, - "type": "array" - }, "allowCors": { - "type": "boolean", - "description": "Allowing\n[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka\ncross-domain traffic, would allow the backends served from this endpoint to\nreceive and respond to HTTP OPTIONS requests. The response will be used by\nthe browser to determine whether the subsequent cross-origin request is\nallowed to proceed." + "description": "Allowing\n[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka\ncross-domain traffic, would allow the backends served from this endpoint to\nreceive and respond to HTTP OPTIONS requests. The response will be used by\nthe browser to determine whether the subsequent cross-origin request is\nallowed to proceed.", + "type": "boolean" }, "aliases": { - "description": "DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intented\nalias.\n\nAdditional names that this endpoint will be hosted on.", + "description": "DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intended\naliases.\n\nAdditional names that this endpoint will be hosted on.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "target": { "description": "The specification of an Internet routable address of API frontend that will\nhandle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).\nIt should be either a valid IPv4 address or a fully-qualified domain name.\nFor example, \"8.8.8.8\" or \"myservice.appspot.com\".", @@ -2286,11 +1492,25 @@ "name": { "description": "The canonical name of this endpoint.", "type": "string" + }, + "features": { + "description": "The list of features enabled on this endpoint.", + "type": "array", + "items": { + "type": "string" + } + }, + "apis": { + "description": "The list of APIs served by this endpoint.\n\nIf no APIs are specified this translates to \"all APIs\" exported by the\nservice, as defined in the top-level service configuration.", + "type": "array", + "items": { + "type": "string" + } } - }, - "id": "Endpoint" + } }, "OAuthRequirements": { + "description": "OAuth scopes are a way to define data and permissions on data. For example,\nthere are scopes defined for \"Read-only access to Google Calendar\" and\n\"Access to Cloud Platform\". Users can consent to a scope for an application,\ngiving it permission to access that data on their behalf.\n\nOAuth scope specifications should be fairly coarse grained; a user will need\nto see and understand the text description of what your scope means.\n\nIn most cases: use one or at most two OAuth scopes for an entire family of\nproducts. If your product has multiple APIs, you should probably be sharing\nthe OAuth scope across all of those APIs.\n\nWhen you need finer grained OAuth consent screens: talk with your product\nmanagement about how developers will use them in practice.\n\nPlease note that even though each of the canonical scopes is enough for a\nrequest to be accepted and passed to the backend, a request can still fail\ndue to the backend requiring additional scopes or permissions.", "type": "object", "properties": { "canonicalScopes": { @@ -2298,67 +1518,1710 @@ "type": "string" } }, - "id": "OAuthRequirements", - "description": "OAuth scopes are a way to define data and permissions on data. For example,\nthere are scopes defined for \"Read-only access to Google Calendar\" and\n\"Access to Cloud Platform\". Users can consent to a scope for an application,\ngiving it permission to access that data on their behalf.\n\nOAuth scope specifications should be fairly coarse grained; a user will need\nto see and understand the text description of what your scope means.\n\nIn most cases: use one or at most two OAuth scopes for an entire family of\nproducts. If your product has multiple APIs, you should probably be sharing\nthe OAuth scope across all of those APIs.\n\nWhen you need finer grained OAuth consent screens: talk with your product\nmanagement about how developers will use them in practice.\n\nPlease note that even though each of the canonical scopes is enough for a\nrequest to be accepted and passed to the backend, a request can still fail\ndue to the backend requiring additional scopes or permissions." + "id": "OAuthRequirements" }, "Usage": { - "description": "Configuration controlling usage of a service.", "type": "object", "properties": { - "rules": { - "description": "A list of usage rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "UsageRule" - }, - "type": "array" - }, - "requirements": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Requirements that must be satisfied before a consumer project can use the\nservice. Each requirement is of the form \u003cservice.name\u003e/\u003crequirement-id\u003e;\nfor example 'serviceusage.googleapis.com/billing-enabled'." - }, "producerNotificationChannel": { "description": "The full resource name of a channel used for sending notifications to the\nservice producer.\n\nGoogle Service Management currently only supports\n[Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification\nchannel. To use Google Cloud Pub/Sub as the channel, this must be the name\nof a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format\ndocumented in https://cloud.google.com/pubsub/docs/overview.", "type": "string" + }, + "rules": { + "description": "A list of usage rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "UsageRule" + } + }, + "requirements": { + "description": "Requirements that must be satisfied before a consumer project can use the\nservice. Each requirement is of the form \u003cservice.name\u003e/\u003crequirement-id\u003e;\nfor example 'serviceusage.googleapis.com/billing-enabled'.", + "type": "array", + "items": { + "type": "string" + } } }, - "id": "Usage" + "id": "Usage", + "description": "Configuration controlling usage of a service." }, "GetIamPolicyRequest": { + "id": "GetIamPolicyRequest", "description": "Request message for `GetIamPolicy` method.", "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" + "properties": {} }, "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", "properties": { "permissions": { "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, - "id": "TestIamPermissionsResponse" + "id": "TestIamPermissionsResponse", + "description": "Response message for `TestIamPermissions` method.", + "type": "object" }, "Context": { - "description": "`Context` defines which contexts an API requests.\n\nExample:\n\n context:\n rules:\n - selector: \"*\"\n requested:\n - google.rpc.context.ProjectContext\n - google.rpc.context.OriginContext\n\nThe above specifies that all methods in the API request\n`google.rpc.context.ProjectContext` and\n`google.rpc.context.OriginContext`.\n\nAvailable context types are defined in package\n`google.rpc.context`.", - "type": "object", "properties": { "rules": { "description": "A list of RPC context rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "ContextRule" - }, - "type": "array" + } } }, - "id": "Context" + "id": "Context", + "description": "`Context` defines which contexts an API requests.\n\nExample:\n\n context:\n rules:\n - selector: \"*\"\n requested:\n - google.rpc.context.ProjectContext\n - google.rpc.context.OriginContext\n\nThe above specifies that all methods in the API request\n`google.rpc.context.ProjectContext` and\n`google.rpc.context.OriginContext`.\n\nAvailable context types are defined in package\n`google.rpc.context`.", + "type": "object" + }, + "LogDescriptor": { + "type": "object", + "properties": { + "labels": { + "description": "The set of labels that are available to describe a specific log entry.\nRuntime requests that contain labels not specified here are\nconsidered invalid.", + "type": "array", + "items": { + "$ref": "LabelDescriptor" + } + }, + "name": { + "description": "The name of the log. It must be less than 512 characters long and can\ninclude the following characters: upper- and lower-case alphanumeric\ncharacters [A-Za-z0-9], and punctuation characters including\nslash, underscore, hyphen, period [/_-.].", + "type": "string" + }, + "description": { + "description": "A human-readable description of this log. This information appears in\nthe documentation and can contain details.", + "type": "string" + }, + "displayName": { + "description": "The human-readable name for this log. This information appears on\nthe user interface and should be concise.", + "type": "string" + } + }, + "id": "LogDescriptor", + "description": "A description of a log type. Example in YAML format:\n\n - name: library.googleapis.com/activity_history\n description: The history of borrowing and returning library items.\n display_name: Activity\n labels:\n - key: /customer_id\n description: Identifier of a library customer" + }, + "ConfigFile": { + "description": "Generic specification of a source configuration file", + "type": "object", + "properties": { + "filePath": { + "type": "string", + "description": "The file name of the configuration file (full or relative path)." + }, + "fileType": { + "enum": [ + "FILE_TYPE_UNSPECIFIED", + "SERVICE_CONFIG_YAML", + "OPEN_API_JSON", + "OPEN_API_YAML", + "FILE_DESCRIPTOR_SET_PROTO", + "PROTO_FILE" + ], + "description": "The type of configuration file this represents.", + "type": "string", + "enumDescriptions": [ + "Unknown file type.", + "YAML-specification of service.", + "OpenAPI specification, serialized in JSON.", + "OpenAPI specification, serialized in YAML.", + "FileDescriptorSet, generated by protoc.\n\nTo generate, use protoc with imports and source info included.\nFor an example test.proto file, the following command would put the value\nin a new file named out.pb.\n\n$protoc --include_imports --include_source_info test.proto -o out.pb", + "Uncompiled Proto file. Used for storage and display purposes only,\ncurrently server-side compilation is not supported. Should match the\ninputs to 'protoc' command used to generated FILE_DESCRIPTOR_SET_PROTO. A\nfile of this type can only be included if at least one file of type\nFILE_DESCRIPTOR_SET_PROTO is included." + ] + }, + "fileContents": { + "description": "The bytes that constitute the file.", + "format": "byte", + "type": "string" + } + }, + "id": "ConfigFile" + }, + "CustomErrorRule": { + "description": "A custom error rule.", + "type": "object", + "properties": { + "isErrorType": { + "description": "Mark this message as possible payload in error response. Otherwise,\nobjects of this type will be filtered when they appear in error payload.", + "type": "boolean" + }, + "selector": { + "description": "Selects messages to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + } + }, + "id": "CustomErrorRule" + }, + "MonitoredResourceDescriptor": { + "description": "An object that describes the schema of a MonitoredResource object using a\ntype name and a set of labels. For example, the monitored resource\ndescriptor for Google Compute Engine VM instances has a type of\n`\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and\n`\"zone\"` to identify particular VM instances.\n\nDifferent APIs can support different monitored resource types. APIs generally\nprovide a `list` method that returns the monitored resource descriptors used\nby the API.", + "type": "object", + "properties": { + "displayName": { + "description": "Optional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`.", + "type": "string" + }, + "description": { + "description": "Optional. A detailed description of the monitored resource type that might\nbe used in documentation.", + "type": "string" + }, + "type": { + "description": "Required. The monitored resource type. For example, the type\n`\"cloudsql_database\"` represents databases in Google Cloud SQL.\nThe maximum length of this value is 256 characters.", + "type": "string" + }, + "labels": { + "description": "Required. A set of labels used to describe instances of this monitored\nresource type. For example, an individual Google Cloud SQL database is\nidentified by values for the labels `\"database_id\"` and `\"zone\"`.", + "type": "array", + "items": { + "$ref": "LabelDescriptor" + } + }, + "name": { + "description": "Optional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type. APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`.", + "type": "string" + } + }, + "id": "MonitoredResourceDescriptor" + }, + "CustomAuthRequirements": { + "description": "Configuration for a custom authentication provider.", + "type": "object", + "properties": { + "provider": { + "description": "A configuration string containing connection information for the\nauthentication provider, typically formatted as a SmartService string\n(go/smartservice).", + "type": "string" + } + }, + "id": "CustomAuthRequirements" + }, + "MediaDownload": { + "description": "Defines the Media configuration for a service in case of a download.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods.", + "type": "object", + "properties": { + "enabled": { + "description": "Whether download is enabled.", + "type": "boolean" + }, + "downloadService": { + "type": "string", + "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the download service if one is used for download." + }, + "completeNotification": { + "description": "A boolean that determines whether a notification for the completion of a\ndownload should be sent to the backend.", + "type": "boolean" + }, + "dropzone": { + "description": "Name of the Scotty dropzone to use for the current API.", + "type": "string" + }, + "maxDirectDownloadSize": { + "type": "string", + "description": "Optional maximum acceptable size for direct download.\nThe size is specified in bytes.", + "format": "int64" + }, + "useDirectDownload": { + "description": "A boolean that determines if direct download from ESF should be used for\ndownload of this media.", + "type": "boolean" + } + }, + "id": "MediaDownload" + }, + "ChangeReport": { + "properties": { + "configChanges": { + "description": "List of changes between two service configurations.\nThe changes will be alphabetically sorted based on the identifier\nof each change.\nA ConfigChange identifier is a dot separated path to the configuration.\nExample: visibility.rules[selector='LibraryService.CreateBook'].restriction", + "type": "array", + "items": { + "$ref": "ConfigChange" + } + } + }, + "id": "ChangeReport", + "description": "Change report associated with a particular service configuration.\n\nIt contains a list of ConfigChanges based on the comparison between\ntwo service configurations.", + "type": "object" + }, + "DisableServiceRequest": { + "properties": { + "consumerId": { + "description": "The identity of consumer resource which service disablement will be\napplied to.\n\nThe Google Service Management implementation accepts the following\nforms:\n- \"project:\u003cproject_id\u003e\"\n\nNote: this is made compatible with\ngoogle.api.servicecontrol.v1.Operation.consumer_id.", + "type": "string" + } + }, + "id": "DisableServiceRequest", + "description": "Request message for DisableService method.", + "type": "object" + }, + "SubmitConfigSourceResponse": { + "description": "Response message for SubmitConfigSource method.", + "type": "object", + "properties": { + "serviceConfig": { + "$ref": "Service", + "description": "The generated service configuration." + } + }, + "id": "SubmitConfigSourceResponse" + }, + "MediaUpload": { + "description": "Defines the Media configuration for a service in case of an upload.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods.", + "type": "object", + "properties": { + "uploadService": { + "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the upload service if one is used for upload.", + "type": "string" + }, + "mimeTypes": { + "description": "An array of mimetype patterns. Esf will only accept uploads that match one\nof the given patterns.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxSize": { + "description": "Optional maximum acceptable size for an upload.\nThe size is specified in bytes.", + "format": "int64", + "type": "string" + }, + "completeNotification": { + "description": "A boolean that determines whether a notification for the completion of an\nupload should be sent to the backend. These notifications will not be seen\nby the client and will not consume quota.", + "type": "boolean" + }, + "progressNotification": { + "description": "Whether to receive a notification for progress changes of media upload.", + "type": "boolean" + }, + "enabled": { + "description": "Whether upload is enabled.", + "type": "boolean" + }, + "dropzone": { + "description": "Name of the Scotty dropzone to use for the current API.", + "type": "string" + }, + "startNotification": { + "description": "Whether to receive a notification on the start of media upload.", + "type": "boolean" + } + }, + "id": "MediaUpload" + }, + "BillingDestination": { + "description": "Configuration of a specific billing destination (Currently only support\nbill against consumer project).", + "type": "object", + "properties": { + "monitoredResource": { + "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.", + "type": "string" + }, + "metrics": { + "description": "Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "BillingDestination" + }, + "Advice": { + "description": "Generated advice about this change, used for providing more\ninformation about how a change will affect the existing service.", + "type": "object", + "properties": { + "description": { + "description": "Useful description for why this advice was applied and what actions should\nbe taken to mitigate any implied risks.", + "type": "string" + } + }, + "id": "Advice" + }, + "ManagedService": { + "type": "object", + "properties": { + "serviceName": { + "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements.", + "type": "string" + }, + "producerProjectId": { + "description": "ID of the project that produces and owns this service.", + "type": "string" + } + }, + "id": "ManagedService", + "description": "The full representation of a Service that is managed by\nGoogle Service Management." + }, + "UsageRule": { + "type": "object", + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "skipServiceControl": { + "type": "boolean", + "description": "True, if the method should skip service control. If so, no control plane\nfeature (like quota and billing) will be enabled.\nThis flag is used by ESP to allow some Endpoints customers to bypass\nGoogle internal checks." + }, + "allowUnregisteredCalls": { + "description": "True, if the method allows unregistered calls; false otherwise.", + "type": "boolean" + } + }, + "id": "UsageRule", + "description": "Usage configuration rules for the service.\n\nNOTE: Under development.\n\n\nUse this rule to configure unregistered calls for the service. Unregistered\ncalls are calls that do not contain consumer project identity.\n(Example: calls that do not contain an API key).\nBy default, API methods do not allow unregistered calls, and each method call\nmust be identified by a consumer project identity. Use this rule to\nallow/disallow unregistered calls.\n\nExample of an API that wants to allow unregistered calls for entire service.\n\n usage:\n rules:\n - selector: \"*\"\n allow_unregistered_calls: true\n\nExample of a method that wants to allow unregistered calls.\n\n usage:\n rules:\n - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n allow_unregistered_calls: true" + }, + "AuthRequirement": { + "description": "User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", + "type": "object", + "properties": { + "audiences": { + "description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", + "type": "string" + }, + "providerId": { + "description": "id from authentication provider.\n\nExample:\n\n provider_id: bookstore_auth", + "type": "string" + } + }, + "id": "AuthRequirement" + }, + "TrafficPercentStrategy": { + "type": "object", + "properties": { + "percentages": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "Maps service configuration IDs to their corresponding traffic percentage.\nKey is the service configuration ID, Value is the traffic percentage\nwhich must be greater than 0.0 and the sum must equal to 100.0.", + "type": "object" + } + }, + "id": "TrafficPercentStrategy", + "description": "Strategy that specifies how clients of Google Service Controller want to\nsend traffic to use different config versions. This is generally\nused by API proxy to split traffic based on your configured precentage for\neach config version.\n\nOne example of how to gradually rollout a new service configuration using\nthis\nstrategy:\nDay 1\n\n Rollout {\n id: \"example.googleapis.com/rollout_20160206\"\n traffic_percent_strategy {\n percentages: {\n \"example.googleapis.com/20160201\": 70.00\n \"example.googleapis.com/20160206\": 30.00\n }\n }\n }\n\nDay 2\n\n Rollout {\n id: \"example.googleapis.com/rollout_20160207\"\n traffic_percent_strategy: {\n percentages: {\n \"example.googleapis.com/20160206\": 100.00\n }\n }\n }" + }, + "Documentation": { + "description": "`Documentation` provides the information for describing a service.\n\nExample:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: \u003e\n The Google Calendar API gives access\n to most calendar features.\n pages:\n - name: Overview\n content: (== include google/foo/overview.md ==)\n - name: Tutorial\n content: (== include google/foo/tutorial.md ==)\n subpages;\n - name: Java\n content: (== include google/foo/tutorial_java.md ==)\n rules:\n - selector: google.calendar.Calendar.Get\n description: \u003e\n ...\n - selector: google.calendar.Calendar.Put\n description: \u003e\n ...\n\u003c/code\u003e\u003c/pre\u003e\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n\u003cpre\u003e\u003ccode\u003e[fully.qualified.proto.name][]\u003c/code\u003e\u003c/pre\u003e\nTo override the display text used for the link, this can be used:\n\u003cpre\u003e\u003ccode\u003e[display text][fully.qualified.proto.name]\u003c/code\u003e\u003c/pre\u003e\nText can be excluded from doc using the following notation:\n\u003cpre\u003e\u003ccode\u003e(-- internal comment --)\u003c/code\u003e\u003c/pre\u003e\nComments can be made conditional using a visibility label. The below\ntext will be only rendered if the `BETA` label is available:\n\u003cpre\u003e\u003ccode\u003e(--BETA: comment for BETA users --)\u003c/code\u003e\u003c/pre\u003e\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n\u003cpre\u003e\u003ccode\u003e(== include path/to/file ==)\u003c/code\u003e\u003c/pre\u003e\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n\u003cpre\u003e\u003ccode\u003e(== resource_for v1.shelves.books ==)\u003c/code\u003e\u003c/pre\u003e\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.", + "type": "object", + "properties": { + "documentationRootUrl": { + "description": "The URL to the root of documentation.", + "type": "string" + }, + "rules": { + "description": "A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "DocumentationRule" + } + }, + "overview": { + "description": "Declares a single overview page. For example:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n overview: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nThis is a shortcut for the following declaration (using pages style):\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n pages:\n - name: Overview\n content: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nNote: you cannot specify both `overview` field and `pages` field.", + "type": "string" + }, + "pages": { + "description": "The top level pages for the documentation set.", + "type": "array", + "items": { + "$ref": "Page" + } + }, + "summary": { + "description": "A short summary of what the service does. Can only be provided by\nplain text.", + "type": "string" + } + }, + "id": "Documentation" + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "type": "array", + "items": { + "type": "string" + } + }, + "logType": { + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "description": "The log type that this config enables.", + "type": "string" + } + }, + "id": "AuditLogConfig" + }, + "ConfigSource": { + "description": "Represents a source file which is used to generate the service configuration\ndefined by `google.api.Service`.", + "type": "object", + "properties": { + "id": { + "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead.", + "type": "string" + }, + "files": { + "description": "Set of source configuration files that are used to generate a service\nconfiguration (`google.api.Service`).", + "type": "array", + "items": { + "$ref": "ConfigFile" + } + } + }, + "id": "ConfigSource" + }, + "AuthenticationRule": { + "id": "AuthenticationRule", + "description": "Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored.", + "type": "object", + "properties": { + "requirements": { + "description": "Requirements for additional authentication providers.", + "type": "array", + "items": { + "$ref": "AuthRequirement" + } + }, + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "allowWithoutCredential": { + "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.", + "type": "boolean" + }, + "oauth": { + "description": "The requirements for OAuth credentials.", + "$ref": "OAuthRequirements" + }, + "customAuth": { + "$ref": "CustomAuthRequirements", + "description": "Configuration for custom authentication." + } + } + }, + "BackendRule": { + "id": "BackendRule", + "description": "A backend rule provides configuration for an individual API element.", + "type": "object", + "properties": { + "minDeadline": { + "description": "Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.", + "format": "double", + "type": "number" + }, + "address": { + "description": "The address of the API backend.", + "type": "string" + }, + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "deadline": { + "description": "The number of seconds to wait for a response from a request. The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.", + "format": "double", + "type": "number" + } + } + }, + "Policy": { + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", + "type": "object", + "properties": { + "version": { + "description": "Version of the `Policy`. The default version is 0.", + "format": "int32", + "type": "integer" + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "type": "array", + "items": { + "$ref": "AuditConfig" + } + }, + "bindings": { + "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, + "iamOwned": { + "type": "boolean" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", + "format": "byte", + "type": "string" + } + }, + "id": "Policy" + }, + "UndeleteServiceResponse": { + "type": "object", + "properties": { + "service": { + "description": "Revived service resource.", + "$ref": "ManagedService" + } + }, + "id": "UndeleteServiceResponse", + "description": "Response message for UndeleteService method." + }, + "Api": { + "description": "Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology.", + "type": "object", + "properties": { + "options": { + "description": "Any metadata attached to the interface.", + "type": "array", + "items": { + "$ref": "Option" + } + }, + "methods": { + "description": "The methods of this interface, in unspecified order.", + "type": "array", + "items": { + "$ref": "Method" + } + }, + "name": { + "description": "The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.", + "type": "string" + }, + "syntax": { + "description": "The source syntax of the service.", + "type": "string", + "enumDescriptions": [ + "Syntax `proto2`.", + "Syntax `proto3`." + ], + "enum": [ + "SYNTAX_PROTO2", + "SYNTAX_PROTO3" + ] + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "Source context for the protocol buffer service represented by this\nmessage." + }, + "version": { + "description": "A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v\u003cmajor-version\u003e`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n", + "type": "string" + }, + "mixins": { + "description": "Included interfaces. See Mixin.", + "type": "array", + "items": { + "$ref": "Mixin" + } + } + }, + "id": "Api" + }, + "MetricRule": { + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "metricCosts": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Metrics to update when the selected methods are called, and the associated\ncost applied to each metric.\n\nThe key of the map is the metric name, and the values are the amount\nincreased for the metric against which the quota limits are defined.\nThe value must not be negative.", + "type": "object" + } + }, + "id": "MetricRule", + "description": "Bind API methods to metrics. Binding a method to a metric causes that\nmetric's configured quota behaviors to apply to the method call.", + "type": "object" + }, + "Authentication": { + "description": "`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n name: calendar.googleapis.com\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "AuthenticationRule" + }, + "description": "A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order." + }, + "providers": { + "description": "Defines a set of authentication providers that a service supports.", + "type": "array", + "items": { + "$ref": "AuthProvider" + } + } + }, + "id": "Authentication" + }, + "Operation": { + "type": "object", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "type": "string", + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`." + }, + "error": { + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" + }, + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + } + }, + "id": "Operation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." + }, + "Page": { + "type": "object", + "properties": { + "content": { + "description": "The Markdown content of the page. You can use \u003ccode\u003e(== include {path} ==)\u003c/code\u003e\nto include content from a Markdown file.", + "type": "string" + }, + "subpages": { + "description": "Subpages of this page. The order of subpages specified here will be\nhonored in the generated docset.", + "type": "array", + "items": { + "$ref": "Page" + } + }, + "name": { + "description": "The name of the page. It will be used as an identity of the page to\ngenerate URI of the page, text of the link to this page in navigation,\netc. The full page name (start from the root page name to this page\nconcatenated with `.`) can be used as reference to the page in your\ndocumentation. For example:\n\u003cpre\u003e\u003ccode\u003epages:\n- name: Tutorial\n content: (== include tutorial.md ==)\n subpages:\n - name: Java\n content: (== include tutorial_java.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nYou can reference `Java` page using Markdown reference link syntax:\n`Java`.", + "type": "string" + } + }, + "id": "Page", + "description": "Represents a documentation page. A page can contain subpages to represent\nnested documentation set structure." + }, + "Status": { + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." + }, + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "type": "array", + "items": { + "type": "string" + } + }, + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + } + }, + "id": "Binding" + }, + "AuthProvider": { + "properties": { + "jwksUri": { + "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs", + "type": "string" + }, + "audiences": { + "description": "The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", + "type": "string" + }, + "id": { + "description": "The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".", + "type": "string" + }, + "issuer": { + "description": "Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com", + "type": "string" + }, + "authorizationUrl": { + "description": "Redirect URL if JWT token is required but no present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.", + "type": "string" + } + }, + "id": "AuthProvider", + "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", + "type": "object" + }, + "Service": { + "description": "`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n type: google.api.Service\n config_version: 3\n name: calendar.googleapis.com\n title: Google Calendar API\n apis:\n - name: google.calendar.v3.Calendar\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", + "type": "object", + "properties": { + "enums": { + "description": "A list of all enum types included in this API service. Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded. Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n enums:\n - name: google.someapi.v1.SomeEnum", + "type": "array", + "items": { + "$ref": "Enum" + } + }, + "context": { + "description": "Context configuration.", + "$ref": "Context" + }, + "id": { + "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead.", + "type": "string" + }, + "usage": { + "$ref": "Usage", + "description": "Configuration controlling usage of this service." + }, + "metrics": { + "description": "Defines the metrics used by this service.", + "type": "array", + "items": { + "$ref": "MetricDescriptor" + } + }, + "authentication": { + "$ref": "Authentication", + "description": "Auth configuration." + }, + "experimental": { + "description": "Experimental configuration.", + "$ref": "Experimental" + }, + "control": { + "$ref": "Control", + "description": "Configuration for the service control plane." + }, + "configVersion": { + "description": "The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.", + "format": "uint32", + "type": "integer" + }, + "monitoring": { + "$ref": "Monitoring", + "description": "Monitoring configuration." + }, + "systemTypes": { + "description": "A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.", + "type": "array", + "items": { + "$ref": "Type" + } + }, + "producerProjectId": { + "description": "The Google project that owns this service.", + "type": "string" + }, + "visibility": { + "$ref": "Visibility", + "description": "API visibility configuration." + }, + "quota": { + "$ref": "Quota", + "description": "Quota configuration." + }, + "billing": { + "$ref": "Billing", + "description": "Billing configuration." + }, + "name": { + "description": "The DNS address at which this service is available,\ne.g. `calendar.googleapis.com`.", + "type": "string" + }, + "customError": { + "$ref": "CustomError", + "description": "Custom error configuration." + }, + "title": { + "description": "The product title for this service.", + "type": "string" + }, + "endpoints": { + "description": "Configuration for network endpoints. If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.", + "type": "array", + "items": { + "$ref": "Endpoint" + } + }, + "apis": { + "type": "array", + "items": { + "$ref": "Api" + }, + "description": "A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files." + }, + "logs": { + "type": "array", + "items": { + "$ref": "LogDescriptor" + }, + "description": "Defines the logs used by this service." + }, + "types": { + "description": "A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included. Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n types:\n - name: google.protobuf.Int32", + "type": "array", + "items": { + "$ref": "Type" + } + }, + "sourceInfo": { + "$ref": "SourceInfo", + "description": "Output only. The source information for this configuration if available." + }, + "http": { + "$ref": "Http", + "description": "HTTP configuration." + }, + "backend": { + "$ref": "Backend", + "description": "API backend configuration." + }, + "systemParameters": { + "$ref": "SystemParameters", + "description": "System parameter configuration." + }, + "documentation": { + "$ref": "Documentation", + "description": "Additional API documentation." + }, + "monitoredResources": { + "description": "Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations.", + "type": "array", + "items": { + "$ref": "MonitoredResourceDescriptor" + } + }, + "logging": { + "$ref": "Logging", + "description": "Logging configuration." + } + }, + "id": "Service" + }, + "EnumValue": { + "properties": { + "name": { + "description": "Enum value name.", + "type": "string" + }, + "options": { + "description": "Protocol buffer options.", + "type": "array", + "items": { + "$ref": "Option" + } + }, + "number": { + "description": "Enum value number.", + "format": "int32", + "type": "integer" + } + }, + "id": "EnumValue", + "description": "Enum value definition.", + "type": "object" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "type": "object", + "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.", + "type": "array", + "items": { + "$ref": "Operation" + } + } + }, + "id": "ListOperationsResponse" + }, + "CustomHttpPattern": { + "id": "CustomHttpPattern", + "description": "A custom pattern is used for defining custom HTTP verb.", + "type": "object", + "properties": { + "path": { + "description": "The path matched by this custom verb.", + "type": "string" + }, + "kind": { + "description": "The name of this custom HTTP verb.", + "type": "string" + } + } + }, + "OperationMetadata": { + "description": "The metadata associated with a long running operation resource.", + "type": "object", + "properties": { + "startTime": { + "description": "The start time of the operation.", + "format": "google-datetime", + "type": "string" + }, + "resourceNames": { + "description": "The full name of the resources that this operation is directly\nassociated with.", + "type": "array", + "items": { + "type": "string" + } + }, + "steps": { + "description": "Detailed status information for each step. The order is undetermined.", + "type": "array", + "items": { + "$ref": "Step" + } + }, + "progressPercentage": { + "description": "Percentage of completion of this operation, ranging from 0 to 100.", + "format": "int32", + "type": "integer" + } + }, + "id": "OperationMetadata" + }, + "SystemParameterRule": { + "description": "Define a system parameter rule mapping system parameter definitions to\nmethods.", + "type": "object", + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "parameters": { + "description": "Define parameters. Multiple names may be defined for a parameter.\nFor a given method call, only one of them should be used. If multiple\nnames are used the behavior is implementation-dependent.\nIf none of the specified names are present the behavior is\nparameter-dependent.", + "type": "array", + "items": { + "$ref": "SystemParameter" + } + } + }, + "id": "SystemParameterRule" + }, + "HttpRule": { + "id": "HttpRule", + "description": "`HttpRule` defines the mapping of an RPC method to one or more HTTP\nREST API methods. The mapping specifies how different portions of the RPC\nrequest message are mapped to URL path, URL query parameters, and\nHTTP request body. The mapping is typically specified as an\n`google.api.http` annotation on the RPC method,\nsee \"google/api/annotations.proto\" for details.\n\nThe mapping consists of a field specifying the path template and\nmethod kind. The path template can refer to fields in the request\nmessage, as in the example below which describes a REST GET\noperation on a resource collection of messages:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}/{sub.subfield}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n SubMessage sub = 2; // `sub.subfield` is url-mapped\n }\n message Message {\n string text = 1; // content of the resource\n }\n\nThe same http annotation can alternatively be expressed inside the\n`GRPC API Configuration` YAML file.\n\n http:\n rules:\n - selector: \u003cproto_package_name\u003e.Messaging.GetMessage\n get: /v1/messages/{message_id}/{sub.subfield}\n\nThis definition enables an automatic, bidrectional mapping of HTTP\nJSON to RPC. Example:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456/foo` | `GetMessage(message_id: \"123456\" sub: SubMessage(subfield: \"foo\"))`\n\nIn general, not only fields but also field paths can be referenced\nfrom a path pattern. Fields mapped to the path pattern cannot be\nrepeated and must have a primitive (non-message) type.\n\nAny fields in the request message which are not bound by the path\npattern automatically become (optional) HTTP query\nparameters. Assume the following definition of the request message:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n int64 revision = 2; // becomes a parameter\n SubMessage sub = 3; // `sub.subfield` becomes a parameter\n }\n\n\nThis enables a HTTP JSON to RPC mapping as below:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))`\n\nNote that fields which are mapped to HTTP parameters must have a\nprimitive type or a repeated primitive type. Message types are not\nallowed. In the case of a repeated type, the parameter can be\nrepeated in the URL, as in `...?param=A¶m=B`.\n\nFor HTTP method kinds which allow a request body, the `body` field\nspecifies the mapping. Consider a REST update method on the\nmessage resource collection:\n\n\n service Messaging {\n rpc UpdateMessage(UpdateMessageRequest) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"message\"\n };\n }\n }\n message UpdateMessageRequest {\n string message_id = 1; // mapped to the URL\n Message message = 2; // mapped to the body\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled, where the\nrepresentation of the JSON in the request body is determined by\nprotos JSON encoding:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })`\n\nThe special name `*` can be used in the body mapping to define that\nevery field not bound by the path template should be mapped to the\nrequest body. This enables the following alternative definition of\nthe update method:\n\n service Messaging {\n rpc UpdateMessage(Message) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"*\"\n };\n }\n }\n message Message {\n string message_id = 1;\n string text = 2;\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" text: \"Hi!\")`\n\nNote that when using `*` in the body mapping, it is not possible to\nhave HTTP parameters, as all fields not bound by the path end in\nthe body. This makes this option more rarely used in practice of\ndefining REST APIs. The common usage of `*` is in custom methods\nwhich don't use the URL at all for transferring data.\n\nIt is possible to define multiple HTTP methods for one RPC by using\nthe `additional_bindings` option. Example:\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http) = {\n get: \"/v1/messages/{message_id}\"\n additional_bindings {\n get: \"/v1/users/{user_id}/messages/{message_id}\"\n }\n };\n }\n }\n message GetMessageRequest {\n string message_id = 1;\n string user_id = 2;\n }\n\n\nThis enables the following two alternative HTTP JSON to RPC\nmappings:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456` | `GetMessage(message_id: \"123456\")`\n`GET /v1/users/me/messages/123456` | `GetMessage(user_id: \"me\" message_id: \"123456\")`\n\n# Rules for HTTP mapping\n\nThe rules for mapping HTTP path, query parameters, and body fields\nto the request message are as follows:\n\n1. The `body` field specifies either `*` or a field path, or is\n omitted. If omitted, it indicates there is no HTTP request body.\n2. Leaf fields (recursive expansion of nested messages in the\n request) can be classified into three types:\n (a) Matched in the URL template.\n (b) Covered by body (if body is `*`, everything except (a) fields;\n else everything under the body field)\n (c) All other fields.\n3. URL query parameters found in the HTTP request are mapped to (c) fields.\n4. Any body sent with an HTTP request can contain only (b) fields.\n\nThe syntax of the path template is as follows:\n\n Template = \"/\" Segments [ Verb ] ;\n Segments = Segment { \"/\" Segment } ;\n Segment = \"*\" | \"**\" | LITERAL | Variable ;\n Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ;\n FieldPath = IDENT { \".\" IDENT } ;\n Verb = \":\" LITERAL ;\n\nThe syntax `*` matches a single path segment. The syntax `**` matches zero\nor more path segments, which must be the last part of the path except the\n`Verb`. The syntax `LITERAL` matches literal text in the path.\n\nThe syntax `Variable` matches part of the URL path as specified by its\ntemplate. A variable template must not contain other variables. If a variable\nmatches a single path segment, its template may be omitted, e.g. `{var}`\nis equivalent to `{var=*}`.\n\nIf a variable contains exactly one path segment, such as `\"{var}\"` or\n`\"{var=*}\"`, when such a variable is expanded into a URL path, all characters\nexcept `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the\nDiscovery Document as `{var}`.\n\nIf a variable contains one or more path segments, such as `\"{var=foo/*}\"`\nor `\"{var=**}\"`, when such a variable is expanded into a URL path, all\ncharacters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables\nshow up in the Discovery Document as `{+var}`.\n\nNOTE: While the single segment variable matches the semantics of\n[RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2\nSimple String Expansion, the multi segment variable **does not** match\nRFC 6570 Reserved Expansion. The reason is that the Reserved Expansion\ndoes not expand special characters like `?` and `#`, which would lead\nto invalid URLs.\n\nNOTE: the field paths in variables and in the `body` must not refer to\nrepeated fields or map fields.", + "type": "object", + "properties": { + "post": { + "description": "Used for creating a resource.", + "type": "string" + }, + "mediaDownload": { + "$ref": "MediaDownload", + "description": "Use this only for Scotty Requests. Do not use this for bytestream methods.\nFor media support, add instead [][google.bytestream.RestByteStream] as an\nAPI to your configuration." + }, + "additionalBindings": { + "description": "Additional HTTP bindings for the selector. Nested bindings must\nnot contain an `additional_bindings` field themselves (that is,\nthe nesting may only be one level deep).", + "type": "array", + "items": { + "$ref": "HttpRule" + } + }, + "responseBody": { + "type": "string", + "description": "The name of the response field whose value is mapped to the HTTP body of\nresponse. Other response fields are ignored. This field is optional. When\nnot set, the response message will be used as HTTP body of response.\nNOTE: the referred field must be not a repeated field and must be present\nat the top-level of response message type." + }, + "mediaUpload": { + "$ref": "MediaUpload", + "description": "Use this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead\n[][google.bytestream.RestByteStream] as an API to your\nconfiguration for Bytestream methods." + }, + "selector": { + "type": "string", + "description": "Selects methods to which this rule applies.\n\nRefer to selector for syntax details." + }, + "custom": { + "description": "The custom pattern is used for specifying an HTTP method that is not\nincluded in the `pattern` field, such as HEAD, or \"*\" to leave the\nHTTP method unspecified for this rule. The wild-card rule is useful\nfor services that provide content to Web (HTML) clients.", + "$ref": "CustomHttpPattern" + }, + "patch": { + "description": "Used for updating a resource.", + "type": "string" + }, + "get": { + "description": "Used for listing and getting information about resources.", + "type": "string" + }, + "put": { + "description": "Used for updating a resource.", + "type": "string" + }, + "delete": { + "description": "Used for deleting a resource.", + "type": "string" + }, + "body": { + "description": "The name of the request field whose value is mapped to the HTTP body, or\n`*` for mapping all fields not captured by the path pattern to the HTTP\nbody. NOTE: the referred field must not be a repeated field and must be\npresent at the top-level of request message type.", + "type": "string" + } + } + }, + "VisibilityRule": { + "description": "A visibility rule provides visibility configuration for an individual API\nelement.", + "type": "object", + "properties": { + "restriction": { + "description": "A comma-separated list of visibility labels that apply to the `selector`.\nAny of the listed labels can be used to grant the visibility.\n\nIf a rule has multiple labels, removing one of the labels but not all of\nthem can break clients.\n\nExample:\n\n visibility:\n rules:\n - selector: google.calendar.Calendar.EnhancedSearch\n restriction: GOOGLE_INTERNAL, TRUSTED_TESTER\n\nRemoving GOOGLE_INTERNAL from this restriction will break clients that\nrely on this method and only had access to it through GOOGLE_INTERNAL.", + "type": "string" + }, + "selector": { + "description": "Selects methods, messages, fields, enums, etc. to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + } + }, + "id": "VisibilityRule" + }, + "MonitoringDestination": { + "description": "Configuration of a specific monitoring destination (the producer project\nor the consumer project).", + "type": "object", + "properties": { + "metrics": { + "description": "Names of the metrics to report to this monitoring destination.\nEach name must be defined in Service.metrics section.", + "type": "array", + "items": { + "type": "string" + } + }, + "monitoredResource": { + "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.", + "type": "string" + } + }, + "id": "MonitoringDestination" + }, + "Visibility": { + "description": "`Visibility` defines restrictions for the visibility of service\nelements. Restrictions are specified using visibility labels\n(e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.\n\nUsers and projects can have access to more than one visibility label. The\neffective visibility for multiple labels is the union of each label's\nelements, plus any unrestricted elements.\n\nIf an element and its parents have no restrictions, visibility is\nunconditionally granted.\n\nExample:\n\n visibility:\n rules:\n - selector: google.calendar.Calendar.EnhancedSearch\n restriction: TRUSTED_TESTER\n - selector: google.calendar.Calendar.Delegate\n restriction: GOOGLE_INTERNAL\n\nHere, all methods are publicly visible except for the restricted methods\nEnhancedSearch and Delegate.", + "type": "object", + "properties": { + "rules": { + "description": "A list of visibility rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "VisibilityRule" + } + } + }, + "id": "Visibility" + }, + "SystemParameters": { + "description": "### System parameter configuration\n\nA system parameter is a special kind of parameter defined by the API\nsystem, not by an individual API. It is typically mapped to an HTTP header\nand/or a URL query parameter. This configuration specifies which methods\nchange the names of the system parameters.", + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "SystemParameterRule" + }, + "description": "Define system parameters.\n\nThe parameters defined here will override the default parameters\nimplemented by the system. If this field is missing from the service\nconfig, default system parameters will be used. Default system parameters\nand names is implementation-dependent.\n\nExample: define api key for all methods\n\n system_parameters\n rules:\n - selector: \"*\"\n parameters:\n - name: api_key\n url_query_parameter: api_key\n\n\nExample: define 2 api key names for a specific method.\n\n system_parameters\n rules:\n - selector: \"/ListShelves\"\n parameters:\n - name: api_key\n http_header: Api-Key1\n - name: api_key\n http_header: Api-Key2\n\n**NOTE:** All service configuration rules follow \"last one wins\" order." + } + }, + "id": "SystemParameters" + }, + "ConfigChange": { + "description": "Output generated from semantically comparing two versions of a service\nconfiguration.\n\nIncludes detailed information about a field that have changed with\napplicable advice about potential consequences for the change, such as\nbackwards-incompatibility.", + "type": "object", + "properties": { + "newValue": { + "description": "Value of the changed object in the new Service configuration,\nin JSON format. This field will not be populated if ChangeType == REMOVED.", + "type": "string" + }, + "changeType": { + "type": "string", + "enumDescriptions": [ + "No value was provided.", + "The changed object exists in the 'new' service configuration, but not\nin the 'old' service configuration.", + "The changed object exists in the 'old' service configuration, but not\nin the 'new' service configuration.", + "The changed object exists in both service configurations, but its value\nis different." + ], + "enum": [ + "CHANGE_TYPE_UNSPECIFIED", + "ADDED", + "REMOVED", + "MODIFIED" + ], + "description": "The type for this change, either ADDED, REMOVED, or MODIFIED." + }, + "element": { + "description": "Object hierarchy path to the change, with levels separated by a '.'\ncharacter. For repeated fields, an applicable unique identifier field is\nused for the index (usually selector, name, or id). For maps, the term\n'key' is used. If the field has no unique identifier, the numeric index\nis used.\nExamples:\n- visibility.rules[selector==\"google.LibraryService.CreateBook\"].restriction\n- quota.metric_rules[selector==\"google\"].metric_costs[key==\"reads\"].value\n- logging.producer_destinations[0]", + "type": "string" + }, + "oldValue": { + "description": "Value of the changed object in the old Service configuration,\nin JSON format. This field will not be populated if ChangeType == ADDED.", + "type": "string" + }, + "advices": { + "description": "Collection of advice provided for this change, useful for determining the\npossible impact of this change.", + "type": "array", + "items": { + "$ref": "Advice" + } + } + }, + "id": "ConfigChange" + }, + "Rollout": { + "description": "A rollout resource that defines how service configuration versions are pushed\nto control plane systems. Typically, you create a new version of the\nservice config, and then create a Rollout to push the service config.", + "type": "object", + "properties": { + "createTime": { + "description": "Creation time of the rollout. Readonly.", + "format": "google-datetime", + "type": "string" + }, + "status": { + "enumDescriptions": [ + "No status specified.", + "The Rollout is in progress.", + "The Rollout has completed successfully.", + "The Rollout has been cancelled. This can happen if you have overlapping\nRollout pushes, and the previous ones will be cancelled.", + "The Rollout has failed and the rollback attempt has failed too.", + "The Rollout has not started yet and is pending for execution.", + "The Rollout has failed and rolled back to the previous successful\nRollout." + ], + "enum": [ + "ROLLOUT_STATUS_UNSPECIFIED", + "IN_PROGRESS", + "SUCCESS", + "CANCELLED", + "FAILED", + "PENDING", + "FAILED_ROLLED_BACK" + ], + "description": "The status of this rollout. Readonly. In case of a failed rollout,\nthe system will automatically rollback to the current Rollout\nversion. Readonly.", + "type": "string" + }, + "serviceName": { + "description": "The name of the service associated with this Rollout.", + "type": "string" + }, + "trafficPercentStrategy": { + "description": "Google Service Control selects service configurations based on\ntraffic percentage.", + "$ref": "TrafficPercentStrategy" + }, + "createdBy": { + "description": "The user who created the Rollout. Readonly.", + "type": "string" + }, + "rolloutId": { + "description": "Optional unique identifier of this Rollout. Only lower case letters, digits\n and '-' are allowed.\n\nIf not specified by client, the server will generate one. The generated id\nwill have the form of \u003cdate\u003e\u003crevision number\u003e, where \"date\" is the create\ndate in ISO 8601 format. \"revision number\" is a monotonically increasing\npositive number that is reset every day for each service.\nAn example of the generated rollout_id is '2016-02-16r1'", + "type": "string" + }, + "deleteServiceStrategy": { + "description": "The strategy associated with a rollout to delete a `ManagedService`.\nReadonly.", + "$ref": "DeleteServiceStrategy" + } + }, + "id": "Rollout" + }, + "Quota": { + "id": "Quota", + "description": "Quota configuration helps to achieve fairness and budgeting in service\nusage.\n\nThe quota configuration works this way:\n- The service configuration defines a set of metrics.\n- For API calls, the quota.metric_rules maps methods to metrics with\n corresponding costs.\n- The quota.limits defines limits on the metrics, which will be used for\n quota checks at runtime.\n\nAn example quota configuration in yaml format:\n\n quota:\n\n - name: apiWriteQpsPerProject\n metric: library.googleapis.com/write_calls\n unit: \"1/min/{project}\" # rate limit for consumer projects\n values:\n STANDARD: 10000\n\n\n # The metric rules bind all methods to the read_calls metric,\n # except for the UpdateBook and DeleteBook methods. These two methods\n # are mapped to the write_calls metric, with the UpdateBook method\n # consuming at twice rate as the DeleteBook method.\n metric_rules:\n - selector: \"*\"\n metric_costs:\n library.googleapis.com/read_calls: 1\n - selector: google.example.library.v1.LibraryService.UpdateBook\n metric_costs:\n library.googleapis.com/write_calls: 2\n - selector: google.example.library.v1.LibraryService.DeleteBook\n metric_costs:\n library.googleapis.com/write_calls: 1\n\n Corresponding Metric definition:\n\n metrics:\n - name: library.googleapis.com/read_calls\n display_name: Read requests\n metric_kind: DELTA\n value_type: INT64\n\n - name: library.googleapis.com/write_calls\n display_name: Write requests\n metric_kind: DELTA\n value_type: INT64", + "type": "object", + "properties": { + "limits": { + "description": "List of `QuotaLimit` definitions for the service.", + "type": "array", + "items": { + "$ref": "QuotaLimit" + } + }, + "metricRules": { + "type": "array", + "items": { + "$ref": "MetricRule" + }, + "description": "List of `MetricRule` definitions, each one mapping a selected method to one\nor more metrics." + } + } + }, + "GenerateConfigReportRequest": { + "description": "Request message for GenerateConfigReport method.", + "type": "object", + "properties": { + "oldConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service configuration against which the comparison will be done.\nFor this version of API, the supported types are\ngoogle.api.servicemanagement.v1.ConfigRef,\ngoogle.api.servicemanagement.v1.ConfigSource,\nand google.api.Service", + "type": "object" + }, + "newConfig": { + "description": "Service configuration for which we want to generate the report.\nFor this version of API, the supported types are\ngoogle.api.servicemanagement.v1.ConfigRef,\ngoogle.api.servicemanagement.v1.ConfigSource,\nand google.api.Service", + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "id": "GenerateConfigReportRequest" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", + "format": "google-fieldmask", + "type": "string" + } + }, + "id": "SetIamPolicyRequest" + }, + "Step": { + "description": "Represents the status of one operation step.", + "type": "object", + "properties": { + "status": { + "type": "string", + "enumDescriptions": [ + "Unspecifed code.", + "The operation or step has completed without errors.", + "The operation or step has not started yet.", + "The operation or step is in progress.", + "The operation or step has completed with errors. If the operation is\nrollbackable, the rollback completed with errors too.", + "The operation or step has completed with cancellation." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "DONE", + "NOT_STARTED", + "IN_PROGRESS", + "FAILED", + "CANCELLED" + ], + "description": "The status code." + }, + "description": { + "description": "The short description of the step.", + "type": "string" + } + }, + "id": "Step" + }, + "DeleteServiceStrategy": { + "type": "object", + "properties": {}, + "id": "DeleteServiceStrategy", + "description": "Strategy used to delete a service. This strategy is a placeholder only\nused by the system generated rollout to delete a service." + }, + "LoggingDestination": { + "description": "Configuration of a specific logging destination (the producer project\nor the consumer project).", + "type": "object", + "properties": { + "logs": { + "description": "Names of the logs to be sent to this destination. Each name must\nbe defined in the Service.logs section. If the log name is\nnot a domain scoped name, it will be automatically prefixed with\nthe service name followed by \"/\".", + "type": "array", + "items": { + "type": "string" + } + }, + "monitoredResource": { + "description": "The monitored resource type. The type must be defined in the\nService.monitored_resources section.", + "type": "string" + } + }, + "id": "LoggingDestination" + }, + "Option": { + "properties": { + "value": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The option's value packed in an Any message. If the value is a primitive,\nthe corresponding wrapper type defined in google/protobuf/wrappers.proto\nshould be used. If the value is an enum, it should be stored as an int32\nvalue using the google.protobuf.Int32Value type.", + "type": "object" + }, + "name": { + "description": "The option's name. For protobuf built-in options (options defined in\ndescriptor.proto), this is the short name. For example, `\"map_entry\"`.\nFor custom options, it should be the fully-qualified name. For example,\n`\"google.api.http\"`.", + "type": "string" + } + }, + "id": "Option", + "description": "A protocol buffer option, which can be attached to a message, field,\nenumeration, etc.", + "type": "object" + }, + "Logging": { + "properties": { + "consumerDestinations": { + "description": "Logging configurations for sending logs to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none consumer destination.", + "type": "array", + "items": { + "$ref": "LoggingDestination" + } + }, + "producerDestinations": { + "description": "Logging configurations for sending logs to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none producer destination.", + "type": "array", + "items": { + "$ref": "LoggingDestination" + } + } + }, + "id": "Logging", + "description": "Logging configuration of the service.\n\nThe following example shows how to configure logs to be sent to the\nproducer and consumer projects. In the example, the `activity_history`\nlog is sent to both the producer and consumer projects, whereas the\n`purchase_history` log is only sent to the producer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n logs:\n - name: activity_history\n labels:\n - key: /customer_id\n - name: purchase_history\n logging:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history\n - purchase_history\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history", + "type": "object" + }, + "QuotaLimit": { + "description": "`QuotaLimit` defines a specific limit that applies over a specified duration\nfor a limit type. There can be at most one limit for a duration and limit\ntype combination defined within a `QuotaGroup`.", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Optional. User-visible, extended description for this quota limit.\nShould be used only when more context is needed to understand this limit\nthan provided by the limit's display name (see: `display_name`)." + }, + "displayName": { + "description": "User-visible display name for this limit.\nOptional. If not set, the UI will provide a default display name based on\nthe quota configuration. This field can be used to override the default\ndisplay name generated from the configuration.", + "type": "string" + }, + "metric": { + "description": "The name of the metric this quota limit applies to. The quota limits with\nthe same metric will be checked together during runtime. The metric must be\ndefined within the service config.", + "type": "string" + }, + "values": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Tiered limit values. You must specify this as a key:value pair, with an\ninteger value that is the maximum number of requests allowed for the\nspecified unit. Currently only STANDARD is supported.", + "type": "object" + }, + "unit": { + "description": "Specify the unit of the quota limit. It uses the same syntax as\nMetric.unit. The supported unit kinds are determined by the quota\nbackend system.\n\nHere are some examples:\n* \"1/min/{project}\" for quota per minute per project.\n\nNote: the order of unit components is insignificant.\nThe \"1\" at the beginning is required to follow the metric unit syntax.", + "type": "string" + }, + "maxLimit": { + "type": "string", + "description": "Maximum number of tokens that can be consumed during the specified\nduration. Client application developers can override the default limit up\nto this maximum. If specified, this value cannot be set to a value less\nthan the default limit. If not specified, it is set to the default limit.\n\nTo allow clients to apply overrides with no upper bound, set this to -1,\nindicating unlimited maximum quota.\n\nUsed by group-based quotas only.", + "format": "int64" + }, + "name": { + "description": "Name of the quota limit.\n\nThe name must be provided, and it must be unique within the service. The\nname can only include alphanumeric characters as well as '-'.\n\nThe maximum length of the limit name is 64 characters.", + "type": "string" + }, + "duration": { + "description": "Duration of this limit in textual notation. Example: \"100s\", \"24h\", \"1d\".\nFor duration longer than a day, only multiple of days is supported. We\nsupport only \"100s\" and \"1d\" for now. Additional support will be added in\nthe future. \"0\" indicates indefinite duration.\n\nUsed by group-based quotas only.", + "type": "string" + }, + "freeTier": { + "description": "Free tier value displayed in the Developers Console for this limit.\nThe free tier is the number of tokens that will be subtracted from the\nbilled amount when billing is enabled.\nThis field can only be set on a limit with duration \"1d\", in a billable\ngroup; it is invalid on any other limit. If this field is not set, it\ndefaults to 0, indicating that there is no free tier for this service.\n\nUsed by group-based quotas only.", + "format": "int64", + "type": "string" + }, + "defaultLimit": { + "description": "Default number of tokens that can be consumed during the specified\nduration. This is the number of tokens assigned when a client\napplication developer activates the service for his/her project.\n\nSpecifying a value of 0 will block all requests. This can be used if you\nare provisioning quota to selected consumers and blocking others.\nSimilarly, a value of -1 will indicate an unlimited quota. No other\nnegative values are allowed.\n\nUsed by group-based quotas only.", + "format": "int64", + "type": "string" + } + }, + "id": "QuotaLimit" + }, + "Method": { + "description": "Method represents a method of an API interface.", + "type": "object", + "properties": { + "responseTypeUrl": { + "description": "The URL of the output message type.", + "type": "string" + }, + "options": { + "description": "Any metadata attached to the method.", + "type": "array", + "items": { + "$ref": "Option" + } + }, + "responseStreaming": { + "description": "If true, the response is streamed.", + "type": "boolean" + }, + "name": { + "description": "The simple name of this method.", + "type": "string" + }, + "requestTypeUrl": { + "description": "A URL of the input message type.", + "type": "string" + }, + "requestStreaming": { + "description": "If true, the request is streamed.", + "type": "boolean" + }, + "syntax": { + "enum": [ + "SYNTAX_PROTO2", + "SYNTAX_PROTO3" + ], + "description": "The source syntax of this method.", + "type": "string", + "enumDescriptions": [ + "Syntax `proto2`.", + "Syntax `proto3`." + ] + } + }, + "id": "Method" + }, + "ListServiceRolloutsResponse": { + "description": "Response message for ListServiceRollouts method.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "The token of the next page of results.", + "type": "string" + }, + "rollouts": { + "description": "The list of rollout resources.", + "type": "array", + "items": { + "$ref": "Rollout" + } + } + }, + "id": "ListServiceRolloutsResponse" + }, + "ConfigRef": { + "description": "Represents a service configuration with its name and id.", + "type": "object", + "properties": { + "name": { + "description": "Resource name of a service config. It must have the following\nformat: \"services/{service name}/configs/{config id}\".", + "type": "string" + } + }, + "id": "ConfigRef" + }, + "Mixin": { + "id": "Mixin", + "description": "Declares an API Interface to be included in this interface. The including\ninterface must redeclare all the methods from the included interface, but\ndocumentation and options are inherited as follows:\n\n- If after comment and whitespace stripping, the documentation\n string of the redeclared method is empty, it will be inherited\n from the original method.\n\n- Each annotation belonging to the service config (http,\n visibility) which is not set in the redeclared method will be\n inherited.\n\n- If an http annotation is inherited, the path pattern will be\n modified as follows. Any version prefix will be replaced by the\n version of the including interface plus the root path if\n specified.\n\nExample of a simple mixin:\n\n package google.acl.v1;\n service AccessControl {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v1/{resource=**}:getAcl\";\n }\n }\n\n package google.storage.v2;\n service Storage {\n // rpc GetAcl(GetAclRequest) returns (Acl);\n\n // Get a data record.\n rpc GetData(GetDataRequest) returns (Data) {\n option (google.api.http).get = \"/v2/{resource=**}\";\n }\n }\n\nExample of a mixin configuration:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n\nThe mixin construct implies that all methods in `AccessControl` are\nalso declared with same name and request/response types in\n`Storage`. A documentation generator or annotation processor will\nsee the effective `Storage.GetAcl` method after inherting\ndocumentation and annotations as follows:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/{resource=**}:getAcl\";\n }\n ...\n }\n\nNote how the version in the path pattern changed from `v1` to `v2`.\n\nIf the `root` field in the mixin is specified, it should be a\nrelative path under which inherited HTTP paths are placed. Example:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n root: acls\n\nThis implies the following inherited HTTP annotation:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\";\n }\n ...\n }", + "type": "object", + "properties": { + "root": { + "description": "If non-empty specifies a path under which inherited HTTP paths\nare rooted.", + "type": "string" + }, + "name": { + "description": "The fully qualified name of the interface which is included.", + "type": "string" + } + } + }, + "FlowOperationMetadata": { + "description": "The metadata associated with a long running operation resource.", + "type": "object", + "properties": { + "flowName": { + "description": "The name of the top-level flow corresponding to this operation.\nMust be equal to the \"name\" field for a FlowName enum.", + "type": "string" + }, + "resourceNames": { + "description": "The full name of the resources that this flow is directly associated with.", + "type": "array", + "items": { + "type": "string" + } + }, + "cancelState": { + "enumDescriptions": [ + "Default state, cancellable but not cancelled.", + "The operation has proceeded past the point of no return and cannot\nbe cancelled.", + "The operation has been cancelled, work should cease\nand any needed rollback steps executed." + ], + "enum": [ + "RUNNING", + "UNCANCELLABLE", + "CANCELLED" + ], + "description": "The state of the operation with respect to cancellation.", + "type": "string" + }, + "deadline": { + "description": "Deadline for the flow to complete, to prevent orphaned Operations.\n\nIf the flow has not completed by this time, it may be terminated by\nthe engine, or force-failed by Operation lookup.\n\nNote that this is not a hard deadline after which the Flow will\ndefinitely be failed, rather it is a deadline after which it is reasonable\nto suspect a problem and other parts of the system may kill operation\nto ensure we don't have orphans.\nsee also: go/prevent-orphaned-operations", + "format": "google-datetime", + "type": "string" + }, + "operationType": { + "type": "integer", + "description": "Operation type which is a flow type and subtype info as that is missing in\nour datastore otherwise. This maps to the ordinal value of the enum:\njcg/api/tenant/operations/OperationNamespace.java", + "format": "int32" + }, + "startTime": { + "description": "The start time of the operation.", + "format": "google-datetime", + "type": "string" + }, + "surface": { + "enum": [ + "UNSPECIFIED_OP_SERVICE", + "SERVICE_MANAGEMENT", + "SERVICE_USAGE", + "SERVICE_CONSUMER_MANAGEMENT" + ], + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "TenancyUnit, ServiceNetworking fall under this" + ] + } + }, + "id": "FlowOperationMetadata" + }, + "CustomError": { + "properties": { + "types": { + "description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", + "type": "array", + "items": { + "type": "string" + } + }, + "rules": { + "description": "The list of custom error rules that apply to individual API messages.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "CustomErrorRule" + } + } + }, + "id": "CustomError", + "description": "Customize service error responses. For example, list any service\nspecific protobuf types that can appear in error detail lists of\nerror responses.\n\nExample:\n\n custom_error:\n types:\n - google.foo.v1.CustomError\n - google.foo.v1.AnotherError", + "type": "object" + }, + "Http": { + "description": "Defines the HTTP configuration for an API service. It contains a list of\nHttpRule, each specifying the mapping of an RPC method\nto one or more HTTP REST API methods.", + "type": "object", + "properties": { + "fullyDecodeReservedExpansion": { + "description": "When set to true, URL path parmeters will be fully URI-decoded except in\ncases of single segment matches in reserved expansion, where \"%2F\" will be\nleft encoded.\n\nThe default behavior is to not decode RFC 6570 reserved characters in multi\nsegment matches.", + "type": "boolean" + }, + "rules": { + "description": "A list of HTTP configuration rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "HttpRule" + } + } + }, + "id": "Http" + }, + "SourceInfo": { + "description": "Source information used to create a Service Config", + "type": "object", + "properties": { + "sourceFiles": { + "description": "All files used during config generation.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + } + } + } + }, + "id": "SourceInfo" + }, + "Control": { + "description": "Selects and configures the service controller used by the service. The\nservice controller handles features like abuse, quota, billing, logging,\nmonitoring, etc.", + "type": "object", + "properties": { + "environment": { + "description": "The service control environment to use. If empty, no control plane\nfeature (like quota and billing) will be enabled.", + "type": "string" + } + }, + "id": "Control" + }, + "SystemParameter": { + "description": "Define a parameter's name and location. The parameter may be passed as either\nan HTTP header or a URL query parameter, and if both are passed the behavior\nis implementation-dependent.", + "type": "object", + "properties": { + "urlQueryParameter": { + "description": "Define the URL query parameter name to use for the parameter. It is case\nsensitive.", + "type": "string" + }, + "httpHeader": { + "description": "Define the HTTP header name to use for the parameter. It is case\ninsensitive.", + "type": "string" + }, + "name": { + "description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.", + "type": "string" + } + }, + "id": "SystemParameter" } }, "protocol": "rest", @@ -2373,880 +3236,17 @@ "https://www.googleapis.com/auth/service.management": { "description": "Manage your Google API service configuration" }, - "https://www.googleapis.com/auth/service.management.readonly": { - "description": "View your Google API service configuration" - }, "https://www.googleapis.com/auth/cloud-platform.read-only": { "description": "View your data across Google Cloud Platform services" }, + "https://www.googleapis.com/auth/service.management.readonly": { + "description": "View your Google API service configuration" + }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" } } } }, - "rootUrl": "https://servicemanagement.googleapis.com/", - "ownerDomain": "google.com", - "name": "servicemanagement", - "batchPath": "batch", - "fullyEncodeReservedExpansion": true, - "title": "Google Service Management API", - "ownerName": "Google", - "resources": { - "services": { - "methods": { - "list": { - "description": "Lists managed services.\n\nReturns all public services. For authenticated users, also returns all\nservices the calling user has \"servicemanagement.services.get\" permission\nfor.\n\n**BETA:** If the caller specifies the `consumer_id`, it returns only the\nservices enabled on the consumer. The `consumer_id` must have the format\nof \"project:{PROJECT-ID}\".", - "httpMethod": "GET", - "response": { - "$ref": "ListServicesResponse" - }, - "parameterOrder": [], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "consumerId": { - "location": "query", - "description": "Include services consumed by the specified consumer.\n\nThe Google Service Management implementation accepts the following\nforms:\n- project:\u003cproject_id\u003e", - "type": "string" - }, - "pageToken": { - "description": "Token identifying which result to start with; returned by a previous list\ncall.", - "type": "string", - "location": "query" - }, - "pageSize": { - "format": "int32", - "description": "Requested size of the next page of data.", - "type": "integer", - "location": "query" - }, - "producerProjectId": { - "location": "query", - "description": "Include services produced by the specified project.", - "type": "string" - } - }, - "flatPath": "v1/services", - "path": "v1/services", - "id": "servicemanagement.services.list" - }, - "create": { - "flatPath": "v1/services", - "id": "servicemanagement.services.create", - "path": "v1/services", - "description": "Creates a new managed service.\nPlease note one producer project can own no more than 20 services.\n\nOperation\u003cresponse: ManagedService\u003e", - "request": { - "$ref": "ManagedService" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ] - }, - "generateConfigReport": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "GenerateConfigReportResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services:generateConfigReport", - "path": "v1/services:generateConfigReport", - "id": "servicemanagement.services.generateConfigReport", - "description": "Generates and returns a report (errors, warnings and changes from\nexisting configurations) associated with\nGenerateConfigReportRequest.new_value\n\nIf GenerateConfigReportRequest.old_value is specified,\nGenerateConfigReportRequest will contain a single ChangeReport based on the\ncomparison between GenerateConfigReportRequest.new_value and\nGenerateConfigReportRequest.old_value.\nIf GenerateConfigReportRequest.old_value is not specified, this method\nwill compare GenerateConfigReportRequest.new_value with the last pushed\nservice configuration.", - "request": { - "$ref": "GenerateConfigReportRequest" - } - }, - "get": { - "response": { - "$ref": "ManagedService" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "GET", - "parameters": { - "serviceName": { - "description": "The name of the service. See the `ServiceManager` overview for naming\nrequirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "flatPath": "v1/services/{serviceName}", - "id": "servicemanagement.services.get", - "path": "v1/services/{serviceName}", - "description": "Gets a managed service. Authentication is required unless the service is\npublic." - }, - "testIamPermissions": { - "flatPath": "v1/services/{servicesId}:testIamPermissions", - "id": "servicemanagement.services.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^services/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ] - }, - "getConfig": { - "description": "Gets a service configuration (version) for a managed service.", - "httpMethod": "GET", - "parameterOrder": [ - "serviceName" - ], - "response": { - "$ref": "Service" - }, - "parameters": { - "serviceName": { - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true - }, - "configId": { - "description": "The id of the service configuration resource.", - "type": "string", - "location": "query" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "flatPath": "v1/services/{serviceName}/config", - "path": "v1/services/{serviceName}/config", - "id": "servicemanagement.services.getConfig" - }, - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "serviceName" - ], - "parameters": { - "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services/{serviceName}", - "path": "v1/services/{serviceName}", - "id": "servicemanagement.services.delete", - "description": "Deletes a managed service. This method will change the service to the\n`Soft-Delete` state for 30 days. Within this period, service producers may\ncall UndeleteService to restore the service.\nAfter 30 days, the service will be permanently deleted.\n\nOperation\u003cresponse: google.protobuf.Empty\u003e" - }, - "enable": { - "description": "Enables a service for a project, so it can be used\nfor the project. See\n[Cloud Auth Guide](https://cloud.google.com/docs/authentication) for\nmore information.\n\nOperation\u003cresponse: EnableServiceResponse\u003e", - "request": { - "$ref": "EnableServiceRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "serviceName" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "serviceName": { - "description": "Name of the service to enable. Specifying an unknown service name will\ncause the request to fail.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services/{serviceName}:enable", - "path": "v1/services/{serviceName}:enable", - "id": "servicemanagement.services.enable" - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^services/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services/{servicesId}:setIamPolicy", - "id": "servicemanagement.services.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy" - }, - "disable": { - "request": { - "$ref": "DisableServiceRequest" - }, - "description": "Disables a service for a project, so it can no longer be\nbe used for the project. It prevents accidental usage that may cause\nunexpected billing charges or security leaks.\n\nOperation\u003cresponse: DisableServiceResponse\u003e", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "parameters": { - "serviceName": { - "description": "Name of the service to disable. Specifying an unknown service name\nwill cause the request to fail.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/services/{serviceName}:disable", - "id": "servicemanagement.services.disable", - "path": "v1/services/{serviceName}:disable" - }, - "getIamPolicy": { - "flatPath": "v1/services/{servicesId}:getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "id": "servicemanagement.services.getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "resource": { - "pattern": "^services/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true - } - } - }, - "undelete": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "parameters": { - "serviceName": { - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/services/{serviceName}:undelete", - "id": "servicemanagement.services.undelete", - "path": "v1/services/{serviceName}:undelete", - "description": "Revives a previously deleted managed service. The method restores the\nservice using the configuration at the time the service was deleted.\nThe target service must exist and must have been deleted within the\nlast 30 days.\n\nOperation\u003cresponse: UndeleteServiceResponse\u003e", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "POST" - } - }, - "resources": { - "configs": { - "methods": { - "get": { - "response": { - "$ref": "Service" - }, - "parameterOrder": [ - "serviceName", - "configId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true, - "location": "path" - }, - "configId": { - "description": "The id of the service configuration resource.", - "type": "string", - "required": true, - "location": "path" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "FULL" - ], - "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", - "type": "string" - } - }, - "flatPath": "v1/services/{serviceName}/configs/{configId}", - "id": "servicemanagement.services.configs.get", - "path": "v1/services/{serviceName}/configs/{configId}", - "description": "Gets a service configuration (version) for a managed service." - }, - "list": { - "description": "Lists the history of the service configuration for a managed service,\nfrom the newest to the oldest.", - "response": { - "$ref": "ListServiceConfigsResponse" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "serviceName": { - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true - }, - "pageToken": { - "location": "query", - "description": "The token of the page to retrieve.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The max number of items to include in the response list.", - "type": "integer" - } - }, - "flatPath": "v1/services/{serviceName}/configs", - "id": "servicemanagement.services.configs.list", - "path": "v1/services/{serviceName}/configs" - }, - "create": { - "description": "Creates a new service configuration (version) for a managed service.\nThis method only stores the service configuration. To roll out the service\nconfiguration to backend systems please call\nCreateServiceRollout.", - "request": { - "$ref": "Service" - }, - "response": { - "$ref": "Service" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "POST", - "parameters": { - "serviceName": { - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services/{serviceName}/configs", - "id": "servicemanagement.services.configs.create", - "path": "v1/services/{serviceName}/configs" - }, - "submit": { - "description": "Creates a new service configuration (version) for a managed service based\non\nuser-supplied configuration source files (for example: OpenAPI\nSpecification). This method stores the source configurations as well as the\ngenerated service configuration. To rollout the service configuration to\nother services,\nplease call CreateServiceRollout.\n\nOperation\u003cresponse: SubmitConfigSourceResponse\u003e", - "request": { - "$ref": "SubmitConfigSourceRequest" - }, - "httpMethod": "POST", - "parameterOrder": [ - "serviceName" - ], - "response": { - "$ref": "Operation" - }, - "parameters": { - "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/services/{serviceName}/configs:submit", - "path": "v1/services/{serviceName}/configs:submit", - "id": "servicemanagement.services.configs.submit" - } - } - }, - "consumers": { - "methods": { - "getIamPolicy": { - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^services/[^/]+/consumers/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:getIamPolicy", - "id": "servicemanagement.services.consumers.getIamPolicy", - "path": "v1/{+resource}:getIamPolicy" - }, - "setIamPolicy": { - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "parameters": { - "resource": { - "type": "string", - "required": true, - "pattern": "^services/[^/]+/consumers/[^/]+$", - "location": "path", - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field." - } - }, - "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:setIamPolicy", - "id": "servicemanagement.services.consumers.setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy." - }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^services/[^/]+/consumers/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:testIamPermissions", - "id": "servicemanagement.services.consumers.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions" - } - } - }, - "rollouts": { - "methods": { - "get": { - "httpMethod": "GET", - "response": { - "$ref": "Rollout" - }, - "parameterOrder": [ - "serviceName", - "rolloutId" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "serviceName": { - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true - }, - "rolloutId": { - "location": "path", - "description": "The id of the rollout resource.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/services/{serviceName}/rollouts/{rolloutId}", - "path": "v1/services/{serviceName}/rollouts/{rolloutId}", - "id": "servicemanagement.services.rollouts.get", - "description": "Gets a service configuration rollout." - }, - "list": { - "response": { - "$ref": "ListServiceRolloutsResponse" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/service.management", - "https://www.googleapis.com/auth/service.management.readonly" - ], - "parameters": { - "filter": { - "location": "query", - "description": "Use `filter` to return subset of rollouts.\nThe following filters are supported:\n -- To limit the results to only those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',\n use filter='status=SUCCESS'\n -- To limit the results to those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'\n or 'FAILED', use filter='status=CANCELLED OR status=FAILED'", - "type": "string" - }, - "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "description": "The token of the page to retrieve.", - "type": "string", - "location": "query" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The max number of items to include in the response list.", - "type": "integer" - } - }, - "flatPath": "v1/services/{serviceName}/rollouts", - "id": "servicemanagement.services.rollouts.list", - "path": "v1/services/{serviceName}/rollouts", - "description": "Lists the history of the service configuration rollouts for a managed\nservice, from the newest to the oldest." - }, - "create": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "serviceName" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "parameters": { - "serviceName": { - "type": "string", - "required": true, - "location": "path", - "description": "The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`." - } - }, - "flatPath": "v1/services/{serviceName}/rollouts", - "id": "servicemanagement.services.rollouts.create", - "path": "v1/services/{serviceName}/rollouts", - "request": { - "$ref": "Rollout" - }, - "description": "Creates a new service configuration rollout. Based on rollout, the\nGoogle Service Management will roll out the service configurations to\ndifferent backend services. For example, the logging configuration will be\npushed to Google Cloud Logging.\n\nPlease note that any previous pending and running Rollouts and associated\nOperations will be automatically cancelled so that the latest Rollout will\nnot be blocked by previous Rollouts.\n\nOperation\u003cresponse: Rollout\u003e" - } - } - } - } - }, - "operations": { - "methods": { - "get": { - "flatPath": "v1/operations/{operationsId}", - "id": "servicemanagement.operations.get", - "path": "v1/{+name}", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^operations/.+$" - } - } - }, - "list": { - "description": "Lists service operations that match the specified filter in the request.", - "response": { - "$ref": "ListOperationsResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A string for filtering Operations.\n The following filter fields are supported:\n\n * serviceName: Required. Only `=` operator is allowed.\n * startTime: The time this job was started, in ISO 8601 format.\n Allowed operators are `\u003e=`, `\u003e`, `\u003c=`, and `\u003c`.\n * status: Can be `done`, `in_progress`, or `failed`. Allowed\n operators are `=`, and `!=`.\n\n Filter expression supports conjunction (AND) and disjunction (OR)\n logical operators. However, the serviceName restriction must be at the\n top-level and can only be combined with other restrictions via the AND\n logical operator.\n\n Examples:\n\n * `serviceName={some-service}.googleapis.com`\n * `serviceName={some-service}.googleapis.com AND startTime\u003e=\"2017-02-01\"`\n * `serviceName={some-service}.googleapis.com AND status=done`\n * `serviceName={some-service}.googleapis.com AND (status=done OR startTime\u003e=\"2017-02-01\")`", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "name": { - "location": "query", - "description": "Not used.", - "type": "string" - }, - "pageSize": { - "location": "query", - "format": "int32", - "description": "The maximum number of operations to return. If unspecified, defaults to\n50. The maximum value is 100.", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], - "flatPath": "v1/operations", - "id": "servicemanagement.operations.list", - "path": "v1/operations" - } - } - } - }, - "parameters": { - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - } - }, - "version": "v1", - "baseUrl": "https://servicemanagement.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", - "servicePath": "" + "rootUrl": "https://servicemanagement.googleapis.com/" } diff --git a/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-gen.go b/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-gen.go index 3b78d9420..f9f523d02 100644 --- a/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-gen.go +++ b/vendor/google.golang.org/api/servicemanagement/v1/servicemanagement-gen.go @@ -835,6 +835,7 @@ func (s *BackendRule) UnmarshalJSON(data []byte) error { // The following example shows how to configure monitored resources and // metrics // for billing: +// // monitored_resources: // - type: library.googleapis.com/branch // labels: @@ -1849,8 +1850,8 @@ type Endpoint struct { // Aliases: DEPRECATED: This field is no longer supported. Instead of // using aliases, // please specify multiple google.api.Endpoint for each of the - // intented - // alias. + // intended + // aliases. // // Additional names that this endpoint will be hosted on. Aliases []string `json:"aliases,omitempty"` @@ -3344,6 +3345,9 @@ type MetricDescriptor struct { // user interfaces. // Use sentence case without an ending period, for example "Request // count". + // This field is optional but it is recommended to be set for any + // metrics + // associated with user-visible concepts, such as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a @@ -3373,21 +3377,7 @@ type MetricDescriptor struct { // points. MetricKind string `json:"metricKind,omitempty"` - // Name: The resource name of the metric descriptor. Depending on - // the - // implementation, the name typically includes: (1) the parent resource - // name - // that defines the scope of the metric type or of its data; and (2) - // the - // metric's URL-encoded type, which also appears in the `type` field of - // this - // descriptor. For example, following is the resource name of a - // custom - // metric within the GCP project `my-project-id`: - // - // - // "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvo - // ice%2Fpaid%2Famount" + // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is @@ -4426,31 +4416,15 @@ type QuotaLimit struct { // the same metric will be checked together during runtime. The metric // must be // defined within the service config. - // - // Used by metric-based quotas only. Metric string `json:"metric,omitempty"` - // Name: Name of the quota limit. The name is used to refer to the limit - // when - // overriding the default limit on per-consumer basis. + // Name: Name of the quota limit. // - // For metric-based quota limits, the name must be provided, and it must - // be - // unique within the service. The name can only include - // alphanumeric - // characters as well as '-'. + // The name must be provided, and it must be unique within the service. + // The + // name can only include alphanumeric characters as well as '-'. // // The maximum length of the limit name is 64 characters. - // - // The name of a limit is used as a unique identifier for this - // limit. - // Therefore, once a limit has been put into use, its name should - // be - // immutable. You can use the display_name field to provide a - // user-friendly - // name for the limit. The display name can be evolved over time - // without - // affecting the identity of the limit. Name string `json:"name,omitempty"` // Unit: Specify the unit of the quota limit. It uses the same syntax @@ -4459,28 +4433,19 @@ type QuotaLimit struct { // quota // backend system. // - // The [Google Service - // Control](https://cloud.google.com/service-control) - // supports the following unit components: - // * One of the time intevals: - // * "/min" for quota every minute. - // * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. - // * Otherwise the quota won't be reset by time, such as storage - // limit. - // * One and only one of the granted containers: - // * "/{project}" quota for a project - // // Here are some examples: // * "1/min/{project}" for quota per minute per project. // // Note: the order of unit components is insignificant. // The "1" at the beginning is required to follow the metric unit // syntax. - // - // Used by metric-based quotas only. Unit string `json:"unit,omitempty"` - // Values: Tiered limit values, currently only STANDARD is supported. + // Values: Tiered limit values. You must specify this as a key:value + // pair, with an + // integer value that is the maximum number of requests allowed for + // the + // specified unit. Currently only STANDARD is supported. Values map[string]string `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultLimit") to @@ -5585,6 +5550,9 @@ type UsageRule struct { // SkipServiceControl: True, if the method should skip service control. // If so, no control plane // feature (like quota and billing) will be enabled. + // This flag is used by ESP to allow some Endpoints customers to + // bypass + // Google internal checks. SkipServiceControl bool `json:"skipServiceControl,omitempty"` // ForceSendFields is a list of field names (e.g. diff --git a/vendor/google.golang.org/api/serviceuser/v1/serviceuser-api.json b/vendor/google.golang.org/api/serviceuser/v1/serviceuser-api.json index 5eac365d2..76c46697d 100644 --- a/vendor/google.golang.org/api/serviceuser/v1/serviceuser-api.json +++ b/vendor/google.golang.org/api/serviceuser/v1/serviceuser-api.json @@ -1,607 +1,11 @@ { - "servicePath": "", - "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", - "kind": "discovery#restDescription", "basePath": "", - "id": "serviceuser:v1", "documentationLink": "https://cloud.google.com/service-management/", - "revision": "20170926", + "revision": "20171013", + "id": "serviceuser:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { - "BillingDestination": { - "description": "Configuration of a specific billing destination (Currently only support\nbill against consumer project).", - "type": "object", - "properties": { - "monitoredResource": { - "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.", - "type": "string" - }, - "metrics": { - "description": "Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "BillingDestination" - }, - "UsageRule": { - "description": "Usage configuration rules for the service.\n\nNOTE: Under development.\n\n\nUse this rule to configure unregistered calls for the service. Unregistered\ncalls are calls that do not contain consumer project identity.\n(Example: calls that do not contain an API key).\nBy default, API methods do not allow unregistered calls, and each method call\nmust be identified by a consumer project identity. Use this rule to\nallow/disallow unregistered calls.\n\nExample of an API that wants to allow unregistered calls for entire service.\n\n usage:\n rules:\n - selector: \"*\"\n allow_unregistered_calls: true\n\nExample of a method that wants to allow unregistered calls.\n\n usage:\n rules:\n - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n allow_unregistered_calls: true", - "type": "object", - "properties": { - "skipServiceControl": { - "description": "True, if the method should skip service control. If so, no control plane\nfeature (like quota and billing) will be enabled.", - "type": "boolean" - }, - "allowUnregisteredCalls": { - "description": "True, if the method allows unregistered calls; false otherwise.", - "type": "boolean" - }, - "selector": { - "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "UsageRule" - }, - "AuthRequirement": { - "description": "User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", - "type": "object", - "properties": { - "audiences": { - "description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", - "type": "string" - }, - "providerId": { - "description": "id from authentication provider.\n\nExample:\n\n provider_id: bookstore_auth", - "type": "string" - } - }, - "id": "AuthRequirement" - }, - "Documentation": { - "description": "`Documentation` provides the information for describing a service.\n\nExample:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: \u003e\n The Google Calendar API gives access\n to most calendar features.\n pages:\n - name: Overview\n content: (== include google/foo/overview.md ==)\n - name: Tutorial\n content: (== include google/foo/tutorial.md ==)\n subpages;\n - name: Java\n content: (== include google/foo/tutorial_java.md ==)\n rules:\n - selector: google.calendar.Calendar.Get\n description: \u003e\n ...\n - selector: google.calendar.Calendar.Put\n description: \u003e\n ...\n\u003c/code\u003e\u003c/pre\u003e\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n\u003cpre\u003e\u003ccode\u003e[fully.qualified.proto.name][]\u003c/code\u003e\u003c/pre\u003e\nTo override the display text used for the link, this can be used:\n\u003cpre\u003e\u003ccode\u003e[display text][fully.qualified.proto.name]\u003c/code\u003e\u003c/pre\u003e\nText can be excluded from doc using the following notation:\n\u003cpre\u003e\u003ccode\u003e(-- internal comment --)\u003c/code\u003e\u003c/pre\u003e\nComments can be made conditional using a visibility label. The below\ntext will be only rendered if the `BETA` label is available:\n\u003cpre\u003e\u003ccode\u003e(--BETA: comment for BETA users --)\u003c/code\u003e\u003c/pre\u003e\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n\u003cpre\u003e\u003ccode\u003e(== include path/to/file ==)\u003c/code\u003e\u003c/pre\u003e\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n\u003cpre\u003e\u003ccode\u003e(== resource_for v1.shelves.books ==)\u003c/code\u003e\u003c/pre\u003e\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.", - "type": "object", - "properties": { - "summary": { - "description": "A short summary of what the service does. Can only be provided by\nplain text.", - "type": "string" - }, - "documentationRootUrl": { - "description": "The URL to the root of documentation.", - "type": "string" - }, - "overview": { - "description": "Declares a single overview page. For example:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n overview: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nThis is a shortcut for the following declaration (using pages style):\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n pages:\n - name: Overview\n content: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nNote: you cannot specify both `overview` field and `pages` field.", - "type": "string" - }, - "rules": { - "description": "A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "DocumentationRule" - }, - "type": "array" - }, - "pages": { - "description": "The top level pages for the documentation set.", - "items": { - "$ref": "Page" - }, - "type": "array" - } - }, - "id": "Documentation" - }, - "BackendRule": { - "description": "A backend rule provides configuration for an individual API element.", - "type": "object", - "properties": { - "minDeadline": { - "format": "double", - "description": "Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.", - "type": "number" - }, - "address": { - "description": "The address of the API backend.", - "type": "string" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "deadline": { - "format": "double", - "description": "The number of seconds to wait for a response from a request. The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.", - "type": "number" - } - }, - "id": "BackendRule" - }, - "AuthenticationRule": { - "description": "Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored.", - "type": "object", - "properties": { - "requirements": { - "description": "Requirements for additional authentication providers.", - "items": { - "$ref": "AuthRequirement" - }, - "type": "array" - }, - "allowWithoutCredential": { - "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.", - "type": "boolean" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "customAuth": { - "$ref": "CustomAuthRequirements", - "description": "Configuration for custom authentication." - }, - "oauth": { - "description": "The requirements for OAuth credentials.", - "$ref": "OAuthRequirements" - } - }, - "id": "AuthenticationRule" - }, - "Api": { - "description": "Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology.", - "type": "object", - "properties": { - "syntax": { - "description": "The source syntax of the service.", - "type": "string", - "enumDescriptions": [ - "Syntax `proto2`.", - "Syntax `proto3`." - ], - "enum": [ - "SYNTAX_PROTO2", - "SYNTAX_PROTO3" - ] - }, - "sourceContext": { - "description": "Source context for the protocol buffer service represented by this\nmessage.", - "$ref": "SourceContext" - }, - "version": { - "description": "A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v\u003cmajor-version\u003e`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n", - "type": "string" - }, - "mixins": { - "description": "Included interfaces. See Mixin.", - "items": { - "$ref": "Mixin" - }, - "type": "array" - }, - "options": { - "description": "Any metadata attached to the interface.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "methods": { - "description": "The methods of this interface, in unspecified order.", - "items": { - "$ref": "Method" - }, - "type": "array" - }, - "name": { - "description": "The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.", - "type": "string" - } - }, - "id": "Api" - }, - "MetricRule": { - "description": "Bind API methods to metrics. Binding a method to a metric causes that\nmetric's configured quota behaviors to apply to the method call.", - "type": "object", - "properties": { - "metricCosts": { - "additionalProperties": { - "format": "int64", - "type": "string" - }, - "description": "Metrics to update when the selected methods are called, and the associated\ncost applied to each metric.\n\nThe key of the map is the metric name, and the values are the amount\nincreased for the metric against which the quota limits are defined.\nThe value must not be negative.", - "type": "object" - }, - "selector": { - "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "MetricRule" - }, - "Authentication": { - "description": "`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n name: calendar.googleapis.com\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", - "type": "object", - "properties": { - "providers": { - "description": "Defines a set of authentication providers that a service supports.", - "items": { - "$ref": "AuthProvider" - }, - "type": "array" - }, - "rules": { - "description": "A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", - "items": { - "$ref": "AuthenticationRule" - }, - "type": "array" - } - }, - "id": "Authentication" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object" - } - }, - "id": "Operation" - }, - "Page": { - "description": "Represents a documentation page. A page can contain subpages to represent\nnested documentation set structure.", - "type": "object", - "properties": { - "subpages": { - "description": "Subpages of this page. The order of subpages specified here will be\nhonored in the generated docset.", - "items": { - "$ref": "Page" - }, - "type": "array" - }, - "name": { - "description": "The name of the page. It will be used as an identity of the page to\ngenerate URI of the page, text of the link to this page in navigation,\netc. The full page name (start from the root page name to this page\nconcatenated with `.`) can be used as reference to the page in your\ndocumentation. For example:\n\u003cpre\u003e\u003ccode\u003epages:\n- name: Tutorial\n content: (== include tutorial.md ==)\n subpages:\n - name: Java\n content: (== include tutorial_java.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nYou can reference `Java` page using Markdown reference link syntax:\n`Java`.", - "type": "string" - }, - "content": { - "description": "The Markdown content of the page. You can use \u003ccode\u003e(== include {path} ==)\u003c/code\u003e\nto include content from a Markdown file.", - "type": "string" - } - }, - "id": "Page" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "type": "array" - } - }, - "id": "Status" - }, - "AuthProvider": { - "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", - "type": "object", - "properties": { - "audiences": { - "description": "The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", - "type": "string" - }, - "authorizationUrl": { - "description": "Redirect URL if JWT token is required but no present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.", - "type": "string" - }, - "issuer": { - "description": "Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com", - "type": "string" - }, - "id": { - "description": "The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".", - "type": "string" - }, - "jwksUri": { - "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs", - "type": "string" - } - }, - "id": "AuthProvider" - }, - "Service": { - "description": "`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n type: google.api.Service\n config_version: 3\n name: calendar.googleapis.com\n title: Google Calendar API\n apis:\n - name: google.calendar.v3.Calendar\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", - "type": "object", - "properties": { - "http": { - "description": "HTTP configuration.", - "$ref": "Http" - }, - "systemParameters": { - "$ref": "SystemParameters", - "description": "System parameter configuration." - }, - "backend": { - "description": "API backend configuration.", - "$ref": "Backend" - }, - "documentation": { - "description": "Additional API documentation.", - "$ref": "Documentation" - }, - "logging": { - "description": "Logging configuration.", - "$ref": "Logging" - }, - "monitoredResources": { - "description": "Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations.", - "items": { - "$ref": "MonitoredResourceDescriptor" - }, - "type": "array" - }, - "enums": { - "description": "A list of all enum types included in this API service. Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded. Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n enums:\n - name: google.someapi.v1.SomeEnum", - "items": { - "$ref": "Enum" - }, - "type": "array" - }, - "context": { - "$ref": "Context", - "description": "Context configuration." - }, - "id": { - "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead.", - "type": "string" - }, - "usage": { - "$ref": "Usage", - "description": "Configuration controlling usage of this service." - }, - "metrics": { - "description": "Defines the metrics used by this service.", - "items": { - "$ref": "MetricDescriptor" - }, - "type": "array" - }, - "authentication": { - "description": "Auth configuration.", - "$ref": "Authentication" - }, - "experimental": { - "description": "Experimental configuration.", - "$ref": "Experimental" - }, - "control": { - "description": "Configuration for the service control plane.", - "$ref": "Control" - }, - "configVersion": { - "format": "uint32", - "description": "The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.", - "type": "integer" - }, - "monitoring": { - "description": "Monitoring configuration.", - "$ref": "Monitoring" - }, - "producerProjectId": { - "description": "The Google project that owns this service.", - "type": "string" - }, - "systemTypes": { - "description": "A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.", - "items": { - "$ref": "Type" - }, - "type": "array" - }, - "visibility": { - "$ref": "Visibility", - "description": "API visibility configuration." - }, - "quota": { - "description": "Quota configuration.", - "$ref": "Quota" - }, - "name": { - "description": "The DNS address at which this service is available,\ne.g. `calendar.googleapis.com`.", - "type": "string" - }, - "billing": { - "description": "Billing configuration.", - "$ref": "Billing" - }, - "customError": { - "description": "Custom error configuration.", - "$ref": "CustomError" - }, - "title": { - "description": "The product title for this service.", - "type": "string" - }, - "endpoints": { - "description": "Configuration for network endpoints. If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.", - "items": { - "$ref": "Endpoint" - }, - "type": "array" - }, - "logs": { - "description": "Defines the logs used by this service.", - "items": { - "$ref": "LogDescriptor" - }, - "type": "array" - }, - "apis": { - "description": "A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files.", - "items": { - "$ref": "Api" - }, - "type": "array" - }, - "types": { - "description": "A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included. Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n types:\n - name: google.protobuf.Int32", - "items": { - "$ref": "Type" - }, - "type": "array" - }, - "sourceInfo": { - "description": "Output only. The source information for this configuration if available.", - "$ref": "SourceInfo" - } - }, - "id": "Service" - }, - "EnumValue": { - "description": "Enum value definition.", - "type": "object", - "properties": { - "options": { - "description": "Protocol buffer options.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "number": { - "format": "int32", - "description": "Enum value number.", - "type": "integer" - }, - "name": { - "description": "Enum value name.", - "type": "string" - } - }, - "id": "EnumValue" - }, - "CustomHttpPattern": { - "description": "A custom pattern is used for defining custom HTTP verb.", - "type": "object", - "properties": { - "kind": { - "description": "The name of this custom HTTP verb.", - "type": "string" - }, - "path": { - "description": "The path matched by this custom verb.", - "type": "string" - } - }, - "id": "CustomHttpPattern" - }, - "OperationMetadata": { - "description": "The metadata associated with a long running operation resource.", - "type": "object", - "properties": { - "steps": { - "description": "Detailed status information for each step. The order is undetermined.", - "items": { - "$ref": "Step" - }, - "type": "array" - }, - "resourceNames": { - "description": "The full name of the resources that this operation is directly\nassociated with.", - "items": { - "type": "string" - }, - "type": "array" - }, - "progressPercentage": { - "format": "int32", - "description": "Percentage of completion of this operation, ranging from 0 to 100.", - "type": "integer" - }, - "startTime": { - "format": "google-datetime", - "description": "The start time of the operation.", - "type": "string" - } - }, - "id": "OperationMetadata" - }, - "PublishedService": { - "description": "The published version of a Service that is managed by\nGoogle Service Management.", - "type": "object", - "properties": { - "service": { - "description": "The service's published configuration.", - "$ref": "Service" - }, - "name": { - "description": "The resource name of the service.\n\nA valid name would be:\n- services/serviceuser.googleapis.com", - "type": "string" - } - }, - "id": "PublishedService" - }, - "SystemParameterRule": { - "description": "Define a system parameter rule mapping system parameter definitions to\nmethods.", - "type": "object", - "properties": { - "selector": { - "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", - "type": "string" - }, - "parameters": { - "description": "Define parameters. Multiple names may be defined for a parameter.\nFor a given method call, only one of them should be used. If multiple\nnames are used the behavior is implementation-dependent.\nIf none of the specified names are present the behavior is\nparameter-dependent.", - "items": { - "$ref": "SystemParameter" - }, - "type": "array" - } - }, - "id": "SystemParameterRule" - }, "VisibilityRule": { "description": "A visibility rule provides visibility configuration for an individual API\nelement.", "type": "object", @@ -621,13 +25,20 @@ "description": "`HttpRule` defines the mapping of an RPC method to one or more HTTP\nREST API methods. The mapping specifies how different portions of the RPC\nrequest message are mapped to URL path, URL query parameters, and\nHTTP request body. The mapping is typically specified as an\n`google.api.http` annotation on the RPC method,\nsee \"google/api/annotations.proto\" for details.\n\nThe mapping consists of a field specifying the path template and\nmethod kind. The path template can refer to fields in the request\nmessage, as in the example below which describes a REST GET\noperation on a resource collection of messages:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}/{sub.subfield}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n SubMessage sub = 2; // `sub.subfield` is url-mapped\n }\n message Message {\n string text = 1; // content of the resource\n }\n\nThe same http annotation can alternatively be expressed inside the\n`GRPC API Configuration` YAML file.\n\n http:\n rules:\n - selector: \u003cproto_package_name\u003e.Messaging.GetMessage\n get: /v1/messages/{message_id}/{sub.subfield}\n\nThis definition enables an automatic, bidrectional mapping of HTTP\nJSON to RPC. Example:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456/foo` | `GetMessage(message_id: \"123456\" sub: SubMessage(subfield: \"foo\"))`\n\nIn general, not only fields but also field paths can be referenced\nfrom a path pattern. Fields mapped to the path pattern cannot be\nrepeated and must have a primitive (non-message) type.\n\nAny fields in the request message which are not bound by the path\npattern automatically become (optional) HTTP query\nparameters. Assume the following definition of the request message:\n\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http).get = \"/v1/messages/{message_id}\";\n }\n }\n message GetMessageRequest {\n message SubMessage {\n string subfield = 1;\n }\n string message_id = 1; // mapped to the URL\n int64 revision = 2; // becomes a parameter\n SubMessage sub = 3; // `sub.subfield` becomes a parameter\n }\n\n\nThis enables a HTTP JSON to RPC mapping as below:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield: \"foo\"))`\n\nNote that fields which are mapped to HTTP parameters must have a\nprimitive type or a repeated primitive type. Message types are not\nallowed. In the case of a repeated type, the parameter can be\nrepeated in the URL, as in `...?param=A¶m=B`.\n\nFor HTTP method kinds which allow a request body, the `body` field\nspecifies the mapping. Consider a REST update method on the\nmessage resource collection:\n\n\n service Messaging {\n rpc UpdateMessage(UpdateMessageRequest) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"message\"\n };\n }\n }\n message UpdateMessageRequest {\n string message_id = 1; // mapped to the URL\n Message message = 2; // mapped to the body\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled, where the\nrepresentation of the JSON in the request body is determined by\nprotos JSON encoding:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" message { text: \"Hi!\" })`\n\nThe special name `*` can be used in the body mapping to define that\nevery field not bound by the path template should be mapped to the\nrequest body. This enables the following alternative definition of\nthe update method:\n\n service Messaging {\n rpc UpdateMessage(Message) returns (Message) {\n option (google.api.http) = {\n put: \"/v1/messages/{message_id}\"\n body: \"*\"\n };\n }\n }\n message Message {\n string message_id = 1;\n string text = 2;\n }\n\n\nThe following HTTP JSON to RPC mapping is enabled:\n\nHTTP | RPC\n-----|-----\n`PUT /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id: \"123456\" text: \"Hi!\")`\n\nNote that when using `*` in the body mapping, it is not possible to\nhave HTTP parameters, as all fields not bound by the path end in\nthe body. This makes this option more rarely used in practice of\ndefining REST APIs. The common usage of `*` is in custom methods\nwhich don't use the URL at all for transferring data.\n\nIt is possible to define multiple HTTP methods for one RPC by using\nthe `additional_bindings` option. Example:\n\n service Messaging {\n rpc GetMessage(GetMessageRequest) returns (Message) {\n option (google.api.http) = {\n get: \"/v1/messages/{message_id}\"\n additional_bindings {\n get: \"/v1/users/{user_id}/messages/{message_id}\"\n }\n };\n }\n }\n message GetMessageRequest {\n string message_id = 1;\n string user_id = 2;\n }\n\n\nThis enables the following two alternative HTTP JSON to RPC\nmappings:\n\nHTTP | RPC\n-----|-----\n`GET /v1/messages/123456` | `GetMessage(message_id: \"123456\")`\n`GET /v1/users/me/messages/123456` | `GetMessage(user_id: \"me\" message_id: \"123456\")`\n\n# Rules for HTTP mapping\n\nThe rules for mapping HTTP path, query parameters, and body fields\nto the request message are as follows:\n\n1. The `body` field specifies either `*` or a field path, or is\n omitted. If omitted, it indicates there is no HTTP request body.\n2. Leaf fields (recursive expansion of nested messages in the\n request) can be classified into three types:\n (a) Matched in the URL template.\n (b) Covered by body (if body is `*`, everything except (a) fields;\n else everything under the body field)\n (c) All other fields.\n3. URL query parameters found in the HTTP request are mapped to (c) fields.\n4. Any body sent with an HTTP request can contain only (b) fields.\n\nThe syntax of the path template is as follows:\n\n Template = \"/\" Segments [ Verb ] ;\n Segments = Segment { \"/\" Segment } ;\n Segment = \"*\" | \"**\" | LITERAL | Variable ;\n Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ;\n FieldPath = IDENT { \".\" IDENT } ;\n Verb = \":\" LITERAL ;\n\nThe syntax `*` matches a single path segment. The syntax `**` matches zero\nor more path segments, which must be the last part of the path except the\n`Verb`. The syntax `LITERAL` matches literal text in the path.\n\nThe syntax `Variable` matches part of the URL path as specified by its\ntemplate. A variable template must not contain other variables. If a variable\nmatches a single path segment, its template may be omitted, e.g. `{var}`\nis equivalent to `{var=*}`.\n\nIf a variable contains exactly one path segment, such as `\"{var}\"` or\n`\"{var=*}\"`, when such a variable is expanded into a URL path, all characters\nexcept `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the\nDiscovery Document as `{var}`.\n\nIf a variable contains one or more path segments, such as `\"{var=foo/*}\"`\nor `\"{var=**}\"`, when such a variable is expanded into a URL path, all\ncharacters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables\nshow up in the Discovery Document as `{+var}`.\n\nNOTE: While the single segment variable matches the semantics of\n[RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2\nSimple String Expansion, the multi segment variable **does not** match\nRFC 6570 Reserved Expansion. The reason is that the Reserved Expansion\ndoes not expand special characters like `?` and `#`, which would lead\nto invalid URLs.\n\nNOTE: the field paths in variables and in the `body` must not refer to\nrepeated fields or map fields.", "type": "object", "properties": { + "additionalBindings": { + "description": "Additional HTTP bindings for the selector. Nested bindings must\nnot contain an `additional_bindings` field themselves (that is,\nthe nesting may only be one level deep).", + "type": "array", + "items": { + "$ref": "HttpRule" + } + }, "responseBody": { "description": "The name of the response field whose value is mapped to the HTTP body of\nresponse. Other response fields are ignored. This field is optional. When\nnot set, the response message will be used as HTTP body of response.\nNOTE: the referred field must be not a repeated field and must be present\nat the top-level of response message type.", "type": "string" }, "mediaUpload": { - "description": "Use this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead\n[][google.bytestream.RestByteStream] as an API to your\nconfiguration for Bytestream methods.", - "$ref": "MediaUpload" + "$ref": "MediaUpload", + "description": "Use this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead\n[][google.bytestream.RestByteStream] as an API to your\nconfiguration for Bytestream methods." }, "selector": { "description": "Selects methods to which this rule applies.\n\nRefer to selector for syntax details.", @@ -637,21 +48,21 @@ "$ref": "CustomHttpPattern", "description": "The custom pattern is used for specifying an HTTP method that is not\nincluded in the `pattern` field, such as HEAD, or \"*\" to leave the\nHTTP method unspecified for this rule. The wild-card rule is useful\nfor services that provide content to Web (HTML) clients." }, - "get": { - "description": "Used for listing and getting information about resources.", - "type": "string" - }, "patch": { "description": "Used for updating a resource.", "type": "string" }, + "get": { + "description": "Used for listing and getting information about resources.", + "type": "string" + }, "put": { "description": "Used for updating a resource.", "type": "string" }, "delete": { - "description": "Used for deleting a resource.", - "type": "string" + "type": "string", + "description": "Used for deleting a resource." }, "body": { "description": "The name of the request field whose value is mapped to the HTTP body, or\n`*` for mapping all fields not captured by the path pattern to the HTTP\nbody. NOTE: the referred field must not be a repeated field and must be\npresent at the top-level of request message type.", @@ -664,13 +75,6 @@ "mediaDownload": { "description": "Use this only for Scotty Requests. Do not use this for bytestream methods.\nFor media support, add instead [][google.bytestream.RestByteStream] as an\nAPI to your configuration.", "$ref": "MediaDownload" - }, - "additionalBindings": { - "description": "Additional HTTP bindings for the selector. Nested bindings must\nnot contain an `additional_bindings` field themselves (that is,\nthe nesting may only be one level deep).", - "items": { - "$ref": "HttpRule" - }, - "type": "array" } }, "id": "HttpRule" @@ -685,10 +89,10 @@ }, "metrics": { "description": "Names of the metrics to report to this monitoring destination.\nEach name must be defined in Service.metrics section.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, "id": "MonitoringDestination" @@ -698,11 +102,11 @@ "type": "object", "properties": { "rules": { - "description": "A list of visibility rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "VisibilityRule" }, - "type": "array" + "description": "A list of visibility rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order." } }, "id": "Visibility" @@ -713,10 +117,10 @@ "properties": { "rules": { "description": "Define system parameters.\n\nThe parameters defined here will override the default parameters\nimplemented by the system. If this field is missing from the service\nconfig, default system parameters will be used. Default system parameters\nand names is implementation-dependent.\n\nExample: define api key for all methods\n\n system_parameters\n rules:\n - selector: \"*\"\n parameters:\n - name: api_key\n url_query_parameter: api_key\n\n\nExample: define 2 api key names for a specific method.\n\n system_parameters\n rules:\n - selector: \"/ListShelves\"\n parameters:\n - name: api_key\n http_header: Api-Key1\n - name: api_key\n http_header: Api-Key2\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "SystemParameterRule" - }, - "type": "array" + } } }, "id": "SystemParameters" @@ -727,28 +131,24 @@ "properties": { "limits": { "description": "List of `QuotaLimit` definitions for the service.", + "type": "array", "items": { "$ref": "QuotaLimit" - }, - "type": "array" + } }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one\nor more metrics.", + "type": "array", "items": { "$ref": "MetricRule" }, - "type": "array" + "description": "List of `MetricRule` definitions, each one mapping a selected method to one\nor more metrics." } }, "id": "Quota" }, "Step": { - "description": "Represents the status of one operation step.", - "type": "object", "properties": { "status": { - "description": "The status code.", - "type": "string", "enumDescriptions": [ "Unspecifed code.", "The operation or step has completed without errors.", @@ -764,36 +164,38 @@ "IN_PROGRESS", "FAILED", "CANCELLED" - ] + ], + "description": "The status code.", + "type": "string" }, "description": { "description": "The short description of the step.", "type": "string" } }, - "id": "Step" + "id": "Step", + "description": "Represents the status of one operation step.", + "type": "object" }, "LoggingDestination": { - "description": "Configuration of a specific logging destination (the producer project\nor the consumer project).", - "type": "object", "properties": { "logs": { "description": "Names of the logs to be sent to this destination. Each name must\nbe defined in the Service.logs section. If the log name is\nnot a domain scoped name, it will be automatically prefixed with\nthe service name followed by \"/\".", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "monitoredResource": { "description": "The monitored resource type. The type must be defined in the\nService.monitored_resources section.", "type": "string" } }, - "id": "LoggingDestination" + "id": "LoggingDestination", + "description": "Configuration of a specific logging destination (the producer project\nor the consumer project).", + "type": "object" }, "Option": { - "description": "A protocol buffer option, which can be attached to a message, field,\nenumeration, etc.", - "type": "object", "properties": { "value": { "additionalProperties": { @@ -804,106 +206,40 @@ "type": "object" }, "name": { - "description": "The option's name. For protobuf built-in options (options defined in\ndescriptor.proto), this is the short name. For example, `\"map_entry\"`.\nFor custom options, it should be the fully-qualified name. For example,\n`\"google.api.http\"`.", - "type": "string" + "type": "string", + "description": "The option's name. For protobuf built-in options (options defined in\ndescriptor.proto), this is the short name. For example, `\"map_entry\"`.\nFor custom options, it should be the fully-qualified name. For example,\n`\"google.api.http\"`." } }, - "id": "Option" + "id": "Option", + "description": "A protocol buffer option, which can be attached to a message, field,\nenumeration, etc.", + "type": "object" }, "Logging": { + "id": "Logging", "description": "Logging configuration of the service.\n\nThe following example shows how to configure logs to be sent to the\nproducer and consumer projects. In the example, the `activity_history`\nlog is sent to both the producer and consumer projects, whereas the\n`purchase_history` log is only sent to the producer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n logs:\n - name: activity_history\n labels:\n - key: /customer_id\n - name: purchase_history\n logging:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history\n - purchase_history\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n logs:\n - activity_history", "type": "object", "properties": { "consumerDestinations": { "description": "Logging configurations for sending logs to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none consumer destination.", + "type": "array", "items": { "$ref": "LoggingDestination" - }, - "type": "array" + } }, "producerDestinations": { "description": "Logging configurations for sending logs to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none producer destination.", + "type": "array", "items": { "$ref": "LoggingDestination" - }, - "type": "array" - } - }, - "id": "Logging" - }, - "QuotaLimit": { - "description": "`QuotaLimit` defines a specific limit that applies over a specified duration\nfor a limit type. There can be at most one limit for a duration and limit\ntype combination defined within a `QuotaGroup`.", - "type": "object", - "properties": { - "freeTier": { - "format": "int64", - "description": "Free tier value displayed in the Developers Console for this limit.\nThe free tier is the number of tokens that will be subtracted from the\nbilled amount when billing is enabled.\nThis field can only be set on a limit with duration \"1d\", in a billable\ngroup; it is invalid on any other limit. If this field is not set, it\ndefaults to 0, indicating that there is no free tier for this service.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "duration": { - "description": "Duration of this limit in textual notation. Example: \"100s\", \"24h\", \"1d\".\nFor duration longer than a day, only multiple of days is supported. We\nsupport only \"100s\" and \"1d\" for now. Additional support will be added in\nthe future. \"0\" indicates indefinite duration.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "defaultLimit": { - "format": "int64", - "description": "Default number of tokens that can be consumed during the specified\nduration. This is the number of tokens assigned when a client\napplication developer activates the service for his/her project.\n\nSpecifying a value of 0 will block all requests. This can be used if you\nare provisioning quota to selected consumers and blocking others.\nSimilarly, a value of -1 will indicate an unlimited quota. No other\nnegative values are allowed.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "description": { - "description": "Optional. User-visible, extended description for this quota limit.\nShould be used only when more context is needed to understand this limit\nthan provided by the limit's display name (see: `display_name`).", - "type": "string" - }, - "metric": { - "description": "The name of the metric this quota limit applies to. The quota limits with\nthe same metric will be checked together during runtime. The metric must be\ndefined within the service config.\n\nUsed by metric-based quotas only.", - "type": "string" - }, - "displayName": { - "description": "User-visible display name for this limit.\nOptional. If not set, the UI will provide a default display name based on\nthe quota configuration. This field can be used to override the default\ndisplay name generated from the configuration.", - "type": "string" - }, - "values": { - "description": "Tiered limit values, currently only STANDARD is supported.", - "type": "object", - "additionalProperties": { - "format": "int64", - "type": "string" } - }, - "unit": { - "description": "Specify the unit of the quota limit. It uses the same syntax as\nMetric.unit. The supported unit kinds are determined by the quota\nbackend system.\n\nThe [Google Service Control](https://cloud.google.com/service-control)\nsupports the following unit components:\n* One of the time intevals:\n * \"/min\" for quota every minute.\n * \"/d\" for quota every 24 hours, starting 00:00 US Pacific Time.\n * Otherwise the quota won't be reset by time, such as storage limit.\n* One and only one of the granted containers:\n * \"/{project}\" quota for a project\n\nHere are some examples:\n* \"1/min/{project}\" for quota per minute per project.\n\nNote: the order of unit components is insignificant.\nThe \"1\" at the beginning is required to follow the metric unit syntax.\n\nUsed by metric-based quotas only.", - "type": "string" - }, - "maxLimit": { - "format": "int64", - "description": "Maximum number of tokens that can be consumed during the specified\nduration. Client application developers can override the default limit up\nto this maximum. If specified, this value cannot be set to a value less\nthan the default limit. If not specified, it is set to the default limit.\n\nTo allow clients to apply overrides with no upper bound, set this to -1,\nindicating unlimited maximum quota.\n\nUsed by group-based quotas only.", - "type": "string" - }, - "name": { - "description": "Name of the quota limit. The name is used to refer to the limit when\noverriding the default limit on per-consumer basis.\n\nFor metric-based quota limits, the name must be provided, and it must be\nunique within the service. The name can only include alphanumeric\ncharacters as well as '-'.\n\nThe maximum length of the limit name is 64 characters.\n\nThe name of a limit is used as a unique identifier for this limit.\nTherefore, once a limit has been put into use, its name should be\nimmutable. You can use the display_name field to provide a user-friendly\nname for the limit. The display name can be evolved over time without\naffecting the identity of the limit.", - "type": "string" } - }, - "id": "QuotaLimit" + } }, "Method": { + "id": "Method", "description": "Method represents a method of an API interface.", "type": "object", "properties": { - "responseTypeUrl": { - "description": "The URL of the output message type.", - "type": "string" - }, - "options": { - "description": "Any metadata attached to the method.", - "items": { - "$ref": "Option" - }, - "type": "array" - }, - "responseStreaming": { - "description": "If true, the response is streamed.", - "type": "boolean" - }, "name": { "description": "The simple name of this method.", "type": "string" @@ -913,10 +249,12 @@ "type": "string" }, "requestStreaming": { - "description": "If true, the request is streamed.", - "type": "boolean" + "type": "boolean", + "description": "If true, the request is streamed." }, "syntax": { + "description": "The source syntax of this method.", + "type": "string", "enumDescriptions": [ "Syntax `proto2`.", "Syntax `proto3`." @@ -924,24 +262,90 @@ "enum": [ "SYNTAX_PROTO2", "SYNTAX_PROTO3" - ], - "description": "The source syntax of this method.", + ] + }, + "responseTypeUrl": { + "description": "The URL of the output message type.", + "type": "string" + }, + "options": { + "description": "Any metadata attached to the method.", + "type": "array", + "items": { + "$ref": "Option" + } + }, + "responseStreaming": { + "description": "If true, the response is streamed.", + "type": "boolean" + } + } + }, + "QuotaLimit": { + "description": "`QuotaLimit` defines a specific limit that applies over a specified duration\nfor a limit type. There can be at most one limit for a duration and limit\ntype combination defined within a `QuotaGroup`.", + "type": "object", + "properties": { + "duration": { + "description": "Duration of this limit in textual notation. Example: \"100s\", \"24h\", \"1d\".\nFor duration longer than a day, only multiple of days is supported. We\nsupport only \"100s\" and \"1d\" for now. Additional support will be added in\nthe future. \"0\" indicates indefinite duration.\n\nUsed by group-based quotas only.", + "type": "string" + }, + "freeTier": { + "type": "string", + "description": "Free tier value displayed in the Developers Console for this limit.\nThe free tier is the number of tokens that will be subtracted from the\nbilled amount when billing is enabled.\nThis field can only be set on a limit with duration \"1d\", in a billable\ngroup; it is invalid on any other limit. If this field is not set, it\ndefaults to 0, indicating that there is no free tier for this service.\n\nUsed by group-based quotas only.", + "format": "int64" + }, + "defaultLimit": { + "type": "string", + "description": "Default number of tokens that can be consumed during the specified\nduration. This is the number of tokens assigned when a client\napplication developer activates the service for his/her project.\n\nSpecifying a value of 0 will block all requests. This can be used if you\nare provisioning quota to selected consumers and blocking others.\nSimilarly, a value of -1 will indicate an unlimited quota. No other\nnegative values are allowed.\n\nUsed by group-based quotas only.", + "format": "int64" + }, + "description": { + "description": "Optional. User-visible, extended description for this quota limit.\nShould be used only when more context is needed to understand this limit\nthan provided by the limit's display name (see: `display_name`).", + "type": "string" + }, + "metric": { + "type": "string", + "description": "The name of the metric this quota limit applies to. The quota limits with\nthe same metric will be checked together during runtime. The metric must be\ndefined within the service config." + }, + "displayName": { + "description": "User-visible display name for this limit.\nOptional. If not set, the UI will provide a default display name based on\nthe quota configuration. This field can be used to override the default\ndisplay name generated from the configuration.", + "type": "string" + }, + "values": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Tiered limit values. You must specify this as a key:value pair, with an\ninteger value that is the maximum number of requests allowed for the\nspecified unit. Currently only STANDARD is supported.", + "type": "object" + }, + "unit": { + "description": "Specify the unit of the quota limit. It uses the same syntax as\nMetric.unit. The supported unit kinds are determined by the quota\nbackend system.\n\nHere are some examples:\n* \"1/min/{project}\" for quota per minute per project.\n\nNote: the order of unit components is insignificant.\nThe \"1\" at the beginning is required to follow the metric unit syntax.", + "type": "string" + }, + "maxLimit": { + "description": "Maximum number of tokens that can be consumed during the specified\nduration. Client application developers can override the default limit up\nto this maximum. If specified, this value cannot be set to a value less\nthan the default limit. If not specified, it is set to the default limit.\n\nTo allow clients to apply overrides with no upper bound, set this to -1,\nindicating unlimited maximum quota.\n\nUsed by group-based quotas only.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Name of the quota limit.\n\nThe name must be provided, and it must be unique within the service. The\nname can only include alphanumeric characters as well as '-'.\n\nThe maximum length of the limit name is 64 characters.", "type": "string" } }, - "id": "Method" + "id": "QuotaLimit" }, "Mixin": { "description": "Declares an API Interface to be included in this interface. The including\ninterface must redeclare all the methods from the included interface, but\ndocumentation and options are inherited as follows:\n\n- If after comment and whitespace stripping, the documentation\n string of the redeclared method is empty, it will be inherited\n from the original method.\n\n- Each annotation belonging to the service config (http,\n visibility) which is not set in the redeclared method will be\n inherited.\n\n- If an http annotation is inherited, the path pattern will be\n modified as follows. Any version prefix will be replaced by the\n version of the including interface plus the root path if\n specified.\n\nExample of a simple mixin:\n\n package google.acl.v1;\n service AccessControl {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v1/{resource=**}:getAcl\";\n }\n }\n\n package google.storage.v2;\n service Storage {\n // rpc GetAcl(GetAclRequest) returns (Acl);\n\n // Get a data record.\n rpc GetData(GetDataRequest) returns (Data) {\n option (google.api.http).get = \"/v2/{resource=**}\";\n }\n }\n\nExample of a mixin configuration:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n\nThe mixin construct implies that all methods in `AccessControl` are\nalso declared with same name and request/response types in\n`Storage`. A documentation generator or annotation processor will\nsee the effective `Storage.GetAcl` method after inherting\ndocumentation and annotations as follows:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/{resource=**}:getAcl\";\n }\n ...\n }\n\nNote how the version in the path pattern changed from `v1` to `v2`.\n\nIf the `root` field in the mixin is specified, it should be a\nrelative path under which inherited HTTP paths are placed. Example:\n\n apis:\n - name: google.storage.v2.Storage\n mixins:\n - name: google.acl.v1.AccessControl\n root: acls\n\nThis implies the following inherited HTTP annotation:\n\n service Storage {\n // Get the underlying ACL object.\n rpc GetAcl(GetAclRequest) returns (Acl) {\n option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\";\n }\n ...\n }", "type": "object", "properties": { + "name": { + "type": "string", + "description": "The fully qualified name of the interface which is included." + }, "root": { "description": "If non-empty specifies a path under which inherited HTTP paths\nare rooted.", "type": "string" - }, - "name": { - "description": "The fully qualified name of the interface which is included.", - "type": "string" } }, "id": "Mixin" @@ -952,17 +356,17 @@ "properties": { "types": { "description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "rules": { "description": "The list of custom error rules that apply to individual API messages.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "CustomErrorRule" - }, - "type": "array" + } } }, "id": "CustomError" @@ -977,10 +381,10 @@ }, "rules": { "description": "A list of HTTP configuration rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "HttpRule" - }, - "type": "array" + } } }, "id": "Http" @@ -991,19 +395,20 @@ "properties": { "sourceFiles": { "description": "All files used during config generation.", + "type": "array", "items": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, "type": "object" - }, - "type": "array" + } } }, "id": "SourceInfo" }, "Control": { + "id": "Control", "description": "Selects and configures the service controller used by the service. The\nservice controller handles features like abuse, quota, billing, logging,\nmonitoring, etc.", "type": "object", "properties": { @@ -1011,11 +416,9 @@ "description": "The service control environment to use. If empty, no control plane\nfeature (like quota and billing) will be enabled.", "type": "string" } - }, - "id": "Control" + } }, "SystemParameter": { - "description": "Define a parameter's name and location. The parameter may be passed as either\nan HTTP header or a URL query parameter, and if both are passed the behavior\nis implementation-dependent.", "type": "object", "properties": { "urlQueryParameter": { @@ -1031,40 +434,27 @@ "type": "string" } }, - "id": "SystemParameter" - }, - "Monitoring": { - "description": "Monitoring configuration of the service.\n\nThe example below shows how to configure monitored resources and metrics\nfor monitoring. In the example, a monitored resource and two metrics are\ndefined. The `library.googleapis.com/book/returned_count` metric is sent\nto both producer and consumer projects, whereas the\n`library.googleapis.com/book/overdue_count` metric is only sent to the\nconsumer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/returned_count\n metric_kind: DELTA\n value_type: INT64\n labels:\n - key: /customer_id\n - name: library.googleapis.com/book/overdue_count\n metric_kind: GAUGE\n value_type: INT64\n labels:\n - key: /customer_id\n monitoring:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n - library.googleapis.com/book/overdue_count", - "type": "object", - "properties": { - "consumerDestinations": { - "description": "Monitoring configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none consumer destination.", - "items": { - "$ref": "MonitoringDestination" - }, - "type": "array" - }, - "producerDestinations": { - "description": "Monitoring configurations for sending metrics to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none producer destination.", - "items": { - "$ref": "MonitoringDestination" - }, - "type": "array" - } - }, - "id": "Monitoring" + "id": "SystemParameter", + "description": "Define a parameter's name and location. The parameter may be passed as either\nan HTTP header or a URL query parameter, and if both are passed the behavior\nis implementation-dependent." }, "Field": { "description": "A single field of a message type.", "type": "object", "properties": { - "jsonName": { - "description": "The field JSON name.", + "name": { + "description": "The field name.", "type": "string" }, + "typeUrl": { + "description": "The field type URL, without the scheme, for message or enumeration\ntypes. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", + "type": "string" + }, + "number": { + "type": "integer", + "description": "The field number.", + "format": "int32" + }, "kind": { - "description": "The field type.", - "type": "string", "enumDescriptions": [ "Field type unknown.", "Field type double.", @@ -1106,18 +496,24 @@ "TYPE_SFIXED64", "TYPE_SINT32", "TYPE_SINT64" - ] + ], + "description": "The field type.", + "type": "string" + }, + "jsonName": { + "description": "The field JSON name.", + "type": "string" }, "options": { - "description": "The protocol buffer options.", + "type": "array", "items": { "$ref": "Option" }, - "type": "array" + "description": "The protocol buffer options." }, "oneofIndex": { - "format": "int32", "description": "The index of the field type in `Type.oneofs`, for message or enumeration\ntypes. The first type has index 1; zero means the type is not in the list.", + "format": "int32", "type": "integer" }, "packed": { @@ -1125,8 +521,6 @@ "type": "boolean" }, "cardinality": { - "description": "The field cardinality.", - "type": "string", "enumDescriptions": [ "For fields with unknown cardinality.", "For optional fields.", @@ -1138,49 +532,51 @@ "CARDINALITY_OPTIONAL", "CARDINALITY_REQUIRED", "CARDINALITY_REPEATED" - ] + ], + "description": "The field cardinality.", + "type": "string" }, "defaultValue": { "description": "The string value of the default value of this field. Proto2 syntax only.", "type": "string" - }, - "name": { - "description": "The field name.", - "type": "string" - }, - "typeUrl": { - "description": "The field type URL, without the scheme, for message or enumeration\ntypes. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.", - "type": "string" - }, - "number": { - "format": "int32", - "description": "The field number.", - "type": "integer" } }, "id": "Field" }, - "Enum": { - "description": "Enum type definition.", + "Monitoring": { + "description": "Monitoring configuration of the service.\n\nThe example below shows how to configure monitored resources and metrics\nfor monitoring. In the example, a monitored resource and two metrics are\ndefined. The `library.googleapis.com/book/returned_count` metric is sent\nto both producer and consumer projects, whereas the\n`library.googleapis.com/book/overdue_count` metric is only sent to the\nconsumer project.\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/returned_count\n metric_kind: DELTA\n value_type: INT64\n labels:\n - key: /customer_id\n - name: library.googleapis.com/book/overdue_count\n metric_kind: GAUGE\n value_type: INT64\n labels:\n - key: /customer_id\n monitoring:\n producer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/returned_count\n - library.googleapis.com/book/overdue_count", "type": "object", "properties": { - "enumvalue": { - "description": "Enum value definitions.", + "consumerDestinations": { + "description": "Monitoring configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none consumer destination.", + "type": "array", "items": { - "$ref": "EnumValue" - }, - "type": "array" - }, - "name": { - "description": "Enum type name.", - "type": "string" + "$ref": "MonitoringDestination" + } }, + "producerDestinations": { + "description": "Monitoring configurations for sending metrics to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A metric can be used in at most\none producer destination.", + "type": "array", + "items": { + "$ref": "MonitoringDestination" + } + } + }, + "id": "Monitoring" + }, + "Enum": { + "type": "object", + "properties": { "options": { - "description": "Protocol buffer options.", + "type": "array", "items": { "$ref": "Option" }, - "type": "array" + "description": "Protocol buffer options." + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "The source context." }, "syntax": { "enumDescriptions": [ @@ -1194,58 +590,64 @@ "description": "The source syntax.", "type": "string" }, - "sourceContext": { - "$ref": "SourceContext", - "description": "The source context." + "name": { + "description": "Enum type name.", + "type": "string" + }, + "enumvalue": { + "description": "Enum value definitions.", + "type": "array", + "items": { + "$ref": "EnumValue" + } } }, - "id": "Enum" - }, - "EnableServiceRequest": { - "description": "Request message for EnableService method.", - "type": "object", - "properties": {}, - "id": "EnableServiceRequest" + "id": "Enum", + "description": "Enum type definition." }, "LabelDescriptor": { "description": "A description of a label.", "type": "object", "properties": { + "key": { + "description": "The label key.", + "type": "string" + }, "description": { "description": "A human-readable description for the label.", "type": "string" }, "valueType": { - "enumDescriptions": [ - "A variable-length string. This is the default.", - "Boolean; true or false.", - "A 64-bit signed integer." - ], "enum": [ "STRING", "BOOL", "INT64" ], "description": "The type of data that can be assigned to the label.", - "type": "string" - }, - "key": { - "description": "The label key.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "A variable-length string. This is the default.", + "Boolean; true or false.", + "A 64-bit signed integer." + ] } }, "id": "LabelDescriptor" }, + "EnableServiceRequest": { + "properties": {}, + "id": "EnableServiceRequest", + "description": "Request message for EnableService method.", + "type": "object" + }, "Type": { - "description": "A protocol buffer message type.", - "type": "object", "properties": { "fields": { - "description": "The list of fields.", + "type": "array", "items": { "$ref": "Field" }, - "type": "array" + "description": "The list of fields." }, "name": { "description": "The fully qualified message name.", @@ -1253,17 +655,16 @@ }, "oneofs": { "description": "The list of types appearing in `oneof` definitions in this type.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "sourceContext": { - "$ref": "SourceContext", - "description": "The source context." + "description": "The source context.", + "$ref": "SourceContext" }, "syntax": { - "description": "The source syntax.", "type": "string", "enumDescriptions": [ "Syntax `proto2`.", @@ -1272,28 +673,31 @@ "enum": [ "SYNTAX_PROTO2", "SYNTAX_PROTO3" - ] + ], + "description": "The source syntax." }, "options": { "description": "The protocol buffer options.", + "type": "array", "items": { "$ref": "Option" - }, - "type": "array" + } } }, - "id": "Type" + "id": "Type", + "description": "A protocol buffer message type.", + "type": "object" }, "Experimental": { + "id": "Experimental", "description": "Experimental service configuration. These configuration options can\nonly be used by whitelisted users.", "type": "object", "properties": { "authorization": { - "description": "Authorization configuration.", - "$ref": "AuthorizationConfig" + "$ref": "AuthorizationConfig", + "description": "Authorization configuration." } - }, - "id": "Experimental" + } }, "Backend": { "description": "`Backend` defines the backend configuration for a service.", @@ -1301,14 +705,33 @@ "properties": { "rules": { "description": "A list of API backend rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "BackendRule" - }, - "type": "array" + } } }, "id": "Backend" }, + "DocumentationRule": { + "type": "object", + "properties": { + "deprecationDescription": { + "description": "Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.", + "type": "string" + }, + "selector": { + "description": "The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". To\nspecify a default for all applicable elements, the whole pattern \"*\"\nis used.", + "type": "string" + }, + "description": { + "description": "Description of the selected API(s).", + "type": "string" + } + }, + "id": "DocumentationRule", + "description": "A documentation rule provides information about individual API elements." + }, "AuthorizationConfig": { "description": "Configuration of authorization.\n\nThis section determines the authorization provider, if unspecified, then no\nauthorization check will be done.\n\nExample:\n\n experimental:\n authorization:\n provider: firebaserules.googleapis.com", "type": "object", @@ -1320,42 +743,23 @@ }, "id": "AuthorizationConfig" }, - "DocumentationRule": { - "description": "A documentation rule provides information about individual API elements.", - "type": "object", - "properties": { - "description": { - "description": "Description of the selected API(s).", - "type": "string" - }, - "deprecationDescription": { - "description": "Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.", - "type": "string" - }, - "selector": { - "description": "The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". To\nspecify a default for all applicable elements, the whole pattern \"*\"\nis used.", - "type": "string" - } - }, - "id": "DocumentationRule" - }, "ContextRule": { "description": "A context rule provides information about the context for an individual API\nelement.", "type": "object", "properties": { "provided": { "description": "A list of full type names of provided contexts.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "requested": { "description": "A list of full type names of requested contexts.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "selector": { "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", @@ -1364,31 +768,34 @@ }, "id": "ContextRule" }, + "SourceContext": { + "id": "SourceContext", + "description": "`SourceContext` represents information about the source of a\nprotobuf element, like the file in which it is defined.", + "type": "object", + "properties": { + "fileName": { + "type": "string", + "description": "The path-qualified name of the .proto file that contained the associated\nprotobuf element. For example: `\"google/protobuf/source_context.proto\"`." + } + } + }, "MetricDescriptor": { "description": "Defines a metric type and its schema. Once a metric descriptor is created,\ndeleting or altering it stops data collection and makes the metric type's\nexisting data unusable.", "type": "object", "properties": { - "displayName": { - "description": "A concise name for the metric, which can be displayed in user interfaces.\nUse sentence case without an ending period, for example \"Request count\".", - "type": "string" - }, - "description": { - "description": "A detailed description of the metric, which can be used in documentation.", - "type": "string" - }, "unit": { "description": "The unit in which the metric value is reported. It is only applicable\nif the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The\nsupported units are a subset of [The Unified Code for Units of\nMeasure](http://unitsofmeasure.org/ucum.html) standard:\n\n**Basic units (UNIT)**\n\n* `bit` bit\n* `By` byte\n* `s` second\n* `min` minute\n* `h` hour\n* `d` day\n\n**Prefixes (PREFIX)**\n\n* `k` kilo (10**3)\n* `M` mega (10**6)\n* `G` giga (10**9)\n* `T` tera (10**12)\n* `P` peta (10**15)\n* `E` exa (10**18)\n* `Z` zetta (10**21)\n* `Y` yotta (10**24)\n* `m` milli (10**-3)\n* `u` micro (10**-6)\n* `n` nano (10**-9)\n* `p` pico (10**-12)\n* `f` femto (10**-15)\n* `a` atto (10**-18)\n* `z` zepto (10**-21)\n* `y` yocto (10**-24)\n* `Ki` kibi (2**10)\n* `Mi` mebi (2**20)\n* `Gi` gibi (2**30)\n* `Ti` tebi (2**40)\n\n**Grammar**\n\nThe grammar includes the dimensionless unit `1`, such as `1/s`.\n\nThe grammar also includes these connectors:\n\n* `/` division (as an infix operator, e.g. `1/s`).\n* `.` multiplication (as an infix operator, e.g. `GBy.d`)\n\nThe grammar for a unit is as follows:\n\n Expression = Component { \".\" Component } { \"/\" Component } ;\n\n Component = [ PREFIX ] UNIT [ Annotation ]\n | Annotation\n | \"1\"\n ;\n\n Annotation = \"{\" NAME \"}\" ;\n\nNotes:\n\n* `Annotation` is just a comment if it follows a `UNIT` and is\n equivalent to `1` if it is used alone. For examples,\n `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.\n* `NAME` is a sequence of non-blank printable ASCII characters not\n containing '{' or '}'.", "type": "string" }, "labels": { - "description": "The set of labels that can be used to describe a specific\ninstance of this metric type. For example, the\n`appengine.googleapis.com/http/server/response_latencies` metric\ntype has a label for the HTTP response code, `response_code`, so\nyou can look at latencies for successful responses or just\nfor responses that failed.", + "type": "array", "items": { "$ref": "LabelDescriptor" }, - "type": "array" + "description": "The set of labels that can be used to describe a specific\ninstance of this metric type. For example, the\n`appengine.googleapis.com/http/server/response_latencies` metric\ntype has a label for the HTTP response code, `response_code`, so\nyou can look at latencies for successful responses or just\nfor responses that failed." }, "name": { - "description": "The resource name of the metric descriptor. Depending on the\nimplementation, the name typically includes: (1) the parent resource name\nthat defines the scope of the metric type or of its data; and (2) the\nmetric's URL-encoded type, which also appears in the `type` field of this\ndescriptor. For example, following is the resource name of a custom\nmetric within the GCP project `my-project-id`:\n\n \"projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount\"", + "description": "The resource name of the metric descriptor.", "type": "string" }, "type": { @@ -1396,15 +803,6 @@ "type": "string" }, "valueType": { - "enumDescriptions": [ - "Do not use this default value.", - "The value is a boolean.\nThis value type can be used only if the metric kind is `GAUGE`.", - "The value is a signed 64-bit integer.", - "The value is a double precision floating point number.", - "The value is a text string.\nThis value type can be used only if the metric kind is `GAUGE`.", - "The value is a `Distribution`.", - "The value is money." - ], "enum": [ "VALUE_TYPE_UNSPECIFIED", "BOOL", @@ -1415,9 +813,19 @@ "MONEY" ], "description": "Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Do not use this default value.", + "The value is a boolean.\nThis value type can be used only if the metric kind is `GAUGE`.", + "The value is a signed 64-bit integer.", + "The value is a double precision floating point number.", + "The value is a text string.\nThis value type can be used only if the metric kind is `GAUGE`.", + "The value is a `Distribution`.", + "The value is money." + ] }, "metricKind": { + "type": "string", "enumDescriptions": [ "Do not use this default value.", "An instantaneous measurement of a value.", @@ -1430,105 +838,101 @@ "DELTA", "CUMULATIVE" ], - "description": "Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.", + "description": "Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported." + }, + "displayName": { + "description": "A concise name for the metric, which can be displayed in user interfaces.\nUse sentence case without an ending period, for example \"Request count\".\nThis field is optional but it is recommended to be set for any metrics\nassociated with user-visible concepts, such as Quota.", + "type": "string" + }, + "description": { + "description": "A detailed description of the metric, which can be used in documentation.", "type": "string" } }, "id": "MetricDescriptor" }, - "SourceContext": { - "description": "`SourceContext` represents information about the source of a\nprotobuf element, like the file in which it is defined.", - "type": "object", - "properties": { - "fileName": { - "description": "The path-qualified name of the .proto file that contained the associated\nprotobuf element. For example: `\"google/protobuf/source_context.proto\"`.", - "type": "string" - } - }, - "id": "SourceContext" - }, "Billing": { - "description": "Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/borrowed_count\n metric_kind: DELTA\n value_type: INT64\n billing:\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/borrowed_count", "type": "object", "properties": { "consumerDestinations": { - "description": "Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination.", + "type": "array", "items": { "$ref": "BillingDestination" }, - "type": "array" + "description": "Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination." } }, - "id": "Billing" + "id": "Billing", + "description": "Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n\n monitored_resources:\n - type: library.googleapis.com/branch\n labels:\n - key: /city\n description: The city where the library branch is located in.\n - key: /name\n description: The name of the branch.\n metrics:\n - name: library.googleapis.com/book/borrowed_count\n metric_kind: DELTA\n value_type: INT64\n billing:\n consumer_destinations:\n - monitored_resource: library.googleapis.com/branch\n metrics:\n - library.googleapis.com/book/borrowed_count" }, "ListEnabledServicesResponse": { - "description": "Response message for `ListEnabledServices` method.", - "type": "object", "properties": { + "services": { + "description": "Services enabled for the specified parent.", + "type": "array", + "items": { + "$ref": "PublishedService" + } + }, "nextPageToken": { "description": "Token that can be passed to `ListEnabledServices` to resume a paginated\nquery.", "type": "string" - }, - "services": { - "description": "Services enabled for the specified parent.", - "items": { - "$ref": "PublishedService" - }, - "type": "array" } }, - "id": "ListEnabledServicesResponse" + "id": "ListEnabledServicesResponse", + "description": "Response message for `ListEnabledServices` method.", + "type": "object" }, "Endpoint": { + "id": "Endpoint", "description": "`Endpoint` describes a network endpoint that serves a set of APIs.\nA service may expose any number of endpoints, and all endpoints share the\nsame service configuration, such as quota configuration and monitoring\nconfiguration.\n\nExample service configuration:\n\n name: library-example.googleapis.com\n endpoints:\n # Below entry makes 'google.example.library.v1.Library'\n # API be served from endpoint address library-example.googleapis.com.\n # It also allows HTTP OPTIONS calls to be passed to the backend, for\n # it to decide whether the subsequent cross-origin request is\n # allowed to proceed.\n - name: library-example.googleapis.com\n allow_cors: true", "type": "object", "properties": { - "apis": { - "description": "The list of APIs served by this endpoint.\n\nIf no APIs are specified this translates to \"all APIs\" exported by the\nservice, as defined in the top-level service configuration.", - "items": { - "type": "string" - }, - "type": "array" - }, "allowCors": { "description": "Allowing\n[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka\ncross-domain traffic, would allow the backends served from this endpoint to\nreceive and respond to HTTP OPTIONS requests. The response will be used by\nthe browser to determine whether the subsequent cross-origin request is\nallowed to proceed.", "type": "boolean" }, "aliases": { - "description": "DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intented\nalias.\n\nAdditional names that this endpoint will be hosted on.", + "description": "DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intended\naliases.\n\nAdditional names that this endpoint will be hosted on.", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - "name": { - "description": "The canonical name of this endpoint.", - "type": "string" + } }, "target": { "description": "The specification of an Internet routable address of API frontend that will\nhandle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).\nIt should be either a valid IPv4 address or a fully-qualified domain name.\nFor example, \"8.8.8.8\" or \"myservice.appspot.com\".", "type": "string" }, + "name": { + "type": "string", + "description": "The canonical name of this endpoint." + }, "features": { "description": "The list of features enabled on this endpoint.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } + }, + "apis": { + "description": "The list of APIs served by this endpoint.\n\nIf no APIs are specified this translates to \"all APIs\" exported by the\nservice, as defined in the top-level service configuration.", + "type": "array", + "items": { + "type": "string" + } } - }, - "id": "Endpoint" + } }, "OAuthRequirements": { - "description": "OAuth scopes are a way to define data and permissions on data. For example,\nthere are scopes defined for \"Read-only access to Google Calendar\" and\n\"Access to Cloud Platform\". Users can consent to a scope for an application,\ngiving it permission to access that data on their behalf.\n\nOAuth scope specifications should be fairly coarse grained; a user will need\nto see and understand the text description of what your scope means.\n\nIn most cases: use one or at most two OAuth scopes for an entire family of\nproducts. If your product has multiple APIs, you should probably be sharing\nthe OAuth scope across all of those APIs.\n\nWhen you need finer grained OAuth consent screens: talk with your product\nmanagement about how developers will use them in practice.\n\nPlease note that even though each of the canonical scopes is enough for a\nrequest to be accepted and passed to the backend, a request can still fail\ndue to the backend requiring additional scopes or permissions.", - "type": "object", "properties": { "canonicalScopes": { "description": "The list of publicly documented OAuth scopes that are allowed access. An\nOAuth token containing any of these scopes will be accepted.\n\nExample:\n\n canonical_scopes: https://www.googleapis.com/auth/calendar,\n https://www.googleapis.com/auth/calendar.read", "type": "string" } }, - "id": "OAuthRequirements" + "id": "OAuthRequirements", + "description": "OAuth scopes are a way to define data and permissions on data. For example,\nthere are scopes defined for \"Read-only access to Google Calendar\" and\n\"Access to Cloud Platform\". Users can consent to a scope for an application,\ngiving it permission to access that data on their behalf.\n\nOAuth scope specifications should be fairly coarse grained; a user will need\nto see and understand the text description of what your scope means.\n\nIn most cases: use one or at most two OAuth scopes for an entire family of\nproducts. If your product has multiple APIs, you should probably be sharing\nthe OAuth scope across all of those APIs.\n\nWhen you need finer grained OAuth consent screens: talk with your product\nmanagement about how developers will use them in practice.\n\nPlease note that even though each of the canonical scopes is enough for a\nrequest to be accepted and passed to the backend, a request can still fail\ndue to the backend requiring additional scopes or permissions.", + "type": "object" }, "Usage": { "description": "Configuration controlling usage of a service.", @@ -1540,60 +944,75 @@ }, "rules": { "description": "A list of usage rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "UsageRule" - }, - "type": "array" + } }, "requirements": { - "description": "Requirements that must be satisfied before a consumer project can use the\nservice. Each requirement is of the form \u003cservice.name\u003e/\u003crequirement-id\u003e;\nfor example 'serviceusage.googleapis.com/billing-enabled'.", + "type": "array", "items": { "type": "string" }, - "type": "array" + "description": "Requirements that must be satisfied before a consumer project can use the\nservice. Each requirement is of the form \u003cservice.name\u003e/\u003crequirement-id\u003e;\nfor example 'serviceusage.googleapis.com/billing-enabled'." } }, "id": "Usage" }, "Context": { + "id": "Context", "description": "`Context` defines which contexts an API requests.\n\nExample:\n\n context:\n rules:\n - selector: \"*\"\n requested:\n - google.rpc.context.ProjectContext\n - google.rpc.context.OriginContext\n\nThe above specifies that all methods in the API request\n`google.rpc.context.ProjectContext` and\n`google.rpc.context.OriginContext`.\n\nAvailable context types are defined in package\n`google.rpc.context`.", "type": "object", "properties": { "rules": { "description": "A list of RPC context rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", "items": { "$ref": "ContextRule" - }, - "type": "array" + } } - }, - "id": "Context" + } }, "LogDescriptor": { - "description": "A description of a log type. Example in YAML format:\n\n - name: library.googleapis.com/activity_history\n description: The history of borrowing and returning library items.\n display_name: Activity\n labels:\n - key: /customer_id\n description: Identifier of a library customer", "type": "object", "properties": { "labels": { "description": "The set of labels that are available to describe a specific log entry.\nRuntime requests that contain labels not specified here are\nconsidered invalid.", + "type": "array", "items": { "$ref": "LabelDescriptor" - }, - "type": "array" + } }, "name": { "description": "The name of the log. It must be less than 512 characters long and can\ninclude the following characters: upper- and lower-case alphanumeric\ncharacters [A-Za-z0-9], and punctuation characters including\nslash, underscore, hyphen, period [/_-.].", "type": "string" }, - "displayName": { - "description": "The human-readable name for this log. This information appears on\nthe user interface and should be concise.", - "type": "string" - }, "description": { "description": "A human-readable description of this log. This information appears in\nthe documentation and can contain details.", "type": "string" + }, + "displayName": { + "description": "The human-readable name for this log. This information appears on\nthe user interface and should be concise.", + "type": "string" } }, - "id": "LogDescriptor" + "id": "LogDescriptor", + "description": "A description of a log type. Example in YAML format:\n\n - name: library.googleapis.com/activity_history\n description: The history of borrowing and returning library items.\n display_name: Activity\n labels:\n - key: /customer_id\n description: Identifier of a library customer" + }, + "CustomErrorRule": { + "description": "A custom error rule.", + "type": "object", + "properties": { + "selector": { + "description": "Selects messages to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "isErrorType": { + "description": "Mark this message as possible payload in error response. Otherwise,\nobjects of this type will be filtered when they appear in error payload.", + "type": "boolean" + } + }, + "id": "CustomErrorRule" }, "MonitoredResourceDescriptor": { "description": "An object that describes the schema of a MonitoredResource object using a\ntype name and a set of labels. For example, the monitored resource\ndescriptor for Google Compute Engine VM instances has a type of\n`\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and\n`\"zone\"` to identify particular VM instances.\n\nDifferent APIs can support different monitored resource types. APIs generally\nprovide a `list` method that returns the monitored resource descriptors used\nby the API.", @@ -1601,23 +1020,23 @@ "properties": { "labels": { "description": "Required. A set of labels used to describe instances of this monitored\nresource type. For example, an individual Google Cloud SQL database is\nidentified by values for the labels `\"database_id\"` and `\"zone\"`.", + "type": "array", "items": { "$ref": "LabelDescriptor" - }, - "type": "array" + } }, "name": { - "description": "Optional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type. APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`.", - "type": "string" + "type": "string", + "description": "Optional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type. APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`." + }, + "displayName": { + "type": "string", + "description": "Optional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`." }, "description": { "description": "Optional. A detailed description of the monitored resource type that might\nbe used in documentation.", "type": "string" }, - "displayName": { - "description": "Optional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`.", - "type": "string" - }, "type": { "description": "Required. The monitored resource type. For example, the type\n`\"cloudsql_database\"` represents databases in Google Cloud SQL.\nThe maximum length of this value is 256 characters.", "type": "string" @@ -1625,33 +1044,8 @@ }, "id": "MonitoredResourceDescriptor" }, - "CustomErrorRule": { - "description": "A custom error rule.", - "type": "object", - "properties": { - "isErrorType": { - "description": "Mark this message as possible payload in error response. Otherwise,\nobjects of this type will be filtered when they appear in error payload.", - "type": "boolean" - }, - "selector": { - "description": "Selects messages to which this rule applies.\n\nRefer to selector for syntax details.", - "type": "string" - } - }, - "id": "CustomErrorRule" - }, - "CustomAuthRequirements": { - "description": "Configuration for a custom authentication provider.", - "type": "object", - "properties": { - "provider": { - "description": "A configuration string containing connection information for the\nauthentication provider, typically formatted as a SmartService string\n(go/smartservice).", - "type": "string" - } - }, - "id": "CustomAuthRequirements" - }, "MediaDownload": { + "id": "MediaDownload", "description": "Defines the Media configuration for a service in case of a download.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods.", "type": "object", "properties": { @@ -1664,12 +1058,12 @@ "type": "string" }, "completeNotification": { - "description": "A boolean that determines whether a notification for the completion of a\ndownload should be sent to the backend.", - "type": "boolean" + "type": "boolean", + "description": "A boolean that determines whether a notification for the completion of a\ndownload should be sent to the backend." }, "maxDirectDownloadSize": { - "format": "int64", "description": "Optional maximum acceptable size for direct download.\nThe size is specified in bytes.", + "format": "int64", "type": "string" }, "dropzone": { @@ -1680,8 +1074,18 @@ "description": "A boolean that determines if direct download from ESF should be used for\ndownload of this media.", "type": "boolean" } + } + }, + "CustomAuthRequirements": { + "type": "object", + "properties": { + "provider": { + "description": "A configuration string containing connection information for the\nauthentication provider, typically formatted as a SmartService string\n(go/smartservice).", + "type": "string" + } }, - "id": "MediaDownload" + "id": "CustomAuthRequirements", + "description": "Configuration for a custom authentication provider." }, "DisableServiceRequest": { "description": "Request message for DisableService method.", @@ -1693,16 +1097,16 @@ "description": "Response message for SearchServices method.", "type": "object", "properties": { + "services": { + "description": "Services available publicly or available to the authenticated caller.", + "type": "array", + "items": { + "$ref": "PublishedService" + } + }, "nextPageToken": { "description": "Token that can be passed to `ListAvailableServices` to resume a paginated\nquery.", "type": "string" - }, - "services": { - "description": "Services available publicly or available to the authenticated caller.", - "items": { - "$ref": "PublishedService" - }, - "type": "array" } }, "id": "SearchServicesResponse" @@ -1711,28 +1115,32 @@ "description": "Defines the Media configuration for a service in case of an upload.\nUse this only for Scotty Requests. Do not use this for media support using\nBytestream, add instead [][google.bytestream.RestByteStream] as an API to\nyour configuration for Bytestream methods.", "type": "object", "properties": { - "maxSize": { - "format": "int64", - "description": "Optional maximum acceptable size for an upload.\nThe size is specified in bytes.", + "uploadService": { + "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the upload service if one is used for upload.", "type": "string" }, "mimeTypes": { "description": "An array of mimetype patterns. Esf will only accept uploads that match one\nof the given patterns.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, - "completeNotification": { - "description": "A boolean that determines whether a notification for the completion of an\nupload should be sent to the backend. These notifications will not be seen\nby the client and will not consume quota.", + "maxSize": { + "description": "Optional maximum acceptable size for an upload.\nThe size is specified in bytes.", + "format": "int64", + "type": "string" + }, + "enabled": { + "description": "Whether upload is enabled.", "type": "boolean" }, "progressNotification": { "description": "Whether to receive a notification for progress changes of media upload.", "type": "boolean" }, - "enabled": { - "description": "Whether upload is enabled.", + "completeNotification": { + "description": "A boolean that determines whether a notification for the completion of an\nupload should be sent to the backend. These notifications will not be seen\nby the client and will not consume quota.", "type": "boolean" }, "dropzone": { @@ -1742,20 +1150,609 @@ "startNotification": { "description": "Whether to receive a notification on the start of media upload.", "type": "boolean" - }, - "uploadService": { - "description": "DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.\n\nSpecify name of the upload service if one is used for upload.", - "type": "string" } }, "id": "MediaUpload" + }, + "BillingDestination": { + "description": "Configuration of a specific billing destination (Currently only support\nbill against consumer project).", + "type": "object", + "properties": { + "metrics": { + "description": "Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.", + "type": "array", + "items": { + "type": "string" + } + }, + "monitoredResource": { + "type": "string", + "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section." + } + }, + "id": "BillingDestination" + }, + "UsageRule": { + "description": "Usage configuration rules for the service.\n\nNOTE: Under development.\n\n\nUse this rule to configure unregistered calls for the service. Unregistered\ncalls are calls that do not contain consumer project identity.\n(Example: calls that do not contain an API key).\nBy default, API methods do not allow unregistered calls, and each method call\nmust be identified by a consumer project identity. Use this rule to\nallow/disallow unregistered calls.\n\nExample of an API that wants to allow unregistered calls for entire service.\n\n usage:\n rules:\n - selector: \"*\"\n allow_unregistered_calls: true\n\nExample of a method that wants to allow unregistered calls.\n\n usage:\n rules:\n - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n allow_unregistered_calls: true", + "type": "object", + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "skipServiceControl": { + "description": "True, if the method should skip service control. If so, no control plane\nfeature (like quota and billing) will be enabled.\nThis flag is used by ESP to allow some Endpoints customers to bypass\nGoogle internal checks.", + "type": "boolean" + }, + "allowUnregisteredCalls": { + "type": "boolean", + "description": "True, if the method allows unregistered calls; false otherwise." + } + }, + "id": "UsageRule" + }, + "AuthRequirement": { + "description": "User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", + "type": "object", + "properties": { + "providerId": { + "description": "id from authentication provider.\n\nExample:\n\n provider_id: bookstore_auth", + "type": "string" + }, + "audiences": { + "description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", + "type": "string" + } + }, + "id": "AuthRequirement" + }, + "Documentation": { + "description": "`Documentation` provides the information for describing a service.\n\nExample:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: \u003e\n The Google Calendar API gives access\n to most calendar features.\n pages:\n - name: Overview\n content: (== include google/foo/overview.md ==)\n - name: Tutorial\n content: (== include google/foo/tutorial.md ==)\n subpages;\n - name: Java\n content: (== include google/foo/tutorial_java.md ==)\n rules:\n - selector: google.calendar.Calendar.Get\n description: \u003e\n ...\n - selector: google.calendar.Calendar.Put\n description: \u003e\n ...\n\u003c/code\u003e\u003c/pre\u003e\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n\u003cpre\u003e\u003ccode\u003e[fully.qualified.proto.name][]\u003c/code\u003e\u003c/pre\u003e\nTo override the display text used for the link, this can be used:\n\u003cpre\u003e\u003ccode\u003e[display text][fully.qualified.proto.name]\u003c/code\u003e\u003c/pre\u003e\nText can be excluded from doc using the following notation:\n\u003cpre\u003e\u003ccode\u003e(-- internal comment --)\u003c/code\u003e\u003c/pre\u003e\nComments can be made conditional using a visibility label. The below\ntext will be only rendered if the `BETA` label is available:\n\u003cpre\u003e\u003ccode\u003e(--BETA: comment for BETA users --)\u003c/code\u003e\u003c/pre\u003e\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n\u003cpre\u003e\u003ccode\u003e(== include path/to/file ==)\u003c/code\u003e\u003c/pre\u003e\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n\u003cpre\u003e\u003ccode\u003e(== resource_for v1.shelves.books ==)\u003c/code\u003e\u003c/pre\u003e\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.", + "type": "object", + "properties": { + "summary": { + "description": "A short summary of what the service does. Can only be provided by\nplain text.", + "type": "string" + }, + "documentationRootUrl": { + "description": "The URL to the root of documentation.", + "type": "string" + }, + "rules": { + "description": "A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "DocumentationRule" + } + }, + "overview": { + "description": "Declares a single overview page. For example:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n overview: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nThis is a shortcut for the following declaration (using pages style):\n\u003cpre\u003e\u003ccode\u003edocumentation:\n summary: ...\n pages:\n - name: Overview\n content: (== include overview.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nNote: you cannot specify both `overview` field and `pages` field.", + "type": "string" + }, + "pages": { + "description": "The top level pages for the documentation set.", + "type": "array", + "items": { + "$ref": "Page" + } + } + }, + "id": "Documentation" + }, + "BackendRule": { + "description": "A backend rule provides configuration for an individual API element.", + "type": "object", + "properties": { + "deadline": { + "description": "The number of seconds to wait for a response from a request. The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.", + "format": "double", + "type": "number" + }, + "minDeadline": { + "description": "Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.", + "format": "double", + "type": "number" + }, + "address": { + "description": "The address of the API backend.", + "type": "string" + }, + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + } + }, + "id": "BackendRule" + }, + "AuthenticationRule": { + "type": "object", + "properties": { + "oauth": { + "$ref": "OAuthRequirements", + "description": "The requirements for OAuth credentials." + }, + "customAuth": { + "$ref": "CustomAuthRequirements", + "description": "Configuration for custom authentication." + }, + "requirements": { + "description": "Requirements for additional authentication providers.", + "type": "array", + "items": { + "$ref": "AuthRequirement" + } + }, + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "allowWithoutCredential": { + "description": "Whether to allow requests without a credential. The credential can be\nan OAuth token, Google cookies (first-party auth) or EndUserCreds.\n\nFor requests without credentials, if the service control environment is\nspecified, each incoming request **must** be associated with a service\nconsumer. This can be done by passing an API key that belongs to a consumer\nproject.", + "type": "boolean" + } + }, + "id": "AuthenticationRule", + "description": "Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored." + }, + "Api": { + "description": "Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology.", + "type": "object", + "properties": { + "methods": { + "description": "The methods of this interface, in unspecified order.", + "type": "array", + "items": { + "$ref": "Method" + } + }, + "name": { + "description": "The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.", + "type": "string" + }, + "syntax": { + "description": "The source syntax of the service.", + "type": "string", + "enumDescriptions": [ + "Syntax `proto2`.", + "Syntax `proto3`." + ], + "enum": [ + "SYNTAX_PROTO2", + "SYNTAX_PROTO3" + ] + }, + "sourceContext": { + "$ref": "SourceContext", + "description": "Source context for the protocol buffer service represented by this\nmessage." + }, + "version": { + "description": "A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v\u003cmajor-version\u003e`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n", + "type": "string" + }, + "mixins": { + "description": "Included interfaces. See Mixin.", + "type": "array", + "items": { + "$ref": "Mixin" + } + }, + "options": { + "description": "Any metadata attached to the interface.", + "type": "array", + "items": { + "$ref": "Option" + } + } + }, + "id": "Api" + }, + "MetricRule": { + "description": "Bind API methods to metrics. Binding a method to a metric causes that\nmetric's configured quota behaviors to apply to the method call.", + "type": "object", + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "metricCosts": { + "description": "Metrics to update when the selected methods are called, and the associated\ncost applied to each metric.\n\nThe key of the map is the metric name, and the values are the amount\nincreased for the metric against which the quota limits are defined.\nThe value must not be negative.", + "type": "object", + "additionalProperties": { + "format": "int64", + "type": "string" + } + } + }, + "id": "MetricRule" + }, + "Authentication": { + "type": "object", + "properties": { + "rules": { + "description": "A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.", + "type": "array", + "items": { + "$ref": "AuthenticationRule" + } + }, + "providers": { + "description": "Defines a set of authentication providers that a service supports.", + "type": "array", + "items": { + "$ref": "AuthProvider" + } + } + }, + "id": "Authentication", + "description": "`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n name: calendar.googleapis.com\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth" + }, + "Operation": { + "id": "Operation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", + "properties": { + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + } + } + }, + "Page": { + "description": "Represents a documentation page. A page can contain subpages to represent\nnested documentation set structure.", + "type": "object", + "properties": { + "subpages": { + "description": "Subpages of this page. The order of subpages specified here will be\nhonored in the generated docset.", + "type": "array", + "items": { + "$ref": "Page" + } + }, + "name": { + "description": "The name of the page. It will be used as an identity of the page to\ngenerate URI of the page, text of the link to this page in navigation,\netc. The full page name (start from the root page name to this page\nconcatenated with `.`) can be used as reference to the page in your\ndocumentation. For example:\n\u003cpre\u003e\u003ccode\u003epages:\n- name: Tutorial\n content: (== include tutorial.md ==)\n subpages:\n - name: Java\n content: (== include tutorial_java.md ==)\n\u003c/code\u003e\u003c/pre\u003e\nYou can reference `Java` page using Markdown reference link syntax:\n`Java`.", + "type": "string" + }, + "content": { + "description": "The Markdown content of the page. You can use \u003ccode\u003e(== include {path} ==)\u003c/code\u003e\nto include content from a Markdown file.", + "type": "string" + } + }, + "id": "Page" + }, + "Status": { + "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + } + } + }, + "code": { + "type": "integer", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "AuthProvider": { + "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", + "type": "object", + "properties": { + "jwksUri": { + "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs", + "type": "string" + }, + "audiences": { + "description": "The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n audiences: bookstore_android.apps.googleusercontent.com,\n bookstore_web.apps.googleusercontent.com", + "type": "string" + }, + "id": { + "description": "The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".", + "type": "string" + }, + "issuer": { + "type": "string", + "description": "Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com" + }, + "authorizationUrl": { + "description": "Redirect URL if JWT token is required but no present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.", + "type": "string" + } + }, + "id": "AuthProvider" + }, + "Service": { + "description": "`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n type: google.api.Service\n config_version: 3\n name: calendar.googleapis.com\n title: Google Calendar API\n apis:\n - name: google.calendar.v3.Calendar\n authentication:\n providers:\n - id: google_calendar_auth\n jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n issuer: https://securetoken.google.com\n rules:\n - selector: \"*\"\n requirements:\n provider_id: google_calendar_auth", + "type": "object", + "properties": { + "title": { + "description": "The product title for this service.", + "type": "string" + }, + "endpoints": { + "description": "Configuration for network endpoints. If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.", + "type": "array", + "items": { + "$ref": "Endpoint" + } + }, + "apis": { + "type": "array", + "items": { + "$ref": "Api" + }, + "description": "A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files." + }, + "logs": { + "description": "Defines the logs used by this service.", + "type": "array", + "items": { + "$ref": "LogDescriptor" + } + }, + "types": { + "description": "A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included. Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n types:\n - name: google.protobuf.Int32", + "type": "array", + "items": { + "$ref": "Type" + } + }, + "sourceInfo": { + "$ref": "SourceInfo", + "description": "Output only. The source information for this configuration if available." + }, + "http": { + "$ref": "Http", + "description": "HTTP configuration." + }, + "systemParameters": { + "$ref": "SystemParameters", + "description": "System parameter configuration." + }, + "backend": { + "$ref": "Backend", + "description": "API backend configuration." + }, + "documentation": { + "description": "Additional API documentation.", + "$ref": "Documentation" + }, + "monitoredResources": { + "type": "array", + "items": { + "$ref": "MonitoredResourceDescriptor" + }, + "description": "Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations." + }, + "logging": { + "$ref": "Logging", + "description": "Logging configuration." + }, + "context": { + "description": "Context configuration.", + "$ref": "Context" + }, + "enums": { + "description": "A list of all enum types included in this API service. Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded. Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n enums:\n - name: google.someapi.v1.SomeEnum", + "type": "array", + "items": { + "$ref": "Enum" + } + }, + "id": { + "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. If empty, the server may choose to\ngenerate one instead.", + "type": "string" + }, + "usage": { + "$ref": "Usage", + "description": "Configuration controlling usage of this service." + }, + "metrics": { + "description": "Defines the metrics used by this service.", + "type": "array", + "items": { + "$ref": "MetricDescriptor" + } + }, + "authentication": { + "description": "Auth configuration.", + "$ref": "Authentication" + }, + "experimental": { + "description": "Experimental configuration.", + "$ref": "Experimental" + }, + "control": { + "$ref": "Control", + "description": "Configuration for the service control plane." + }, + "configVersion": { + "type": "integer", + "description": "The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.", + "format": "uint32" + }, + "monitoring": { + "$ref": "Monitoring", + "description": "Monitoring configuration." + }, + "producerProjectId": { + "description": "The Google project that owns this service.", + "type": "string" + }, + "systemTypes": { + "description": "A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.", + "type": "array", + "items": { + "$ref": "Type" + } + }, + "visibility": { + "$ref": "Visibility", + "description": "API visibility configuration." + }, + "quota": { + "$ref": "Quota", + "description": "Quota configuration." + }, + "name": { + "description": "The DNS address at which this service is available,\ne.g. `calendar.googleapis.com`.", + "type": "string" + }, + "billing": { + "$ref": "Billing", + "description": "Billing configuration." + }, + "customError": { + "description": "Custom error configuration.", + "$ref": "CustomError" + } + }, + "id": "Service" + }, + "EnumValue": { + "description": "Enum value definition.", + "type": "object", + "properties": { + "name": { + "description": "Enum value name.", + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "Option" + }, + "description": "Protocol buffer options." + }, + "number": { + "description": "Enum value number.", + "format": "int32", + "type": "integer" + } + }, + "id": "EnumValue" + }, + "CustomHttpPattern": { + "description": "A custom pattern is used for defining custom HTTP verb.", + "type": "object", + "properties": { + "kind": { + "description": "The name of this custom HTTP verb.", + "type": "string" + }, + "path": { + "type": "string", + "description": "The path matched by this custom verb." + } + }, + "id": "CustomHttpPattern" + }, + "OperationMetadata": { + "id": "OperationMetadata", + "description": "The metadata associated with a long running operation resource.", + "type": "object", + "properties": { + "resourceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The full name of the resources that this operation is directly\nassociated with." + }, + "steps": { + "type": "array", + "items": { + "$ref": "Step" + }, + "description": "Detailed status information for each step. The order is undetermined." + }, + "progressPercentage": { + "description": "Percentage of completion of this operation, ranging from 0 to 100.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "The start time of the operation.", + "format": "google-datetime", + "type": "string" + } + } + }, + "PublishedService": { + "description": "The published version of a Service that is managed by\nGoogle Service Management.", + "type": "object", + "properties": { + "service": { + "description": "The service's published configuration.", + "$ref": "Service" + }, + "name": { + "description": "The resource name of the service.\n\nA valid name would be:\n- services/serviceuser.googleapis.com", + "type": "string" + } + }, + "id": "PublishedService" + }, + "SystemParameterRule": { + "description": "Define a system parameter rule mapping system parameter definitions to\nmethods.", + "type": "object", + "properties": { + "selector": { + "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.", + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "SystemParameter" + }, + "description": "Define parameters. Multiple names may be defined for a parameter.\nFor a given method call, only one of them should be used. If multiple\nnames are used the behavior is implementation-dependent.\nIf none of the specified names are present the behavior is\nparameter-dependent." + } + }, + "id": "SystemParameterRule" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "canonicalName": "Service User", "auth": { "oauth2": { @@ -1783,10 +1780,73 @@ "resources": { "services": { "methods": { + "enable": { + "request": { + "$ref": "EnableServiceRequest" + }, + "description": "Enable a service so it can be used with a project.\nSee [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for\nmore information.\n\nOperation\u003cresponse: google.protobuf.Empty\u003e", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "location": "path", + "description": "Name of the consumer and the service to enable for that consumer.\n\nA valid path would be:\n- /v1/projects/my-project/services/servicemanagement.googleapis.com:enable", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/services/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/service.management" + ], + "flatPath": "v1/projects/{projectsId}/services/{servicesId}:enable", + "path": "v1/{+name}:enable", + "id": "serviceuser.projects.services.enable" + }, + "list": { + "path": "v1/{+parent}/services", + "id": "serviceuser.projects.services.list", + "description": "List enabled services for the specified consumer.", + "response": { + "$ref": "ListEnabledServicesResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Token identifying which result to start with; returned by a previous list\ncall." + }, + "pageSize": { + "description": "Requested size of the next page of data.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "parent": { + "description": "List enabled services for the specified parent.\n\nAn example valid parent would be:\n- projects/my-project", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/services" + }, "disable": { - "flatPath": "v1/projects/{projectsId}/services/{servicesId}:disable", - "path": "v1/{+name}:disable", - "id": "serviceuser.projects.services.disable", "request": { "$ref": "DisableServiceRequest" }, @@ -1798,85 +1858,22 @@ "response": { "$ref": "Operation" }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/service.management" - ], "parameters": { "name": { + "pattern": "^projects/[^/]+/services/[^/]+$", "location": "path", "description": "Name of the consumer and the service to disable for that consumer.\n\nThe Service User implementation accepts the following forms for consumer:\n- \"project:\u003cproject_id\u003e\"\n\nA valid path would be:\n- /v1/projects/my-project/services/servicemanagement.googleapis.com:disable", - "type": "string", "required": true, - "pattern": "^projects/[^/]+/services/[^/]+$" + "type": "string" } - } - }, - "enable": { - "response": { - "$ref": "Operation" }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/service.management" ], - "parameters": { - "name": { - "location": "path", - "description": "Name of the consumer and the service to enable for that consumer.\n\nA valid path would be:\n- /v1/projects/my-project/services/servicemanagement.googleapis.com:enable", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/services/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/services/{servicesId}:enable", - "id": "serviceuser.projects.services.enable", - "path": "v1/{+name}:enable", - "request": { - "$ref": "EnableServiceRequest" - }, - "description": "Enable a service so it can be used with a project.\nSee [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for\nmore information.\n\nOperation\u003cresponse: google.protobuf.Empty\u003e" - }, - "list": { - "flatPath": "v1/projects/{projectsId}/services", - "path": "v1/{+parent}/services", - "id": "serviceuser.projects.services.list", - "description": "List enabled services for the specified consumer.", - "httpMethod": "GET", - "response": { - "$ref": "ListEnabledServicesResponse" - }, - "parameterOrder": [ - "parent" - ], - "parameters": { - "pageToken": { - "location": "query", - "description": "Token identifying which result to start with; returned by a previous list\ncall.", - "type": "string" - }, - "pageSize": { - "format": "int32", - "description": "Requested size of the next page of data.", - "type": "integer", - "location": "query" - }, - "parent": { - "location": "path", - "description": "List enabled services for the specified parent.\n\nAn example valid parent would be:\n- projects/my-project", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] + "flatPath": "v1/projects/{projectsId}/services/{servicesId}:disable", + "id": "serviceuser.projects.services.disable", + "path": "v1/{+name}:disable" } } } @@ -1890,52 +1887,42 @@ }, "parameterOrder": [], "httpMethod": "GET", - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "Requested size of the next page of data.", - "type": "integer" - }, - "pageToken": { - "location": "query", - "description": "Token identifying which result to start with; returned by a previous list\ncall.", - "type": "string" - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ], + "parameters": { + "pageToken": { + "location": "query", + "description": "Token identifying which result to start with; returned by a previous list\ncall.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Requested size of the next page of data.", + "format": "int32", + "type": "integer" + } + }, "flatPath": "v1/services:search", - "id": "serviceuser.services.search", "path": "v1/services:search", + "id": "serviceuser.services.search", "description": "Search available services.\n\nWhen no filter is specified, returns all accessible services. For\nauthenticated users, also returns all services the calling user has\n\"servicemanagement.services.bind\" permission for." } } } }, "parameters": { - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, "quotaUser": { + "type": "string", "location": "query", - "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.", - "type": "string" + "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." }, "pp": { - "location": "query", "description": "Pretty-print response.", + "type": "boolean", "default": "true", - "type": "boolean" + "location": "query" }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", @@ -1943,37 +1930,33 @@ "location": "query" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", - "type": "string", - "location": "query" + "type": "string" }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", "type": "string", "location": "query" }, - "uploadType": { + "prettyPrint": { "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" }, - "callback": { + "fields": { + "type": "string", "location": "query", - "description": "JSONP", - "type": "string" + "description": "Selector specifying which fields to include in a partial response." + }, + "uploadType": { + "type": "string", + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." }, "$.xgafv": { + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -1983,26 +1966,43 @@ "1", "2" ], - "description": "V1 error format.", + "description": "V1 error format." + }, + "callback": { + "location": "query", + "description": "JSONP", "type": "string" }, "alt": { - "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", - "description": "Data format for response.", "default": "json", "enum": [ "json", "media", "proto" ], + "type": "string", + "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", + "description": "Data format for response." + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "key": { + "location": "query", + "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.", "type": "string" } }, "version": "v1", - "baseUrl": "https://serviceuser.googleapis.com/" + "baseUrl": "https://serviceuser.googleapis.com/", + "servicePath": "", + "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "kind": "discovery#restDescription" } diff --git a/vendor/google.golang.org/api/serviceuser/v1/serviceuser-gen.go b/vendor/google.golang.org/api/serviceuser/v1/serviceuser-gen.go index ace605a74..60b6d7273 100644 --- a/vendor/google.golang.org/api/serviceuser/v1/serviceuser-gen.go +++ b/vendor/google.golang.org/api/serviceuser/v1/serviceuser-gen.go @@ -619,6 +619,7 @@ func (s *BackendRule) UnmarshalJSON(data []byte) error { // The following example shows how to configure monitored resources and // metrics // for billing: +// // monitored_resources: // - type: library.googleapis.com/branch // labels: @@ -1191,8 +1192,8 @@ type Endpoint struct { // Aliases: DEPRECATED: This field is no longer supported. Instead of // using aliases, // please specify multiple google.api.Endpoint for each of the - // intented - // alias. + // intended + // aliases. // // Additional names that this endpoint will be hosted on. Aliases []string `json:"aliases,omitempty"` @@ -2305,6 +2306,9 @@ type MetricDescriptor struct { // user interfaces. // Use sentence case without an ending period, for example "Request // count". + // This field is optional but it is recommended to be set for any + // metrics + // associated with user-visible concepts, such as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a @@ -2334,21 +2338,7 @@ type MetricDescriptor struct { // points. MetricKind string `json:"metricKind,omitempty"` - // Name: The resource name of the metric descriptor. Depending on - // the - // implementation, the name typically includes: (1) the parent resource - // name - // that defines the scope of the metric type or of its data; and (2) - // the - // metric's URL-encoded type, which also appears in the `type` field of - // this - // descriptor. For example, following is the resource name of a - // custom - // metric within the GCP project `my-project-id`: - // - // - // "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvo - // ice%2Fpaid%2Famount" + // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is @@ -3326,31 +3316,15 @@ type QuotaLimit struct { // the same metric will be checked together during runtime. The metric // must be // defined within the service config. - // - // Used by metric-based quotas only. Metric string `json:"metric,omitempty"` - // Name: Name of the quota limit. The name is used to refer to the limit - // when - // overriding the default limit on per-consumer basis. + // Name: Name of the quota limit. // - // For metric-based quota limits, the name must be provided, and it must - // be - // unique within the service. The name can only include - // alphanumeric - // characters as well as '-'. + // The name must be provided, and it must be unique within the service. + // The + // name can only include alphanumeric characters as well as '-'. // // The maximum length of the limit name is 64 characters. - // - // The name of a limit is used as a unique identifier for this - // limit. - // Therefore, once a limit has been put into use, its name should - // be - // immutable. You can use the display_name field to provide a - // user-friendly - // name for the limit. The display name can be evolved over time - // without - // affecting the identity of the limit. Name string `json:"name,omitempty"` // Unit: Specify the unit of the quota limit. It uses the same syntax @@ -3359,28 +3333,19 @@ type QuotaLimit struct { // quota // backend system. // - // The [Google Service - // Control](https://cloud.google.com/service-control) - // supports the following unit components: - // * One of the time intevals: - // * "/min" for quota every minute. - // * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. - // * Otherwise the quota won't be reset by time, such as storage - // limit. - // * One and only one of the granted containers: - // * "/{project}" quota for a project - // // Here are some examples: // * "1/min/{project}" for quota per minute per project. // // Note: the order of unit components is insignificant. // The "1" at the beginning is required to follow the metric unit // syntax. - // - // Used by metric-based quotas only. Unit string `json:"unit,omitempty"` - // Values: Tiered limit values, currently only STANDARD is supported. + // Values: Tiered limit values. You must specify this as a key:value + // pair, with an + // integer value that is the maximum number of requests allowed for + // the + // specified unit. Currently only STANDARD is supported. Values map[string]string `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultLimit") to @@ -4162,6 +4127,9 @@ type UsageRule struct { // SkipServiceControl: True, if the method should skip service control. // If so, no control plane // feature (like quota and billing) will be enabled. + // This flag is used by ESP to allow some Endpoints customers to + // bypass + // Google internal checks. SkipServiceControl bool `json:"skipServiceControl,omitempty"` // ForceSendFields is a list of field names (e.g. diff --git a/vendor/google.golang.org/api/sheets/v4/sheets-api.json b/vendor/google.golang.org/api/sheets/v4/sheets-api.json index 22456fb59..ddb7525ea 100644 --- a/vendor/google.golang.org/api/sheets/v4/sheets-api.json +++ b/vendor/google.golang.org/api/sheets/v4/sheets-api.json @@ -1,87 +1,11 @@ { + "title": "Google Sheets API", "ownerName": "Google", "resources": { "spreadsheets": { "methods": { - "batchUpdate": { - "httpMethod": "POST", - "parameterOrder": [ - "spreadsheetId" - ], - "response": { - "$ref": "BatchUpdateSpreadsheetResponse" - }, - "parameters": { - "spreadsheetId": { - "description": "The spreadsheet to apply the updates to.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate", - "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate", - "id": "sheets.spreadsheets.batchUpdate", - "description": "Applies one or more updates to the spreadsheet.\n\nEach request is validated before\nbeing applied. If any request is not valid then the entire request will\nfail and nothing will be applied.\n\nSome requests have replies to\ngive you some information about how\nthey are applied. The replies will mirror the requests. For example,\nif you applied 4 updates and the 3rd one had a reply, then the\nresponse will have 2 empty replies, the actual reply, and another empty\nreply, in that order.\n\nDue to the collaborative nature of spreadsheets, it is not guaranteed that\nthe spreadsheet will reflect exactly your changes after this completes,\nhowever it is guaranteed that the updates in the request will be\napplied together atomically. Your changes may be altered with respect to\ncollaborator changes. If there are no collaborators, the spreadsheet\nshould reflect your changes.", - "request": { - "$ref": "BatchUpdateSpreadsheetRequest" - } - }, - "create": { - "description": "Creates a spreadsheet, returning the newly created spreadsheet.", - "request": { - "$ref": "Spreadsheet" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Spreadsheet" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "flatPath": "v4/spreadsheets", - "path": "v4/spreadsheets", - "id": "sheets.spreadsheets.create" - }, - "getByDataFilter": { - "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nThis method differs from GetSpreadsheet in that it allows selecting\nwhich subsets of spreadsheet data to return by specifying a\ndataFilters parameter.\nMultiple DataFilters can be specified. Specifying one or\nmore data filters will return the portions of the spreadsheet that\nintersect ranges matched by any of the filters.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nparameter to true. If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want.", - "request": { - "$ref": "GetSpreadsheetByDataFilterRequest" - }, - "response": { - "$ref": "Spreadsheet" - }, - "parameterOrder": [ - "spreadsheetId" - ], - "httpMethod": "POST", - "parameters": { - "spreadsheetId": { - "location": "path", - "description": "The spreadsheet to request.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", - "id": "sheets.spreadsheets.getByDataFilter", - "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter" - }, "get": { + "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nURL parameter to true. If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want.\n\nTo retrieve only subsets of the spreadsheet, use the\nranges URL parameter.\nMultiple ranges can be specified. Limiting the range will\nreturn only the portions of the spreadsheet that intersect the requested\nranges. Ranges are specified using A1 notation.", "httpMethod": "GET", "parameterOrder": [ "spreadsheetId" @@ -100,123 +24,118 @@ "spreadsheetId": { "location": "path", "description": "The spreadsheet to request.", + "required": true, + "type": "string" + }, + "ranges": { + "location": "query", + "description": "The ranges to retrieve from the spreadsheet.", "type": "string", - "required": true + "repeated": true }, "includeGridData": { "description": "True if grid data should be returned.\nThis parameter is ignored if a field mask was set in the request.", "type": "boolean", "location": "query" - }, - "ranges": { - "repeated": true, - "location": "query", - "description": "The ranges to retrieve from the spreadsheet.", - "type": "string" } }, "flatPath": "v4/spreadsheets/{spreadsheetId}", - "path": "v4/spreadsheets/{spreadsheetId}", "id": "sheets.spreadsheets.get", - "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nURL parameter to true. If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want.\n\nTo retrieve only subsets of the spreadsheet, use the\nranges URL parameter.\nMultiple ranges can be specified. Limiting the range will\nreturn only the portions of the spreadsheet that intersect the requested\nranges. Ranges are specified using A1 notation." + "path": "v4/spreadsheets/{spreadsheetId}" + }, + "getByDataFilter": { + "response": { + "$ref": "Spreadsheet" + }, + "parameterOrder": [ + "spreadsheetId" + ], + "httpMethod": "POST", + "parameters": { + "spreadsheetId": { + "location": "path", + "description": "The spreadsheet to request.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", + "path": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", + "id": "sheets.spreadsheets.getByDataFilter", + "request": { + "$ref": "GetSpreadsheetByDataFilterRequest" + }, + "description": "Returns the spreadsheet at the given ID.\nThe caller must specify the spreadsheet ID.\n\nThis method differs from GetSpreadsheet in that it allows selecting\nwhich subsets of spreadsheet data to return by specifying a\ndataFilters parameter.\nMultiple DataFilters can be specified. Specifying one or\nmore data filters will return the portions of the spreadsheet that\nintersect ranges matched by any of the filters.\n\nBy default, data within grids will not be returned.\nYou can include grid data one of two ways:\n\n* Specify a field mask listing your desired fields using the `fields` URL\nparameter in HTTP\n\n* Set the includeGridData\nparameter to true. If a field mask is set, the `includeGridData`\nparameter is ignored\n\nFor large spreadsheets, it is recommended to retrieve only the specific\nfields of the spreadsheet that you want." + }, + "create": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Spreadsheet" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "flatPath": "v4/spreadsheets", + "id": "sheets.spreadsheets.create", + "path": "v4/spreadsheets", + "request": { + "$ref": "Spreadsheet" + }, + "description": "Creates a spreadsheet, returning the newly created spreadsheet." + }, + "batchUpdate": { + "request": { + "$ref": "BatchUpdateSpreadsheetRequest" + }, + "description": "Applies one or more updates to the spreadsheet.\n\nEach request is validated before\nbeing applied. If any request is not valid then the entire request will\nfail and nothing will be applied.\n\nSome requests have replies to\ngive you some information about how\nthey are applied. The replies will mirror the requests. For example,\nif you applied 4 updates and the 3rd one had a reply, then the\nresponse will have 2 empty replies, the actual reply, and another empty\nreply, in that order.\n\nDue to the collaborative nature of spreadsheets, it is not guaranteed that\nthe spreadsheet will reflect exactly your changes after this completes,\nhowever it is guaranteed that the updates in the request will be\napplied together atomically. Your changes may be altered with respect to\ncollaborator changes. If there are no collaborators, the spreadsheet\nshould reflect your changes.", + "response": { + "$ref": "BatchUpdateSpreadsheetResponse" + }, + "parameterOrder": [ + "spreadsheetId" + ], + "httpMethod": "POST", + "parameters": { + "spreadsheetId": { + "location": "path", + "description": "The spreadsheet to apply the updates to.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "flatPath": "v4/spreadsheets/{spreadsheetId}:batchUpdate", + "path": "v4/spreadsheets/{spreadsheetId}:batchUpdate", + "id": "sheets.spreadsheets.batchUpdate" } }, "resources": { - "developerMetadata": { - "methods": { - "search": { - "id": "sheets.spreadsheets.developerMetadata.search", - "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search", - "request": { - "$ref": "SearchDeveloperMetadataRequest" - }, - "description": "Returns all developer metadata matching the specified DataFilter.\nIf the provided DataFilter represents a DeveloperMetadataLookup object,\nthis will return all DeveloperMetadata entries selected by it. If the\nDataFilter represents a location in a spreadsheet, this will return all\ndeveloper metadata associated with locations intersecting that region.", - "response": { - "$ref": "SearchDeveloperMetadataResponse" - }, - "parameterOrder": [ - "spreadsheetId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "parameters": { - "spreadsheetId": { - "location": "path", - "description": "The ID of the spreadsheet to retrieve metadata from.", - "type": "string", - "required": true - } - }, - "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "spreadsheetId", - "metadataId" - ], - "response": { - "$ref": "DeveloperMetadata" - }, - "parameters": { - "spreadsheetId": { - "description": "The ID of the spreadsheet to retrieve metadata from.", - "type": "string", - "required": true, - "location": "path" - }, - "metadataId": { - "format": "int32", - "description": "The ID of the developer metadata to retrieve.", - "type": "integer", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", - "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", - "id": "sheets.spreadsheets.developerMetadata.get", - "description": "Returns the developer metadata with the specified id.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId." - } - } - }, "values": { "methods": { "get": { - "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}", - "id": "sheets.spreadsheets.values.get", - "path": "v4/spreadsheets/{spreadsheetId}/values/{range}", - "description": "Returns a range of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and a range.", - "response": { - "$ref": "ValueRange" - }, - "parameterOrder": [ - "spreadsheetId", - "range" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/drive.readonly", - "https://www.googleapis.com/auth/spreadsheets", - "https://www.googleapis.com/auth/spreadsheets.readonly" - ], "parameters": { - "range": { - "description": "The A1 notation of the values to retrieve.", - "type": "string", - "required": true, - "location": "path" + "valueRenderOption": { + "location": "query", + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string" }, "dateTimeRenderOption": { "location": "query", @@ -227,37 +146,106 @@ "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", "type": "string" }, - "valueRenderOption": { + "majorDimension": { + "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", + "type": "string", + "location": "query", + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ] + }, + "spreadsheetId": { + "location": "path", + "description": "The ID of the spreadsheet to retrieve data from.", + "required": true, + "type": "string" + }, + "range": { + "location": "path", + "description": "The A1 notation of the values to retrieve.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.readonly", + "https://www.googleapis.com/auth/spreadsheets", + "https://www.googleapis.com/auth/spreadsheets.readonly" + ], + "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}", + "id": "sheets.spreadsheets.values.get", + "path": "v4/spreadsheets/{spreadsheetId}/values/{range}", + "description": "Returns a range of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and a range.", + "httpMethod": "GET", + "response": { + "$ref": "ValueRange" + }, + "parameterOrder": [ + "spreadsheetId", + "range" + ] + }, + "update": { + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "parameters": { + "spreadsheetId": { + "description": "The ID of the spreadsheet to update.", + "required": true, + "type": "string", + "location": "path" + }, + "responseValueRenderOption": { + "location": "query", "enum": [ "FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA" ], - "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", - "location": "query" + "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string" }, - "majorDimension": { + "valueInputOption": { + "description": "How the input data should be interpreted.", + "type": "string", + "location": "query", "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ], - "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", - "type": "string", - "location": "query" + "INPUT_VALUE_OPTION_UNSPECIFIED", + "RAW", + "USER_ENTERED" + ] }, - "spreadsheetId": { - "location": "path", - "description": "The ID of the spreadsheet to retrieve data from.", + "responseDateTimeRenderOption": { + "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", "type": "string", - "required": true + "location": "query", + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ] + }, + "range": { + "location": "path", + "description": "The A1 notation of the values to update.", + "required": true, + "type": "string" + }, + "includeValuesInResponse": { + "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values.\nIf the range to write was larger than than the range actually written,\nthe response will include all values in the requested range (excluding\ntrailing empty rows and columns).", + "type": "boolean", + "location": "query" } - } - }, - "update": { - "id": "sheets.spreadsheets.values.update", + }, + "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}", "path": "v4/spreadsheets/{spreadsheetId}/values/{range}", + "id": "sheets.spreadsheets.values.update", "description": "Sets values in a range of a spreadsheet.\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption.", "request": { "$ref": "ValueRange" @@ -269,77 +257,16 @@ "spreadsheetId", "range" ], - "httpMethod": "PUT", - "parameters": { - "spreadsheetId": { - "description": "The ID of the spreadsheet to update.", - "type": "string", - "required": true, - "location": "path" - }, - "responseValueRenderOption": { - "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", - "location": "query", - "enum": [ - "FORMATTED_VALUE", - "UNFORMATTED_VALUE", - "FORMULA" - ] - }, - "valueInputOption": { - "location": "query", - "enum": [ - "INPUT_VALUE_OPTION_UNSPECIFIED", - "RAW", - "USER_ENTERED" - ], - "description": "How the input data should be interpreted.", - "type": "string" - }, - "responseDateTimeRenderOption": { - "location": "query", - "enum": [ - "SERIAL_NUMBER", - "FORMATTED_STRING" - ], - "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", - "type": "string" - }, - "includeValuesInResponse": { - "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values.\nIf the range to write was larger than than the range actually written,\nthe response will include all values in the requested range (excluding\ntrailing empty rows and columns).", - "type": "boolean", - "location": "query" - }, - "range": { - "location": "path", - "description": "The A1 notation of the values to update.", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/spreadsheets" - ], - "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}" + "httpMethod": "PUT" }, "batchUpdateByDataFilter": { - "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", - "id": "sheets.spreadsheets.values.batchUpdateByDataFilter", - "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", - "request": { - "$ref": "BatchUpdateValuesByDataFilterRequest" - }, - "description": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nDataFilterValueRanges.", - "response": { - "$ref": "BatchUpdateValuesByDataFilterResponse" - }, + "httpMethod": "POST", "parameterOrder": [ "spreadsheetId" ], - "httpMethod": "POST", + "response": { + "$ref": "BatchUpdateValuesByDataFilterResponse" + }, "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", @@ -348,13 +275,27 @@ "parameters": { "spreadsheetId": { "description": "The ID of the spreadsheet to update.", - "type": "string", "required": true, + "type": "string", "location": "path" } + }, + "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", + "id": "sheets.spreadsheets.values.batchUpdateByDataFilter", + "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter", + "description": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nDataFilterValueRanges.", + "request": { + "$ref": "BatchUpdateValuesByDataFilterRequest" } }, "batchUpdate": { + "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", + "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", + "id": "sheets.spreadsheets.values.batchUpdate", + "description": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nValueRanges.", + "request": { + "$ref": "BatchUpdateValuesRequest" + }, "response": { "$ref": "BatchUpdateValuesResponse" }, @@ -362,98 +303,25 @@ "spreadsheetId" ], "httpMethod": "POST", - "parameters": { - "spreadsheetId": { - "location": "path", - "description": "The ID of the spreadsheet to update.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets" ], - "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", - "id": "sheets.spreadsheets.values.batchUpdate", - "path": "v4/spreadsheets/{spreadsheetId}/values:batchUpdate", - "description": "Sets values in one or more ranges of a spreadsheet.\nThe caller must specify the spreadsheet ID,\na valueInputOption, and one or more\nValueRanges.", - "request": { - "$ref": "BatchUpdateValuesRequest" - } - }, - "batchGet": { - "description": "Returns one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges.", - "httpMethod": "GET", - "response": { - "$ref": "BatchGetValuesResponse" - }, - "parameterOrder": [ - "spreadsheetId" - ], - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.file", - "https://www.googleapis.com/auth/drive.readonly", - "https://www.googleapis.com/auth/spreadsheets", - "https://www.googleapis.com/auth/spreadsheets.readonly" - ], "parameters": { - "majorDimension": { - "location": "query", - "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ], - "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", - "type": "string" - }, - "ranges": { - "description": "The A1 notation of the values to retrieve.", - "type": "string", - "repeated": true, - "location": "query" - }, "spreadsheetId": { "location": "path", - "description": "The ID of the spreadsheet to retrieve data from.", - "type": "string", - "required": true - }, - "dateTimeRenderOption": { - "enum": [ - "SERIAL_NUMBER", - "FORMATTED_STRING" - ], - "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", - "type": "string", - "location": "query" - }, - "valueRenderOption": { - "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", - "location": "query", - "enum": [ - "FORMATTED_VALUE", - "UNFORMATTED_VALUE", - "FORMULA" - ] + "description": "The ID of the spreadsheet to update.", + "required": true, + "type": "string" } - }, - "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet", - "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet", - "id": "sheets.spreadsheets.values.batchGet" + } }, "clear": { - "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", - "id": "sheets.spreadsheets.values.clear", - "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", + "description": "Clears values from a spreadsheet.\nThe caller must specify the spreadsheet ID and range.\nOnly values are cleared -- all other properties of the cell (such as\nformatting, data validation, etc..) are kept.", "request": { "$ref": "ClearValuesRequest" }, - "description": "Clears values from a spreadsheet.\nThe caller must specify the spreadsheet ID and range.\nOnly values are cleared -- all other properties of the cell (such as\nformatting, data validation, etc..) are kept.", "response": { "$ref": "ClearValuesResponse" }, @@ -469,27 +337,97 @@ ], "parameters": { "spreadsheetId": { - "location": "path", "description": "The ID of the spreadsheet to update.", + "required": true, "type": "string", - "required": true + "location": "path" }, "range": { "location": "path", "description": "The A1 notation of the values to clear.", - "type": "string", - "required": true + "required": true, + "type": "string" } - } + }, + "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", + "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:clear", + "id": "sheets.spreadsheets.values.clear" }, - "batchClearByDataFilter": { - "httpMethod": "POST", + "batchGet": { + "response": { + "$ref": "BatchGetValuesResponse" + }, "parameterOrder": [ "spreadsheetId" ], + "httpMethod": "GET", + "parameters": { + "ranges": { + "repeated": true, + "location": "query", + "description": "The A1 notation of the values to retrieve.", + "type": "string" + }, + "majorDimension": { + "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", + "type": "string", + "location": "query", + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ] + }, + "spreadsheetId": { + "location": "path", + "description": "The ID of the spreadsheet to retrieve data from.", + "required": true, + "type": "string" + }, + "valueRenderOption": { + "location": "query", + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string" + }, + "dateTimeRenderOption": { + "type": "string", + "location": "query", + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ], + "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER]." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.readonly", + "https://www.googleapis.com/auth/spreadsheets", + "https://www.googleapis.com/auth/spreadsheets.readonly" + ], + "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGet", + "path": "v4/spreadsheets/{spreadsheetId}/values:batchGet", + "id": "sheets.spreadsheets.values.batchGet", + "description": "Returns one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more ranges." + }, + "batchClearByDataFilter": { + "description": "Clears one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters. Ranges matching any of the specified data\nfilters will be cleared. Only values are cleared -- all other properties\nof the cell (such as formatting, data validation, etc..) are kept.", + "request": { + "$ref": "BatchClearValuesByDataFilterRequest" + }, "response": { "$ref": "BatchClearValuesByDataFilterResponse" }, + "parameterOrder": [ + "spreadsheetId" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", @@ -497,28 +435,17 @@ ], "parameters": { "spreadsheetId": { + "location": "path", "description": "The ID of the spreadsheet to update.", - "type": "string", "required": true, - "location": "path" + "type": "string" } }, "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter", "path": "v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter", - "id": "sheets.spreadsheets.values.batchClearByDataFilter", - "request": { - "$ref": "BatchClearValuesByDataFilterRequest" - }, - "description": "Clears one or more ranges of values from a spreadsheet.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters. Ranges matching any of the specified data\nfilters will be cleared. Only values are cleared -- all other properties\nof the cell (such as formatting, data validation, etc..) are kept." + "id": "sheets.spreadsheets.values.batchClearByDataFilter" }, "append": { - "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", - "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", - "id": "sheets.spreadsheets.values.append", - "description": "Appends values to a spreadsheet. The input range is used to search for\nexisting data and find a \"table\" within that range. Values will be\nappended to the next row of the table, starting with the first column of\nthe table. See the\n[guide](/sheets/api/guides/values#appending_values)\nand\n[sample code](/sheets/api/samples/writing#append_values)\nfor specific details of how tables are detected and data is appended.\n\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption. The `valueInputOption` only\ncontrols how the input data will be added to the sheet (column-wise or\nrow-wise), it does not influence what cell the data starts being written\nto.", - "request": { - "$ref": "ValueRange" - }, "httpMethod": "POST", "parameterOrder": [ "spreadsheetId", @@ -528,22 +455,6 @@ "$ref": "AppendValuesResponse" }, "parameters": { - "spreadsheetId": { - "location": "path", - "description": "The ID of the spreadsheet to update.", - "type": "string", - "required": true - }, - "responseValueRenderOption": { - "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", - "location": "query", - "enum": [ - "FORMATTED_VALUE", - "UNFORMATTED_VALUE", - "FORMULA" - ] - }, "insertDataOption": { "description": "How the input data should be inserted.", "type": "string", @@ -554,67 +465,90 @@ ] }, "valueInputOption": { + "description": "How the input data should be interpreted.", + "type": "string", "location": "query", "enum": [ "INPUT_VALUE_OPTION_UNSPECIFIED", "RAW", "USER_ENTERED" - ], - "description": "How the input data should be interpreted.", - "type": "string" + ] }, "responseDateTimeRenderOption": { + "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", + "type": "string", "location": "query", "enum": [ "SERIAL_NUMBER", "FORMATTED_STRING" - ], - "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", - "type": "string" + ] }, "includeValuesInResponse": { - "description": "Determines if the update response should include the values\nof the cells that were appended. By default, responses\ndo not include the updated values.", "type": "boolean", - "location": "query" + "location": "query", + "description": "Determines if the update response should include the values\nof the cells that were appended. By default, responses\ndo not include the updated values." }, "range": { "location": "path", "description": "The A1 notation of a range to search for a logical table of data.\nValues will be appended after the last row of the table.", + "required": true, + "type": "string" + }, + "spreadsheetId": { + "description": "The ID of the spreadsheet to update.", + "required": true, "type": "string", - "required": true + "location": "path" + }, + "responseValueRenderOption": { + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string", + "location": "query" } }, "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets" - ] + ], + "flatPath": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", + "id": "sheets.spreadsheets.values.append", + "path": "v4/spreadsheets/{spreadsheetId}/values/{range}:append", + "request": { + "$ref": "ValueRange" + }, + "description": "Appends values to a spreadsheet. The input range is used to search for\nexisting data and find a \"table\" within that range. Values will be\nappended to the next row of the table, starting with the first column of\nthe table. See the\n[guide](/sheets/api/guides/values#appending_values)\nand\n[sample code](/sheets/api/samples/writing#append_values)\nfor specific details of how tables are detected and data is appended.\n\nThe caller must specify the spreadsheet ID, range, and\na valueInputOption. The `valueInputOption` only\ncontrols how the input data will be added to the sheet (column-wise or\nrow-wise), it does not influence what cell the data starts being written\nto." }, "batchGetByDataFilter": { - "httpMethod": "POST", - "parameterOrder": [ - "spreadsheetId" - ], "response": { "$ref": "BatchGetValuesByDataFilterResponse" }, - "parameters": { - "spreadsheetId": { - "description": "The ID of the spreadsheet to retrieve data from.", - "type": "string", - "required": true, - "location": "path" - } - }, + "parameterOrder": [ + "spreadsheetId" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets" ], + "parameters": { + "spreadsheetId": { + "location": "path", + "description": "The ID of the spreadsheet to retrieve data from.", + "required": true, + "type": "string" + } + }, "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter", "path": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter", "id": "sheets.spreadsheets.values.batchGetByDataFilter", - "description": "Returns one or more ranges of values from a spreadsheet that match the\nspecified data filters. The caller must specify the spreadsheet ID and\none or more DataFilters. Ranges that match any of the data\nfilters in the request will be returned.", + "description": "Returns one or more ranges of values that match the specified data filters.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters. Ranges that match any of the data filters in\nthe request will be returned.", "request": { "$ref": "BatchGetValuesByDataFilterRequest" } @@ -627,22 +561,22 @@ "spreadsheetId" ], "httpMethod": "POST", + "parameters": { + "spreadsheetId": { + "description": "The ID of the spreadsheet to update.", + "required": true, + "type": "string", + "location": "path" + } + }, "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets" ], - "parameters": { - "spreadsheetId": { - "description": "The ID of the spreadsheet to update.", - "type": "string", - "required": true, - "location": "path" - } - }, "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear", - "id": "sheets.spreadsheets.values.batchClear", "path": "v4/spreadsheets/{spreadsheetId}/values:batchClear", + "id": "sheets.spreadsheets.values.batchClear", "request": { "$ref": "BatchClearValuesRequest" }, @@ -653,31 +587,33 @@ "sheets": { "methods": { "copyTo": { - "description": "Copies a single sheet from a spreadsheet to another spreadsheet.\nReturns the properties of the newly created sheet.", + "id": "sheets.spreadsheets.sheets.copyTo", + "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo", "request": { "$ref": "CopySheetToAnotherSpreadsheetRequest" }, - "response": { - "$ref": "SheetProperties" - }, + "description": "Copies a single sheet from a spreadsheet to another spreadsheet.\nReturns the properties of the newly created sheet.", + "httpMethod": "POST", "parameterOrder": [ "spreadsheetId", "sheetId" ], - "httpMethod": "POST", + "response": { + "$ref": "SheetProperties" + }, "parameters": { "spreadsheetId": { "description": "The ID of the spreadsheet containing the sheet to copy.", - "type": "string", "required": true, + "type": "string", "location": "path" }, "sheetId": { "location": "path", - "format": "int32", "description": "The ID of the sheet to copy.", - "type": "integer", - "required": true + "format": "int32", + "required": true, + "type": "integer" } }, "scopes": [ @@ -685,9 +621,74 @@ "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets" ], - "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo", - "id": "sheets.spreadsheets.sheets.copyTo", - "path": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo" + "flatPath": "v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo" + } + } + }, + "developerMetadata": { + "methods": { + "search": { + "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search", + "id": "sheets.spreadsheets.developerMetadata.search", + "description": "Returns all developer metadata matching the specified DataFilter.\nIf the provided DataFilter represents a DeveloperMetadataLookup object,\nthis will return all DeveloperMetadata entries selected by it. If the\nDataFilter represents a location in a spreadsheet, this will return all\ndeveloper metadata associated with locations intersecting that region.", + "request": { + "$ref": "SearchDeveloperMetadataRequest" + }, + "response": { + "$ref": "SearchDeveloperMetadataResponse" + }, + "parameterOrder": [ + "spreadsheetId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "parameters": { + "spreadsheetId": { + "description": "The ID of the spreadsheet to retrieve metadata from.", + "required": true, + "type": "string", + "location": "path" + } + }, + "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata:search" + }, + "get": { + "description": "Returns the developer metadata with the specified ID.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.", + "response": { + "$ref": "DeveloperMetadata" + }, + "parameterOrder": [ + "spreadsheetId", + "metadataId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/spreadsheets" + ], + "parameters": { + "spreadsheetId": { + "required": true, + "type": "string", + "location": "path", + "description": "The ID of the spreadsheet to retrieve metadata from." + }, + "metadataId": { + "required": true, + "type": "integer", + "location": "path", + "description": "The ID of the developer metadata to retrieve.", + "format": "int32" + } + }, + "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", + "path": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", + "id": "sheets.spreadsheets.developerMetadata.get" } } } @@ -695,16 +696,47 @@ } }, "parameters": { + "access_token": { + "type": "string", + "location": "query", + "description": "OAuth access token." + }, + "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.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "type": "boolean", + "default": "true", + "location": "query", + "description": "Pretty-print response." + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, "upload_protocol": { "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string", "location": "query" }, "prettyPrint": { - "location": "query", "description": "Returns response with indentations and line breaks.", + "type": "boolean", "default": "true", - "type": "boolean" + "location": "query" }, "fields": { "location": "query", @@ -749,1270 +781,77 @@ "location": "query", "description": "Data format for response.", "default": "json" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" } }, "version": "v4", "baseUrl": "https://sheets.googleapis.com/", - "servicePath": "", "kind": "discovery#restDescription", "description": "Reads and writes Google Sheets.", + "servicePath": "", "basePath": "", - "revision": "20170922", + "revision": "20171012", "documentationLink": "https://developers.google.com/sheets/", "id": "sheets:v4", "discoveryVersion": "v1", "version_module": true, "schemas": { - "BasicChartSeries": { - "description": "A single series of data in a chart.\nFor example, if charting stock prices over time, multiple series may exist,\none for the \"Open Price\", \"High Price\", \"Low Price\" and \"Close Price\".", - "type": "object", - "properties": { - "type": { - "enumDescriptions": [ - "Default value, do not use.", - "A \u003ca href=\"/chart/interactive/docs/gallery/barchart\"\u003ebar chart\u003c/a\u003e.", - "A \u003ca href=\"/chart/interactive/docs/gallery/linechart\"\u003eline chart\u003c/a\u003e.", - "An \u003ca href=\"/chart/interactive/docs/gallery/areachart\"\u003earea chart\u003c/a\u003e.", - "A \u003ca href=\"/chart/interactive/docs/gallery/columnchart\"\u003ecolumn chart\u003c/a\u003e.", - "A \u003ca href=\"/chart/interactive/docs/gallery/scatterchart\"\u003escatter chart\u003c/a\u003e.", - "A \u003ca href=\"/chart/interactive/docs/gallery/combochart\"\u003ecombo chart\u003c/a\u003e.", - "A \u003ca href=\"/chart/interactive/docs/gallery/steppedareachart\"\u003estepped area chart\u003c/a\u003e." - ], - "enum": [ - "BASIC_CHART_TYPE_UNSPECIFIED", - "BAR", - "LINE", - "AREA", - "COLUMN", - "SCATTER", - "COMBO", - "STEPPED_AREA" - ], - "description": "The type of this series. Valid only if the\nchartType is\nCOMBO.\nDifferent types will change the way the series is visualized.\nOnly LINE, AREA,\nand COLUMN are supported.", - "type": "string" - }, - "series": { - "$ref": "ChartData", - "description": "The data being visualized in this chart series." - }, - "targetAxis": { - "enumDescriptions": [ - "Default value, do not use.", - "The axis rendered at the bottom of a chart.\nFor most charts, this is the standard major axis.\nFor bar charts, this is a minor axis.", - "The axis rendered at the left of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is the standard major axis.", - "The axis rendered at the right of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is an unusual major axis." - ], - "enum": [ - "BASIC_CHART_AXIS_POSITION_UNSPECIFIED", - "BOTTOM_AXIS", - "LEFT_AXIS", - "RIGHT_AXIS" - ], - "description": "The minor axis that will specify the range of values for this series.\nFor example, if charting stocks over time, the \"Volume\" series\nmay want to be pinned to the right with the prices pinned to the left,\nbecause the scale of trading volume is different than the scale of\nprices.\nIt is an error to specify an axis that isn't a valid minor axis\nfor the chart's type.", - "type": "string" - } - }, - "id": "BasicChartSeries" - }, - "Borders": { - "description": "The borders of the cell.", - "type": "object", - "properties": { - "right": { - "$ref": "Border", - "description": "The right border of the cell." - }, - "bottom": { - "$ref": "Border", - "description": "The bottom border of the cell." - }, - "top": { - "$ref": "Border", - "description": "The top border of the cell." - }, - "left": { - "description": "The left border of the cell.", - "$ref": "Border" - } - }, - "id": "Borders" - }, - "AutoResizeDimensionsRequest": { - "description": "Automatically resizes one or more dimensions based on the contents\nof the cells in that dimension.", - "type": "object", - "properties": { - "dimensions": { - "$ref": "DimensionRange", - "description": "The dimensions to automatically resize." - } - }, - "id": "AutoResizeDimensionsRequest" - }, - "UpdateBordersRequest": { - "description": "Updates the borders of a range.\nIf a field is not set in the request, that means the border remains as-is.\nFor example, with two subsequent UpdateBordersRequest:\n\n 1. range: A1:A5 `{ top: RED, bottom: WHITE }`\n 2. range: A1:A5 `{ left: BLUE }`\n\nThat would result in A1:A5 having a borders of\n`{ top: RED, bottom: WHITE, left: BLUE }`.\nIf you want to clear a border, explicitly set the style to\nNONE.", - "type": "object", - "properties": { - "bottom": { - "$ref": "Border", - "description": "The border to put at the bottom of the range." - }, - "innerVertical": { - "description": "The vertical border to put within the range.", - "$ref": "Border" - }, - "right": { - "$ref": "Border", - "description": "The border to put at the right of the range." - }, - "range": { - "$ref": "GridRange", - "description": "The range whose borders should be updated." - }, - "innerHorizontal": { - "description": "The horizontal border to put within the range.", - "$ref": "Border" - }, - "top": { - "$ref": "Border", - "description": "The border to put at the top of the range." - }, - "left": { - "$ref": "Border", - "description": "The border to put at the left of the range." - } - }, - "id": "UpdateBordersRequest" - }, - "CellFormat": { - "description": "The format of a cell.", - "type": "object", - "properties": { - "hyperlinkDisplayType": { - "enumDescriptions": [ - "The default value: the hyperlink is rendered. Do not use this.", - "A hyperlink should be explicitly rendered.", - "A hyperlink should not be rendered." - ], - "enum": [ - "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", - "LINKED", - "PLAIN_TEXT" - ], - "description": "How a hyperlink, if it exists, should be displayed in the cell.", - "type": "string" - }, - "horizontalAlignment": { - "enumDescriptions": [ - "The horizontal alignment is not specified. Do not use this.", - "The text is explicitly aligned to the left of the cell.", - "The text is explicitly aligned to the center of the cell.", - "The text is explicitly aligned to the right of the cell." - ], - "enum": [ - "HORIZONTAL_ALIGN_UNSPECIFIED", - "LEFT", - "CENTER", - "RIGHT" - ], - "description": "The horizontal alignment of the value in the cell.", - "type": "string" - }, - "textFormat": { - "$ref": "TextFormat", - "description": "The format of the text in the cell (unless overridden by a format run)." - }, - "backgroundColor": { - "$ref": "Color", - "description": "The background color of the cell." - }, - "verticalAlignment": { - "enumDescriptions": [ - "The vertical alignment is not specified. Do not use this.", - "The text is explicitly aligned to the top of the cell.", - "The text is explicitly aligned to the middle of the cell.", - "The text is explicitly aligned to the bottom of the cell." - ], - "enum": [ - "VERTICAL_ALIGN_UNSPECIFIED", - "TOP", - "MIDDLE", - "BOTTOM" - ], - "description": "The vertical alignment of the value in the cell.", - "type": "string" - }, - "padding": { - "description": "The padding of the cell.", - "$ref": "Padding" - }, - "textDirection": { - "description": "The direction of the text in the cell.", - "type": "string", - "enumDescriptions": [ - "The text direction is not specified. Do not use this.", - "The text direction of left-to-right was set by the user.", - "The text direction of right-to-left was set by the user." - ], - "enum": [ - "TEXT_DIRECTION_UNSPECIFIED", - "LEFT_TO_RIGHT", - "RIGHT_TO_LEFT" - ] - }, - "borders": { - "description": "The borders of the cell.", - "$ref": "Borders" - }, - "textRotation": { - "description": "The rotation applied to text in a cell", - "$ref": "TextRotation" - }, - "wrapStrategy": { - "description": "The wrap strategy for the value in the cell.", - "type": "string", - "enumDescriptions": [ - "The default value, do not use.", - "Lines that are longer than the cell width will be written in the next\ncell over, so long as that cell is empty. If the next cell over is\nnon-empty, this behaves the same as CLIP. The text will never wrap\nto the next line unless the user manually inserts a new line.\nExample:\n\n | First sentence. |\n | Manual newline that is very long. \u003c- Text continues into next cell\n | Next newline. |", - "This wrap strategy represents the old Google Sheets wrap strategy where\nwords that are longer than a line are clipped rather than broken. This\nstrategy is not supported on all platforms and is being phased out.\nExample:\n\n | Cell has a |\n | loooooooooo| \u003c- Word is clipped.\n | word. |", - "Lines that are longer than the cell width will be clipped.\nThe text will never wrap to the next line unless the user manually\ninserts a new line.\nExample:\n\n | First sentence. |\n | Manual newline t| \u003c- Text is clipped\n | Next newline. |", - "Words that are longer than a line are wrapped at the character level\nrather than clipped.\nExample:\n\n | Cell has a |\n | loooooooooo| \u003c- Word is broken.\n | ong word. |" - ], - "enum": [ - "WRAP_STRATEGY_UNSPECIFIED", - "OVERFLOW_CELL", - "LEGACY_WRAP", - "CLIP", - "WRAP" - ] - }, - "numberFormat": { - "description": "A format describing how number values should be represented to the user.", - "$ref": "NumberFormat" - } - }, - "id": "CellFormat" - }, - "ClearValuesResponse": { - "properties": { - "spreadsheetId": { - "description": "The spreadsheet the updates were applied to.", - "type": "string" - }, - "clearedRange": { - "description": "The range (in A1 notation) that was cleared.\n(If the request was for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual range\n that was cleared, bounded to the sheet's limits.)", - "type": "string" - } - }, - "id": "ClearValuesResponse", - "description": "The response when clearing a range of values in a spreadsheet.", - "type": "object" - }, - "DeleteConditionalFormatRuleRequest": { - "description": "Deletes a conditional format rule at the given index.\nAll subsequent rules' indexes are decremented.", - "type": "object", - "properties": { - "index": { - "format": "int32", - "description": "The zero-based index of the rule to be deleted.", - "type": "integer" - }, - "sheetId": { - "format": "int32", - "description": "The sheet the rule is being deleted from.", - "type": "integer" - } - }, - "id": "DeleteConditionalFormatRuleRequest" - }, - "DeleteNamedRangeRequest": { - "description": "Removes the named range with the given ID from the spreadsheet.", - "type": "object", - "properties": { - "namedRangeId": { - "description": "The ID of the named range to delete.", - "type": "string" - } - }, - "id": "DeleteNamedRangeRequest" - }, - "AddBandingResponse": { - "description": "The result of adding a banded range.", - "type": "object", - "properties": { - "bandedRange": { - "description": "The banded range that was added.", - "$ref": "BandedRange" - } - }, - "id": "AddBandingResponse" - }, - "ChartData": { - "description": "The data included in a domain or series.", - "type": "object", - "properties": { - "sourceRange": { - "description": "The source ranges of the data.", - "$ref": "ChartSourceRange" - } - }, - "id": "ChartData" - }, - "BatchGetValuesResponse": { - "properties": { - "valueRanges": { - "description": "The requested values. The order of the ValueRanges is the same as the\norder of the requested ranges.", - "items": { - "$ref": "ValueRange" - }, - "type": "array" - }, - "spreadsheetId": { - "description": "The ID of the spreadsheet the data was retrieved from.", - "type": "string" - } - }, - "id": "BatchGetValuesResponse", - "description": "The response when retrieving more than one range of values in a spreadsheet.", - "type": "object" - }, - "UpdateBandingRequest": { - "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated. At least one field must be specified.\nThe root `bandedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - }, - "bandedRange": { - "$ref": "BandedRange", - "description": "The banded range to update with the new properties." - } - }, - "id": "UpdateBandingRequest", - "description": "Updates properties of the supplied banded range.", - "type": "object" - }, - "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n import com.google.type.Color;\n\n // ...\n public static java.awt.Color fromProto(Color protocolor) {\n float alpha = protocolor.hasAlpha()\n ? protocolor.getAlpha().getValue()\n : 1.0;\n\n return new java.awt.Color(\n protocolor.getRed(),\n protocolor.getGreen(),\n protocolor.getBlue(),\n alpha);\n }\n\n public static Color toProto(java.awt.Color color) {\n float red = (float) color.getRed();\n float green = (float) color.getGreen();\n float blue = (float) color.getBlue();\n float denominator = 255.0;\n Color.Builder resultBuilder =\n Color\n .newBuilder()\n .setRed(red / denominator)\n .setGreen(green / denominator)\n .setBlue(blue / denominator);\n int alpha = color.getAlpha();\n if (alpha != 255) {\n result.setAlpha(\n FloatValue\n .newBuilder()\n .setValue(((float) alpha) / denominator)\n .build());\n }\n return resultBuilder.build();\n }\n // ...\n\nExample (iOS / Obj-C):\n\n // ...\n static UIColor* fromProto(Color* protocolor) {\n float red = [protocolor red];\n float green = [protocolor green];\n float blue = [protocolor blue];\n FloatValue* alpha_wrapper = [protocolor alpha];\n float alpha = 1.0;\n if (alpha_wrapper != nil) {\n alpha = [alpha_wrapper value];\n }\n return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n }\n\n static Color* toProto(UIColor* color) {\n CGFloat red, green, blue, alpha;\n if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {\n return nil;\n }\n Color* result = [Color alloc] init];\n [result setRed:red];\n [result setGreen:green];\n [result setBlue:blue];\n if (alpha \u003c= 0.9999) {\n [result setAlpha:floatWrapperWithValue(alpha)];\n }\n [result autorelease];\n return result;\n }\n // ...\n\n Example (JavaScript):\n\n // ...\n\n var protoToCssColor = function(rgb_color) {\n var redFrac = rgb_color.red || 0.0;\n var greenFrac = rgb_color.green || 0.0;\n var blueFrac = rgb_color.blue || 0.0;\n var red = Math.floor(redFrac * 255);\n var green = Math.floor(greenFrac * 255);\n var blue = Math.floor(blueFrac * 255);\n\n if (!('alpha' in rgb_color)) {\n return rgbToCssColor_(red, green, blue);\n }\n\n var alphaFrac = rgb_color.alpha.value || 0.0;\n var rgbParams = [red, green, blue].join(',');\n return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n };\n\n var rgbToCssColor_ = function(red, green, blue) {\n var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n var hexString = rgbNumber.toString(16);\n var missingZeros = 6 - hexString.length;\n var resultBuilder = ['#'];\n for (var i = 0; i \u003c missingZeros; i++) {\n resultBuilder.push('0');\n }\n resultBuilder.push(hexString);\n return resultBuilder.join('');\n };\n\n // ...", - "type": "object", - "properties": { - "red": { - "format": "float", - "description": "The amount of red in the color as a value in the interval [0, 1].", - "type": "number" - }, - "alpha": { - "format": "float", - "description": "The fraction of this color that should be applied to the pixel. That is,\nthe final pixel color is defined by the equation:\n\n pixel color = alpha * (this color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color. This\nuses a wrapper message rather than a simple float scalar so that it is\npossible to distinguish between a default value and the value being unset.\nIf omitted, this color object is to be rendered as a solid color\n(as if the alpha value had been explicitly given with a value of 1.0).", - "type": "number" - }, - "blue": { - "format": "float", - "description": "The amount of blue in the color as a value in the interval [0, 1].", - "type": "number" - }, - "green": { - "format": "float", - "description": "The amount of green in the color as a value in the interval [0, 1].", - "type": "number" - } - }, - "id": "Color" - }, - "PivotGroup": { - "description": "A single grouping (either row or column) in a pivot table.", - "type": "object", - "properties": { - "valueBucket": { - "description": "The bucket of the opposite pivot group to sort by.\nIf not specified, sorting is alphabetical by this group's values.", - "$ref": "PivotGroupSortValueBucket" - }, - "valueMetadata": { - "description": "Metadata about values in the grouping.", - "items": { - "$ref": "PivotGroupValueMetadata" - }, - "type": "array" - }, - "showTotals": { - "description": "True if the pivot table should include the totals for this grouping.", - "type": "boolean" - }, - "sourceColumnOffset": { - "format": "int32", - "description": "The column offset of the source range that this grouping is based on.\n\nFor example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`\nmeans this group refers to column `C`, whereas the offset `1` would refer\nto column `D`.", - "type": "integer" - }, - "sortOrder": { - "enumDescriptions": [ - "Default value, do not use this.", - "Sort ascending.", - "Sort descending." - ], - "enum": [ - "SORT_ORDER_UNSPECIFIED", - "ASCENDING", - "DESCENDING" - ], - "description": "The order the values in this group should be sorted.", - "type": "string" - } - }, - "id": "PivotGroup" - }, - "PivotTable": { - "description": "A pivot table.", - "type": "object", - "properties": { - "rows": { - "description": "Each row grouping in the pivot table.", - "items": { - "$ref": "PivotGroup" - }, - "type": "array" - }, - "valueLayout": { - "enum": [ - "HORIZONTAL", - "VERTICAL" - ], - "description": "Whether values should be listed horizontally (as columns)\nor vertically (as rows).", - "type": "string", - "enumDescriptions": [ - "Values are laid out horizontally (as columns).", - "Values are laid out vertically (as rows)." - ] - }, - "values": { - "description": "A list of values to include in the pivot table.", - "items": { - "$ref": "PivotValue" - }, - "type": "array" - }, - "source": { - "$ref": "GridRange", - "description": "The range the pivot table is reading data from." - }, - "columns": { - "description": "Each column grouping in the pivot table.", - "items": { - "$ref": "PivotGroup" - }, - "type": "array" - }, - "criteria": { - "description": "An optional mapping of filters per source column offset.\n\nThe filters will be applied before aggregating data into the pivot table.\nThe map's key is the column offset of the source range that you want to\nfilter, and the value is the criteria for that column.\n\nFor example, if the source was `C10:E15`, a key of `0` will have the filter\nfor column `C`, whereas the key `1` is for column `D`.", - "type": "object", - "additionalProperties": { - "$ref": "PivotFilterCriteria" - } - } - }, - "id": "PivotTable" - }, - "ChartSourceRange": { - "description": "Source ranges for a chart.", - "type": "object", - "properties": { - "sources": { - "description": "The ranges of data for a series or domain.\nExactly one dimension must have a length of 1,\nand all sources in the list must have the same dimension\nwith length 1.\nThe domain (if it exists) & all series must have the same number\nof source ranges. If using more than one source range, then the source\nrange at a given offset must be contiguous across the domain and series.\n\nFor example, these are valid configurations:\n\n domain sources: A1:A5\n series1 sources: B1:B5\n series2 sources: D6:D10\n\n domain sources: A1:A5, C10:C12\n series1 sources: B1:B5, D10:D12\n series2 sources: C1:C5, E10:E12", - "items": { - "$ref": "GridRange" - }, - "type": "array" - } - }, - "id": "ChartSourceRange" - }, - "SearchDeveloperMetadataResponse": { - "description": "A reply to a developer metadata search request.", - "type": "object", - "properties": { - "matchedDeveloperMetadata": { - "description": "The metadata matching the criteria of the search request.", - "items": { - "$ref": "MatchedDeveloperMetadata" - }, - "type": "array" - } - }, - "id": "SearchDeveloperMetadataResponse" - }, - "ValueRange": { - "description": "Data within a range of the spreadsheet.", - "type": "object", - "properties": { - "range": { - "description": "The range the values cover, in A1 notation.\nFor output, this range indicates the entire requested range,\neven though the values will exclude trailing rows and columns.\nWhen appending values, this field represents the range to search for a\ntable, after which values will be appended.", - "type": "string" - }, - "values": { - "description": "The data that was read or to be written. This is an array of arrays,\nthe outer array representing all the data and each inner array\nrepresenting a major dimension. Each item in the inner array\ncorresponds with one cell.\n\nFor output, empty trailing rows and columns will not be included.\n\nFor input, supported value types are: bool, string, and double.\nNull values will be skipped.\nTo set a cell to an empty value, set the string value to an empty string.", - "items": { - "items": { - "type": "any" - }, - "type": "array" - }, - "type": "array" - }, - "majorDimension": { - "description": "The major dimension of the values.\n\nFor output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.\n\nFor input, with `range=A1:B2,majorDimension=ROWS` then `[[1,2],[3,4]]`\nwill set `A1=1,B1=2,A2=3,B2=4`. With `range=A1:B2,majorDimension=COLUMNS`\nthen `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`.\n\nWhen writing, if this field is not set, it defaults to ROWS.", - "type": "string", - "enumDescriptions": [ - "The default value, do not use.", - "Operates on the rows of a sheet.", - "Operates on the columns of a sheet." - ], - "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ] - } - }, - "id": "ValueRange" - }, - "AppendCellsRequest": { - "description": "Adds new cells after the last row with data in a sheet,\ninserting new rows into the sheet if necessary.", - "type": "object", - "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields of CellData that should be updated.\nAt least one field must be specified.\nThe root is the CellData; 'row.values.' should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - }, - "rows": { - "description": "The data to append.", - "items": { - "$ref": "RowData" - }, - "type": "array" - }, - "sheetId": { - "format": "int32", - "description": "The sheet ID to append the data to.", - "type": "integer" - } - }, - "id": "AppendCellsRequest" - }, - "AddBandingRequest": { - "description": "Adds a new banded range to the spreadsheet.", - "type": "object", - "properties": { - "bandedRange": { - "description": "The banded range to add. The bandedRangeId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a range that already exists.)", - "$ref": "BandedRange" - } - }, - "id": "AddBandingRequest" - }, - "Response": { - "description": "A single response from an update.", - "type": "object", - "properties": { - "addProtectedRange": { - "description": "A reply from adding a protected range.", - "$ref": "AddProtectedRangeResponse" - }, - "duplicateSheet": { - "$ref": "DuplicateSheetResponse", - "description": "A reply from duplicating a sheet." - }, - "updateEmbeddedObjectPosition": { - "$ref": "UpdateEmbeddedObjectPositionResponse", - "description": "A reply from updating an embedded object's position." - }, - "deleteConditionalFormatRule": { - "$ref": "DeleteConditionalFormatRuleResponse", - "description": "A reply from deleting a conditional format rule." - }, - "duplicateFilterView": { - "description": "A reply from duplicating a filter view.", - "$ref": "DuplicateFilterViewResponse" - }, - "addChart": { - "$ref": "AddChartResponse", - "description": "A reply from adding a chart." - }, - "updateDeveloperMetadata": { - "description": "A reply from updating a developer metadata entry.", - "$ref": "UpdateDeveloperMetadataResponse" - }, - "findReplace": { - "$ref": "FindReplaceResponse", - "description": "A reply from doing a find/replace." - }, - "addSheet": { - "$ref": "AddSheetResponse", - "description": "A reply from adding a sheet." - }, - "createDeveloperMetadata": { - "description": "A reply from creating a developer metadata entry.", - "$ref": "CreateDeveloperMetadataResponse" - }, - "updateConditionalFormatRule": { - "$ref": "UpdateConditionalFormatRuleResponse", - "description": "A reply from updating a conditional format rule." - }, - "addNamedRange": { - "description": "A reply from adding a named range.", - "$ref": "AddNamedRangeResponse" - }, - "deleteDeveloperMetadata": { - "$ref": "DeleteDeveloperMetadataResponse", - "description": "A reply from deleting a developer metadata entry." - }, - "addFilterView": { - "$ref": "AddFilterViewResponse", - "description": "A reply from adding a filter view." - }, - "addBanding": { - "$ref": "AddBandingResponse", - "description": "A reply from adding a banded range." - } - }, - "id": "Response" - }, - "EmbeddedChart": { - "description": "A chart embedded in a sheet.", - "type": "object", - "properties": { - "spec": { - "description": "The specification of the chart.", - "$ref": "ChartSpec" - }, - "chartId": { - "format": "int32", - "description": "The ID of the chart.", - "type": "integer" - }, - "position": { - "$ref": "EmbeddedObjectPosition", - "description": "The position of the chart." - } - }, - "id": "EmbeddedChart" - }, - "TextFormatRun": { - "description": "A run of a text format. The format of this run continues until the start\nindex of the next run.\nWhen updating, all fields must be set.", - "type": "object", - "properties": { - "startIndex": { - "format": "int32", - "description": "The character index where this run starts.", - "type": "integer" - }, - "format": { - "description": "The format of this run. Absent values inherit the cell's format.", - "$ref": "TextFormat" - } - }, - "id": "TextFormatRun" - }, - "InsertRangeRequest": { - "description": "Inserts cells into a range, shifting the existing cells over or down.", - "type": "object", - "properties": { - "shiftDimension": { - "description": "The dimension which will be shifted when inserting cells.\nIf ROWS, existing cells will be shifted down.\nIf COLUMNS, existing cells will be shifted right.", - "type": "string", - "enumDescriptions": [ - "The default value, do not use.", - "Operates on the rows of a sheet.", - "Operates on the columns of a sheet." - ], - "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ] - }, - "range": { - "$ref": "GridRange", - "description": "The range to insert new cells into." - } - }, - "id": "InsertRangeRequest" - }, - "AddNamedRangeResponse": { - "description": "The result of adding a named range.", - "type": "object", - "properties": { - "namedRange": { - "$ref": "NamedRange", - "description": "The named range to add." - } - }, - "id": "AddNamedRangeResponse" - }, - "BatchUpdateValuesByDataFilterResponse": { - "description": "The response when updating a range of values in a spreadsheet.", - "type": "object", - "properties": { - "totalUpdatedCells": { - "format": "int32", - "description": "The total number of cells updated.", - "type": "integer" - }, - "totalUpdatedColumns": { - "format": "int32", - "description": "The total number of columns where at least one cell in the column was\nupdated.", - "type": "integer" - }, - "spreadsheetId": { - "description": "The spreadsheet the updates were applied to.", - "type": "string" - }, - "totalUpdatedRows": { - "format": "int32", - "description": "The total number of rows where at least one cell in the row was updated.", - "type": "integer" - }, - "responses": { - "description": "The response for each range updated.", - "items": { - "$ref": "UpdateValuesByDataFilterResponse" - }, - "type": "array" - }, - "totalUpdatedSheets": { - "format": "int32", - "description": "The total number of sheets where at least one cell in the sheet was\nupdated.", - "type": "integer" - } - }, - "id": "BatchUpdateValuesByDataFilterResponse" - }, - "RowData": { - "description": "Data about each cell in a row.", - "type": "object", - "properties": { - "values": { - "description": "The values in the row, one per column.", - "items": { - "$ref": "CellData" - }, - "type": "array" - } - }, - "id": "RowData" - }, - "Border": { - "description": "A border along a cell.", - "type": "object", - "properties": { - "width": { - "format": "int32", - "description": "The width of the border, in pixels.\nDeprecated; the width is determined by the \"style\" field.", - "type": "integer" - }, - "style": { - "enumDescriptions": [ - "The style is not specified. Do not use this.", - "The border is dotted.", - "The border is dashed.", - "The border is a thin solid line.", - "The border is a medium solid line.", - "The border is a thick solid line.", - "No border.\nUsed only when updating a border in order to erase it.", - "The border is two solid lines." - ], - "enum": [ - "STYLE_UNSPECIFIED", - "DOTTED", - "DASHED", - "SOLID", - "SOLID_MEDIUM", - "SOLID_THICK", - "NONE", - "DOUBLE" - ], - "description": "The style of the border.", - "type": "string" - }, - "color": { - "$ref": "Color", - "description": "The color of the border." - } - }, - "id": "Border" - }, - "GridData": { - "properties": { - "startRow": { - "format": "int32", - "description": "The first row this GridData refers to, zero-based.", - "type": "integer" - }, - "columnMetadata": { - "description": "Metadata about the requested columns in the grid, starting with the column\nin start_column.", - "items": { - "$ref": "DimensionProperties" - }, - "type": "array" - }, - "startColumn": { - "format": "int32", - "description": "The first column this GridData refers to, zero-based.", - "type": "integer" - }, - "rowMetadata": { - "description": "Metadata about the requested rows in the grid, starting with the row\nin start_row.", - "items": { - "$ref": "DimensionProperties" - }, - "type": "array" - }, - "rowData": { - "description": "The data in the grid, one entry per row,\nstarting with the row in startRow.\nThe values in RowData will correspond to columns starting\nat start_column.", - "items": { - "$ref": "RowData" - }, - "type": "array" - } - }, - "id": "GridData", - "description": "Data in the grid, as well as metadata about the dimensions.", - "type": "object" - }, - "UpdateNamedRangeRequest": { - "properties": { - "namedRange": { - "description": "The named range to update with the new properties.", - "$ref": "NamedRange" - }, - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated. At least one field must be specified.\nThe root `namedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - } - }, - "id": "UpdateNamedRangeRequest", - "description": "Updates properties of the named range with the specified\nnamedRangeId.", - "type": "object" - }, - "FindReplaceRequest": { - "description": "Finds and replaces data in cells over a range, sheet, or all sheets.", - "type": "object", - "properties": { - "replacement": { - "description": "The value to use as the replacement.", - "type": "string" - }, - "range": { - "description": "The range to find/replace over.", - "$ref": "GridRange" - }, - "sheetId": { - "format": "int32", - "description": "The sheet to find/replace over.", - "type": "integer" - }, - "allSheets": { - "description": "True to find/replace over all sheets.", - "type": "boolean" - }, - "matchCase": { - "description": "True if the search is case sensitive.", - "type": "boolean" - }, - "includeFormulas": { - "description": "True if the search should include cells with formulas.\nFalse to skip cells with formulas.", - "type": "boolean" - }, - "matchEntireCell": { - "description": "True if the find value should match the entire cell.", - "type": "boolean" - }, - "find": { - "description": "The value to search.", - "type": "string" - }, - "searchByRegex": { - "description": "True if the find value is a regex.\nThe regular expression and replacement should follow Java regex rules\nat https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.\nThe replacement string is allowed to refer to capturing groups.\nFor example, if one cell has the contents `\"Google Sheets\"` and another\nhas `\"Google Docs\"`, then searching for `\"o.* (.*)\"` with a replacement of\n`\"$1 Rocks\"` would change the contents of the cells to\n`\"GSheets Rocks\"` and `\"GDocs Rocks\"` respectively.", - "type": "boolean" - } - }, - "id": "FindReplaceRequest" - }, - "AddSheetRequest": { - "description": "Adds a new sheet.\nWhen a sheet is added at a given index,\nall subsequent sheets' indexes are incremented.\nTo add an object sheet, use AddChartRequest instead and specify\nEmbeddedObjectPosition.sheetId or\nEmbeddedObjectPosition.newSheet.", - "type": "object", - "properties": { - "properties": { - "$ref": "SheetProperties", - "description": "The properties the new sheet should have.\nAll properties are optional.\nThe sheetId field is optional; if one is not\nset, an id will be randomly generated. (It is an error to specify the ID\nof a sheet that already exists.)" - } - }, - "id": "AddSheetRequest" - }, - "UpdateCellsRequest": { - "description": "Updates all cells in a range with new data.", - "type": "object", - "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields of CellData that should be updated.\nAt least one field must be specified.\nThe root is the CellData; 'row.values.' should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - }, - "rows": { - "description": "The data to write.", - "items": { - "$ref": "RowData" - }, - "type": "array" - }, - "start": { - "description": "The coordinate to start writing data at.\nAny number of rows and columns (including a different number of\ncolumns per row) may be written.", - "$ref": "GridCoordinate" - }, - "range": { - "$ref": "GridRange", - "description": "The range to write data to.\n\nIf the data in rows does not cover the entire requested range,\nthe fields matching those set in fields will be cleared." - } - }, - "id": "UpdateCellsRequest" - }, - "RandomizeRangeRequest": { - "properties": { - "range": { - "$ref": "GridRange", - "description": "The range to randomize." - } - }, - "id": "RandomizeRangeRequest", - "description": "Randomizes the order of the rows in a range.", - "type": "object" - }, - "DeleteConditionalFormatRuleResponse": { - "properties": { - "rule": { - "description": "The rule that was deleted.", - "$ref": "ConditionalFormatRule" - } - }, - "id": "DeleteConditionalFormatRuleResponse", - "description": "The result of deleting a conditional format rule.", - "type": "object" - }, - "DeleteRangeRequest": { - "description": "Deletes a range of cells, shifting other cells into the deleted area.", - "type": "object", - "properties": { - "shiftDimension": { - "description": "The dimension from which deleted cells will be replaced with.\nIf ROWS, existing cells will be shifted upward to\nreplace the deleted cells. If COLUMNS, existing cells\nwill be shifted left to replace the deleted cells.", - "type": "string", - "enumDescriptions": [ - "The default value, do not use.", - "Operates on the rows of a sheet.", - "Operates on the columns of a sheet." - ], - "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ] - }, - "range": { - "description": "The range of cells to delete.", - "$ref": "GridRange" - } - }, - "id": "DeleteRangeRequest" - }, - "GridCoordinate": { - "description": "A coordinate in a sheet.\nAll indexes are zero-based.", - "type": "object", - "properties": { - "columnIndex": { - "format": "int32", - "description": "The column index of the coordinate.", - "type": "integer" - }, - "rowIndex": { - "format": "int32", - "description": "The row index of the coordinate.", - "type": "integer" - }, - "sheetId": { - "format": "int32", - "description": "The sheet this coordinate is on.", - "type": "integer" - } - }, - "id": "GridCoordinate" - }, - "UpdateSheetPropertiesRequest": { - "description": "Updates properties of the sheet with the specified\nsheetId.", - "type": "object", - "properties": { - "properties": { - "$ref": "SheetProperties", - "description": "The properties to update." - }, - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated. At least one field must be specified.\nThe root `properties` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - } - }, - "id": "UpdateSheetPropertiesRequest" - }, - "UnmergeCellsRequest": { - "description": "Unmerges cells in the given range.", - "type": "object", - "properties": { - "range": { - "$ref": "GridRange", - "description": "The range within which all cells should be unmerged.\nIf the range spans multiple merges, all will be unmerged.\nThe range must not partially span any merge." - } - }, - "id": "UnmergeCellsRequest" - }, - "GridProperties": { - "description": "Properties of a grid.", - "type": "object", - "properties": { - "rowCount": { - "format": "int32", - "description": "The number of rows in the grid.", - "type": "integer" - }, - "hideGridlines": { - "description": "True if the grid isn't showing gridlines in the UI.", - "type": "boolean" - }, - "frozenRowCount": { - "format": "int32", - "description": "The number of rows that are frozen in the grid.", - "type": "integer" - }, - "frozenColumnCount": { - "format": "int32", - "description": "The number of columns that are frozen in the grid.", - "type": "integer" - }, - "columnCount": { - "format": "int32", - "description": "The number of columns in the grid.", - "type": "integer" - } - }, - "id": "GridProperties" - }, - "UpdateEmbeddedObjectPositionResponse": { - "description": "The result of updating an embedded object's position.", - "type": "object", - "properties": { - "position": { - "description": "The new position of the embedded object.", - "$ref": "EmbeddedObjectPosition" - } - }, - "id": "UpdateEmbeddedObjectPositionResponse" - }, - "Sheet": { - "properties": { - "merges": { - "description": "The ranges that are merged together.", - "items": { - "$ref": "GridRange" - }, - "type": "array" - }, - "data": { - "description": "Data in the grid, if this is a grid sheet.\nThe number of GridData objects returned is dependent on the number of\nranges requested on this sheet. For example, if this is representing\n`Sheet1`, and the spreadsheet was requested with ranges\n`Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a\nstartRow/startColumn of `0`,\nwhile the second one will have `startRow 14` (zero-based row 15),\nand `startColumn 3` (zero-based column D).", - "items": { - "$ref": "GridData" - }, - "type": "array" - }, - "bandedRanges": { - "description": "The banded (i.e. alternating colors) ranges on this sheet.", - "items": { - "$ref": "BandedRange" - }, - "type": "array" - }, - "charts": { - "description": "The specifications of every chart on this sheet.", - "items": { - "$ref": "EmbeddedChart" - }, - "type": "array" - }, - "properties": { - "description": "The properties of the sheet.", - "$ref": "SheetProperties" - }, - "filterViews": { - "description": "The filter views in this sheet.", - "items": { - "$ref": "FilterView" - }, - "type": "array" - }, - "developerMetadata": { - "description": "The developer metadata associated with a sheet.", - "items": { - "$ref": "DeveloperMetadata" - }, - "type": "array" - }, - "protectedRanges": { - "description": "The protected ranges in this sheet.", - "items": { - "$ref": "ProtectedRange" - }, - "type": "array" - }, - "conditionalFormats": { - "description": "The conditional format rules in this sheet.", - "items": { - "$ref": "ConditionalFormatRule" - }, - "type": "array" - }, - "basicFilter": { - "$ref": "BasicFilter", - "description": "The filter on this sheet, if any." - } - }, - "id": "Sheet", - "description": "A sheet in a spreadsheet.", - "type": "object" - }, - "SortSpec": { - "description": "A sort order associated with a specific column or row.", - "type": "object", - "properties": { - "dimensionIndex": { - "format": "int32", - "description": "The dimension the sort should be applied to.", - "type": "integer" - }, - "sortOrder": { - "enumDescriptions": [ - "Default value, do not use this.", - "Sort ascending.", - "Sort descending." - ], - "enum": [ - "SORT_ORDER_UNSPECIFIED", - "ASCENDING", - "DESCENDING" - ], - "description": "The order data should be sorted.", - "type": "string" - } - }, - "id": "SortSpec" - }, - "BooleanRule": { - "description": "A rule that may or may not match, depending on the condition.", - "type": "object", - "properties": { - "format": { - "$ref": "CellFormat", - "description": "The format to apply.\nConditional formatting can only apply a subset of formatting:\nbold, italic,\nstrikethrough,\nforeground color &\nbackground color." - }, - "condition": { - "description": "The condition of the rule. If the condition evaluates to true,\nthe format will be applied.", - "$ref": "BooleanCondition" - } - }, - "id": "BooleanRule" - }, "PivotGroupValueMetadata": { + "id": "PivotGroupValueMetadata", + "description": "Metadata about a value in a pivot grouping.", + "type": "object", "properties": { + "value": { + "description": "The calculated value the metadata corresponds to.\n(Note that formulaValue is not valid,\n because the values will be calculated.)", + "$ref": "ExtendedValue" + }, "collapsed": { "description": "True if the data corresponding to the value is collapsed.", "type": "boolean" - }, - "value": { - "$ref": "ExtendedValue", - "description": "The calculated value the metadata corresponds to.\n(Note that formulaValue is not valid,\n because the values will be calculated.)" } - }, - "id": "PivotGroupValueMetadata", - "description": "Metadata about a value in a pivot grouping.", - "type": "object" + } }, "FilterCriteria": { + "description": "Criteria for showing/hiding rows in a filter or filter view.", + "type": "object", "properties": { - "condition": { - "description": "A condition that must be true for values to be shown.\n(This does not override hiddenValues -- if a value is listed there,\n it will still be hidden.)", - "$ref": "BooleanCondition" - }, "hiddenValues": { "description": "Values that should be hidden.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } + }, + "condition": { + "$ref": "BooleanCondition", + "description": "A condition that must be true for values to be shown.\n(This does not override hiddenValues -- if a value is listed there,\n it will still be hidden.)" } }, - "id": "FilterCriteria", - "description": "Criteria for showing/hiding rows in a filter or filter view.", - "type": "object" + "id": "FilterCriteria" }, "Editors": { + "description": "The editors of a protected range.", + "type": "object", "properties": { "users": { "description": "The email addresses of users with edit access to the protected range.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } + }, + "groups": { + "description": "The email addresses of groups with edit access to the protected range.", + "type": "array", + "items": { + "type": "string" + } }, "domainUsersCanEdit": { "description": "True if anyone in the document's domain has edit access to the protected\nrange. Domain protection is only supported on documents within a domain.", "type": "boolean" - }, - "groups": { - "description": "The email addresses of groups with edit access to the protected range.", - "items": { - "type": "string" - }, - "type": "array" } }, - "id": "Editors", - "description": "The editors of a protected range.", - "type": "object" + "id": "Editors" }, "UpdateConditionalFormatRuleRequest": { "description": "Updates a conditional format rule at the given index,\nor moves a conditional format rule to another index.", @@ -2023,29 +862,42 @@ "$ref": "ConditionalFormatRule" }, "index": { - "format": "int32", "description": "The zero-based index of the rule that should be replaced or moved.", + "format": "int32", "type": "integer" }, "sheetId": { - "format": "int32", "description": "The sheet of the rule to move. Required if new_index is set,\nunused otherwise.", + "format": "int32", "type": "integer" }, "newIndex": { - "format": "int32", "description": "The zero-based new index the rule should end up at.", + "format": "int32", "type": "integer" } }, "id": "UpdateConditionalFormatRuleRequest" }, - "DataValidationRule": { + "BasicChartDomain": { + "id": "BasicChartDomain", + "description": "The domain of a chart.\nFor example, if charting stock prices over time, this would be the date.", + "type": "object", "properties": { - "condition": { - "$ref": "BooleanCondition", - "description": "The condition that data in the cell must match." + "domain": { + "$ref": "ChartData", + "description": "The data of the domain. For example, if charting stock prices over time,\nthis is the data representing the dates." }, + "reversed": { + "description": "True to reverse the order of the domain values (horizontal axis).", + "type": "boolean" + } + } + }, + "DataValidationRule": { + "description": "A data validation rule.", + "type": "object", + "properties": { "showCustomUi": { "description": "True if the UI should be customized based on the kind of condition.\nIf true, \"List\" conditions will show a dropdown.", "type": "boolean" @@ -2057,44 +909,33 @@ "inputMessage": { "description": "A message to show the user when adding data to the cell.", "type": "string" - } - }, - "id": "DataValidationRule", - "description": "A data validation rule.", - "type": "object" - }, - "BasicChartDomain": { - "properties": { - "reversed": { - "description": "True to reverse the order of the domain values (horizontal axis).", - "type": "boolean" }, - "domain": { - "$ref": "ChartData", - "description": "The data of the domain. For example, if charting stock prices over time,\nthis is the data representing the dates." + "condition": { + "$ref": "BooleanCondition", + "description": "The condition that data in the cell must match." } }, - "id": "BasicChartDomain", - "description": "The domain of a chart.\nFor example, if charting stock prices over time, this would be the date.", - "type": "object" + "id": "DataValidationRule" }, "PasteDataRequest": { "description": "Inserts data into the spreadsheet starting at the specified coordinate.", "type": "object", "properties": { "coordinate": { - "$ref": "GridCoordinate", - "description": "The coordinate at which the data should start being inserted." - }, - "delimiter": { - "description": "The delimiter in the data.", - "type": "string" + "description": "The coordinate at which the data should start being inserted.", + "$ref": "GridCoordinate" }, "data": { "description": "The data to insert.", "type": "string" }, + "delimiter": { + "description": "The delimiter in the data.", + "type": "string" + }, "type": { + "description": "How the data should be pasted.", + "type": "string", "enumDescriptions": [ "Paste values, formulas, formats, and merges.", "Paste the values ONLY without formats, formulas, or merges.", @@ -2112,9 +953,7 @@ "PASTE_FORMULA", "PASTE_DATA_VALIDATION", "PASTE_CONDITIONAL_FORMATTING" - ], - "description": "How the data should be pasted.", - "type": "string" + ] }, "html": { "description": "True if the data is HTML.", @@ -2124,89 +963,89 @@ "id": "PasteDataRequest" }, "UpdateDeveloperMetadataResponse": { + "id": "UpdateDeveloperMetadataResponse", "description": "The response from updating developer metadata.", "type": "object", "properties": { "developerMetadata": { "description": "The updated developer metadata.", + "type": "array", "items": { "$ref": "DeveloperMetadata" - }, - "type": "array" + } } - }, - "id": "UpdateDeveloperMetadataResponse" + } }, "AppendDimensionRequest": { "description": "Appends rows or columns to the end of a sheet.", "type": "object", "properties": { - "sheetId": { + "length": { + "description": "The number of rows or columns to append.", "format": "int32", + "type": "integer" + }, + "sheetId": { "description": "The sheet to append rows or columns to.", + "format": "int32", "type": "integer" }, "dimension": { - "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" - ], - "description": "Whether rows or columns should be appended.", "type": "string", "enumDescriptions": [ "The default value, do not use.", "Operates on the rows of a sheet.", "Operates on the columns of a sheet." - ] - }, - "length": { - "format": "int32", - "description": "The number of rows or columns to append.", - "type": "integer" + ], + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "description": "Whether rows or columns should be appended." } }, "id": "AppendDimensionRequest" }, "AddNamedRangeRequest": { + "description": "Adds a named range to the spreadsheet.", + "type": "object", "properties": { "namedRange": { - "description": "The named range to add. The namedRangeId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a range that already exists.)", - "$ref": "NamedRange" + "$ref": "NamedRange", + "description": "The named range to add. The namedRangeId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a range that already exists.)" } }, - "id": "AddNamedRangeRequest", - "description": "Adds a named range to the spreadsheet.", - "type": "object" + "id": "AddNamedRangeRequest" }, "CreateDeveloperMetadataResponse": { + "description": "The response from creating developer metadata.", + "type": "object", "properties": { "developerMetadata": { "description": "The developer metadata that was created.", "$ref": "DeveloperMetadata" } }, - "id": "CreateDeveloperMetadataResponse", - "description": "The response from creating developer metadata.", - "type": "object" + "id": "CreateDeveloperMetadataResponse" }, "UpdateEmbeddedObjectPositionRequest": { "description": "Update an embedded object's position (such as a moving or resizing a\nchart or image).", "type": "object", "properties": { + "objectId": { + "description": "The ID of the object to moved.", + "format": "int32", + "type": "integer" + }, "newPosition": { - "$ref": "EmbeddedObjectPosition", - "description": "An explicit position to move the embedded object to.\nIf newPosition.sheetId is set,\na new sheet with that ID will be created.\nIf newPosition.newSheet is set to true,\na new sheet will be created with an ID that will be chosen for you." + "description": "An explicit position to move the embedded object to.\nIf newPosition.sheetId is set,\na new sheet with that ID will be created.\nIf newPosition.newSheet is set to true,\na new sheet will be created with an ID that will be chosen for you.", + "$ref": "EmbeddedObjectPosition" }, "fields": { - "format": "google-fieldmask", "description": "The fields of OverlayPosition\nthat should be updated when setting a new position. Used only if\nnewPosition.overlayPosition\nis set, in which case at least one field must\nbe specified. The root `newPosition.overlayPosition` is implied and\nshould not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", "type": "string" - }, - "objectId": { - "format": "int32", - "description": "The ID of the object to moved.", - "type": "integer" } }, "id": "UpdateEmbeddedObjectPositionRequest" @@ -2216,8 +1055,8 @@ "type": "object", "properties": { "angle": { - "format": "int32", "description": "The angle between the standard orientation and the desired orientation.\nMeasured in degrees. Valid values are between -90 and 90. Positive\nangles are angled upwards, negative are angled downwards.\n\nNote: For LTR text direction positive angles are in the counterclockwise\ndirection, whereas for RTL they are in the clockwise direction", + "format": "int32", "type": "integer" }, "vertical": { @@ -2228,15 +1067,12 @@ "id": "TextRotation" }, "PieChartSpec": { + "description": "A \u003ca href=\"/chart/interactive/docs/gallery/piechart\"\u003epie chart\u003c/a\u003e.", + "type": "object", "properties": { "series": { - "$ref": "ChartData", - "description": "The data that covers the one and only series of the pie chart." - }, - "pieHole": { - "format": "double", - "description": "The size of the hole in the pie chart.", - "type": "number" + "description": "The data that covers the one and only series of the pie chart.", + "$ref": "ChartData" }, "legendPosition": { "enumDescriptions": [ @@ -2260,41 +1096,44 @@ "description": "Where the legend of the pie chart should be drawn.", "type": "string" }, - "threeDimensional": { - "description": "True if the pie is three dimensional.", - "type": "boolean" + "pieHole": { + "description": "The size of the hole in the pie chart.", + "format": "double", + "type": "number" }, "domain": { "$ref": "ChartData", "description": "The data that covers the domain of the pie chart." + }, + "threeDimensional": { + "description": "True if the pie is three dimensional.", + "type": "boolean" } }, - "id": "PieChartSpec", - "description": "A \u003ca href=\"/chart/interactive/docs/gallery/piechart\"\u003epie chart\u003c/a\u003e.", - "type": "object" + "id": "PieChartSpec" }, "UpdateDeveloperMetadataRequest": { + "description": "A request to update properties of developer metadata.\nUpdates the properties of the developer metadata selected by the filters to\nthe values provided in the DeveloperMetadata resource. Callers must\nspecify the properties they wish to update in the fields parameter, as well\nas specify at least one DataFilter matching the metadata they wish to\nupdate.", + "type": "object", "properties": { "dataFilters": { "description": "The filters matching the developer metadata entries to update.", + "type": "array", "items": { "$ref": "DataFilter" - }, - "type": "array" + } }, "fields": { - "format": "google-fieldmask", + "type": "string", "description": "The fields that should be updated. At least one field must be specified.\nThe root `developerMetadata` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" + "format": "google-fieldmask" }, "developerMetadata": { "$ref": "DeveloperMetadata", "description": "The value that all metadata matched by the data filters will be updated to." } }, - "id": "UpdateDeveloperMetadataRequest", - "description": "A request to update properties of developer metadata.\nUpdates the properties of the developer metadata selected by the filters to\nthe values provided in the DeveloperMetadata resource. Callers must\nspecify the properties they wish to update in the fields parameter, as well\nas specify at least one DataFilter matching the metadata they wish to\nupdate.", - "type": "object" + "id": "UpdateDeveloperMetadataRequest" }, "UpdateFilterViewRequest": { "description": "Updates properties of the filter view.", @@ -2305,8 +1144,8 @@ "description": "The new properties of the filter view." }, "fields": { - "format": "google-fieldmask", "description": "The fields that should be updated. At least one field must be specified.\nThe root `filter` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", "type": "string" } }, @@ -2316,6 +1155,13 @@ "description": "A rule describing a conditional format.", "type": "object", "properties": { + "ranges": { + "description": "The ranges that will be formatted if the condition is true.\nAll the ranges must be on the same grid.", + "type": "array", + "items": { + "$ref": "GridRange" + } + }, "gradientRule": { "$ref": "GradientRule", "description": "The formatting will vary based on the gradients in the rule." @@ -2323,31 +1169,20 @@ "booleanRule": { "$ref": "BooleanRule", "description": "The formatting is either \"on\" or \"off\" according to the rule." - }, - "ranges": { - "description": "The ranges that will be formatted if the condition is true.\nAll the ranges must be on the same grid.", - "items": { - "$ref": "GridRange" - }, - "type": "array" } }, "id": "ConditionalFormatRule" }, "CopyPasteRequest": { + "id": "CopyPasteRequest", "description": "Copies data from the source to the destination.", "type": "object", "properties": { + "source": { + "description": "The source range to copy.", + "$ref": "GridRange" + }, "pasteType": { - "enumDescriptions": [ - "Paste values, formulas, formats, and merges.", - "Paste the values ONLY without formats, formulas, or merges.", - "Paste the format and data validation only.", - "Like PASTE_NORMAL but without borders.", - "Paste the formulas only.", - "Paste the data validation only.", - "Paste the conditional formatting rules only." - ], "enum": [ "PASTE_NORMAL", "PASTE_VALUES", @@ -2358,15 +1193,20 @@ "PASTE_CONDITIONAL_FORMATTING" ], "description": "What kind of data to paste.", - "type": "string" - }, - "source": { - "description": "The source range to copy.", - "$ref": "GridRange" + "type": "string", + "enumDescriptions": [ + "Paste values, formulas, formats, and merges.", + "Paste the values ONLY without formats, formulas, or merges.", + "Paste the format and data validation only.", + "Like PASTE_NORMAL but without borders.", + "Paste the formulas only.", + "Paste the data validation only.", + "Paste the conditional formatting rules only." + ] }, "destination": { - "$ref": "GridRange", - "description": "The location to paste to. If the range covers a span that's\na multiple of the source's height or width, then the\ndata will be repeated to fill in the destination range.\nIf the range is smaller than the source range, the entire\nsource data will still be copied (beyond the end of the destination range)." + "description": "The location to paste to. If the range covers a span that's\na multiple of the source's height or width, then the\ndata will be repeated to fill in the destination range.\nIf the range is smaller than the source range, the entire\nsource data will still be copied (beyond the end of the destination range).", + "$ref": "GridRange" }, "pasteOrientation": { "enum": [ @@ -2380,21 +1220,235 @@ "Paste transposed, where all rows become columns and vice versa." ] } - }, - "id": "CopyPasteRequest" + } + }, + "Request": { + "id": "Request", + "description": "A single kind of update to apply to a spreadsheet.", + "type": "object", + "properties": { + "deleteNamedRange": { + "$ref": "DeleteNamedRangeRequest", + "description": "Deletes a named range." + }, + "addProtectedRange": { + "description": "Adds a protected range.", + "$ref": "AddProtectedRangeRequest" + }, + "duplicateSheet": { + "$ref": "DuplicateSheetRequest", + "description": "Duplicates a sheet." + }, + "unmergeCells": { + "$ref": "UnmergeCellsRequest", + "description": "Unmerges merged cells." + }, + "deleteSheet": { + "$ref": "DeleteSheetRequest", + "description": "Deletes a sheet." + }, + "updateEmbeddedObjectPosition": { + "$ref": "UpdateEmbeddedObjectPositionRequest", + "description": "Updates an embedded object's (e.g. chart, image) position." + }, + "updateDeveloperMetadata": { + "$ref": "UpdateDeveloperMetadataRequest", + "description": "Updates an existing developer metadata entry" + }, + "updateDimensionProperties": { + "$ref": "UpdateDimensionPropertiesRequest", + "description": "Updates dimensions' properties." + }, + "pasteData": { + "$ref": "PasteDataRequest", + "description": "Pastes data (HTML or delimited) into a sheet." + }, + "setBasicFilter": { + "$ref": "SetBasicFilterRequest", + "description": "Sets the basic filter on a sheet." + }, + "addConditionalFormatRule": { + "$ref": "AddConditionalFormatRuleRequest", + "description": "Adds a new conditional format rule." + }, + "updateCells": { + "$ref": "UpdateCellsRequest", + "description": "Updates many cells at once." + }, + "addNamedRange": { + "description": "Adds a named range.", + "$ref": "AddNamedRangeRequest" + }, + "updateSpreadsheetProperties": { + "$ref": "UpdateSpreadsheetPropertiesRequest", + "description": "Updates the spreadsheet's properties." + }, + "deleteEmbeddedObject": { + "$ref": "DeleteEmbeddedObjectRequest", + "description": "Deletes an embedded object (e.g, chart, image) in a sheet." + }, + "updateFilterView": { + "$ref": "UpdateFilterViewRequest", + "description": "Updates the properties of a filter view." + }, + "addBanding": { + "$ref": "AddBandingRequest", + "description": "Adds a new banded range" + }, + "autoResizeDimensions": { + "$ref": "AutoResizeDimensionsRequest", + "description": "Automatically resizes one or more dimensions based on the contents\nof the cells in that dimension." + }, + "appendCells": { + "$ref": "AppendCellsRequest", + "description": "Appends cells after the last row with data in a sheet." + }, + "cutPaste": { + "description": "Cuts data from one area and pastes it to another.", + "$ref": "CutPasteRequest" + }, + "mergeCells": { + "$ref": "MergeCellsRequest", + "description": "Merges cells together." + }, + "updateNamedRange": { + "$ref": "UpdateNamedRangeRequest", + "description": "Updates a named range." + }, + "updateSheetProperties": { + "$ref": "UpdateSheetPropertiesRequest", + "description": "Updates a sheet's properties." + }, + "autoFill": { + "$ref": "AutoFillRequest", + "description": "Automatically fills in more data based on existing data." + }, + "deleteDimension": { + "$ref": "DeleteDimensionRequest", + "description": "Deletes rows or columns in a sheet." + }, + "sortRange": { + "$ref": "SortRangeRequest", + "description": "Sorts data in a range." + }, + "deleteProtectedRange": { + "description": "Deletes a protected range.", + "$ref": "DeleteProtectedRangeRequest" + }, + "duplicateFilterView": { + "description": "Duplicates a filter view.", + "$ref": "DuplicateFilterViewRequest" + }, + "addChart": { + "$ref": "AddChartRequest", + "description": "Adds a chart." + }, + "findReplace": { + "description": "Finds and replaces occurrences of some text with other text.", + "$ref": "FindReplaceRequest" + }, + "updateChartSpec": { + "description": "Updates a chart's specifications.", + "$ref": "UpdateChartSpecRequest" + }, + "textToColumns": { + "$ref": "TextToColumnsRequest", + "description": "Converts a column of text into many columns of text." + }, + "updateProtectedRange": { + "$ref": "UpdateProtectedRangeRequest", + "description": "Updates a protected range." + }, + "addSheet": { + "$ref": "AddSheetRequest", + "description": "Adds a sheet." + }, + "copyPaste": { + "description": "Copies data from one area and pastes it to another.", + "$ref": "CopyPasteRequest" + }, + "deleteFilterView": { + "description": "Deletes a filter view from a sheet.", + "$ref": "DeleteFilterViewRequest" + }, + "insertDimension": { + "description": "Inserts new rows or columns in a sheet.", + "$ref": "InsertDimensionRequest" + }, + "deleteRange": { + "$ref": "DeleteRangeRequest", + "description": "Deletes a range of cells from a sheet, shifting the remaining cells." + }, + "deleteBanding": { + "$ref": "DeleteBandingRequest", + "description": "Removes a banded range" + }, + "addFilterView": { + "$ref": "AddFilterViewRequest", + "description": "Adds a filter view." + }, + "setDataValidation": { + "description": "Sets data validation for one or more cells.", + "$ref": "SetDataValidationRequest" + }, + "updateBorders": { + "$ref": "UpdateBordersRequest", + "description": "Updates the borders in a range of cells." + }, + "deleteConditionalFormatRule": { + "$ref": "DeleteConditionalFormatRuleRequest", + "description": "Deletes an existing conditional format rule." + }, + "clearBasicFilter": { + "$ref": "ClearBasicFilterRequest", + "description": "Clears the basic filter on a sheet." + }, + "repeatCell": { + "$ref": "RepeatCellRequest", + "description": "Repeats a single cell across a range." + }, + "appendDimension": { + "$ref": "AppendDimensionRequest", + "description": "Appends dimensions to the end of a sheet." + }, + "createDeveloperMetadata": { + "description": "Creates new developer metadata", + "$ref": "CreateDeveloperMetadataRequest" + }, + "updateConditionalFormatRule": { + "description": "Updates an existing conditional format rule.", + "$ref": "UpdateConditionalFormatRuleRequest" + }, + "insertRange": { + "$ref": "InsertRangeRequest", + "description": "Inserts new cells in a sheet, shifting the existing cells." + }, + "deleteDeveloperMetadata": { + "description": "Deletes developer metadata", + "$ref": "DeleteDeveloperMetadataRequest" + }, + "moveDimension": { + "$ref": "MoveDimensionRequest", + "description": "Moves rows or columns to another location in a sheet." + }, + "randomizeRange": { + "description": "Randomizes the order of the rows in a range.", + "$ref": "RandomizeRangeRequest" + }, + "updateBanding": { + "description": "Updates a banded range", + "$ref": "UpdateBandingRequest" + } + } }, "BooleanCondition": { + "id": "BooleanCondition", "description": "A condition that can evaluate to true or false.\nBooleanConditions are used by conditional formatting,\ndata validation, and the criteria in filters.", "type": "object", "properties": { - "values": { - "description": "The values of the condition. The number of supported values depends\non the condition type. Some support zero values,\nothers one or two values,\nand ConditionType.ONE_OF_LIST supports an arbitrary number of values.", - "items": { - "$ref": "ConditionValue" - }, - "type": "array" - }, "type": { + "description": "The type of condition.", + "type": "string", "enumDescriptions": [ "The default value, do not use.", "The cell's value must be greater than the condition's value.\nSupported by data validation, conditional formatting and filters.\nRequires a single ConditionValue.", @@ -2456,278 +1510,65 @@ "BLANK", "NOT_BLANK", "CUSTOM_FORMULA" - ], - "description": "The type of condition.", - "type": "string" + ] + }, + "values": { + "type": "array", + "items": { + "$ref": "ConditionValue" + }, + "description": "The values of the condition. The number of supported values depends\non the condition type. Some support zero values,\nothers one or two values,\nand ConditionType.ONE_OF_LIST supports an arbitrary number of values." } - }, - "id": "BooleanCondition" - }, - "Request": { - "description": "A single kind of update to apply to a spreadsheet.", - "type": "object", - "properties": { - "updateBanding": { - "$ref": "UpdateBandingRequest", - "description": "Updates a banded range" - }, - "addProtectedRange": { - "description": "Adds a protected range.", - "$ref": "AddProtectedRangeRequest" - }, - "deleteNamedRange": { - "$ref": "DeleteNamedRangeRequest", - "description": "Deletes a named range." - }, - "duplicateSheet": { - "$ref": "DuplicateSheetRequest", - "description": "Duplicates a sheet." - }, - "deleteSheet": { - "description": "Deletes a sheet.", - "$ref": "DeleteSheetRequest" - }, - "unmergeCells": { - "$ref": "UnmergeCellsRequest", - "description": "Unmerges merged cells." - }, - "updateEmbeddedObjectPosition": { - "$ref": "UpdateEmbeddedObjectPositionRequest", - "description": "Updates an embedded object's (e.g. chart, image) position." - }, - "updateDimensionProperties": { - "description": "Updates dimensions' properties.", - "$ref": "UpdateDimensionPropertiesRequest" - }, - "updateDeveloperMetadata": { - "$ref": "UpdateDeveloperMetadataRequest", - "description": "Updates an existing developer metadata entry" - }, - "pasteData": { - "$ref": "PasteDataRequest", - "description": "Pastes data (HTML or delimited) into a sheet." - }, - "setBasicFilter": { - "$ref": "SetBasicFilterRequest", - "description": "Sets the basic filter on a sheet." - }, - "addConditionalFormatRule": { - "$ref": "AddConditionalFormatRuleRequest", - "description": "Adds a new conditional format rule." - }, - "addNamedRange": { - "$ref": "AddNamedRangeRequest", - "description": "Adds a named range." - }, - "updateCells": { - "$ref": "UpdateCellsRequest", - "description": "Updates many cells at once." - }, - "updateSpreadsheetProperties": { - "$ref": "UpdateSpreadsheetPropertiesRequest", - "description": "Updates the spreadsheet's properties." - }, - "deleteEmbeddedObject": { - "$ref": "DeleteEmbeddedObjectRequest", - "description": "Deletes an embedded object (e.g, chart, image) in a sheet." - }, - "updateFilterView": { - "$ref": "UpdateFilterViewRequest", - "description": "Updates the properties of a filter view." - }, - "addBanding": { - "$ref": "AddBandingRequest", - "description": "Adds a new banded range" - }, - "autoResizeDimensions": { - "$ref": "AutoResizeDimensionsRequest", - "description": "Automatically resizes one or more dimensions based on the contents\nof the cells in that dimension." - }, - "appendCells": { - "$ref": "AppendCellsRequest", - "description": "Appends cells after the last row with data in a sheet." - }, - "cutPaste": { - "description": "Cuts data from one area and pastes it to another.", - "$ref": "CutPasteRequest" - }, - "mergeCells": { - "description": "Merges cells together.", - "$ref": "MergeCellsRequest" - }, - "updateNamedRange": { - "description": "Updates a named range.", - "$ref": "UpdateNamedRangeRequest" - }, - "updateSheetProperties": { - "description": "Updates a sheet's properties.", - "$ref": "UpdateSheetPropertiesRequest" - }, - "deleteDimension": { - "description": "Deletes rows or columns in a sheet.", - "$ref": "DeleteDimensionRequest" - }, - "autoFill": { - "description": "Automatically fills in more data based on existing data.", - "$ref": "AutoFillRequest" - }, - "sortRange": { - "$ref": "SortRangeRequest", - "description": "Sorts data in a range." - }, - "deleteProtectedRange": { - "description": "Deletes a protected range.", - "$ref": "DeleteProtectedRangeRequest" - }, - "duplicateFilterView": { - "$ref": "DuplicateFilterViewRequest", - "description": "Duplicates a filter view." - }, - "addChart": { - "description": "Adds a chart.", - "$ref": "AddChartRequest" - }, - "findReplace": { - "$ref": "FindReplaceRequest", - "description": "Finds and replaces occurrences of some text with other text." - }, - "updateChartSpec": { - "$ref": "UpdateChartSpecRequest", - "description": "Updates a chart's specifications." - }, - "textToColumns": { - "description": "Converts a column of text into many columns of text.", - "$ref": "TextToColumnsRequest" - }, - "addSheet": { - "description": "Adds a sheet.", - "$ref": "AddSheetRequest" - }, - "updateProtectedRange": { - "description": "Updates a protected range.", - "$ref": "UpdateProtectedRangeRequest" - }, - "deleteFilterView": { - "description": "Deletes a filter view from a sheet.", - "$ref": "DeleteFilterViewRequest" - }, - "copyPaste": { - "$ref": "CopyPasteRequest", - "description": "Copies data from one area and pastes it to another." - }, - "insertDimension": { - "$ref": "InsertDimensionRequest", - "description": "Inserts new rows or columns in a sheet." - }, - "deleteRange": { - "$ref": "DeleteRangeRequest", - "description": "Deletes a range of cells from a sheet, shifting the remaining cells." - }, - "deleteBanding": { - "description": "Removes a banded range", - "$ref": "DeleteBandingRequest" - }, - "addFilterView": { - "description": "Adds a filter view.", - "$ref": "AddFilterViewRequest" - }, - "setDataValidation": { - "$ref": "SetDataValidationRequest", - "description": "Sets data validation for one or more cells." - }, - "updateBorders": { - "$ref": "UpdateBordersRequest", - "description": "Updates the borders in a range of cells." - }, - "deleteConditionalFormatRule": { - "$ref": "DeleteConditionalFormatRuleRequest", - "description": "Deletes an existing conditional format rule." - }, - "clearBasicFilter": { - "description": "Clears the basic filter on a sheet.", - "$ref": "ClearBasicFilterRequest" - }, - "repeatCell": { - "description": "Repeats a single cell across a range.", - "$ref": "RepeatCellRequest" - }, - "appendDimension": { - "description": "Appends dimensions to the end of a sheet.", - "$ref": "AppendDimensionRequest" - }, - "createDeveloperMetadata": { - "$ref": "CreateDeveloperMetadataRequest", - "description": "Creates new developer metadata" - }, - "updateConditionalFormatRule": { - "$ref": "UpdateConditionalFormatRuleRequest", - "description": "Updates an existing conditional format rule." - }, - "insertRange": { - "description": "Inserts new cells in a sheet, shifting the existing cells.", - "$ref": "InsertRangeRequest" - }, - "moveDimension": { - "$ref": "MoveDimensionRequest", - "description": "Moves rows or columns to another location in a sheet." - }, - "deleteDeveloperMetadata": { - "description": "Deletes developer metadata", - "$ref": "DeleteDeveloperMetadataRequest" - }, - "randomizeRange": { - "description": "Randomizes the order of the rows in a range.", - "$ref": "RandomizeRangeRequest" - } - }, - "id": "Request" + } }, "GridRange": { - "description": "A range on a sheet.\nAll indexes are zero-based.\nIndexes are half open, e.g the start index is inclusive\nand the end index is exclusive -- [start_index, end_index).\nMissing indexes indicate the range is unbounded on that side.\n\nFor example, if `\"Sheet1\"` is sheet ID 0, then:\n\n `Sheet1!A1:A1 == sheet_id: 0,\n start_row_index: 0, end_row_index: 1,\n start_column_index: 0, end_column_index: 1`\n\n `Sheet1!A3:B4 == sheet_id: 0,\n start_row_index: 2, end_row_index: 4,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1!A:B == sheet_id: 0,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1!A5:B == sheet_id: 0,\n start_row_index: 4,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1 == sheet_id:0`\n\nThe start index must always be less than or equal to the end index.\nIf the start index equals the end index, then the range is empty.\nEmpty ranges are typically not meaningful and are usually rendered in the\nUI as `#REF!`.", "type": "object", "properties": { "startColumnIndex": { - "format": "int32", "description": "The start column (inclusive) of the range, or not set if unbounded.", + "format": "int32", "type": "integer" }, "sheetId": { - "format": "int32", "description": "The sheet this range is on.", - "type": "integer" - }, - "endColumnIndex": { "format": "int32", - "description": "The end column (exclusive) of the range, or not set if unbounded.", "type": "integer" }, "endRowIndex": { - "format": "int32", "description": "The end row (exclusive) of the range, or not set if unbounded.", + "format": "int32", + "type": "integer" + }, + "endColumnIndex": { + "description": "The end column (exclusive) of the range, or not set if unbounded.", + "format": "int32", "type": "integer" }, "startRowIndex": { - "format": "int32", + "type": "integer", "description": "The start row (inclusive) of the range, or not set if unbounded.", - "type": "integer" + "format": "int32" } }, - "id": "GridRange" + "id": "GridRange", + "description": "A range on a sheet.\nAll indexes are zero-based.\nIndexes are half open, e.g the start index is inclusive\nand the end index is exclusive -- [start_index, end_index).\nMissing indexes indicate the range is unbounded on that side.\n\nFor example, if `\"Sheet1\"` is sheet ID 0, then:\n\n `Sheet1!A1:A1 == sheet_id: 0,\n start_row_index: 0, end_row_index: 1,\n start_column_index: 0, end_column_index: 1`\n\n `Sheet1!A3:B4 == sheet_id: 0,\n start_row_index: 2, end_row_index: 4,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1!A:B == sheet_id: 0,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1!A5:B == sheet_id: 0,\n start_row_index: 4,\n start_column_index: 0, end_column_index: 2`\n\n `Sheet1 == sheet_id:0`\n\nThe start index must always be less than or equal to the end index.\nIf the start index equals the end index, then the range is empty.\nEmpty ranges are typically not meaningful and are usually rendered in the\nUI as `#REF!`." }, "BasicChartSpec": { "description": "The specification for a basic chart. See BasicChartType for the list\nof charts this supports.", "type": "object", "properties": { - "lineSmoothing": { - "description": "Gets whether all lines should be rendered smooth or straight by default.\nApplies to Line charts.", - "type": "boolean" - }, "headerCount": { - "format": "int32", + "type": "integer", "description": "The number of rows or columns in the data that are \"headers\".\nIf not set, Google Sheets will guess how many rows are headers based\non the data.\n\n(Note that BasicChartAxis.title may override the axis title\n inferred from the header values.)", - "type": "integer" + "format": "int32" }, "stackedType": { + "enum": [ + "BASIC_CHART_STACKED_TYPE_UNSPECIFIED", + "NOT_STACKED", + "STACKED", + "PERCENT_STACKED" + ], "description": "The stacked type for charts that support vertical stacking.\nApplies to Area, Bar, Column, and Stepped Area charts.", "type": "string", "enumDescriptions": [ @@ -2735,28 +1576,24 @@ "Series are not stacked.", "Series values are stacked, each value is rendered vertically beginning\nfrom the top of the value below it.", "Vertical stacks are stretched to reach the top of the chart, with\nvalues laid out as percentages of each other." - ], - "enum": [ - "BASIC_CHART_STACKED_TYPE_UNSPECIFIED", - "NOT_STACKED", - "STACKED", - "PERCENT_STACKED" ] }, "axis": { "description": "The axis on the chart.", + "type": "array", "items": { "$ref": "BasicChartAxis" - }, - "type": "array" + } }, "threeDimensional": { "description": "True to make the chart 3D.\nApplies to Bar and Column charts.", "type": "boolean" }, + "interpolateNulls": { + "description": "If some values in a series are missing, gaps may appear in the chart (e.g,\nsegments of lines in a line chart will be missing). To eliminate these\ngaps set this to true.\nApplies to Line, Area, and Combo charts.", + "type": "boolean" + }, "chartType": { - "description": "The type of the chart.", - "type": "string", "enumDescriptions": [ "Default value, do not use.", "A \u003ca href=\"/chart/interactive/docs/gallery/barchart\"\u003ebar chart\u003c/a\u003e.", @@ -2776,28 +1613,18 @@ "SCATTER", "COMBO", "STEPPED_AREA" - ] - }, - "interpolateNulls": { - "description": "If some values in a series are missing, gaps may appear in the chart (e.g,\nsegments of lines in a line chart will be missing). To eliminate these\ngaps set this to true.\nApplies to Line, Area, and Combo charts.", - "type": "boolean" + ], + "description": "The type of the chart.", + "type": "string" }, "series": { "description": "The data this chart is visualizing.", + "type": "array", "items": { "$ref": "BasicChartSeries" - }, - "type": "array" + } }, "legendPosition": { - "enumDescriptions": [ - "Default value, do not use.", - "The legend is rendered on the bottom of the chart.", - "The legend is rendered on the left of the chart.", - "The legend is rendered on the right of the chart.", - "The legend is rendered on the top of the chart.", - "No legend is rendered." - ], "enum": [ "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED", "BOTTOM_LEGEND", @@ -2807,45 +1634,76 @@ "NO_LEGEND" ], "description": "The position of the chart legend.", + "type": "string", + "enumDescriptions": [ + "Default value, do not use.", + "The legend is rendered on the bottom of the chart.", + "The legend is rendered on the left of the chart.", + "The legend is rendered on the right of the chart.", + "The legend is rendered on the top of the chart.", + "No legend is rendered." + ] + }, + "compareMode": { + "enumDescriptions": [ + "Default value, do not use.", + "Only the focused data element is highlighted and shown in the tooltip.", + "All data elements with the same category (e.g., domain value) are\nhighlighted and shown in the tooltip." + ], + "enum": [ + "BASIC_CHART_COMPARE_MODE_UNSPECIFIED", + "DATUM", + "CATEGORY" + ], + "description": "The behavior of tooltips and data highlighting when hovering on data and\nchart area.", "type": "string" }, "domains": { "description": "The domain of data this is charting.\nOnly a single domain is supported.", + "type": "array", "items": { "$ref": "BasicChartDomain" - }, - "type": "array" + } + }, + "lineSmoothing": { + "description": "Gets whether all lines should be rendered smooth or straight by default.\nApplies to Line charts.", + "type": "boolean" } }, "id": "BasicChartSpec" }, - "SetDataValidationRequest": { - "description": "Sets a data validation rule to every cell in the range.\nTo clear validation in a range, call this with no rule specified.", + "BubbleChartSpec": { + "description": "A \u003ca href=\"/chart/interactive/docs/gallery/bubblechart\"\u003ebubble chart\u003c/a\u003e.", "type": "object", "properties": { - "rule": { - "description": "The data validation rule to set on each cell in the range,\nor empty to clear the data validation in the range.", - "$ref": "DataValidationRule" + "bubbleLabels": { + "description": "The data containing the bubble labels. These do not need to be unique.", + "$ref": "ChartData" }, - "range": { - "description": "The range the data validation rule should apply to.", - "$ref": "GridRange" - } - }, - "id": "SetDataValidationRequest" - }, - "BubbleChartSpec": { - "properties": { - "bubbleMaxRadiusSize": { + "bubbleMinRadiusSize": { + "description": "The minimum radius size of the bubbles, in pixels.\nIf specific, the field must be a positive value.", "format": "int32", + "type": "integer" + }, + "bubbleMaxRadiusSize": { "description": "The max radius size of the bubbles, in pixels.\nIf specified, the field must be a positive value.", + "format": "int32", "type": "integer" }, "series": { - "description": "The data contianing the bubble y-values. These values locate the bubbles\nin the chart vertically.", - "$ref": "ChartData" + "$ref": "ChartData", + "description": "The data contianing the bubble y-values. These values locate the bubbles\nin the chart vertically." }, "legendPosition": { + "enumDescriptions": [ + "Default value, do not use.", + "The legend is rendered on the bottom of the chart.", + "The legend is rendered on the left of the chart.", + "The legend is rendered on the right of the chart.", + "The legend is rendered on the top of the chart.", + "No legend is rendered.", + "The legend is rendered inside the chart area." + ], "enum": [ "BUBBLE_CHART_LEGEND_POSITION_UNSPECIFIED", "BOTTOM_LEGEND", @@ -2856,208 +1714,243 @@ "INSIDE_LEGEND" ], "description": "Where the legend of the chart should be drawn.", - "type": "string", - "enumDescriptions": [ - "Default value, do not use.", - "The legend is rendered on the bottom of the chart.", - "The legend is rendered on the left of the chart.", - "The legend is rendered on the right of the chart.", - "The legend is rendered on the top of the chart.", - "No legend is rendered.", - "The legend is rendered inside the chart area." - ] - }, - "bubbleOpacity": { - "format": "float", - "description": "The opacity of the bubbles between 0 and 1.0.\n0 is fully transparent and 1 is fully opaque.", - "type": "number" + "type": "string" }, "domain": { - "description": "The data containing the bubble x-values. These values locate the bubbles\nin the chart horizontally.", - "$ref": "ChartData" + "$ref": "ChartData", + "description": "The data containing the bubble x-values. These values locate the bubbles\nin the chart horizontally." }, "bubbleSizes": { - "description": "The data contianing the bubble sizes. Bubble sizes are used to draw\nthe bubbles at different sizes relative to each other.\nIf specified, group_ids must also be specified. This field is\noptional.", - "$ref": "ChartData" + "$ref": "ChartData", + "description": "The data contianing the bubble sizes. Bubble sizes are used to draw\nthe bubbles at different sizes relative to each other.\nIf specified, group_ids must also be specified. This field is\noptional." + }, + "bubbleOpacity": { + "description": "The opacity of the bubbles between 0 and 1.0.\n0 is fully transparent and 1 is fully opaque.", + "format": "float", + "type": "number" }, "bubbleTextStyle": { "$ref": "TextFormat", "description": "The format of the text inside the bubbles.\nUnderline and Strikethrough are not supported." }, "bubbleBorderColor": { - "$ref": "Color", - "description": "The bubble border color." + "description": "The bubble border color.", + "$ref": "Color" }, "groupIds": { - "$ref": "ChartData", - "description": "The data containing the bubble group IDs. All bubbles with the same group\nID will be drawn in the same color. If bubble_sizes is specified then\nthis field must also be specified but may contain blank values.\nThis field is optional." - }, - "bubbleLabels": { - "$ref": "ChartData", - "description": "The data containing the bubble labels. These do not need to be unique." - }, - "bubbleMinRadiusSize": { - "format": "int32", - "description": "The minimum radius size of the bubbles, in pixels.\nIf specific, the field must be a positive value.", - "type": "integer" + "description": "The data containing the bubble group IDs. All bubbles with the same group\nID will be drawn in the same color. If bubble_sizes is specified then\nthis field must also be specified but may contain blank values.\nThis field is optional.", + "$ref": "ChartData" } }, - "id": "BubbleChartSpec", - "description": "A \u003ca href=\"/chart/interactive/docs/gallery/bubblechart\"\u003ebubble chart\u003c/a\u003e.", - "type": "object" + "id": "BubbleChartSpec" + }, + "SetDataValidationRequest": { + "description": "Sets a data validation rule to every cell in the range.\nTo clear validation in a range, call this with no rule specified.", + "type": "object", + "properties": { + "rule": { + "$ref": "DataValidationRule", + "description": "The data validation rule to set on each cell in the range,\nor empty to clear the data validation in the range." + }, + "range": { + "description": "The range the data validation rule should apply to.", + "$ref": "GridRange" + } + }, + "id": "SetDataValidationRequest" }, "CellData": { + "id": "CellData", + "description": "Data about a specific cell.", + "type": "object", "properties": { - "dataValidation": { - "$ref": "DataValidationRule", - "description": "A data validation rule on the cell, if any.\n\nWhen writing, the new data validation rule will overwrite any prior rule." - }, - "userEnteredValue": { - "$ref": "ExtendedValue", - "description": "The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`\nNote: Dates, Times and DateTimes are represented as doubles in\nserial number format." - }, - "effectiveValue": { - "description": "The effective value of the cell. For cells with formulas, this will be\nthe calculated value. For cells with literals, this will be\nthe same as the user_entered_value.\nThis field is read-only.", - "$ref": "ExtendedValue" + "formattedValue": { + "type": "string", + "description": "The formatted value of the cell.\nThis is the value as it's shown to the user.\nThis field is read-only." }, "textFormatRuns": { "description": "Runs of rich text applied to subsections of the cell. Runs are only valid\non user entered strings, not formulas, bools, or numbers.\nRuns start at specific indexes in the text and continue until the next\nrun. Properties of a run will continue unless explicitly changed\nin a subsequent run (and properties of the first run will continue\nthe properties of the cell unless explicitly changed).\n\nWhen writing, the new runs will overwrite any prior runs. When writing a\nnew user_entered_value, previous runs will be erased.", + "type": "array", "items": { "$ref": "TextFormatRun" - }, - "type": "array" - }, - "formattedValue": { - "description": "The formatted value of the cell.\nThis is the value as it's shown to the user.\nThis field is read-only.", - "type": "string" + } }, "hyperlink": { - "description": "A hyperlink this cell points to, if any.\nThis field is read-only. (To set it, use a `=HYPERLINK` formula\nin the userEnteredValue.formulaValue\nfield.)", - "type": "string" + "type": "string", + "description": "A hyperlink this cell points to, if any.\nThis field is read-only. (To set it, use a `=HYPERLINK` formula\nin the userEnteredValue.formulaValue\nfield.)" }, "pivotTable": { "$ref": "PivotTable", "description": "A pivot table anchored at this cell. The size of pivot table itself\nis computed dynamically based on its data, grouping, filters, values,\netc. Only the top-left cell of the pivot table contains the pivot table\ndefinition. The other cells will contain the calculated values of the\nresults of the pivot in their effective_value fields." }, "userEnteredFormat": { - "description": "The format the user entered for the cell.\n\nWhen writing, the new format will be merged with the existing format.", - "$ref": "CellFormat" + "$ref": "CellFormat", + "description": "The format the user entered for the cell.\n\nWhen writing, the new format will be merged with the existing format." }, "note": { "description": "Any note on the cell.", "type": "string" }, "effectiveFormat": { - "description": "The effective format being used by the cell.\nThis includes the results of applying any conditional formatting and,\nif the cell contains a formula, the computed number format.\nIf the effective format is the default format, effective format will\nnot be written.\nThis field is read-only.", - "$ref": "CellFormat" + "$ref": "CellFormat", + "description": "The effective format being used by the cell.\nThis includes the results of applying any conditional formatting and,\nif the cell contains a formula, the computed number format.\nIf the effective format is the default format, effective format will\nnot be written.\nThis field is read-only." + }, + "userEnteredValue": { + "$ref": "ExtendedValue", + "description": "The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`\nNote: Dates, Times and DateTimes are represented as doubles in\nserial number format." + }, + "dataValidation": { + "$ref": "DataValidationRule", + "description": "A data validation rule on the cell, if any.\n\nWhen writing, the new data validation rule will overwrite any prior rule." + }, + "effectiveValue": { + "$ref": "ExtendedValue", + "description": "The effective value of the cell. For cells with formulas, this will be\nthe calculated value. For cells with literals, this will be\nthe same as the user_entered_value.\nThis field is read-only." + } + } + }, + "TextPosition": { + "properties": { + "horizontalAlignment": { + "enumDescriptions": [ + "The horizontal alignment is not specified. Do not use this.", + "The text is explicitly aligned to the left of the cell.", + "The text is explicitly aligned to the center of the cell.", + "The text is explicitly aligned to the right of the cell." + ], + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "description": "Horizontal alignment setting for the piece of text.", + "type": "string" } }, - "id": "CellData", - "description": "Data about a specific cell.", + "id": "TextPosition", + "description": "Position settings for text.", "type": "object" }, "BatchUpdateValuesByDataFilterRequest": { "description": "The request for updating more than one range of values in a spreadsheet.", "type": "object", "properties": { - "responseValueRenderOption": { - "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", - "enumDescriptions": [ - "Values will be calculated & formatted in the reply according to the\ncell's formatting. Formatting is based on the spreadsheet's locale,\nnot the requesting user's locale.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return `\"$1.23\"`.", - "Values will be calculated, but not formatted in the reply.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return the number `1.23`.", - "Values will not be calculated. The reply will include the formulas.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen A2 would return `\"=A1\"`." - ], - "enum": [ - "FORMATTED_VALUE", - "UNFORMATTED_VALUE", - "FORMULA" - ] - }, - "includeValuesInResponse": { - "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values. The `updatedData` field within\neach of the BatchUpdateValuesResponse.responses will contain\nthe updated values. If the range to write was larger than than the range\nactually written, the response will include all values in the requested\nrange (excluding trailing empty rows and columns).", - "type": "boolean" - }, - "data": { - "description": "The new values to apply to the spreadsheet. If more than one range is\nmatched by the specified DataFilter the specified values will be\napplied to all of of those ranges.", - "items": { - "$ref": "DataFilterValueRange" - }, - "type": "array" - }, "valueInputOption": { - "enumDescriptions": [ - "Default input value. This value must not be used.", - "The values the user has entered will not be parsed and will be stored\nas-is.", - "The values will be parsed as if the user typed them into the UI.\nNumbers will stay as numbers, but strings may be converted to numbers,\ndates, etc. following the same rules that are applied when entering\ntext into a cell via the Google Sheets UI." - ], "enum": [ "INPUT_VALUE_OPTION_UNSPECIFIED", "RAW", "USER_ENTERED" ], "description": "How the input data should be interpreted.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Default input value. This value must not be used.", + "The values the user has entered will not be parsed and will be stored\nas-is.", + "The values will be parsed as if the user typed them into the UI.\nNumbers will stay as numbers, but strings may be converted to numbers,\ndates, etc. following the same rules that are applied when entering\ntext into a cell via the Google Sheets UI." + ] + }, + "data": { + "description": "The new values to apply to the spreadsheet. If more than one range is\nmatched by the specified DataFilter the specified values will be\napplied to all of those ranges.", + "type": "array", + "items": { + "$ref": "DataFilterValueRange" + } }, "responseDateTimeRenderOption": { + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ], "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is\nDateTimeRenderOption.SERIAL_NUMBER.", "type": "string", "enumDescriptions": [ "Instructs date, time, datetime, and duration fields to be output\nas doubles in \"serial number\" format, as popularized by Lotus 1-2-3.\nThe whole number portion of the value (left of the decimal) counts\nthe days since December 30th 1899. The fractional portion (right of\nthe decimal) counts the time as a fraction of the day. For example,\nJanuary 1st 1900 at noon would be 2.5, 2 because it's 2 days after\nDecember 30st 1899, and .5 because noon is half a day. February 1st\n1900 at 3pm would be 33.625. This correctly treats the year 1900 as\nnot a leap year.", "Instructs date, time, datetime, and duration fields to be output\nas strings in their given number format (which is dependent\non the spreadsheet locale)." - ], - "enum": [ - "SERIAL_NUMBER", - "FORMATTED_STRING" ] + }, + "responseValueRenderOption": { + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string", + "enumDescriptions": [ + "Values will be calculated & formatted in the reply according to the\ncell's formatting. Formatting is based on the spreadsheet's locale,\nnot the requesting user's locale.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return `\"$1.23\"`.", + "Values will be calculated, but not formatted in the reply.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return the number `1.23`.", + "Values will not be calculated. The reply will include the formulas.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen A2 would return `\"=A1\"`." + ] + }, + "includeValuesInResponse": { + "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values. The `updatedData` field within\neach of the BatchUpdateValuesResponse.responses will contain\nthe updated values. If the range to write was larger than than the range\nactually written, the response will include all values in the requested\nrange (excluding trailing empty rows and columns).", + "type": "boolean" } }, "id": "BatchUpdateValuesByDataFilterRequest" }, "BatchUpdateSpreadsheetRequest": { "properties": { - "responseIncludeGridData": { - "description": "True if grid data should be returned. Meaningful only if\nif include_spreadsheet_response is 'true'.\nThis parameter is ignored if a field mask was set in the request.", - "type": "boolean" - }, - "responseRanges": { - "description": "Limits the ranges included in the response spreadsheet.\nMeaningful only if include_spreadsheet_response is 'true'.", - "items": { - "type": "string" - }, - "type": "array" - }, "includeSpreadsheetInResponse": { "description": "Determines if the update response should include the spreadsheet\nresource.", "type": "boolean" }, + "responseRanges": { + "description": "Limits the ranges included in the response spreadsheet.\nMeaningful only if include_spreadsheet_response is 'true'.", + "type": "array", + "items": { + "type": "string" + } + }, + "responseIncludeGridData": { + "type": "boolean", + "description": "True if grid data should be returned. Meaningful only if\nif include_spreadsheet_response is 'true'.\nThis parameter is ignored if a field mask was set in the request." + }, "requests": { - "description": "A list of updates to apply to the spreadsheet.\nRequests will be applied in the order they are specified.\nIf any request is not valid, no requests will be applied.", + "type": "array", "items": { "$ref": "Request" }, - "type": "array" + "description": "A list of updates to apply to the spreadsheet.\nRequests will be applied in the order they are specified.\nIf any request is not valid, no requests will be applied." } }, "id": "BatchUpdateSpreadsheetRequest", "description": "The request for updating any aspect of a spreadsheet.", "type": "object" }, + "Padding": { + "id": "Padding", + "description": "The amount of padding around the cell, in pixels.\nWhen updating padding, every field must be specified.", + "type": "object", + "properties": { + "right": { + "description": "The right padding of the cell.", + "format": "int32", + "type": "integer" + }, + "bottom": { + "type": "integer", + "description": "The bottom padding of the cell.", + "format": "int32" + }, + "top": { + "description": "The top padding of the cell.", + "format": "int32", + "type": "integer" + }, + "left": { + "description": "The left padding of the cell.", + "format": "int32", + "type": "integer" + } + } + }, "BasicChartAxis": { "description": "An axis of the chart.\nA chart may not have more than one axis per\naxis position.", "type": "object", "properties": { - "title": { - "description": "The title of this axis. If set, this overrides any title inferred\nfrom headers of the data.", - "type": "string" - }, "position": { - "enum": [ - "BASIC_CHART_AXIS_POSITION_UNSPECIFIED", - "BOTTOM_AXIS", - "LEFT_AXIS", - "RIGHT_AXIS" - ], "description": "The position of this axis.", "type": "string", "enumDescriptions": [ @@ -3065,65 +1958,52 @@ "The axis rendered at the bottom of a chart.\nFor most charts, this is the standard major axis.\nFor bar charts, this is a minor axis.", "The axis rendered at the left of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is the standard major axis.", "The axis rendered at the right of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is an unusual major axis." + ], + "enum": [ + "BASIC_CHART_AXIS_POSITION_UNSPECIFIED", + "BOTTOM_AXIS", + "LEFT_AXIS", + "RIGHT_AXIS" ] }, + "title": { + "description": "The title of this axis. If set, this overrides any title inferred\nfrom headers of the data.", + "type": "string" + }, + "titleTextPosition": { + "$ref": "TextPosition", + "description": "The axis title text position." + }, "format": { - "description": "The format of the title.\nOnly valid if the axis is not associated with the domain.", - "$ref": "TextFormat" + "$ref": "TextFormat", + "description": "The format of the title.\nOnly valid if the axis is not associated with the domain." } }, "id": "BasicChartAxis" }, - "Padding": { - "description": "The amount of padding around the cell, in pixels.\nWhen updating padding, every field must be specified.", - "type": "object", - "properties": { - "right": { - "format": "int32", - "description": "The right padding of the cell.", - "type": "integer" - }, - "bottom": { - "format": "int32", - "description": "The bottom padding of the cell.", - "type": "integer" - }, - "top": { - "format": "int32", - "description": "The top padding of the cell.", - "type": "integer" - }, - "left": { - "format": "int32", - "description": "The left padding of the cell.", - "type": "integer" - } - }, - "id": "Padding" - }, "DeleteDimensionRequest": { + "id": "DeleteDimensionRequest", "description": "Deletes the dimensions from the sheet.", "type": "object", "properties": { "range": { - "description": "The dimensions to delete from the sheet.", - "$ref": "DimensionRange" + "$ref": "DimensionRange", + "description": "The dimensions to delete from the sheet." } - }, - "id": "DeleteDimensionRequest" + } }, "UpdateChartSpecRequest": { "description": "Updates a chart's specifications.\n(This does not move or resize a chart. To move or resize a chart, use\n UpdateEmbeddedObjectPositionRequest.)", "type": "object", "properties": { "chartId": { - "format": "int32", "description": "The ID of the chart to update.", + "format": "int32", "type": "integer" }, "spec": { - "$ref": "ChartSpec", - "description": "The specification to apply to the chart." + "description": "The specification to apply to the chart.", + "$ref": "ChartSpec" } }, "id": "UpdateChartSpecRequest" @@ -3133,37 +2013,55 @@ "type": "object", "properties": { "filterId": { - "format": "int32", "description": "The ID of the filter to delete.", + "format": "int32", "type": "integer" } }, "id": "DeleteFilterViewRequest" }, + "DeleteDeveloperMetadataResponse": { + "description": "The response from deleting developer metadata.", + "type": "object", + "properties": { + "deletedDeveloperMetadata": { + "description": "The metadata that was deleted.", + "type": "array", + "items": { + "$ref": "DeveloperMetadata" + } + } + }, + "id": "DeleteDeveloperMetadataResponse" + }, "BatchGetValuesByDataFilterRequest": { "description": "The request for retrieving a range of values in a spreadsheet selected by a\nset of DataFilters.", "type": "object", "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen a request that selects that range and sets `majorDimension=ROWS` will\nreturn `[[1,2],[3,4]]`,\nwhereas a request that sets `majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", + "type": "string", + "enumDescriptions": [ + "The default value, do not use.", + "Operates on the rows of a sheet.", + "Operates on the columns of a sheet." + ] + }, "dataFilters": { "description": "The data filters used to match the ranges of values to retrieve. Ranges\nthat match any of the specified data filters will be included in the\nresponse.", + "type": "array", "items": { "$ref": "DataFilter" - }, - "type": "array" - }, - "dateTimeRenderOption": { - "enumDescriptions": [ - "Instructs date, time, datetime, and duration fields to be output\nas doubles in \"serial number\" format, as popularized by Lotus 1-2-3.\nThe whole number portion of the value (left of the decimal) counts\nthe days since December 30th 1899. The fractional portion (right of\nthe decimal) counts the time as a fraction of the day. For example,\nJanuary 1st 1900 at noon would be 2.5, 2 because it's 2 days after\nDecember 30st 1899, and .5 because noon is half a day. February 1st\n1900 at 3pm would be 33.625. This correctly treats the year 1900 as\nnot a leap year.", - "Instructs date, time, datetime, and duration fields to be output\nas strings in their given number format (which is dependent\non the spreadsheet locale)." - ], - "enum": [ - "SERIAL_NUMBER", - "FORMATTED_STRING" - ], - "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", - "type": "string" + } }, "valueRenderOption": { + "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string", "enumDescriptions": [ "Values will be calculated & formatted in the reply according to the\ncell's formatting. Formatting is based on the spreadsheet's locale,\nnot the requesting user's locale.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return the number `1.23`.", @@ -3173,100 +2071,90 @@ "FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA" - ], - "description": "How values should be represented in the output.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string" + ] }, - "majorDimension": { - "description": "The major dimension that results should use.\n\nFor example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen a request that selects that range and sets `majorDimension=ROWS` will\nreturn `[[1,2],[3,4]]`,\nwhereas a request that sets `majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.", + "dateTimeRenderOption": { + "description": "How dates, times, and durations should be represented in the output.\nThis is ignored if value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].", "type": "string", "enumDescriptions": [ - "The default value, do not use.", - "Operates on the rows of a sheet.", - "Operates on the columns of a sheet." + "Instructs date, time, datetime, and duration fields to be output\nas doubles in \"serial number\" format, as popularized by Lotus 1-2-3.\nThe whole number portion of the value (left of the decimal) counts\nthe days since December 30th 1899. The fractional portion (right of\nthe decimal) counts the time as a fraction of the day. For example,\nJanuary 1st 1900 at noon would be 2.5, 2 because it's 2 days after\nDecember 30st 1899, and .5 because noon is half a day. February 1st\n1900 at 3pm would be 33.625. This correctly treats the year 1900 as\nnot a leap year.", + "Instructs date, time, datetime, and duration fields to be output\nas strings in their given number format (which is dependent\non the spreadsheet locale)." ], "enum": [ - "DIMENSION_UNSPECIFIED", - "ROWS", - "COLUMNS" + "SERIAL_NUMBER", + "FORMATTED_STRING" ] } }, "id": "BatchGetValuesByDataFilterRequest" }, - "DeleteDeveloperMetadataResponse": { - "properties": { - "deletedDeveloperMetadata": { - "description": "The metadata that was deleted.", - "items": { - "$ref": "DeveloperMetadata" - }, - "type": "array" - } - }, - "id": "DeleteDeveloperMetadataResponse", - "description": "The response from deleting developer metadata.", - "type": "object" - }, "BatchUpdateValuesResponse": { + "description": "The response when updating a range of values in a spreadsheet.", + "type": "object", "properties": { + "totalUpdatedRows": { + "description": "The total number of rows where at least one cell in the row was updated.", + "format": "int32", + "type": "integer" + }, "responses": { "description": "One UpdateValuesResponse per requested range, in the same order as\nthe requests appeared.", + "type": "array", "items": { "$ref": "UpdateValuesResponse" - }, - "type": "array" + } }, "totalUpdatedSheets": { - "format": "int32", "description": "The total number of sheets where at least one cell in the sheet was\nupdated.", + "format": "int32", "type": "integer" }, "totalUpdatedCells": { - "format": "int32", "description": "The total number of cells updated.", + "format": "int32", "type": "integer" }, "totalUpdatedColumns": { - "format": "int32", "description": "The total number of columns where at least one cell in the column was\nupdated.", + "format": "int32", "type": "integer" }, "spreadsheetId": { "description": "The spreadsheet the updates were applied to.", "type": "string" - }, - "totalUpdatedRows": { - "format": "int32", - "description": "The total number of rows where at least one cell in the row was updated.", - "type": "integer" } }, - "id": "BatchUpdateValuesResponse", - "description": "The response when updating a range of values in a spreadsheet.", - "type": "object" + "id": "BatchUpdateValuesResponse" }, "SortRangeRequest": { "description": "Sorts data in rows based on a sort order per column.", "type": "object", "properties": { "range": { - "description": "The range to sort.", - "$ref": "GridRange" + "$ref": "GridRange", + "description": "The range to sort." }, "sortSpecs": { "description": "The sort order per column. Later specifications are used when values\nare equal in the earlier specifications.", + "type": "array", "items": { "$ref": "SortSpec" - }, - "type": "array" + } } }, "id": "SortRangeRequest" }, "MergeCellsRequest": { + "description": "Merges all cells in the range.", + "type": "object", "properties": { + "range": { + "$ref": "GridRange", + "description": "The range of cells to merge." + }, "mergeType": { + "description": "How the cells should be merged.", + "type": "string", "enumDescriptions": [ "Create a single merge from the range", "Create a merge for each column in the range", @@ -3276,18 +2164,10 @@ "MERGE_ALL", "MERGE_COLUMNS", "MERGE_ROWS" - ], - "description": "How the cells should be merged.", - "type": "string" - }, - "range": { - "$ref": "GridRange", - "description": "The range of cells to merge." + ] } }, - "id": "MergeCellsRequest", - "description": "Merges all cells in the range.", - "type": "object" + "id": "MergeCellsRequest" }, "MatchedDeveloperMetadata": { "description": "A developer metadata entry and the data filters specified in the original\nrequest that matched it.", @@ -3295,60 +2175,75 @@ "properties": { "dataFilters": { "description": "All filters matching the returned developer metadata.", + "type": "array", "items": { "$ref": "DataFilter" - }, - "type": "array" + } }, "developerMetadata": { - "description": "The developer metadata matching the specified filters.", - "$ref": "DeveloperMetadata" + "$ref": "DeveloperMetadata", + "description": "The developer metadata matching the specified filters." } }, "id": "MatchedDeveloperMetadata" }, "AddProtectedRangeRequest": { - "description": "Adds a new protected range.", - "type": "object", "properties": { "protectedRange": { "$ref": "ProtectedRange", "description": "The protected range to be added. The\nprotectedRangeId field is optional; if\none is not set, an id will be randomly generated. (It is an error to\nspecify the ID of a range that already exists.)" } }, - "id": "AddProtectedRangeRequest" + "id": "AddProtectedRangeRequest", + "description": "Adds a new protected range.", + "type": "object" }, "BatchClearValuesRequest": { + "description": "The request for clearing more than one range of values in a spreadsheet.", + "type": "object", "properties": { "ranges": { - "description": "The ranges to clear, in A1 notation.", + "type": "array", "items": { "type": "string" }, - "type": "array" + "description": "The ranges to clear, in A1 notation." } }, - "id": "BatchClearValuesRequest", - "description": "The request for clearing more than one range of values in a spreadsheet.", - "type": "object" + "id": "BatchClearValuesRequest" }, "DuplicateFilterViewResponse": { + "description": "The result of a filter view being duplicated.", + "type": "object", "properties": { "filter": { "$ref": "FilterView", "description": "The newly created filter." } }, - "id": "DuplicateFilterViewResponse", - "description": "The result of a filter view being duplicated.", - "type": "object" + "id": "DuplicateFilterViewResponse" }, "DeveloperMetadata": { + "description": "Developer metadata associated with a location or object in a spreadsheet.\nDeveloper metadata may be used to associate arbitrary data with various\nparts of a spreadsheet and will remain associated at those locations as they\nmove around and the spreadsheet is edited. For example, if developer\nmetadata is associated with row 5 and another row is then subsequently\ninserted above row 5, that original metadata will still be associated with\nthe row it was first associated with (what is now row 6). If the associated\nobject is deleted its metadata will be deleted too.", + "type": "object", "properties": { + "metadataValue": { + "description": "Data associated with the metadata's key.", + "type": "string" + }, "metadataKey": { "description": "The metadata key. There may be multiple metadata in a spreadsheet with the\nsame key. Developer metadata must always have a key specified.", "type": "string" }, + "metadataId": { + "description": "The spreadsheet-scoped unique ID that identifies the metadata. IDs may be\nspecified when metadata is created, otherwise one will be randomly\ngenerated and assigned. Must be positive.", + "format": "int32", + "type": "integer" + }, + "location": { + "description": "The location where the metadata is associated.", + "$ref": "DeveloperMetadataLocation" + }, "visibility": { "enumDescriptions": [ "Default value.", @@ -3362,32 +2257,17 @@ ], "description": "The metadata visibility. Developer metadata must always have a visibility\nspecified.", "type": "string" - }, - "location": { - "$ref": "DeveloperMetadataLocation", - "description": "The location where the metadata is associated." - }, - "metadataId": { - "format": "int32", - "description": "The spreadsheet-scoped unique ID that identifies the metadata. IDs may be\nspecified when metadata is created, otherwise one will be randomly\ngenerated and assigned. Must be positive.", - "type": "integer" - }, - "metadataValue": { - "description": "Data associated with the metadata's key.", - "type": "string" } }, - "id": "DeveloperMetadata", - "description": "Developer metadata associated with a location or object in a spreadsheet.\nDeveloper metadata may be used to associate arbitrary data with various\nparts of a spreadsheet and will remain associated at those locations as they\nmove around and the spreadsheet is edited. For example, if developer\nmetadata is associated with row 5 and another row is then subsequently\ninserted above row 5, that original metadata will still be associated with\nthe row it was first associated with (what is now row 6). If the associated\nobject is deleted its metadata will be deleted too.", - "type": "object" + "id": "DeveloperMetadata" }, "DuplicateSheetResponse": { "description": "The result of duplicating a sheet.", "type": "object", "properties": { "properties": { - "$ref": "SheetProperties", - "description": "The properties of the duplicate sheet." + "description": "The properties of the duplicate sheet.", + "$ref": "SheetProperties" } }, "id": "DuplicateSheetResponse" @@ -3397,8 +2277,12 @@ "type": "object", "properties": { "delimiter": { - "description": "The delimiter to use. Used only if delimiterType is\nCUSTOM.", - "type": "string" + "type": "string", + "description": "The delimiter to use. Used only if delimiterType is\nCUSTOM." + }, + "source": { + "description": "The source data range. This must span exactly one column.", + "$ref": "GridRange" }, "delimiterType": { "description": "The delimiter type to use.", @@ -3419,40 +2303,36 @@ "SPACE", "CUSTOM" ] - }, - "source": { - "description": "The source data range. This must span exactly one column.", - "$ref": "GridRange" } }, "id": "TextToColumnsRequest" }, "ClearBasicFilterRequest": { - "description": "Clears the basic filter, if any exists on the sheet.", "type": "object", "properties": { "sheetId": { - "format": "int32", "description": "The sheet ID on which the basic filter should be cleared.", + "format": "int32", "type": "integer" } }, - "id": "ClearBasicFilterRequest" + "id": "ClearBasicFilterRequest", + "description": "Clears the basic filter, if any exists on the sheet." }, "BatchUpdateSpreadsheetResponse": { "description": "The reply for batch updating a spreadsheet.", "type": "object", "properties": { - "updatedSpreadsheet": { - "$ref": "Spreadsheet", - "description": "The spreadsheet after updates were applied. This is only set if\n[BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is `true`." - }, "replies": { "description": "The reply of the updates. This maps 1:1 with the updates, although\nreplies to some requests may be empty.", + "type": "array", "items": { "$ref": "Response" - }, - "type": "array" + } + }, + "updatedSpreadsheet": { + "description": "The spreadsheet after updates were applied. This is only set if\n[BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is `true`.", + "$ref": "Spreadsheet" }, "spreadsheetId": { "description": "The spreadsheet the updates were applied to.", @@ -3462,16 +2342,16 @@ "id": "BatchUpdateSpreadsheetResponse" }, "DeleteBandingRequest": { + "type": "object", "properties": { "bandedRangeId": { - "format": "int32", "description": "The ID of the banded range to delete.", + "format": "int32", "type": "integer" } }, "id": "DeleteBandingRequest", - "description": "Removes the banded range with the given ID from the spreadsheet.", - "type": "object" + "description": "Removes the banded range with the given ID from the spreadsheet." }, "AppendValuesResponse": { "description": "The response when updating a range of values in a spreadsheet.", @@ -3482,8 +2362,8 @@ "$ref": "UpdateValuesResponse" }, "tableRange": { - "description": "The range (in A1 notation) of the table that values are being appended to\n(before the values were appended).\nEmpty if no table was found.", - "type": "string" + "type": "string", + "description": "The range (in A1 notation) of the table that values are being appended to\n(before the values were appended).\nEmpty if no table was found." }, "spreadsheetId": { "description": "The spreadsheet the updates were applied to.", @@ -3493,12 +2373,10 @@ "id": "AppendValuesResponse" }, "MoveDimensionRequest": { - "description": "Moves one or more rows or columns.", - "type": "object", "properties": { "destinationIndex": { - "format": "int32", "description": "The zero-based start index of where to move the source data to,\nbased on the coordinates *before* the source data is removed\nfrom the grid. Existing data will be shifted down or right\n(depending on the dimension) to make room for the moved dimensions.\nThe source dimensions are removed from the grid, so the\nthe data may end up in a different index than specified.\n\nFor example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to move\n`\"1\"` and `\"2\"` to between `\"3\"` and `\"4\"`, the source would be\n`ROWS [1..3)`,and the destination index would be `\"4\"`\n(the zero-based index of row 5).\nThe end result would be `A1..A5` of `0, 3, 1, 2, 4`.", + "format": "int32", "type": "integer" }, "source": { @@ -3506,7 +2384,9 @@ "description": "The source dimensions to move." } }, - "id": "MoveDimensionRequest" + "id": "MoveDimensionRequest", + "description": "Moves one or more rows or columns.", + "type": "object" }, "AddFilterViewRequest": { "description": "Adds a filter view.", @@ -3520,31 +2400,31 @@ "id": "AddFilterViewRequest" }, "PivotFilterCriteria": { + "description": "Criteria for showing/hiding rows in a pivot table.", + "type": "object", "properties": { "visibleValues": { "description": "Values that should be included. Values not listed here are excluded.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, - "id": "PivotFilterCriteria", - "description": "Criteria for showing/hiding rows in a pivot table.", - "type": "object" + "id": "PivotFilterCriteria" }, "AddConditionalFormatRuleRequest": { "description": "Adds a new conditional format rule at the given index.\nAll subsequent rules' indexes are incremented.", "type": "object", "properties": { + "index": { + "description": "The zero-based index where the rule should be inserted.", + "format": "int32", + "type": "integer" + }, "rule": { "$ref": "ConditionalFormatRule", "description": "The rule to add." - }, - "index": { - "format": "int32", - "description": "The zero-based index where the rule should be inserted.", - "type": "integer" } }, "id": "AddConditionalFormatRuleRequest" @@ -3564,21 +2444,33 @@ "description": "The specifications of a chart.", "type": "object", "properties": { + "titleTextFormat": { + "description": "The title text format.\nStrikethrough and underline are not supported.", + "$ref": "TextFormat" + }, + "title": { + "description": "The title of the chart.", + "type": "string" + }, "altText": { "description": "The alternative text that describes the chart. This is often used\nfor accessibility.", "type": "string" }, + "titleTextPosition": { + "$ref": "TextPosition", + "description": "The title text position.\nThis field is optional." + }, "histogramChart": { - "$ref": "HistogramChartSpec", - "description": "A histogram chart specification." + "description": "A histogram chart specification.", + "$ref": "HistogramChartSpec" }, "candlestickChart": { "$ref": "CandlestickChartSpec", "description": "A candlestick chart specification." }, "bubbleChart": { - "$ref": "BubbleChartSpec", - "description": "A bubble chart specification." + "description": "A bubble chart specification.", + "$ref": "BubbleChartSpec" }, "fontName": { "description": "The name of the font to use by default for all chart text (e.g. title,\naxis labels, legend). If a font is specified for a specific part of the\nchart it will override this font name.", @@ -3589,13 +2481,6 @@ "type": "boolean" }, "hiddenDimensionStrategy": { - "enum": [ - "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", - "SKIP_HIDDEN_ROWS_AND_COLUMNS", - "SKIP_HIDDEN_ROWS", - "SKIP_HIDDEN_COLUMNS", - "SHOW_ALL" - ], "description": "Determines how the charts will use hidden rows or columns.", "type": "string", "enumDescriptions": [ @@ -3604,15 +2489,34 @@ "Charts will skip hidden rows only.", "Charts will skip hidden columns only.", "Charts will not skip any hidden rows or columns." + ], + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" ] }, + "subtitleTextFormat": { + "description": "The subtitle text format.\nStrikethrough and underline are not supported.", + "$ref": "TextFormat" + }, + "subtitle": { + "description": "The subtitle of the chart.", + "type": "string" + }, + "subtitleTextPosition": { + "$ref": "TextPosition", + "description": "The subtitle text position.\nThis field is optional." + }, "backgroundColor": { - "description": "The background color of the entire chart.\nNot applicable to Org charts.", - "$ref": "Color" + "$ref": "Color", + "description": "The background color of the entire chart.\nNot applicable to Org charts." }, "basicChart": { - "description": "A basic chart specification, can be one of many kinds of charts.\nSee BasicChartType for the list of all\ncharts this supports.", - "$ref": "BasicChartSpec" + "$ref": "BasicChartSpec", + "description": "A basic chart specification, can be one of many kinds of charts.\nSee BasicChartType for the list of all\ncharts this supports." }, "orgChart": { "$ref": "OrgChartSpec", @@ -3621,14 +2525,6 @@ "pieChart": { "description": "A pie chart specification.", "$ref": "PieChartSpec" - }, - "titleTextFormat": { - "$ref": "TextFormat", - "description": "The title text format.\nStrikethrough and underline are not supported." - }, - "title": { - "description": "The title of the chart.", - "type": "string" } }, "id": "ChartSpec" @@ -3639,10 +2535,10 @@ "properties": { "valueRanges": { "description": "The requested values with the list of data filters that matched them.", + "type": "array", "items": { "$ref": "MatchedValueRange" - }, - "type": "array" + } }, "spreadsheetId": { "description": "The ID of the spreadsheet the data was retrieved from.", @@ -3652,6 +2548,9 @@ "id": "BatchGetValuesByDataFilterResponse" }, "NumberFormat": { + "id": "NumberFormat", + "description": "The number format of a cell.", + "type": "object", "properties": { "type": { "enumDescriptions": [ @@ -3683,10 +2582,7 @@ "description": "Pattern string used for formatting. If not set, a default pattern based on\nthe user's locale will be used if necessary for the given type.\nSee the [Date and Number Formats guide](/sheets/api/guides/formats) for more\ninformation about the supported patterns.", "type": "string" } - }, - "id": "NumberFormat", - "description": "The number format of a cell.", - "type": "object" + } }, "DataFilterValueRange": { "description": "A range of values whose location is specified by a DataFilter.", @@ -3696,17 +2592,9 @@ "$ref": "DataFilter", "description": "The data filter describing the location of the values in the spreadsheet." }, - "values": { - "description": "The data to be written. If the provided values exceed any of the ranges\nmatched by the data filter then the request will fail. If the provided\nvalues are less than the matched ranges only the specified values will be\nwritten, existing values in the matched ranges will remain unaffected.", - "items": { - "items": { - "type": "any" - }, - "type": "array" - }, - "type": "array" - }, "majorDimension": { + "description": "The major dimension of the values.", + "type": "string", "enumDescriptions": [ "The default value, do not use.", "Operates on the rows of a sheet.", @@ -3716,14 +2604,23 @@ "DIMENSION_UNSPECIFIED", "ROWS", "COLUMNS" - ], - "description": "The major dimension of the values.", - "type": "string" + ] + }, + "values": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "any" + } + }, + "description": "The data to be written. If the provided values exceed any of the ranges\nmatched by the data filter then the request will fail. If the provided\nvalues are less than the matched ranges only the specified values will be\nwritten, existing values in the matched ranges will remain unaffected." } }, "id": "DataFilterValueRange" }, "CandlestickDomain": { + "id": "CandlestickDomain", "description": "The domain of a CandlestickChart.", "type": "object", "properties": { @@ -3735,94 +2632,87 @@ "description": "True to reverse the order of the domain values (horizontal axis).", "type": "boolean" } - }, - "id": "CandlestickDomain" + } }, "SheetProperties": { + "description": "Properties of a sheet.", + "type": "object", "properties": { - "title": { - "description": "The name of the sheet.", - "type": "string" - }, - "tabColor": { - "description": "The color of the tab in the UI.", - "$ref": "Color" - }, - "index": { - "format": "int32", - "description": "The index of the sheet within the spreadsheet.\nWhen adding or updating sheet properties, if this field\nis excluded then the sheet will be added or moved to the end\nof the sheet list. When updating sheet indices or inserting\nsheets, movement is considered in \"before the move\" indexes.\nFor example, if there were 3 sheets (S1, S2, S3) in order to\nmove S1 ahead of S2 the index would have to be set to 2. A sheet\nindex update request will be ignored if the requested index is\nidentical to the sheets current index or if the requested new\nindex is equal to the current sheet index + 1.", - "type": "integer" - }, - "sheetId": { - "format": "int32", - "description": "The ID of the sheet. Must be non-negative.\nThis field cannot be changed once set.", - "type": "integer" - }, - "rightToLeft": { - "description": "True if the sheet is an RTL sheet instead of an LTR sheet.", - "type": "boolean" - }, "hidden": { "description": "True if the sheet is hidden in the UI, false if it's visible.", "type": "boolean" }, - "gridProperties": { - "description": "Additional properties of the sheet if this sheet is a grid.\n(If the sheet is an object sheet, containing a chart or image, then\nthis field will be absent.)\nWhen writing it is an error to set any grid properties on non-grid sheets.", - "$ref": "GridProperties" - }, "sheetType": { - "enumDescriptions": [ - "Default value, do not use.", - "The sheet is a grid.", - "The sheet has no grid and instead has an object like a chart or image." - ], "enum": [ "SHEET_TYPE_UNSPECIFIED", "GRID", "OBJECT" ], "description": "The type of sheet. Defaults to GRID.\nThis field cannot be changed once set.", + "type": "string", + "enumDescriptions": [ + "Default value, do not use.", + "The sheet is a grid.", + "The sheet has no grid and instead has an object like a chart or image." + ] + }, + "gridProperties": { + "$ref": "GridProperties", + "description": "Additional properties of the sheet if this sheet is a grid.\n(If the sheet is an object sheet, containing a chart or image, then\nthis field will be absent.)\nWhen writing it is an error to set any grid properties on non-grid sheets." + }, + "title": { + "description": "The name of the sheet.", "type": "string" + }, + "tabColor": { + "$ref": "Color", + "description": "The color of the tab in the UI." + }, + "index": { + "type": "integer", + "description": "The index of the sheet within the spreadsheet.\nWhen adding or updating sheet properties, if this field\nis excluded then the sheet will be added or moved to the end\nof the sheet list. When updating sheet indices or inserting\nsheets, movement is considered in \"before the move\" indexes.\nFor example, if there were 3 sheets (S1, S2, S3) in order to\nmove S1 ahead of S2 the index would have to be set to 2. A sheet\nindex update request will be ignored if the requested index is\nidentical to the sheets current index or if the requested new\nindex is equal to the current sheet index + 1.", + "format": "int32" + }, + "sheetId": { + "description": "The ID of the sheet. Must be non-negative.\nThis field cannot be changed once set.", + "format": "int32", + "type": "integer" + }, + "rightToLeft": { + "description": "True if the sheet is an RTL sheet instead of an LTR sheet.", + "type": "boolean" } }, - "id": "SheetProperties", - "description": "Properties of a sheet.", - "type": "object" + "id": "SheetProperties" }, "UpdateDimensionPropertiesRequest": { "description": "Updates properties of dimensions within the specified range.", "type": "object", "properties": { "properties": { - "$ref": "DimensionProperties", - "description": "Properties to update." + "description": "Properties to update.", + "$ref": "DimensionProperties" }, "range": { "$ref": "DimensionRange", "description": "The rows or columns to update." }, "fields": { - "format": "google-fieldmask", + "type": "string", "description": "The fields that should be updated. At least one field must be specified.\nThe root `properties` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" + "format": "google-fieldmask" } }, "id": "UpdateDimensionPropertiesRequest" }, "SourceAndDestination": { + "id": "SourceAndDestination", "description": "A combination of a source range and how to extend that source.", "type": "object", "properties": { - "fillLength": { - "format": "int32", - "description": "The number of rows or columns that data should be filled into.\nPositive numbers expand beyond the last row or last column\nof the source. Negative numbers expand before the first row\nor first column of the source.", - "type": "integer" - }, - "source": { - "description": "The location of the data to use as the source of the autofill.", - "$ref": "GridRange" - }, "dimension": { + "description": "The dimension that data should be filled into.", + "type": "string", "enumDescriptions": [ "The default value, do not use.", "Operates on the rows of a sheet.", @@ -3832,58 +2722,20 @@ "DIMENSION_UNSPECIFIED", "ROWS", "COLUMNS" - ], - "description": "The dimension that data should be filled into.", - "type": "string" - } - }, - "id": "SourceAndDestination" - }, - "OrgChartSpec": { - "description": "An \u003ca href=\"/chart/interactive/docs/gallery/orgchart\"\u003eorg chart\u003c/a\u003e.\nOrg charts require a unique set of labels in labels and may\noptionally include parent_labels and tooltips.\nparent_labels contain, for each node, the label identifying the parent\nnode. tooltips contain, for each node, an optional tooltip.\n\nFor example, to describe an OrgChart with Alice as the CEO, Bob as the\nPresident (reporting to Alice) and Cathy as VP of Sales (also reporting to\nAlice), have labels contain \"Alice\", \"Bob\", \"Cathy\",\nparent_labels contain \"\", \"Alice\", \"Alice\" and tooltips contain\n\"CEO\", \"President\", \"VP Sales\".", - "type": "object", - "properties": { - "parentLabels": { - "$ref": "ChartData", - "description": "The data containing the label of the parent for the corresponding node.\nA blank value indicates that the node has no parent and is a top-level\nnode.\nThis field is optional." - }, - "nodeSize": { - "enum": [ - "ORG_CHART_LABEL_SIZE_UNSPECIFIED", - "SMALL", - "MEDIUM", - "LARGE" - ], - "description": "The size of the org chart nodes.", - "type": "string", - "enumDescriptions": [ - "Default value, do not use.", - "The small org chart node size.", - "The medium org chart node size.", - "The large org chart node size." ] }, - "labels": { - "$ref": "ChartData", - "description": "The data containing the labels for all the nodes in the chart. Labels\nmust be unique." + "fillLength": { + "description": "The number of rows or columns that data should be filled into.\nPositive numbers expand beyond the last row or last column\nof the source. Negative numbers expand before the first row\nor first column of the source.", + "format": "int32", + "type": "integer" }, - "nodeColor": { - "description": "The color of the org chart nodes.", - "$ref": "Color" - }, - "tooltips": { - "description": "The data containing the tooltip for the corresponding node. A blank value\nresults in no tooltip being displayed for the node.\nThis field is optional.", - "$ref": "ChartData" - }, - "selectedNodeColor": { - "description": "The color of the selected org chart nodes.", - "$ref": "Color" + "source": { + "description": "The location of the data to use as the source of the autofill.", + "$ref": "GridRange" } - }, - "id": "OrgChartSpec" + } }, "FilterView": { - "description": "A filter view.", "type": "object", "properties": { "namedRangeId": { @@ -3891,8 +2743,8 @@ "type": "string" }, "filterViewId": { - "format": "int32", "description": "The ID of the filter view.", + "format": "int32", "type": "integer" }, "criteria": { @@ -3912,13 +2764,57 @@ }, "sortSpecs": { "description": "The sort order per column. Later specifications are used when values\nare equal in the earlier specifications.", + "type": "array", "items": { "$ref": "SortSpec" - }, - "type": "array" + } } }, - "id": "FilterView" + "id": "FilterView", + "description": "A filter view." + }, + "OrgChartSpec": { + "id": "OrgChartSpec", + "description": "An \u003ca href=\"/chart/interactive/docs/gallery/orgchart\"\u003eorg chart\u003c/a\u003e.\nOrg charts require a unique set of labels in labels and may\noptionally include parent_labels and tooltips.\nparent_labels contain, for each node, the label identifying the parent\nnode. tooltips contain, for each node, an optional tooltip.\n\nFor example, to describe an OrgChart with Alice as the CEO, Bob as the\nPresident (reporting to Alice) and Cathy as VP of Sales (also reporting to\nAlice), have labels contain \"Alice\", \"Bob\", \"Cathy\",\nparent_labels contain \"\", \"Alice\", \"Alice\" and tooltips contain\n\"CEO\", \"President\", \"VP Sales\".", + "type": "object", + "properties": { + "selectedNodeColor": { + "description": "The color of the selected org chart nodes.", + "$ref": "Color" + }, + "parentLabels": { + "description": "The data containing the label of the parent for the corresponding node.\nA blank value indicates that the node has no parent and is a top-level\nnode.\nThis field is optional.", + "$ref": "ChartData" + }, + "nodeSize": { + "enum": [ + "ORG_CHART_LABEL_SIZE_UNSPECIFIED", + "SMALL", + "MEDIUM", + "LARGE" + ], + "description": "The size of the org chart nodes.", + "type": "string", + "enumDescriptions": [ + "Default value, do not use.", + "The small org chart node size.", + "The medium org chart node size.", + "The large org chart node size." + ] + }, + "labels": { + "description": "The data containing the labels for all the nodes in the chart. Labels\nmust be unique.", + "$ref": "ChartData" + }, + "nodeColor": { + "$ref": "Color", + "description": "The color of the org chart nodes." + }, + "tooltips": { + "$ref": "ChartData", + "description": "The data containing the tooltip for the corresponding node. A blank value\nresults in no tooltip being displayed for the node.\nThis field is optional." + } + } }, "SearchDeveloperMetadataRequest": { "description": "A request to retrieve all developer metadata matching the set of specified\ncriteria.", @@ -3926,36 +2822,36 @@ "properties": { "dataFilters": { "description": "The data filters describing the criteria used to determine which\nDeveloperMetadata entries to return. DeveloperMetadata matching any of the\nspecified filters will be included in the response.", + "type": "array", "items": { "$ref": "DataFilter" - }, - "type": "array" + } } }, "id": "SearchDeveloperMetadataRequest" }, "BandingProperties": { - "description": "Properties referring a single dimension (either row or column). If both\nBandedRange.row_properties and BandedRange.column_properties are\nset, the fill colors are applied to cells according to the following rules:\n\n* header_color and footer_color take priority over band colors.\n* first_band_color takes priority over second_band_color.\n* row_properties takes priority over column_properties.\n\nFor example, the first row color takes priority over the first column\ncolor, but the first column color takes priority over the second row color.\nSimilarly, the row header takes priority over the column header in the\ntop left cell, but the column header takes priority over the first row\ncolor if the row header is not set.", - "type": "object", "properties": { "secondBandColor": { "description": "The second color that is alternating. (Required)", "$ref": "Color" }, "footerColor": { - "description": "The color of the last row or column. If this field is not set, the last\nrow or column will be filled with either first_band_color or\nsecond_band_color, depending on the color of the previous row or\ncolumn.", - "$ref": "Color" + "$ref": "Color", + "description": "The color of the last row or column. If this field is not set, the last\nrow or column will be filled with either first_band_color or\nsecond_band_color, depending on the color of the previous row or\ncolumn." }, "headerColor": { - "description": "The color of the first row or column. If this field is set, the first\nrow or column will be filled with this color and the colors will\nalternate between first_band_color and second_band_color starting\nfrom the second row or column. Otherwise, the first row or column will be\nfilled with first_band_color and the colors will proceed to alternate\nas they normally would.", - "$ref": "Color" + "$ref": "Color", + "description": "The color of the first row or column. If this field is set, the first\nrow or column will be filled with this color and the colors will\nalternate between first_band_color and second_band_color starting\nfrom the second row or column. Otherwise, the first row or column will be\nfilled with first_band_color and the colors will proceed to alternate\nas they normally would." }, "firstBandColor": { - "$ref": "Color", - "description": "The first color that is alternating. (Required)" + "description": "The first color that is alternating. (Required)", + "$ref": "Color" } }, - "id": "BandingProperties" + "id": "BandingProperties", + "description": "Properties referring a single dimension (either row or column). If both\nBandedRange.row_properties and BandedRange.column_properties are\nset, the fill colors are applied to cells according to the following rules:\n\n* header_color and footer_color take priority over band colors.\n* first_band_color takes priority over second_band_color.\n* row_properties takes priority over column_properties.\n\nFor example, the first row color takes priority over the first column\ncolor, but the first column color takes priority over the second row color.\nSimilarly, the row header takes priority over the column header in the\ntop left cell, but the column header takes priority over the first row\ncolor if the row header is not set.", + "type": "object" }, "AddProtectedRangeResponse": { "description": "The result of adding a new protected range.", @@ -3970,6 +2866,10 @@ }, "BasicFilter": { "properties": { + "range": { + "$ref": "GridRange", + "description": "The range the filter covers." + }, "criteria": { "additionalProperties": { "$ref": "FilterCriteria" @@ -3977,16 +2877,12 @@ "description": "The criteria for showing/hiding values per column.\nThe map's key is the column index, and the value is the criteria for\nthat column.", "type": "object" }, - "range": { - "description": "The range the filter covers.", - "$ref": "GridRange" - }, "sortSpecs": { "description": "The sort order per column. Later specifications are used when values\nare equal in the earlier specifications.", + "type": "array", "items": { "$ref": "SortSpec" - }, - "type": "array" + } } }, "id": "BasicFilter", @@ -3994,35 +2890,26 @@ "type": "object" }, "CandlestickSeries": { - "description": "The series of a CandlestickData.", - "type": "object", "properties": { "data": { "$ref": "ChartData", "description": "The data of the CandlestickSeries." } }, - "id": "CandlestickSeries" + "id": "CandlestickSeries", + "description": "The series of a CandlestickData.", + "type": "object" }, "HistogramChartSpec": { "description": "A \u003ca href=\"/chart/interactive/docs/gallery/histogram\"\u003ehistogram chart\u003c/a\u003e.\nA histogram chart groups data items into bins, displaying each bin as a\ncolumn of stacked items. Histograms are used to display the distribution\nof a dataset. Each column of items represents a range into which those\nitems fall. The number of bins can be chosen automatically or specified\nexplicitly.", "type": "object", "properties": { - "outlierPercentile": { - "format": "double", - "description": "The outlier percentile is used to ensure that outliers do not adversely\naffect the calculation of bucket sizes. For example, setting an outlier\npercentile of 0.05 indicates that the top and bottom 5% of values when\ncalculating buckets. The values are still included in the chart, they will\nbe added to the first or last buckets instead of their own buckets.\nMust be between 0.0 and 0.5.", - "type": "number" - }, - "showItemDividers": { - "description": "Whether horizontal divider lines should be displayed between items in each\ncolumn.", - "type": "boolean" - }, "series": { "description": "The series for a histogram may be either a single series of values to be\nbucketed or multiple series, each of the same length, containing the name\nof the series followed by the values to be bucketed for that series.", + "type": "array", "items": { "$ref": "HistogramSeries" - }, - "type": "array" + } }, "legendPosition": { "enumDescriptions": [ @@ -4047,48 +2934,98 @@ "type": "string" }, "bucketSize": { - "format": "double", "description": "By default the bucket size (the range of values stacked in a single\ncolumn) is chosen automatically, but it may be overridden here.\nE.g., A bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 - 3.0, etc.\nCannot be negative.\nThis field is optional.", + "format": "double", "type": "number" + }, + "outlierPercentile": { + "description": "The outlier percentile is used to ensure that outliers do not adversely\naffect the calculation of bucket sizes. For example, setting an outlier\npercentile of 0.05 indicates that the top and bottom 5% of values when\ncalculating buckets. The values are still included in the chart, they will\nbe added to the first or last buckets instead of their own buckets.\nMust be between 0.0 and 0.5.", + "format": "double", + "type": "number" + }, + "showItemDividers": { + "description": "Whether horizontal divider lines should be displayed between items in each\ncolumn.", + "type": "boolean" } }, "id": "HistogramChartSpec" }, "UpdateValuesResponse": { + "id": "UpdateValuesResponse", "description": "The response when updating a range of values in a spreadsheet.", "type": "object", "properties": { - "updatedRange": { - "description": "The range (in A1 notation) that updates were applied to.", - "type": "string" - }, - "updatedCells": { - "format": "int32", - "description": "The number of cells updated.", - "type": "integer" - }, - "updatedData": { - "description": "The values of the cells after updates were applied.\nThis is only included if the request's `includeValuesInResponse` field\nwas `true`.", - "$ref": "ValueRange" - }, - "updatedRows": { - "format": "int32", - "description": "The number of rows where at least one cell in the row was updated.", - "type": "integer" - }, "updatedColumns": { - "format": "int32", "description": "The number of columns where at least one cell in the column was updated.", + "format": "int32", "type": "integer" }, "spreadsheetId": { "description": "The spreadsheet the updates were applied to.", "type": "string" + }, + "updatedRange": { + "description": "The range (in A1 notation) that updates were applied to.", + "type": "string" + }, + "updatedCells": { + "description": "The number of cells updated.", + "format": "int32", + "type": "integer" + }, + "updatedData": { + "$ref": "ValueRange", + "description": "The values of the cells after updates were applied.\nThis is only included if the request's `includeValuesInResponse` field\nwas `true`." + }, + "updatedRows": { + "description": "The number of rows where at least one cell in the row was updated.", + "format": "int32", + "type": "integer" + } + } + }, + "ErrorValue": { + "description": "An error in a cell.", + "type": "object", + "properties": { + "type": { + "enumDescriptions": [ + "The default error type, do not use this.", + "Corresponds to the `#ERROR!` error.", + "Corresponds to the `#NULL!` error.", + "Corresponds to the `#DIV/0` error.", + "Corresponds to the `#VALUE!` error.", + "Corresponds to the `#REF!` error.", + "Corresponds to the `#NAME?` error.", + "Corresponds to the `#NUM`! error.", + "Corresponds to the `#N/A` error.", + "Corresponds to the `Loading...` state." + ], + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "ERROR", + "NULL_VALUE", + "DIVIDE_BY_ZERO", + "VALUE", + "REF", + "NAME", + "NUM", + "N_A", + "LOADING" + ], + "description": "The type of error.", + "type": "string" + }, + "message": { + "type": "string", + "description": "A message with more information about the error\n(in the spreadsheet's locale)." } }, - "id": "UpdateValuesResponse" + "id": "ErrorValue" }, "PivotValue": { + "description": "The definition of how a value in a pivot table should be calculated.", + "type": "object", "properties": { "formula": { "description": "A custom formula to calculate the value. The formula must start\nwith an `=` character.", @@ -4133,82 +3070,41 @@ "type": "string" }, "sourceColumnOffset": { - "format": "int32", "description": "The column offset of the source range that this value reads from.\n\nFor example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`\nmeans this value refers to column `C`, whereas the offset `1` would\nrefer to column `D`.", + "format": "int32", "type": "integer" }, "name": { - "description": "A name to use for the value. This is only used if formula was set.\nOtherwise, the column name is used.", + "description": "A name to use for the value.", "type": "string" } }, - "id": "PivotValue", - "description": "The definition of how a value in a pivot table should be calculated.", - "type": "object" - }, - "ErrorValue": { - "description": "An error in a cell.", - "type": "object", - "properties": { - "message": { - "description": "A message with more information about the error\n(in the spreadsheet's locale).", - "type": "string" - }, - "type": { - "enumDescriptions": [ - "The default error type, do not use this.", - "Corresponds to the `#ERROR!` error.", - "Corresponds to the `#NULL!` error.", - "Corresponds to the `#DIV/0` error.", - "Corresponds to the `#VALUE!` error.", - "Corresponds to the `#REF!` error.", - "Corresponds to the `#NAME?` error.", - "Corresponds to the `#NUM`! error.", - "Corresponds to the `#N/A` error.", - "Corresponds to the `Loading...` state." - ], - "enum": [ - "ERROR_TYPE_UNSPECIFIED", - "ERROR", - "NULL_VALUE", - "DIVIDE_BY_ZERO", - "VALUE", - "REF", - "NAME", - "NUM", - "N_A", - "LOADING" - ], - "description": "The type of error.", - "type": "string" - } - }, - "id": "ErrorValue" + "id": "PivotValue" }, "CopySheetToAnotherSpreadsheetRequest": { - "description": "The request to copy a sheet across spreadsheets.", - "type": "object", "properties": { "destinationSpreadsheetId": { "description": "The ID of the spreadsheet to copy the sheet to.", "type": "string" } }, - "id": "CopySheetToAnotherSpreadsheetRequest" + "id": "CopySheetToAnotherSpreadsheetRequest", + "description": "The request to copy a sheet across spreadsheets.", + "type": "object" }, "PivotGroupSortValueBucket": { "properties": { - "valuesIndex": { - "format": "int32", - "description": "The offset in the PivotTable.values list which the values in this\ngrouping should be sorted by.", - "type": "integer" - }, "buckets": { "description": "Determines the bucket from which values are chosen to sort.\n\nFor example, in a pivot table with one row group & two column groups,\nthe row group can list up to two values. The first value corresponds\nto a value within the first column group, and the second value\ncorresponds to a value in the second column group. If no values\nare listed, this would indicate that the row should be sorted according\nto the \"Grand Total\" over the column groups. If a single value is listed,\nthis would correspond to using the \"Total\" of that bucket.", + "type": "array", "items": { "$ref": "ExtendedValue" - }, - "type": "array" + } + }, + "valuesIndex": { + "description": "The offset in the PivotTable.values list which the values in this\ngrouping should be sorted by.", + "format": "int32", + "type": "integer" } }, "id": "PivotGroupSortValueBucket", @@ -4220,8 +3116,8 @@ "type": "object", "properties": { "dataFilter": { - "description": "The data filter describing the criteria used to select which developer\nmetadata entry to delete.", - "$ref": "DataFilter" + "$ref": "DataFilter", + "description": "The data filter describing the criteria used to select which developer\nmetadata entry to delete." } }, "id": "DeleteDeveloperMetadataRequest" @@ -4230,16 +3126,16 @@ "description": "A \u003ca href=\"/chart/interactive/docs/gallery/candlestickchart\"\u003ecandlestick chart\u003c/a\u003e.", "type": "object", "properties": { - "data": { - "description": "The Candlestick chart data.\nOnly one CandlestickData is supported.", - "items": { - "$ref": "CandlestickData" - }, - "type": "array" - }, "domain": { "$ref": "CandlestickDomain", "description": "The domain data (horizontal axis) for the candlestick chart. String data\nwill be treated as discrete labels, other data will be treated as\ncontinuous values." + }, + "data": { + "description": "The Candlestick chart data.\nOnly one CandlestickData is supported.", + "type": "array", + "items": { + "$ref": "CandlestickData" + } } }, "id": "CandlestickChartSpec" @@ -4248,98 +3144,81 @@ "description": "The response when clearing a range of values selected with\nDataFilters in a spreadsheet.", "type": "object", "properties": { - "clearedRanges": { - "description": "The ranges that were cleared, in A1 notation.\n(If the requests were for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual ranges\n that were cleared, bounded to the sheet's limits.)", - "items": { - "type": "string" - }, - "type": "array" - }, "spreadsheetId": { "description": "The spreadsheet the updates were applied to.", "type": "string" + }, + "clearedRanges": { + "description": "The ranges that were cleared, in A1 notation.\n(If the requests were for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual ranges\n that were cleared, bounded to the sheet's limits.)", + "type": "array", + "items": { + "type": "string" + } } }, "id": "BatchClearValuesByDataFilterResponse" }, "CandlestickData": { + "description": "The Candlestick chart data, each containing the low, open, close, and high\nvalues for a series.", + "type": "object", "properties": { - "highSeries": { - "description": "The range data (vertical axis) for the high/maximum value for each\ncandle. This is the top of the candle's center line.", - "$ref": "CandlestickSeries" - }, - "closeSeries": { - "$ref": "CandlestickSeries", - "description": "The range data (vertical axis) for the close/final value for each candle.\nThis is the top of the candle body. If greater than the open value the\ncandle will be filled. Otherwise the candle will be hollow." - }, "lowSeries": { "$ref": "CandlestickSeries", "description": "The range data (vertical axis) for the low/minimum value for each candle.\nThis is the bottom of the candle's center line." }, + "closeSeries": { + "description": "The range data (vertical axis) for the close/final value for each candle.\nThis is the top of the candle body. If greater than the open value the\ncandle will be filled. Otherwise the candle will be hollow.", + "$ref": "CandlestickSeries" + }, "openSeries": { "description": "The range data (vertical axis) for the open/initial value for each\ncandle. This is the bottom of the candle body. If less than the close\nvalue the candle will be filled. Otherwise the candle will be hollow.", "$ref": "CandlestickSeries" + }, + "highSeries": { + "description": "The range data (vertical axis) for the high/maximum value for each\ncandle. This is the top of the candle's center line.", + "$ref": "CandlestickSeries" } }, - "id": "CandlestickData", - "description": "The Candlestick chart data, each containing the low, open, close, and high\nvalues for a series.", - "type": "object" + "id": "CandlestickData" }, "EmbeddedObjectPosition": { + "type": "object", "properties": { "newSheet": { - "description": "If true, the embedded object will be put on a new sheet whose ID\nis chosen for you. Used only when writing.", - "type": "boolean" + "type": "boolean", + "description": "If true, the embedded object will be put on a new sheet whose ID\nis chosen for you. Used only when writing." + }, + "sheetId": { + "description": "The sheet this is on. Set only if the embedded object\nis on its own sheet. Must be non-negative.", + "format": "int32", + "type": "integer" }, "overlayPosition": { "$ref": "OverlayPosition", "description": "The position at which the object is overlaid on top of a grid." - }, - "sheetId": { - "format": "int32", - "description": "The sheet this is on. Set only if the embedded object\nis on its own sheet. Must be non-negative.", - "type": "integer" } }, "id": "EmbeddedObjectPosition", - "description": "The position of an embedded object such as a chart.", - "type": "object" + "description": "The position of an embedded object such as a chart." }, "DeleteProtectedRangeRequest": { - "description": "Deletes the protected range with the given ID.", "type": "object", "properties": { "protectedRangeId": { - "format": "int32", "description": "The ID of the protected range to delete.", + "format": "int32", "type": "integer" } }, - "id": "DeleteProtectedRangeRequest" + "id": "DeleteProtectedRangeRequest", + "description": "Deletes the protected range with the given ID." }, "DeveloperMetadataLookup": { - "description": "Selects DeveloperMetadata that matches all of the specified fields. For\nexample, if only a metadata ID is specified this will consider the\nDeveloperMetadata with that particular unique ID. If a metadata key is\nspecified, all developer metadata with that key will be considered. If a\nkey, visibility, and location type are all specified, then all\ndeveloper metadata with that key, visibility, and associated with a\nlocation of that type will be considered. In general, this\nselects all DeveloperMetadata that matches the intersection of all the\nspecified fields; any field or combination of fields may be specified.", "type": "object", "properties": { - "locationMatchingStrategy": { - "description": "Determines how this lookup matches the location. If this field is\nspecified as EXACT, only developer metadata associated on the exact\nlocation specified will be matched. If this field is specified to INTERSECTING,\ndeveloper metadata associated on intersecting locations will also be\nmatched. If left unspecified, this field will assume a default value of\nINTERSECTING.\nIf this field is specified, a metadataLocation\nmust also be specified.", - "type": "string", - "enumDescriptions": [ - "Default value. This value must not be used.", - "Indicates that a specified location should be matched exactly. For\nexample, if row three were specified as a location this matching strategy\nwould only match developer metadata also associated on row three. Metadata\nassociated on other locations would not be considered.", - "Indicates that a specified location should match that exact location as\nwell as any intersecting locations. For example, if row three were\nspecified as a location this matching strategy would match developer\nmetadata associated on row three as well as metadata associated on\nlocations that intersect row three. If, for instance, there was developer\nmetadata associated on column B, this matching strategy would also match\nthat location because column B intersects row three." - ], - "enum": [ - "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", - "EXACT_LOCATION", - "INTERSECTING_LOCATION" - ] - }, - "metadataLocation": { - "description": "Limits the selected developer metadata to those entries associated with\nthe specified location. This field either matches exact locations or all\nintersecting locations according the specified\nlocationMatchingStrategy.", - "$ref": "DeveloperMetadataLocation" - }, "locationType": { + "description": "Limits the selected developer metadata to those entries which are\nassociated with locations of the specified type. For example, when this\nfield is specified as ROW this lookup\nonly considers developer metadata associated on rows. If the field is left\nunspecified, all location types are considered. This field cannot be\nspecified as SPREADSHEET when\nthe locationMatchingStrategy\nis specified as INTERSECTING or when the\nmetadataLocation is specified as a\nnon-spreadsheet location: spreadsheet metadata cannot intersect any other\ndeveloper metadata location. This field also must be left unspecified when\nthe locationMatchingStrategy\nis specified as EXACT.", + "type": "string", "enumDescriptions": [ "Default value.", "Developer metadata associated on an entire row dimension.", @@ -4353,19 +3232,12 @@ "COLUMN", "SHEET", "SPREADSHEET" - ], - "description": "Limits the selected developer metadata to those entries which are\nassociated with locations of the specified type. For example, specifying\nthis as ROW will only consider\ndeveloper metadata associated on rows. If left unspecified, all location\ntypes will be considered. This field cannot be specified as\nSPREADSHEET when the\nlocationMatchingStrategy is\nspecified as INTERSECTING or when the\nmetadataLocation is specified as a\nnon-spreadsheet location: spreadsheet metadata cannot intersect any other\ndeveloper metadata location. This field also must be left unspecified when the\nlocationMatchingStrategy is\nspecified as EXACT.", - "type": "string" + ] }, "metadataKey": { "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.metadata_key.", "type": "string" }, - "metadataId": { - "format": "int32", - "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.metadata_id.", - "type": "integer" - }, "visibility": { "enumDescriptions": [ "Default value.", @@ -4377,20 +3249,47 @@ "DOCUMENT", "PROJECT" ], - "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.visibility. If left unspecified, all developer\nmetadata visibile to the requesting project will be considered.", + "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.visibility. If left unspecified, all developer\nmetadata visibile to the requesting project is considered.", "type": "string" }, + "metadataId": { + "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.metadata_id.", + "format": "int32", + "type": "integer" + }, "metadataValue": { - "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.metadata_value.", + "type": "string", + "description": "Limits the selected developer metadata to that which has a matching\nDeveloperMetadata.metadata_value." + }, + "locationMatchingStrategy": { + "enumDescriptions": [ + "Default value. This value must not be used.", + "Indicates that a specified location should be matched exactly. For\nexample, if row three were specified as a location this matching strategy\nwould only match developer metadata also associated on row three. Metadata\nassociated on other locations would not be considered.", + "Indicates that a specified location should match that exact location as\nwell as any intersecting locations. For example, if row three were\nspecified as a location this matching strategy would match developer\nmetadata associated on row three as well as metadata associated on\nlocations that intersect row three. If, for instance, there was developer\nmetadata associated on column B, this matching strategy would also match\nthat location because column B intersects row three." + ], + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "description": "Determines how this lookup matches the location. If this field is\nspecified as EXACT, only developer metadata associated on the exact\nlocation specified is matched. If this field is specified to INTERSECTING,\ndeveloper metadata associated on intersecting locations is also\nmatched. If left unspecified, this field assumes a default value of\nINTERSECTING.\nIf this field is specified, a metadataLocation\nmust also be specified.", "type": "string" + }, + "metadataLocation": { + "$ref": "DeveloperMetadataLocation", + "description": "Limits the selected developer metadata to those entries associated with\nthe specified location. This field either matches exact locations or all\nintersecting locations according the specified\nlocationMatchingStrategy." } }, - "id": "DeveloperMetadataLookup" + "id": "DeveloperMetadataLookup", + "description": "Selects DeveloperMetadata that matches all of the specified fields. For\nexample, if only a metadata ID is specified this considers the\nDeveloperMetadata with that particular unique ID. If a metadata key is\nspecified, this considers all developer metadata with that key. If a\nkey, visibility, and location type are all specified, this considers all\ndeveloper metadata with that key and visibility that are associated with a\nlocation of that type. In general, this\nselects all DeveloperMetadata that matches the intersection of all the\nspecified fields; any field or combination of fields may be specified." }, "AutoFillRequest": { - "description": "Fills in more data based on existing data.", "type": "object", "properties": { + "range": { + "description": "The range to autofill. This will examine the range and detect\nthe location that has data and automatically fill that data\nin to the rest of the range.", + "$ref": "GridRange" + }, "useAlternateSeries": { "description": "True if we should generate data with the \"alternate\" series.\nThis differs based on the type and amount of source data.", "type": "boolean" @@ -4398,32 +3297,35 @@ "sourceAndDestination": { "$ref": "SourceAndDestination", "description": "The source and destination areas to autofill.\nThis explicitly lists the source of the autofill and where to\nextend that data." - }, - "range": { - "$ref": "GridRange", - "description": "The range to autofill. This will examine the range and detect\nthe location that has data and automatically fill that data\nin to the rest of the range." } }, - "id": "AutoFillRequest" + "id": "AutoFillRequest", + "description": "Fills in more data based on existing data." }, "GradientRule": { + "description": "A rule that applies a gradient color scale format, based on\nthe interpolation points listed. The format of a cell will vary\nbased on its contents as compared to the values of the interpolation\npoints.", + "type": "object", "properties": { + "minpoint": { + "description": "The starting interpolation point.", + "$ref": "InterpolationPoint" + }, + "maxpoint": { + "$ref": "InterpolationPoint", + "description": "The final interpolation point." + }, "midpoint": { "$ref": "InterpolationPoint", "description": "An optional midway interpolation point." - }, - "maxpoint": { - "description": "The final interpolation point.", - "$ref": "InterpolationPoint" - }, - "minpoint": { - "$ref": "InterpolationPoint", - "description": "The starting interpolation point." } }, - "id": "GradientRule", - "description": "A rule that applies a gradient color scale format, based on\nthe interpolation points listed. The format of a cell will vary\nbased on its contents as compared to the values of the interpolation\npoints.", - "type": "object" + "id": "GradientRule" + }, + "ClearValuesRequest": { + "id": "ClearValuesRequest", + "description": "The request for clearing a range of values in a spreadsheet.", + "type": "object", + "properties": {} }, "SetBasicFilterRequest": { "description": "Sets the basic filter associated with a sheet.", @@ -4436,26 +3338,6 @@ }, "id": "SetBasicFilterRequest" }, - "ClearValuesRequest": { - "description": "The request for clearing a range of values in a spreadsheet.", - "type": "object", - "properties": {}, - "id": "ClearValuesRequest" - }, - "BatchClearValuesByDataFilterRequest": { - "description": "The request for clearing more than one range selected by a\nDataFilter in a spreadsheet.", - "type": "object", - "properties": { - "dataFilters": { - "description": "The DataFilters used to determine which ranges to clear.", - "items": { - "$ref": "DataFilter" - }, - "type": "array" - } - }, - "id": "BatchClearValuesByDataFilterRequest" - }, "InterpolationPoint": { "description": "A single interpolation point on a gradient conditional format.\nThese pin the gradient color scale according to the color,\ntype and value chosen.", "type": "object", @@ -4465,15 +3347,6 @@ "description": "The color this interpolation point should use." }, "type": { - "enum": [ - "INTERPOLATION_POINT_TYPE_UNSPECIFIED", - "MIN", - "MAX", - "NUMBER", - "PERCENT", - "PERCENTILE" - ], - "description": "How the value should be interpreted.", "type": "string", "enumDescriptions": [ "The default value, do not use.", @@ -4482,7 +3355,16 @@ "The interpolation point will use exactly the value in\nInterpolationPoint.value.", "The interpolation point will be the given percentage over\nall the cells in the range of the conditional format.\nThis is equivalent to NUMBER if the value was:\n`=(MAX(FLATTEN(range)) * (value / 100))\n + (MIN(FLATTEN(range)) * (1 - (value / 100)))`\n(where errors in the range are ignored when flattening).", "The interpolation point will be the given percentile\nover all the cells in the range of the conditional format.\nThis is equivalent to NUMBER if the value was:\n`=PERCENTILE(FLATTEN(range), value / 100)`\n(where errors in the range are ignored when flattening)." - ] + ], + "enum": [ + "INTERPOLATION_POINT_TYPE_UNSPECIFIED", + "MIN", + "MAX", + "NUMBER", + "PERCENT", + "PERCENTILE" + ], + "description": "How the value should be interpreted." }, "value": { "description": "The value this interpolation point uses. May be a formula.\nUnused if type is MIN or\nMAX.", @@ -4491,143 +3373,157 @@ }, "id": "InterpolationPoint" }, - "GetSpreadsheetByDataFilterRequest": { - "description": "The request for retrieving a Spreadsheet.", + "BatchClearValuesByDataFilterRequest": { + "description": "The request for clearing more than one range selected by a\nDataFilter in a spreadsheet.", "type": "object", "properties": { + "dataFilters": { + "description": "The DataFilters used to determine which ranges to clear.", + "type": "array", + "items": { + "$ref": "DataFilter" + } + } + }, + "id": "BatchClearValuesByDataFilterRequest" + }, + "GetSpreadsheetByDataFilterRequest": { + "type": "object", + "properties": { + "dataFilters": { + "description": "The DataFilters used to select which ranges to retrieve from\nthe spreadsheet.", + "type": "array", + "items": { + "$ref": "DataFilter" + } + }, "includeGridData": { "description": "True if grid data should be returned.\nThis parameter is ignored if a field mask was set in the request.", "type": "boolean" - }, - "dataFilters": { - "description": "The DataFilters used to select which ranges to retrieve from\nthe spreadsheet.", - "items": { - "$ref": "DataFilter" - }, - "type": "array" } }, - "id": "GetSpreadsheetByDataFilterRequest" + "id": "GetSpreadsheetByDataFilterRequest", + "description": "The request for retrieving a Spreadsheet." }, "DeleteEmbeddedObjectRequest": { - "description": "Deletes the embedded object with the given ID.", - "type": "object", "properties": { "objectId": { - "format": "int32", "description": "The ID of the embedded object to delete.", + "format": "int32", "type": "integer" } }, - "id": "DeleteEmbeddedObjectRequest" + "id": "DeleteEmbeddedObjectRequest", + "description": "Deletes the embedded object with the given ID.", + "type": "object" }, "FindReplaceResponse": { "description": "The result of the find/replace.", "type": "object", "properties": { - "sheetsChanged": { - "format": "int32", - "description": "The number of sheets changed.", - "type": "integer" - }, - "formulasChanged": { - "format": "int32", - "description": "The number of formula cells changed.", - "type": "integer" - }, "valuesChanged": { - "format": "int32", "description": "The number of non-formula cells changed.", + "format": "int32", "type": "integer" }, "occurrencesChanged": { - "format": "int32", "description": "The number of occurrences (possibly multiple within a cell) changed.\nFor example, if replacing `\"e\"` with `\"o\"` in `\"Google Sheets\"`, this would\nbe `\"3\"` because `\"Google Sheets\"` -\u003e `\"Googlo Shoots\"`.", + "format": "int32", "type": "integer" }, "rowsChanged": { - "format": "int32", "description": "The number of rows changed.", + "format": "int32", + "type": "integer" + }, + "sheetsChanged": { + "description": "The number of sheets changed.", + "format": "int32", + "type": "integer" + }, + "formulasChanged": { + "description": "The number of formula cells changed.", + "format": "int32", "type": "integer" } }, "id": "FindReplaceResponse" }, "UpdateValuesByDataFilterResponse": { + "type": "object", "properties": { - "updatedRange": { - "description": "The range (in A1 notation) that updates were applied to.", - "type": "string" - }, "updatedCells": { - "format": "int32", "description": "The number of cells updated.", + "format": "int32", "type": "integer" }, "dataFilter": { "$ref": "DataFilter", "description": "The data filter that selected the range that was updated." }, + "updatedRows": { + "description": "The number of rows where at least one cell in the row was updated.", + "format": "int32", + "type": "integer" + }, "updatedData": { "$ref": "ValueRange", "description": "The values of the cells in the range matched by the dataFilter after all\nupdates were applied. This is only included if the request's\n`includeValuesInResponse` field was `true`." }, - "updatedRows": { + "updatedColumns": { + "description": "The number of columns where at least one cell in the column was updated.", "format": "int32", - "description": "The number of rows where at least one cell in the row was updated.", "type": "integer" }, - "updatedColumns": { - "format": "int32", - "description": "The number of columns where at least one cell in the column was updated.", - "type": "integer" + "updatedRange": { + "description": "The range (in A1 notation) that updates were applied to.", + "type": "string" } }, "id": "UpdateValuesByDataFilterResponse", - "description": "The response when updating a range of values by a data filter in a\nspreadsheet.", - "type": "object" + "description": "The response when updating a range of values by a data filter in a\nspreadsheet." }, "DeleteSheetRequest": { "description": "Deletes the requested sheet.", "type": "object", "properties": { "sheetId": { - "format": "int32", "description": "The ID of the sheet to delete.", + "format": "int32", "type": "integer" } }, "id": "DeleteSheetRequest" }, "DuplicateFilterViewRequest": { - "description": "Duplicates a particular filter view.", "type": "object", "properties": { "filterId": { - "format": "int32", "description": "The ID of the filter being duplicated.", + "format": "int32", "type": "integer" } }, - "id": "DuplicateFilterViewRequest" + "id": "DuplicateFilterViewRequest", + "description": "Duplicates a particular filter view." }, "MatchedValueRange": { - "description": "A value range that was matched by one or more data filers.", - "type": "object", "properties": { "valueRange": { - "$ref": "ValueRange", - "description": "The values matched by the DataFilter." + "description": "The values matched by the DataFilter.", + "$ref": "ValueRange" }, "dataFilters": { "description": "The DataFilters from the request that matched the range of\nvalues.", + "type": "array", "items": { "$ref": "DataFilter" - }, - "type": "array" + } } }, - "id": "MatchedValueRange" + "id": "MatchedValueRange", + "description": "A value range that was matched by one or more data filers.", + "type": "object" }, "DeveloperMetadataLocation": { "description": "A location where metadata may be associated in a spreadsheet.", @@ -4637,18 +3533,16 @@ "description": "Represents the row or column when metadata is associated with\na dimension. The specified DimensionRange must represent a single row\nor column; it cannot be unbounded or span multiple rows or columns.", "$ref": "DimensionRange" }, - "sheetId": { - "format": "int32", - "description": "The ID of the sheet when metadata is associated with an entire sheet.", - "type": "integer" - }, "spreadsheet": { "description": "True when metadata is associated with an entire spreadsheet.", "type": "boolean" }, + "sheetId": { + "description": "The ID of the sheet when metadata is associated with an entire sheet.", + "format": "int32", + "type": "integer" + }, "locationType": { - "description": "The type of location this object represents. This field is read-only.", - "type": "string", "enumDescriptions": [ "Default value.", "Developer metadata associated on an entire row dimension.", @@ -4662,54 +3556,44 @@ "COLUMN", "SHEET", "SPREADSHEET" - ] + ], + "description": "The type of location this object represents. This field is read-only.", + "type": "string" } }, "id": "DeveloperMetadataLocation" }, "UpdateConditionalFormatRuleResponse": { - "description": "The result of updating a conditional format rule.", "type": "object", "properties": { + "oldRule": { + "$ref": "ConditionalFormatRule", + "description": "The old (deleted) rule. Not set if a rule was moved\n(because it is the same as new_rule)." + }, "newIndex": { - "format": "int32", "description": "The index of the new rule.", + "format": "int32", + "type": "integer" + }, + "oldIndex": { + "description": "The old index of the rule. Not set if a rule was replaced\n(because it is the same as new_index).", + "format": "int32", "type": "integer" }, "newRule": { - "$ref": "ConditionalFormatRule", - "description": "The new rule that replaced the old rule (if replacing),\nor the rule that was moved (if moved)" - }, - "oldIndex": { - "format": "int32", - "description": "The old index of the rule. Not set if a rule was replaced\n(because it is the same as new_index).", - "type": "integer" - }, - "oldRule": { - "description": "The old (deleted) rule. Not set if a rule was moved\n(because it is the same as new_rule).", + "description": "The new rule that replaced the old rule (if replacing),\nor the rule that was moved (if moved)", "$ref": "ConditionalFormatRule" } }, - "id": "UpdateConditionalFormatRuleResponse" + "id": "UpdateConditionalFormatRuleResponse", + "description": "The result of updating a conditional format rule." }, "ConditionValue": { + "id": "ConditionValue", "description": "The value of the condition.", "type": "object", "properties": { - "userEnteredValue": { - "description": "A value the condition is based on.\nThe value will be parsed as if the user typed into a cell.\nFormulas are supported (and must begin with an `=`).", - "type": "string" - }, "relativeDate": { - "enum": [ - "RELATIVE_DATE_UNSPECIFIED", - "PAST_YEAR", - "PAST_MONTH", - "PAST_WEEK", - "YESTERDAY", - "TODAY", - "TOMORROW" - ], "description": "A relative date (based on the current date).\nValid only if the type is\nDATE_BEFORE,\nDATE_AFTER,\nDATE_ON_OR_BEFORE or\nDATE_ON_OR_AFTER.\n\nRelative dates are not supported in data validation.\nThey are supported only in conditional formatting and\nconditional filters.", "type": "string", "enumDescriptions": [ @@ -4720,32 +3604,44 @@ "The value is yesterday.", "The value is today.", "The value is tomorrow." + ], + "enum": [ + "RELATIVE_DATE_UNSPECIFIED", + "PAST_YEAR", + "PAST_MONTH", + "PAST_WEEK", + "YESTERDAY", + "TODAY", + "TOMORROW" ] + }, + "userEnteredValue": { + "description": "A value the condition is based on.\nThe value will be parsed as if the user typed into a cell.\nFormulas are supported (and must begin with an `=`).", + "type": "string" } - }, - "id": "ConditionValue" + } }, "DuplicateSheetRequest": { "description": "Duplicates the contents of a sheet.", "type": "object", "properties": { "newSheetId": { - "format": "int32", "description": "If set, the ID of the new sheet. If not set, an ID is chosen.\nIf set, the ID must not conflict with any existing sheet ID.\nIf set, it must be non-negative.", + "format": "int32", "type": "integer" }, "insertSheetIndex": { - "format": "int32", "description": "The zero-based index where the new sheet should be inserted.\nThe index of all sheets after this are incremented.", + "format": "int32", "type": "integer" }, "newSheetName": { - "description": "The name of the new sheet. If empty, a new name is chosen for you.", - "type": "string" + "type": "string", + "description": "The name of the new sheet. If empty, a new name is chosen for you." }, "sourceSheetId": { - "format": "int32", "description": "The sheet to duplicate.", + "format": "int32", "type": "integer" } }, @@ -4755,26 +3651,26 @@ "description": "The kinds of value that a cell in a spreadsheet can have.", "type": "object", "properties": { - "formulaValue": { - "description": "Represents a formula.", + "errorValue": { + "$ref": "ErrorValue", + "description": "Represents an error.\nThis field is read-only." + }, + "stringValue": { + "description": "Represents a string value.\nLeading single quotes are not included. For example, if the user typed\n`'123` into the UI, this would be represented as a `stringValue` of\n`\"123\"`.", "type": "string" }, "boolValue": { "description": "Represents a boolean value.", "type": "boolean" }, - "stringValue": { - "description": "Represents a string value.\nLeading single quotes are not included. For example, if the user typed\n`'123` into the UI, this would be represented as a `stringValue` of\n`\"123\"`.", + "formulaValue": { + "description": "Represents a formula.", "type": "string" }, "numberValue": { - "format": "double", + "type": "number", "description": "Represents a double value.\nNote: Dates, Times and DateTimes are represented as doubles in\n\"serial number\" format.", - "type": "number" - }, - "errorValue": { - "description": "Represents an error.\nThis field is read-only.", - "$ref": "ErrorValue" + "format": "double" } }, "id": "ExtendedValue" @@ -4783,22 +3679,22 @@ "description": "A banded (alternating colors) range in a sheet.", "type": "object", "properties": { - "range": { - "description": "The range over which these properties are applied.", - "$ref": "GridRange" - }, - "bandedRangeId": { - "format": "int32", - "description": "The id of the banded range.", - "type": "integer" + "rowProperties": { + "description": "Properties for row bands. These properties will be applied on a row-by-row\nbasis throughout all the rows in the range. At least one of\nrow_properties or column_properties must be specified.", + "$ref": "BandingProperties" }, "columnProperties": { "$ref": "BandingProperties", "description": "Properties for column bands. These properties will be applied on a column-\nby-column basis throughout all the columns in the range. At least one of\nrow_properties or column_properties must be specified." }, - "rowProperties": { - "$ref": "BandingProperties", - "description": "Properties for row bands. These properties will be applied on a row-by-row\nbasis throughout all the rows in the range. At least one of\nrow_properties or column_properties must be specified." + "range": { + "description": "The range over which these properties are applied.", + "$ref": "GridRange" + }, + "bandedRangeId": { + "description": "The id of the banded range.", + "format": "int32", + "type": "integer" } }, "id": "BandedRange" @@ -4808,18 +3704,17 @@ "type": "object", "properties": { "barColor": { - "description": "The color of the column representing this series in each bucket.\nThis field is optional.", - "$ref": "Color" + "$ref": "Color", + "description": "The color of the column representing this series in each bucket.\nThis field is optional." }, "data": { - "description": "The data for this histogram series.", - "$ref": "ChartData" + "$ref": "ChartData", + "description": "The data for this histogram series." } }, "id": "HistogramSeries" }, "BatchClearValuesResponse": { - "description": "The response when clearing a range of values in a spreadsheet.", "type": "object", "properties": { "spreadsheetId": { @@ -4827,117 +3722,114 @@ "type": "string" }, "clearedRanges": { - "description": "The ranges that were cleared, in A1 notation.\n(If the requests were for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual ranges\n that were cleared, bounded to the sheet's limits.)", + "type": "array", "items": { "type": "string" }, - "type": "array" + "description": "The ranges that were cleared, in A1 notation.\n(If the requests were for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual ranges\n that were cleared, bounded to the sheet's limits.)" } }, - "id": "BatchClearValuesResponse" + "id": "BatchClearValuesResponse", + "description": "The response when clearing a range of values in a spreadsheet." }, "Spreadsheet": { - "description": "Resource that represents a spreadsheet.", - "type": "object", "properties": { + "sheets": { + "description": "The sheets that are part of a spreadsheet.", + "type": "array", + "items": { + "$ref": "Sheet" + } + }, + "spreadsheetUrl": { + "description": "The url of the spreadsheet.\nThis field is read-only.", + "type": "string" + }, "properties": { "$ref": "SpreadsheetProperties", "description": "Overall properties of a spreadsheet." }, - "namedRanges": { - "description": "The named ranges defined in a spreadsheet.", - "items": { - "$ref": "NamedRange" - }, - "type": "array" - }, "spreadsheetId": { "description": "The ID of the spreadsheet.\nThis field is read-only.", "type": "string" }, + "namedRanges": { + "description": "The named ranges defined in a spreadsheet.", + "type": "array", + "items": { + "$ref": "NamedRange" + } + }, "developerMetadata": { "description": "The developer metadata associated with a spreadsheet.", + "type": "array", "items": { "$ref": "DeveloperMetadata" - }, - "type": "array" - }, - "sheets": { - "description": "The sheets that are part of a spreadsheet.", - "items": { - "$ref": "Sheet" - }, - "type": "array" - }, - "spreadsheetUrl": { - "description": "The url of the spreadsheet.\nThis field is read-only.", - "type": "string" + } } }, - "id": "Spreadsheet" + "id": "Spreadsheet", + "description": "Resource that represents a spreadsheet.", + "type": "object" }, "AddChartRequest": { - "description": "Adds a chart to a sheet in the spreadsheet.", "type": "object", "properties": { "chart": { - "description": "The chart that should be added to the spreadsheet, including the position\nwhere it should be placed. The chartId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a chart that already exists.)", - "$ref": "EmbeddedChart" + "$ref": "EmbeddedChart", + "description": "The chart that should be added to the spreadsheet, including the position\nwhere it should be placed. The chartId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a chart that already exists.)" } }, - "id": "AddChartRequest" + "id": "AddChartRequest", + "description": "Adds a chart to a sheet in the spreadsheet." }, "UpdateProtectedRangeRequest": { "description": "Updates an existing protected range with the specified\nprotectedRangeId.", "type": "object", "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated. At least one field must be specified.\nThe root `protectedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", - "type": "string" - }, "protectedRange": { "description": "The protected range to update with the new properties.", "$ref": "ProtectedRange" + }, + "fields": { + "description": "The fields that should be updated. At least one field must be specified.\nThe root `protectedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", + "type": "string" } }, "id": "UpdateProtectedRangeRequest" }, "DataFilter": { + "description": "Filter that describes what data should be selected or returned from a\nrequest.", + "type": "object", "properties": { + "gridRange": { + "$ref": "GridRange", + "description": "Selects data that matches the range described by the GridRange." + }, + "developerMetadataLookup": { + "description": "Selects data associated with the developer metadata matching the criteria\ndescribed by this DeveloperMetadataLookup.", + "$ref": "DeveloperMetadataLookup" + }, "a1Range": { "description": "Selects data that matches the specified A1 range.", "type": "string" - }, - "gridRange": { - "description": "Selects data that matches the range described by the GridRange.", - "$ref": "GridRange" - }, - "developerMetadataLookup": { - "$ref": "DeveloperMetadataLookup", - "description": "Selects data associated with the developer metadata matching the criteria\ndescribed by this DeveloperMetadataLookup." } }, - "id": "DataFilter", - "description": "Filter that describes what data should be selected or returned from a\nrequest.", - "type": "object" + "id": "DataFilter" }, "TextFormat": { "description": "The format of a run of text in a cell.\nAbsent values indicate that the field isn't specified.", "type": "object", "properties": { - "underline": { - "description": "True if the text is underlined.", - "type": "boolean" + "foregroundColor": { + "$ref": "Color", + "description": "The foreground color of the text." }, "bold": { "description": "True if the text is bold.", "type": "boolean" }, - "foregroundColor": { - "description": "The foreground color of the text.", - "$ref": "Color" - }, "fontFamily": { "description": "The font family.", "type": "string" @@ -4951,9 +3843,13 @@ "type": "boolean" }, "fontSize": { - "format": "int32", "description": "The size of the font.", + "format": "int32", "type": "integer" + }, + "underline": { + "description": "True if the text is underlined.", + "type": "boolean" } }, "id": "TextFormat" @@ -4963,8 +3859,8 @@ "type": "object", "properties": { "properties": { - "description": "The properties of the newly added sheet.", - "$ref": "SheetProperties" + "$ref": "SheetProperties", + "description": "The properties of the newly added sheet." } }, "id": "AddSheetResponse" @@ -4985,24 +3881,51 @@ "type": "object", "properties": { "convergenceThreshold": { - "format": "double", "description": "When iterative calculation is enabled and successive results differ by\nless than this threshold value, the calculation rounds stop.", + "format": "double", "type": "number" }, "maxIterations": { - "format": "int32", "description": "When iterative calculation is enabled, the maximum number of calculation\nrounds to perform.", + "format": "int32", "type": "integer" } }, "id": "IterativeCalculationSettings" }, + "OverlayPosition": { + "properties": { + "offsetYPixels": { + "description": "The vertical offset, in pixels, that the object is offset\nfrom the anchor cell.", + "format": "int32", + "type": "integer" + }, + "heightPixels": { + "description": "The height of the object, in pixels. Defaults to 371.", + "format": "int32", + "type": "integer" + }, + "widthPixels": { + "description": "The width of the object, in pixels. Defaults to 600.", + "format": "int32", + "type": "integer" + }, + "offsetXPixels": { + "description": "The horizontal offset, in pixels, that the object is offset\nfrom the anchor cell.", + "format": "int32", + "type": "integer" + }, + "anchorCell": { + "$ref": "GridCoordinate", + "description": "The cell the object is anchored to." + } + }, + "id": "OverlayPosition", + "description": "The location an object is overlaid on top of a grid.", + "type": "object" + }, "SpreadsheetProperties": { "properties": { - "iterativeCalculationSettings": { - "$ref": "IterativeCalculationSettings", - "description": "Determines whether and how circular references are resolved with iterative\ncalculation. Absence of this field means that circular references will\nresult in calculation errors." - }, "autoRecalc": { "enumDescriptions": [ "Default value. This value must not be used.", @@ -5020,8 +3943,8 @@ "type": "string" }, "defaultFormat": { - "$ref": "CellFormat", - "description": "The default format of all cells in the spreadsheet.\nCellData.effectiveFormat will not be set if the\ncell's format is equal to this default format.\nThis field is read-only." + "description": "The default format of all cells in the spreadsheet.\nCellData.effectiveFormat will not be set if the\ncell's format is equal to this default format.\nThis field is read-only.", + "$ref": "CellFormat" }, "title": { "description": "The title of the spreadsheet.", @@ -5034,101 +3957,74 @@ "locale": { "description": "The locale of the spreadsheet in one of the following formats:\n\n* an ISO 639-1 language code such as `en`\n\n* an ISO 639-2 language code such as `fil`, if no 639-1 code exists\n\n* a combination of the ISO language code and country code, such as `en_US`\n\nNote: when updating this field, not all locales/languages are supported.", "type": "string" + }, + "iterativeCalculationSettings": { + "description": "Determines whether and how circular references are resolved with iterative\ncalculation. Absence of this field means that circular references will\nresult in calculation errors.", + "$ref": "IterativeCalculationSettings" } }, "id": "SpreadsheetProperties", "description": "Properties of a spreadsheet.", "type": "object" }, - "OverlayPosition": { - "description": "The location an object is overlaid on top of a grid.", - "type": "object", - "properties": { - "widthPixels": { - "format": "int32", - "description": "The width of the object, in pixels. Defaults to 600.", - "type": "integer" - }, - "offsetXPixels": { - "format": "int32", - "description": "The horizontal offset, in pixels, that the object is offset\nfrom the anchor cell.", - "type": "integer" - }, - "anchorCell": { - "description": "The cell the object is anchored to.", - "$ref": "GridCoordinate" - }, - "heightPixels": { - "format": "int32", - "description": "The height of the object, in pixels. Defaults to 371.", - "type": "integer" - }, - "offsetYPixels": { - "format": "int32", - "description": "The vertical offset, in pixels, that the object is offset\nfrom the anchor cell.", - "type": "integer" - } - }, - "id": "OverlayPosition" - }, "RepeatCellRequest": { - "description": "Updates all cells in the range to the values in the given Cell object.\nOnly the fields listed in the fields field are updated; others are\nunchanged.\n\nIf writing a cell with a formula, the formula's ranges will automatically\nincrement for each field in the range.\nFor example, if writing a cell with formula `=A1` into range B2:C4,\nB2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`,\nC2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`.\n\nTo keep the formula's ranges static, use the `$` indicator.\nFor example, use the formula `=$A$1` to prevent both the row and the\ncolumn from incrementing.", - "type": "object", "properties": { - "range": { - "description": "The range to repeat the cell in.", - "$ref": "GridRange" - }, "fields": { - "format": "google-fieldmask", "description": "The fields that should be updated. At least one field must be specified.\nThe root `cell` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", "type": "string" }, "cell": { - "$ref": "CellData", - "description": "The data to write." + "description": "The data to write.", + "$ref": "CellData" + }, + "range": { + "$ref": "GridRange", + "description": "The range to repeat the cell in." } }, - "id": "RepeatCellRequest" + "id": "RepeatCellRequest", + "description": "Updates all cells in the range to the values in the given Cell object.\nOnly the fields listed in the fields field are updated; others are\nunchanged.\n\nIf writing a cell with a formula, the formula's ranges will automatically\nincrement for each field in the range.\nFor example, if writing a cell with formula `=A1` into range B2:C4,\nB2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`,\nC2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`.\n\nTo keep the formula's ranges static, use the `$` indicator.\nFor example, use the formula `=$A$1` to prevent both the row and the\ncolumn from incrementing.", + "type": "object" }, "AddChartResponse": { "description": "The result of adding a chart to a spreadsheet.", "type": "object", "properties": { "chart": { - "description": "The newly added chart.", - "$ref": "EmbeddedChart" + "$ref": "EmbeddedChart", + "description": "The newly added chart." } }, "id": "AddChartResponse" }, "InsertDimensionRequest": { + "id": "InsertDimensionRequest", + "description": "Inserts rows or columns in a sheet at a particular index.", + "type": "object", "properties": { - "inheritFromBefore": { - "description": "Whether dimension properties should be extended from the dimensions\nbefore or after the newly inserted dimensions.\nTrue to inherit from the dimensions before (in which case the start\nindex must be greater than 0), and false to inherit from the dimensions\nafter.\n\nFor example, if row index 0 has red background and row index 1\nhas a green background, then inserting 2 rows at index 1 can inherit\neither the green or red background. If `inheritFromBefore` is true,\nthe two new rows will be red (because the row before the insertion point\nwas red), whereas if `inheritFromBefore` is false, the two new rows will\nbe green (because the row after the insertion point was green).", - "type": "boolean" - }, "range": { "$ref": "DimensionRange", "description": "The dimensions to insert. Both the start and end indexes must be bounded." + }, + "inheritFromBefore": { + "description": "Whether dimension properties should be extended from the dimensions\nbefore or after the newly inserted dimensions.\nTrue to inherit from the dimensions before (in which case the start\nindex must be greater than 0), and false to inherit from the dimensions\nafter.\n\nFor example, if row index 0 has red background and row index 1\nhas a green background, then inserting 2 rows at index 1 can inherit\neither the green or red background. If `inheritFromBefore` is true,\nthe two new rows will be red (because the row before the insertion point\nwas red), whereas if `inheritFromBefore` is false, the two new rows will\nbe green (because the row after the insertion point was green).", + "type": "boolean" } - }, - "id": "InsertDimensionRequest", - "description": "Inserts rows or columns in a sheet at a particular index.", - "type": "object" + } }, "UpdateSpreadsheetPropertiesRequest": { "description": "Updates properties of a spreadsheet.", "type": "object", "properties": { "fields": { - "format": "google-fieldmask", "description": "The fields that should be updated. At least one field must be specified.\nThe root 'properties' is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", "type": "string" }, "properties": { - "description": "The properties to update.", - "$ref": "SpreadsheetProperties" + "$ref": "SpreadsheetProperties", + "description": "The properties to update." } }, "id": "UpdateSpreadsheetPropertiesRequest" @@ -5137,29 +4033,9 @@ "description": "A protected range.", "type": "object", "properties": { - "description": { - "description": "The description of this protected range.", - "type": "string" - }, - "unprotectedRanges": { - "description": "The list of unprotected ranges within a protected sheet.\nUnprotected ranges are only supported on protected sheets.", - "items": { - "$ref": "GridRange" - }, - "type": "array" - }, - "namedRangeId": { - "description": "The named range this protected range is backed by, if any.\n\nWhen writing, only one of range or named_range_id\nmay be set.", - "type": "string" - }, - "protectedRangeId": { - "format": "int32", - "description": "The ID of the protected range.\nThis field is read-only.", - "type": "integer" - }, "warningOnly": { - "description": "True if this protected range will show a warning when editing.\nWarning-based protection means that every user can edit data in the\nprotected range, except editing will prompt a warning asking the user\nto confirm the edit.\n\nWhen writing: if this field is true, then editors is ignored.\nAdditionally, if this field is changed from true to false and the\n`editors` field is not set (nor included in the field mask), then\nthe editors will be set to all the editors in the document.", - "type": "boolean" + "type": "boolean", + "description": "True if this protected range will show a warning when editing.\nWarning-based protection means that every user can edit data in the\nprotected range, except editing will prompt a warning asking the user\nto confirm the edit.\n\nWhen writing: if this field is true, then editors is ignored.\nAdditionally, if this field is changed from true to false and the\n`editors` field is not set (nor included in the field mask), then\nthe editors will be set to all the editors in the document." }, "requestingUserCanEdit": { "description": "True if the user who requested this protected range can edit the\nprotected area.\nThis field is read-only.", @@ -5172,17 +4048,34 @@ "editors": { "$ref": "Editors", "description": "The users and groups with edit access to the protected range.\nThis field is only visible to users with edit access to the protected\nrange and the document.\nEditors are not supported with warning_only protection." + }, + "description": { + "description": "The description of this protected range.", + "type": "string" + }, + "unprotectedRanges": { + "description": "The list of unprotected ranges within a protected sheet.\nUnprotected ranges are only supported on protected sheets.", + "type": "array", + "items": { + "$ref": "GridRange" + } + }, + "namedRangeId": { + "type": "string", + "description": "The named range this protected range is backed by, if any.\n\nWhen writing, only one of range or named_range_id\nmay be set." + }, + "protectedRangeId": { + "type": "integer", + "description": "The ID of the protected range.\nThis field is read-only.", + "format": "int32" } }, "id": "ProtectedRange" }, "BatchUpdateValuesRequest": { - "description": "The request for updating more than one range of values in a spreadsheet.", "type": "object", "properties": { "responseValueRenderOption": { - "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", - "type": "string", "enumDescriptions": [ "Values will be calculated & formatted in the reply according to the\ncell's formatting. Formatting is based on the spreadsheet's locale,\nnot the requesting user's locale.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return `\"$1.23\"`.", "Values will be calculated, but not formatted in the reply.\nFor example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency,\nthen `A2` would return the number `1.23`.", @@ -5192,20 +4085,17 @@ "FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA" - ] + ], + "description": "Determines how values in the response should be rendered.\nThe default render option is ValueRenderOption.FORMATTED_VALUE.", + "type": "string" }, "includeValuesInResponse": { "description": "Determines if the update response should include the values\nof the cells that were updated. By default, responses\ndo not include the updated values. The `updatedData` field within\neach of the BatchUpdateValuesResponse.responses will contain\nthe updated values. If the range to write was larger than than the range\nactually written, the response will include all values in the requested\nrange (excluding trailing empty rows and columns).", "type": "boolean" }, - "data": { - "description": "The new values to apply to the spreadsheet.", - "items": { - "$ref": "ValueRange" - }, - "type": "array" - }, "valueInputOption": { + "description": "How the input data should be interpreted.", + "type": "string", "enumDescriptions": [ "Default input value. This value must not be used.", "The values the user has entered will not be parsed and will be stored\nas-is.", @@ -5215,48 +4105,54 @@ "INPUT_VALUE_OPTION_UNSPECIFIED", "RAW", "USER_ENTERED" - ], - "description": "How the input data should be interpreted.", - "type": "string" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "ValueRange" + }, + "description": "The new values to apply to the spreadsheet." }, "responseDateTimeRenderOption": { + "enumDescriptions": [ + "Instructs date, time, datetime, and duration fields to be output\nas doubles in \"serial number\" format, as popularized by Lotus 1-2-3.\nThe whole number portion of the value (left of the decimal) counts\nthe days since December 30th 1899. The fractional portion (right of\nthe decimal) counts the time as a fraction of the day. For example,\nJanuary 1st 1900 at noon would be 2.5, 2 because it's 2 days after\nDecember 30st 1899, and .5 because noon is half a day. February 1st\n1900 at 3pm would be 33.625. This correctly treats the year 1900 as\nnot a leap year.", + "Instructs date, time, datetime, and duration fields to be output\nas strings in their given number format (which is dependent\non the spreadsheet locale)." + ], "enum": [ "SERIAL_NUMBER", "FORMATTED_STRING" ], "description": "Determines how dates, times, and durations in the response should be\nrendered. This is ignored if response_value_render_option is\nFORMATTED_VALUE.\nThe default dateTime render option is\nDateTimeRenderOption.SERIAL_NUMBER.", - "type": "string", - "enumDescriptions": [ - "Instructs date, time, datetime, and duration fields to be output\nas doubles in \"serial number\" format, as popularized by Lotus 1-2-3.\nThe whole number portion of the value (left of the decimal) counts\nthe days since December 30th 1899. The fractional portion (right of\nthe decimal) counts the time as a fraction of the day. For example,\nJanuary 1st 1900 at noon would be 2.5, 2 because it's 2 days after\nDecember 30st 1899, and .5 because noon is half a day. February 1st\n1900 at 3pm would be 33.625. This correctly treats the year 1900 as\nnot a leap year.", - "Instructs date, time, datetime, and duration fields to be output\nas strings in their given number format (which is dependent\non the spreadsheet locale)." - ] + "type": "string" } }, - "id": "BatchUpdateValuesRequest" + "id": "BatchUpdateValuesRequest", + "description": "The request for updating more than one range of values in a spreadsheet." }, "DimensionProperties": { "description": "Properties about a dimension.", "type": "object", "properties": { "pixelSize": { - "format": "int32", "description": "The height (if a row) or width (if a column) of the dimension in pixels.", + "format": "int32", "type": "integer" }, - "hiddenByUser": { - "description": "True if this dimension is explicitly hidden.", - "type": "boolean" - }, "hiddenByFilter": { "description": "True if this dimension is being filtered.\nThis field is read-only.", "type": "boolean" }, + "hiddenByUser": { + "description": "True if this dimension is explicitly hidden.", + "type": "boolean" + }, "developerMetadata": { "description": "The developer metadata associated with a single row or column.", + "type": "array", "items": { "$ref": "DeveloperMetadata" - }, - "type": "array" + } } }, "id": "DimensionProperties" @@ -5265,10 +4161,6 @@ "description": "A named range.", "type": "object", "properties": { - "name": { - "description": "The name of the named range.", - "type": "string" - }, "namedRangeId": { "description": "The ID of the named range.", "type": "string" @@ -5276,6 +4168,10 @@ "range": { "$ref": "GridRange", "description": "The range this represents." + }, + "name": { + "description": "The name of the named range.", + "type": "string" } }, "id": "NamedRange" @@ -5284,19 +4180,19 @@ "description": "A range along a single dimension on a sheet.\nAll indexes are zero-based.\nIndexes are half open: the start index is inclusive\nand the end index is exclusive.\nMissing indexes indicate the range is unbounded on that side.", "type": "object", "properties": { - "endIndex": { + "startIndex": { + "description": "The start (inclusive) of the span, or not set if unbounded.", "format": "int32", - "description": "The end (exclusive) of the span, or not set if unbounded.", "type": "integer" }, - "startIndex": { + "endIndex": { + "description": "The end (exclusive) of the span, or not set if unbounded.", "format": "int32", - "description": "The start (inclusive) of the span, or not set if unbounded.", "type": "integer" }, "sheetId": { - "format": "int32", "description": "The sheet this span is on.", + "format": "int32", "type": "integer" }, "dimension": { @@ -5318,9 +4214,9 @@ }, "CutPasteRequest": { "properties": { - "destination": { - "$ref": "GridCoordinate", - "description": "The top-left coordinate where the data should be pasted." + "source": { + "$ref": "GridRange", + "description": "The source data to cut." }, "pasteType": { "description": "What kind of data to paste. All the source data will be cut, regardless\nof what is pasted.", @@ -5344,21 +4240,1183 @@ "PASTE_CONDITIONAL_FORMATTING" ] }, - "source": { - "$ref": "GridRange", - "description": "The source data to cut." + "destination": { + "$ref": "GridCoordinate", + "description": "The top-left coordinate where the data should be pasted." } }, "id": "CutPasteRequest", "description": "Moves data from the source to the destination.", "type": "object" + }, + "BasicChartSeries": { + "description": "A single series of data in a chart.\nFor example, if charting stock prices over time, multiple series may exist,\none for the \"Open Price\", \"High Price\", \"Low Price\" and \"Close Price\".", + "type": "object", + "properties": { + "series": { + "description": "The data being visualized in this chart series.", + "$ref": "ChartData" + }, + "type": { + "enumDescriptions": [ + "Default value, do not use.", + "A \u003ca href=\"/chart/interactive/docs/gallery/barchart\"\u003ebar chart\u003c/a\u003e.", + "A \u003ca href=\"/chart/interactive/docs/gallery/linechart\"\u003eline chart\u003c/a\u003e.", + "An \u003ca href=\"/chart/interactive/docs/gallery/areachart\"\u003earea chart\u003c/a\u003e.", + "A \u003ca href=\"/chart/interactive/docs/gallery/columnchart\"\u003ecolumn chart\u003c/a\u003e.", + "A \u003ca href=\"/chart/interactive/docs/gallery/scatterchart\"\u003escatter chart\u003c/a\u003e.", + "A \u003ca href=\"/chart/interactive/docs/gallery/combochart\"\u003ecombo chart\u003c/a\u003e.", + "A \u003ca href=\"/chart/interactive/docs/gallery/steppedareachart\"\u003estepped area chart\u003c/a\u003e." + ], + "enum": [ + "BASIC_CHART_TYPE_UNSPECIFIED", + "BAR", + "LINE", + "AREA", + "COLUMN", + "SCATTER", + "COMBO", + "STEPPED_AREA" + ], + "description": "The type of this series. Valid only if the\nchartType is\nCOMBO.\nDifferent types will change the way the series is visualized.\nOnly LINE, AREA,\nand COLUMN are supported.", + "type": "string" + }, + "targetAxis": { + "type": "string", + "enumDescriptions": [ + "Default value, do not use.", + "The axis rendered at the bottom of a chart.\nFor most charts, this is the standard major axis.\nFor bar charts, this is a minor axis.", + "The axis rendered at the left of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is the standard major axis.", + "The axis rendered at the right of a chart.\nFor most charts, this is a minor axis.\nFor bar charts, this is an unusual major axis." + ], + "enum": [ + "BASIC_CHART_AXIS_POSITION_UNSPECIFIED", + "BOTTOM_AXIS", + "LEFT_AXIS", + "RIGHT_AXIS" + ], + "description": "The minor axis that will specify the range of values for this series.\nFor example, if charting stocks over time, the \"Volume\" series\nmay want to be pinned to the right with the prices pinned to the left,\nbecause the scale of trading volume is different than the scale of\nprices.\nIt is an error to specify an axis that isn't a valid minor axis\nfor the chart's type." + } + }, + "id": "BasicChartSeries" + }, + "Borders": { + "description": "The borders of the cell.", + "type": "object", + "properties": { + "left": { + "description": "The left border of the cell.", + "$ref": "Border" + }, + "right": { + "description": "The right border of the cell.", + "$ref": "Border" + }, + "bottom": { + "$ref": "Border", + "description": "The bottom border of the cell." + }, + "top": { + "description": "The top border of the cell.", + "$ref": "Border" + } + }, + "id": "Borders" + }, + "AutoResizeDimensionsRequest": { + "description": "Automatically resizes one or more dimensions based on the contents\nof the cells in that dimension.", + "type": "object", + "properties": { + "dimensions": { + "$ref": "DimensionRange", + "description": "The dimensions to automatically resize." + } + }, + "id": "AutoResizeDimensionsRequest" + }, + "UpdateBordersRequest": { + "description": "Updates the borders of a range.\nIf a field is not set in the request, that means the border remains as-is.\nFor example, with two subsequent UpdateBordersRequest:\n\n 1. range: A1:A5 `{ top: RED, bottom: WHITE }`\n 2. range: A1:A5 `{ left: BLUE }`\n\nThat would result in A1:A5 having a borders of\n`{ top: RED, bottom: WHITE, left: BLUE }`.\nIf you want to clear a border, explicitly set the style to\nNONE.", + "type": "object", + "properties": { + "range": { + "$ref": "GridRange", + "description": "The range whose borders should be updated." + }, + "innerHorizontal": { + "$ref": "Border", + "description": "The horizontal border to put within the range." + }, + "top": { + "description": "The border to put at the top of the range.", + "$ref": "Border" + }, + "left": { + "$ref": "Border", + "description": "The border to put at the left of the range." + }, + "bottom": { + "$ref": "Border", + "description": "The border to put at the bottom of the range." + }, + "innerVertical": { + "$ref": "Border", + "description": "The vertical border to put within the range." + }, + "right": { + "description": "The border to put at the right of the range.", + "$ref": "Border" + } + }, + "id": "UpdateBordersRequest" + }, + "CellFormat": { + "description": "The format of a cell.", + "type": "object", + "properties": { + "borders": { + "description": "The borders of the cell.", + "$ref": "Borders" + }, + "textDirection": { + "enumDescriptions": [ + "The text direction is not specified. Do not use this.", + "The text direction of left-to-right was set by the user.", + "The text direction of right-to-left was set by the user." + ], + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "description": "The direction of the text in the cell.", + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "description": "The wrap strategy for the value in the cell.", + "type": "string", + "enumDescriptions": [ + "The default value, do not use.", + "Lines that are longer than the cell width will be written in the next\ncell over, so long as that cell is empty. If the next cell over is\nnon-empty, this behaves the same as CLIP. The text will never wrap\nto the next line unless the user manually inserts a new line.\nExample:\n\n | First sentence. |\n | Manual newline that is very long. \u003c- Text continues into next cell\n | Next newline. |", + "This wrap strategy represents the old Google Sheets wrap strategy where\nwords that are longer than a line are clipped rather than broken. This\nstrategy is not supported on all platforms and is being phased out.\nExample:\n\n | Cell has a |\n | loooooooooo| \u003c- Word is clipped.\n | word. |", + "Lines that are longer than the cell width will be clipped.\nThe text will never wrap to the next line unless the user manually\ninserts a new line.\nExample:\n\n | First sentence. |\n | Manual newline t| \u003c- Text is clipped\n | Next newline. |", + "Words that are longer than a line are wrapped at the character level\nrather than clipped.\nExample:\n\n | Cell has a |\n | loooooooooo| \u003c- Word is broken.\n | ong word. |" + ] + }, + "textRotation": { + "$ref": "TextRotation", + "description": "The rotation applied to text in a cell" + }, + "numberFormat": { + "$ref": "NumberFormat", + "description": "A format describing how number values should be represented to the user." + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "description": "How a hyperlink, if it exists, should be displayed in the cell.", + "type": "string", + "enumDescriptions": [ + "The default value: the hyperlink is rendered. Do not use this.", + "A hyperlink should be explicitly rendered.", + "A hyperlink should not be rendered." + ] + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "description": "The horizontal alignment of the value in the cell.", + "type": "string", + "enumDescriptions": [ + "The horizontal alignment is not specified. Do not use this.", + "The text is explicitly aligned to the left of the cell.", + "The text is explicitly aligned to the center of the cell.", + "The text is explicitly aligned to the right of the cell." + ] + }, + "textFormat": { + "description": "The format of the text in the cell (unless overridden by a format run).", + "$ref": "TextFormat" + }, + "backgroundColor": { + "$ref": "Color", + "description": "The background color of the cell." + }, + "padding": { + "$ref": "Padding", + "description": "The padding of the cell." + }, + "verticalAlignment": { + "enumDescriptions": [ + "The vertical alignment is not specified. Do not use this.", + "The text is explicitly aligned to the top of the cell.", + "The text is explicitly aligned to the middle of the cell.", + "The text is explicitly aligned to the bottom of the cell." + ], + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "description": "The vertical alignment of the value in the cell.", + "type": "string" + } + }, + "id": "CellFormat" + }, + "ClearValuesResponse": { + "id": "ClearValuesResponse", + "description": "The response when clearing a range of values in a spreadsheet.", + "type": "object", + "properties": { + "spreadsheetId": { + "description": "The spreadsheet the updates were applied to.", + "type": "string" + }, + "clearedRange": { + "description": "The range (in A1 notation) that was cleared.\n(If the request was for an unbounded range or a ranger larger\n than the bounds of the sheet, this will be the actual range\n that was cleared, bounded to the sheet's limits.)", + "type": "string" + } + } + }, + "DeleteConditionalFormatRuleRequest": { + "description": "Deletes a conditional format rule at the given index.\nAll subsequent rules' indexes are decremented.", + "type": "object", + "properties": { + "index": { + "description": "The zero-based index of the rule to be deleted.", + "format": "int32", + "type": "integer" + }, + "sheetId": { + "description": "The sheet the rule is being deleted from.", + "format": "int32", + "type": "integer" + } + }, + "id": "DeleteConditionalFormatRuleRequest" + }, + "DeleteNamedRangeRequest": { + "type": "object", + "properties": { + "namedRangeId": { + "type": "string", + "description": "The ID of the named range to delete." + } + }, + "id": "DeleteNamedRangeRequest", + "description": "Removes the named range with the given ID from the spreadsheet." + }, + "AddBandingResponse": { + "description": "The result of adding a banded range.", + "type": "object", + "properties": { + "bandedRange": { + "description": "The banded range that was added.", + "$ref": "BandedRange" + } + }, + "id": "AddBandingResponse" + }, + "ChartData": { + "properties": { + "sourceRange": { + "$ref": "ChartSourceRange", + "description": "The source ranges of the data." + } + }, + "id": "ChartData", + "description": "The data included in a domain or series.", + "type": "object" + }, + "BatchGetValuesResponse": { + "description": "The response when retrieving more than one range of values in a spreadsheet.", + "type": "object", + "properties": { + "spreadsheetId": { + "description": "The ID of the spreadsheet the data was retrieved from.", + "type": "string" + }, + "valueRanges": { + "description": "The requested values. The order of the ValueRanges is the same as the\norder of the requested ranges.", + "type": "array", + "items": { + "$ref": "ValueRange" + } + } + }, + "id": "BatchGetValuesResponse" + }, + "UpdateBandingRequest": { + "type": "object", + "properties": { + "fields": { + "type": "string", + "description": "The fields that should be updated. At least one field must be specified.\nThe root `bandedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask" + }, + "bandedRange": { + "$ref": "BandedRange", + "description": "The banded range to update with the new properties." + } + }, + "id": "UpdateBandingRequest", + "description": "Updates properties of the supplied banded range." + }, + "Color": { + "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n import com.google.type.Color;\n\n // ...\n public static java.awt.Color fromProto(Color protocolor) {\n float alpha = protocolor.hasAlpha()\n ? protocolor.getAlpha().getValue()\n : 1.0;\n\n return new java.awt.Color(\n protocolor.getRed(),\n protocolor.getGreen(),\n protocolor.getBlue(),\n alpha);\n }\n\n public static Color toProto(java.awt.Color color) {\n float red = (float) color.getRed();\n float green = (float) color.getGreen();\n float blue = (float) color.getBlue();\n float denominator = 255.0;\n Color.Builder resultBuilder =\n Color\n .newBuilder()\n .setRed(red / denominator)\n .setGreen(green / denominator)\n .setBlue(blue / denominator);\n int alpha = color.getAlpha();\n if (alpha != 255) {\n result.setAlpha(\n FloatValue\n .newBuilder()\n .setValue(((float) alpha) / denominator)\n .build());\n }\n return resultBuilder.build();\n }\n // ...\n\nExample (iOS / Obj-C):\n\n // ...\n static UIColor* fromProto(Color* protocolor) {\n float red = [protocolor red];\n float green = [protocolor green];\n float blue = [protocolor blue];\n FloatValue* alpha_wrapper = [protocolor alpha];\n float alpha = 1.0;\n if (alpha_wrapper != nil) {\n alpha = [alpha_wrapper value];\n }\n return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n }\n\n static Color* toProto(UIColor* color) {\n CGFloat red, green, blue, alpha;\n if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {\n return nil;\n }\n Color* result = [Color alloc] init];\n [result setRed:red];\n [result setGreen:green];\n [result setBlue:blue];\n if (alpha \u003c= 0.9999) {\n [result setAlpha:floatWrapperWithValue(alpha)];\n }\n [result autorelease];\n return result;\n }\n // ...\n\n Example (JavaScript):\n\n // ...\n\n var protoToCssColor = function(rgb_color) {\n var redFrac = rgb_color.red || 0.0;\n var greenFrac = rgb_color.green || 0.0;\n var blueFrac = rgb_color.blue || 0.0;\n var red = Math.floor(redFrac * 255);\n var green = Math.floor(greenFrac * 255);\n var blue = Math.floor(blueFrac * 255);\n\n if (!('alpha' in rgb_color)) {\n return rgbToCssColor_(red, green, blue);\n }\n\n var alphaFrac = rgb_color.alpha.value || 0.0;\n var rgbParams = [red, green, blue].join(',');\n return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n };\n\n var rgbToCssColor_ = function(red, green, blue) {\n var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n var hexString = rgbNumber.toString(16);\n var missingZeros = 6 - hexString.length;\n var resultBuilder = ['#'];\n for (var i = 0; i \u003c missingZeros; i++) {\n resultBuilder.push('0');\n }\n resultBuilder.push(hexString);\n return resultBuilder.join('');\n };\n\n // ...", + "type": "object", + "properties": { + "green": { + "description": "The amount of green in the color as a value in the interval [0, 1].", + "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" + }, + "alpha": { + "description": "The fraction of this color that should be applied to the pixel. That is,\nthe final pixel color is defined by the equation:\n\n pixel color = alpha * (this color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color. This\nuses a wrapper message rather than a simple float scalar so that it is\npossible to distinguish between a default value and the value being unset.\nIf omitted, this color object is to be rendered as a solid color\n(as if the alpha value had been explicitly given with a value of 1.0).", + "format": "float", + "type": "number" + }, + "red": { + "type": "number", + "description": "The amount of red in the color as a value in the interval [0, 1].", + "format": "float" + } + }, + "id": "Color" + }, + "PivotGroup": { + "description": "A single grouping (either row or column) in a pivot table.", + "type": "object", + "properties": { + "sortOrder": { + "enumDescriptions": [ + "Default value, do not use this.", + "Sort ascending.", + "Sort descending." + ], + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "description": "The order the values in this group should be sorted.", + "type": "string" + }, + "valueBucket": { + "$ref": "PivotGroupSortValueBucket", + "description": "The bucket of the opposite pivot group to sort by.\nIf not specified, sorting is alphabetical by this group's values." + }, + "sourceColumnOffset": { + "description": "The column offset of the source range that this grouping is based on.\n\nFor example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`\nmeans this group refers to column `C`, whereas the offset `1` would refer\nto column `D`.", + "format": "int32", + "type": "integer" + }, + "showTotals": { + "description": "True if the pivot table should include the totals for this grouping.", + "type": "boolean" + }, + "valueMetadata": { + "type": "array", + "items": { + "$ref": "PivotGroupValueMetadata" + }, + "description": "Metadata about values in the grouping." + } + }, + "id": "PivotGroup" + }, + "PivotTable": { + "description": "A pivot table.", + "type": "object", + "properties": { + "criteria": { + "additionalProperties": { + "$ref": "PivotFilterCriteria" + }, + "description": "An optional mapping of filters per source column offset.\n\nThe filters will be applied before aggregating data into the pivot table.\nThe map's key is the column offset of the source range that you want to\nfilter, and the value is the criteria for that column.\n\nFor example, if the source was `C10:E15`, a key of `0` will have the filter\nfor column `C`, whereas the key `1` is for column `D`.", + "type": "object" + }, + "rows": { + "description": "Each row grouping in the pivot table.", + "type": "array", + "items": { + "$ref": "PivotGroup" + } + }, + "valueLayout": { + "description": "Whether values should be listed horizontally (as columns)\nor vertically (as rows).", + "type": "string", + "enumDescriptions": [ + "Values are laid out horizontally (as columns).", + "Values are laid out vertically (as rows)." + ], + "enum": [ + "HORIZONTAL", + "VERTICAL" + ] + }, + "values": { + "description": "A list of values to include in the pivot table.", + "type": "array", + "items": { + "$ref": "PivotValue" + } + }, + "source": { + "description": "The range the pivot table is reading data from.", + "$ref": "GridRange" + }, + "columns": { + "description": "Each column grouping in the pivot table.", + "type": "array", + "items": { + "$ref": "PivotGroup" + } + } + }, + "id": "PivotTable" + }, + "ChartSourceRange": { + "type": "object", + "properties": { + "sources": { + "description": "The ranges of data for a series or domain.\nExactly one dimension must have a length of 1,\nand all sources in the list must have the same dimension\nwith length 1.\nThe domain (if it exists) & all series must have the same number\nof source ranges. If using more than one source range, then the source\nrange at a given offset must be contiguous across the domain and series.\n\nFor example, these are valid configurations:\n\n domain sources: A1:A5\n series1 sources: B1:B5\n series2 sources: D6:D10\n\n domain sources: A1:A5, C10:C12\n series1 sources: B1:B5, D10:D12\n series2 sources: C1:C5, E10:E12", + "type": "array", + "items": { + "$ref": "GridRange" + } + } + }, + "id": "ChartSourceRange", + "description": "Source ranges for a chart." + }, + "SearchDeveloperMetadataResponse": { + "description": "A reply to a developer metadata search request.", + "type": "object", + "properties": { + "matchedDeveloperMetadata": { + "type": "array", + "items": { + "$ref": "MatchedDeveloperMetadata" + }, + "description": "The metadata matching the criteria of the search request." + } + }, + "id": "SearchDeveloperMetadataResponse" + }, + "ValueRange": { + "id": "ValueRange", + "description": "Data within a range of the spreadsheet.", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "The range the values cover, in A1 notation.\nFor output, this range indicates the entire requested range,\neven though the values will exclude trailing rows and columns.\nWhen appending values, this field represents the range to search for a\ntable, after which values will be appended." + }, + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "description": "The major dimension of the values.\n\nFor output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,\nthen requesting `range=A1:B2,majorDimension=ROWS` will return\n`[[1,2],[3,4]]`,\nwhereas requesting `range=A1:B2,majorDimension=COLUMNS` will return\n`[[1,3],[2,4]]`.\n\nFor input, with `range=A1:B2,majorDimension=ROWS` then `[[1,2],[3,4]]`\nwill set `A1=1,B1=2,A2=3,B2=4`. With `range=A1:B2,majorDimension=COLUMNS`\nthen `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`.\n\nWhen writing, if this field is not set, it defaults to ROWS.", + "type": "string", + "enumDescriptions": [ + "The default value, do not use.", + "Operates on the rows of a sheet.", + "Operates on the columns of a sheet." + ] + }, + "values": { + "description": "The data that was read or to be written. This is an array of arrays,\nthe outer array representing all the data and each inner array\nrepresenting a major dimension. Each item in the inner array\ncorresponds with one cell.\n\nFor output, empty trailing rows and columns will not be included.\n\nFor input, supported value types are: bool, string, and double.\nNull values will be skipped.\nTo set a cell to an empty value, set the string value to an empty string.", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "any" + } + } + } + } + }, + "AppendCellsRequest": { + "description": "Adds new cells after the last row with data in a sheet,\ninserting new rows into the sheet if necessary.", + "type": "object", + "properties": { + "rows": { + "type": "array", + "items": { + "$ref": "RowData" + }, + "description": "The data to append." + }, + "fields": { + "description": "The fields of CellData that should be updated.\nAt least one field must be specified.\nThe root is the CellData; 'row.values.' should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", + "type": "string" + }, + "sheetId": { + "type": "integer", + "description": "The sheet ID to append the data to.", + "format": "int32" + } + }, + "id": "AppendCellsRequest" + }, + "AddBandingRequest": { + "id": "AddBandingRequest", + "description": "Adds a new banded range to the spreadsheet.", + "type": "object", + "properties": { + "bandedRange": { + "$ref": "BandedRange", + "description": "The banded range to add. The bandedRangeId\nfield is optional; if one is not set, an id will be randomly generated. (It\nis an error to specify the ID of a range that already exists.)" + } + } + }, + "Response": { + "description": "A single response from an update.", + "type": "object", + "properties": { + "deleteConditionalFormatRule": { + "$ref": "DeleteConditionalFormatRuleResponse", + "description": "A reply from deleting a conditional format rule." + }, + "updateEmbeddedObjectPosition": { + "$ref": "UpdateEmbeddedObjectPositionResponse", + "description": "A reply from updating an embedded object's position." + }, + "duplicateFilterView": { + "$ref": "DuplicateFilterViewResponse", + "description": "A reply from duplicating a filter view." + }, + "addChart": { + "description": "A reply from adding a chart.", + "$ref": "AddChartResponse" + }, + "updateDeveloperMetadata": { + "$ref": "UpdateDeveloperMetadataResponse", + "description": "A reply from updating a developer metadata entry." + }, + "findReplace": { + "$ref": "FindReplaceResponse", + "description": "A reply from doing a find/replace." + }, + "addSheet": { + "$ref": "AddSheetResponse", + "description": "A reply from adding a sheet." + }, + "createDeveloperMetadata": { + "$ref": "CreateDeveloperMetadataResponse", + "description": "A reply from creating a developer metadata entry." + }, + "updateConditionalFormatRule": { + "$ref": "UpdateConditionalFormatRuleResponse", + "description": "A reply from updating a conditional format rule." + }, + "addNamedRange": { + "description": "A reply from adding a named range.", + "$ref": "AddNamedRangeResponse" + }, + "deleteDeveloperMetadata": { + "description": "A reply from deleting a developer metadata entry.", + "$ref": "DeleteDeveloperMetadataResponse" + }, + "addFilterView": { + "$ref": "AddFilterViewResponse", + "description": "A reply from adding a filter view." + }, + "addBanding": { + "$ref": "AddBandingResponse", + "description": "A reply from adding a banded range." + }, + "addProtectedRange": { + "$ref": "AddProtectedRangeResponse", + "description": "A reply from adding a protected range." + }, + "duplicateSheet": { + "$ref": "DuplicateSheetResponse", + "description": "A reply from duplicating a sheet." + } + }, + "id": "Response" + }, + "EmbeddedChart": { + "id": "EmbeddedChart", + "description": "A chart embedded in a sheet.", + "type": "object", + "properties": { + "chartId": { + "description": "The ID of the chart.", + "format": "int32", + "type": "integer" + }, + "position": { + "description": "The position of the chart.", + "$ref": "EmbeddedObjectPosition" + }, + "spec": { + "$ref": "ChartSpec", + "description": "The specification of the chart." + } + } + }, + "TextFormatRun": { + "description": "A run of a text format. The format of this run continues until the start\nindex of the next run.\nWhen updating, all fields must be set.", + "type": "object", + "properties": { + "startIndex": { + "description": "The character index where this run starts.", + "format": "int32", + "type": "integer" + }, + "format": { + "$ref": "TextFormat", + "description": "The format of this run. Absent values inherit the cell's format." + } + }, + "id": "TextFormatRun" + }, + "InsertRangeRequest": { + "description": "Inserts cells into a range, shifting the existing cells over or down.", + "type": "object", + "properties": { + "shiftDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "description": "The dimension which will be shifted when inserting cells.\nIf ROWS, existing cells will be shifted down.\nIf COLUMNS, existing cells will be shifted right.", + "type": "string", + "enumDescriptions": [ + "The default value, do not use.", + "Operates on the rows of a sheet.", + "Operates on the columns of a sheet." + ] + }, + "range": { + "description": "The range to insert new cells into.", + "$ref": "GridRange" + } + }, + "id": "InsertRangeRequest" + }, + "AddNamedRangeResponse": { + "description": "The result of adding a named range.", + "type": "object", + "properties": { + "namedRange": { + "$ref": "NamedRange", + "description": "The named range to add." + } + }, + "id": "AddNamedRangeResponse" + }, + "BatchUpdateValuesByDataFilterResponse": { + "description": "The response when updating a range of values in a spreadsheet.", + "type": "object", + "properties": { + "totalUpdatedColumns": { + "type": "integer", + "description": "The total number of columns where at least one cell in the column was\nupdated.", + "format": "int32" + }, + "spreadsheetId": { + "description": "The spreadsheet the updates were applied to.", + "type": "string" + }, + "totalUpdatedRows": { + "description": "The total number of rows where at least one cell in the row was updated.", + "format": "int32", + "type": "integer" + }, + "responses": { + "description": "The response for each range updated.", + "type": "array", + "items": { + "$ref": "UpdateValuesByDataFilterResponse" + } + }, + "totalUpdatedSheets": { + "description": "The total number of sheets where at least one cell in the sheet was\nupdated.", + "format": "int32", + "type": "integer" + }, + "totalUpdatedCells": { + "description": "The total number of cells updated.", + "format": "int32", + "type": "integer" + } + }, + "id": "BatchUpdateValuesByDataFilterResponse" + }, + "RowData": { + "description": "Data about each cell in a row.", + "type": "object", + "properties": { + "values": { + "description": "The values in the row, one per column.", + "type": "array", + "items": { + "$ref": "CellData" + } + } + }, + "id": "RowData" + }, + "GridData": { + "description": "Data in the grid, as well as metadata about the dimensions.", + "type": "object", + "properties": { + "rowMetadata": { + "description": "Metadata about the requested rows in the grid, starting with the row\nin start_row.", + "type": "array", + "items": { + "$ref": "DimensionProperties" + } + }, + "rowData": { + "description": "The data in the grid, one entry per row,\nstarting with the row in startRow.\nThe values in RowData will correspond to columns starting\nat start_column.", + "type": "array", + "items": { + "$ref": "RowData" + } + }, + "startRow": { + "type": "integer", + "description": "The first row this GridData refers to, zero-based.", + "format": "int32" + }, + "columnMetadata": { + "description": "Metadata about the requested columns in the grid, starting with the column\nin start_column.", + "type": "array", + "items": { + "$ref": "DimensionProperties" + } + }, + "startColumn": { + "description": "The first column this GridData refers to, zero-based.", + "format": "int32", + "type": "integer" + } + }, + "id": "GridData" + }, + "Border": { + "id": "Border", + "description": "A border along a cell.", + "type": "object", + "properties": { + "style": { + "description": "The style of the border.", + "type": "string", + "enumDescriptions": [ + "The style is not specified. Do not use this.", + "The border is dotted.", + "The border is dashed.", + "The border is a thin solid line.", + "The border is a medium solid line.", + "The border is a thick solid line.", + "No border.\nUsed only when updating a border in order to erase it.", + "The border is two solid lines." + ], + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ] + }, + "color": { + "description": "The color of the border.", + "$ref": "Color" + }, + "width": { + "description": "The width of the border, in pixels.\nDeprecated; the width is determined by the \"style\" field.", + "format": "int32", + "type": "integer" + } + } + }, + "UpdateNamedRangeRequest": { + "description": "Updates properties of the named range with the specified\nnamedRangeId.", + "type": "object", + "properties": { + "namedRange": { + "description": "The named range to update with the new properties.", + "$ref": "NamedRange" + }, + "fields": { + "description": "The fields that should be updated. At least one field must be specified.\nThe root `namedRange` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", + "type": "string" + } + }, + "id": "UpdateNamedRangeRequest" + }, + "FindReplaceRequest": { + "description": "Finds and replaces data in cells over a range, sheet, or all sheets.", + "type": "object", + "properties": { + "replacement": { + "description": "The value to use as the replacement.", + "type": "string" + }, + "range": { + "$ref": "GridRange", + "description": "The range to find/replace over." + }, + "sheetId": { + "description": "The sheet to find/replace over.", + "format": "int32", + "type": "integer" + }, + "matchCase": { + "description": "True if the search is case sensitive.", + "type": "boolean" + }, + "allSheets": { + "description": "True to find/replace over all sheets.", + "type": "boolean" + }, + "includeFormulas": { + "description": "True if the search should include cells with formulas.\nFalse to skip cells with formulas.", + "type": "boolean" + }, + "matchEntireCell": { + "description": "True if the find value should match the entire cell.", + "type": "boolean" + }, + "find": { + "description": "The value to search.", + "type": "string" + }, + "searchByRegex": { + "description": "True if the find value is a regex.\nThe regular expression and replacement should follow Java regex rules\nat https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.\nThe replacement string is allowed to refer to capturing groups.\nFor example, if one cell has the contents `\"Google Sheets\"` and another\nhas `\"Google Docs\"`, then searching for `\"o.* (.*)\"` with a replacement of\n`\"$1 Rocks\"` would change the contents of the cells to\n`\"GSheets Rocks\"` and `\"GDocs Rocks\"` respectively.", + "type": "boolean" + } + }, + "id": "FindReplaceRequest" + }, + "AddSheetRequest": { + "description": "Adds a new sheet.\nWhen a sheet is added at a given index,\nall subsequent sheets' indexes are incremented.\nTo add an object sheet, use AddChartRequest instead and specify\nEmbeddedObjectPosition.sheetId or\nEmbeddedObjectPosition.newSheet.", + "type": "object", + "properties": { + "properties": { + "$ref": "SheetProperties", + "description": "The properties the new sheet should have.\nAll properties are optional.\nThe sheetId field is optional; if one is not\nset, an id will be randomly generated. (It is an error to specify the ID\nof a sheet that already exists.)" + } + }, + "id": "AddSheetRequest" + }, + "UpdateCellsRequest": { + "description": "Updates all cells in a range with new data.", + "type": "object", + "properties": { + "start": { + "description": "The coordinate to start writing data at.\nAny number of rows and columns (including a different number of\ncolumns per row) may be written.", + "$ref": "GridCoordinate" + }, + "range": { + "description": "The range to write data to.\n\nIf the data in rows does not cover the entire requested range,\nthe fields matching those set in fields will be cleared.", + "$ref": "GridRange" + }, + "rows": { + "description": "The data to write.", + "type": "array", + "items": { + "$ref": "RowData" + } + }, + "fields": { + "description": "The fields of CellData that should be updated.\nAt least one field must be specified.\nThe root is the CellData; 'row.values.' should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", + "type": "string" + } + }, + "id": "UpdateCellsRequest" + }, + "RandomizeRangeRequest": { + "description": "Randomizes the order of the rows in a range.", + "type": "object", + "properties": { + "range": { + "description": "The range to randomize.", + "$ref": "GridRange" + } + }, + "id": "RandomizeRangeRequest" + }, + "DeleteConditionalFormatRuleResponse": { + "id": "DeleteConditionalFormatRuleResponse", + "description": "The result of deleting a conditional format rule.", + "type": "object", + "properties": { + "rule": { + "description": "The rule that was deleted.", + "$ref": "ConditionalFormatRule" + } + } + }, + "DeleteRangeRequest": { + "id": "DeleteRangeRequest", + "description": "Deletes a range of cells, shifting other cells into the deleted area.", + "type": "object", + "properties": { + "shiftDimension": { + "description": "The dimension from which deleted cells will be replaced with.\nIf ROWS, existing cells will be shifted upward to\nreplace the deleted cells. If COLUMNS, existing cells\nwill be shifted left to replace the deleted cells.", + "type": "string", + "enumDescriptions": [ + "The default value, do not use.", + "Operates on the rows of a sheet.", + "Operates on the columns of a sheet." + ], + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ] + }, + "range": { + "$ref": "GridRange", + "description": "The range of cells to delete." + } + } + }, + "GridCoordinate": { + "description": "A coordinate in a sheet.\nAll indexes are zero-based.", + "type": "object", + "properties": { + "rowIndex": { + "description": "The row index of the coordinate.", + "format": "int32", + "type": "integer" + }, + "columnIndex": { + "description": "The column index of the coordinate.", + "format": "int32", + "type": "integer" + }, + "sheetId": { + "description": "The sheet this coordinate is on.", + "format": "int32", + "type": "integer" + } + }, + "id": "GridCoordinate" + }, + "UpdateSheetPropertiesRequest": { + "description": "Updates properties of the sheet with the specified\nsheetId.", + "type": "object", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified.\nThe root `properties` is implied and should not be specified.\nA single `\"*\"` can be used as short-hand for listing every field.", + "format": "google-fieldmask", + "type": "string" + }, + "properties": { + "$ref": "SheetProperties", + "description": "The properties to update." + } + }, + "id": "UpdateSheetPropertiesRequest" + }, + "UnmergeCellsRequest": { + "type": "object", + "properties": { + "range": { + "$ref": "GridRange", + "description": "The range within which all cells should be unmerged.\nIf the range spans multiple merges, all will be unmerged.\nThe range must not partially span any merge." + } + }, + "id": "UnmergeCellsRequest", + "description": "Unmerges cells in the given range." + }, + "GridProperties": { + "type": "object", + "properties": { + "rowCount": { + "description": "The number of rows in the grid.", + "format": "int32", + "type": "integer" + }, + "frozenRowCount": { + "description": "The number of rows that are frozen in the grid.", + "format": "int32", + "type": "integer" + }, + "hideGridlines": { + "description": "True if the grid isn't showing gridlines in the UI.", + "type": "boolean" + }, + "columnCount": { + "type": "integer", + "description": "The number of columns in the grid.", + "format": "int32" + }, + "frozenColumnCount": { + "description": "The number of columns that are frozen in the grid.", + "format": "int32", + "type": "integer" + } + }, + "id": "GridProperties", + "description": "Properties of a grid." + }, + "UpdateEmbeddedObjectPositionResponse": { + "properties": { + "position": { + "$ref": "EmbeddedObjectPosition", + "description": "The new position of the embedded object." + } + }, + "id": "UpdateEmbeddedObjectPositionResponse", + "description": "The result of updating an embedded object's position.", + "type": "object" + }, + "Sheet": { + "description": "A sheet in a spreadsheet.", + "type": "object", + "properties": { + "conditionalFormats": { + "description": "The conditional format rules in this sheet.", + "type": "array", + "items": { + "$ref": "ConditionalFormatRule" + } + }, + "protectedRanges": { + "type": "array", + "items": { + "$ref": "ProtectedRange" + }, + "description": "The protected ranges in this sheet." + }, + "developerMetadata": { + "description": "The developer metadata associated with a sheet.", + "type": "array", + "items": { + "$ref": "DeveloperMetadata" + } + }, + "basicFilter": { + "description": "The filter on this sheet, if any.", + "$ref": "BasicFilter" + }, + "merges": { + "type": "array", + "items": { + "$ref": "GridRange" + }, + "description": "The ranges that are merged together." + }, + "data": { + "description": "Data in the grid, if this is a grid sheet.\nThe number of GridData objects returned is dependent on the number of\nranges requested on this sheet. For example, if this is representing\n`Sheet1`, and the spreadsheet was requested with ranges\n`Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a\nstartRow/startColumn of `0`,\nwhile the second one will have `startRow 14` (zero-based row 15),\nand `startColumn 3` (zero-based column D).", + "type": "array", + "items": { + "$ref": "GridData" + } + }, + "bandedRanges": { + "type": "array", + "items": { + "$ref": "BandedRange" + }, + "description": "The banded (i.e. alternating colors) ranges on this sheet." + }, + "properties": { + "$ref": "SheetProperties", + "description": "The properties of the sheet." + }, + "charts": { + "description": "The specifications of every chart on this sheet.", + "type": "array", + "items": { + "$ref": "EmbeddedChart" + } + }, + "filterViews": { + "description": "The filter views in this sheet.", + "type": "array", + "items": { + "$ref": "FilterView" + } + } + }, + "id": "Sheet" + }, + "SortSpec": { + "id": "SortSpec", + "description": "A sort order associated with a specific column or row.", + "type": "object", + "properties": { + "dimensionIndex": { + "description": "The dimension the sort should be applied to.", + "format": "int32", + "type": "integer" + }, + "sortOrder": { + "type": "string", + "enumDescriptions": [ + "Default value, do not use this.", + "Sort ascending.", + "Sort descending." + ], + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "description": "The order data should be sorted." + } + } + }, + "BooleanRule": { + "description": "A rule that may or may not match, depending on the condition.", + "type": "object", + "properties": { + "format": { + "$ref": "CellFormat", + "description": "The format to apply.\nConditional formatting can only apply a subset of formatting:\nbold, italic,\nstrikethrough,\nforeground color &\nbackground color." + }, + "condition": { + "$ref": "BooleanCondition", + "description": "The condition of the rule. If the condition evaluates to true,\nthe format will be applied." + } + }, + "id": "BooleanRule" } }, + "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, - "protocol": "rest", "canonicalName": "Sheets", "auth": { "oauth2": { @@ -5366,14 +5424,14 @@ "https://www.googleapis.com/auth/drive.file": { "description": "View and manage Google Drive files and folders that you have opened or created with this app" }, - "https://www.googleapis.com/auth/spreadsheets.readonly": { - "description": "View your Google Spreadsheets" + "https://www.googleapis.com/auth/drive": { + "description": "View and manage the files in your Google Drive" }, "https://www.googleapis.com/auth/drive.readonly": { "description": "View the files in your Google Drive" }, - "https://www.googleapis.com/auth/drive": { - "description": "View and manage the files in your Google Drive" + "https://www.googleapis.com/auth/spreadsheets.readonly": { + "description": "View your Google Spreadsheets" }, "https://www.googleapis.com/auth/spreadsheets": { "description": "View and manage your spreadsheets in Google Drive" @@ -5384,6 +5442,5 @@ "rootUrl": "https://sheets.googleapis.com/", "ownerDomain": "google.com", "name": "sheets", - "batchPath": "batch", - "title": "Google Sheets API" + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/sheets/v4/sheets-gen.go b/vendor/google.golang.org/api/sheets/v4/sheets-gen.go index 6a8b7e1d1..524df8f5c 100644 --- a/vendor/google.golang.org/api/sheets/v4/sheets-gen.go +++ b/vendor/google.golang.org/api/sheets/v4/sheets-gen.go @@ -873,6 +873,9 @@ type BasicChartAxis struct { // from headers of the data. Title string `json:"title,omitempty"` + // TitleTextPosition: The axis title text position. + TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"` + // ForceSendFields is a list of field names (e.g. "Format") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -1045,6 +1048,19 @@ type BasicChartSpec struct { // chart. ChartType string `json:"chartType,omitempty"` + // CompareMode: The behavior of tooltips and data highlighting when + // hovering on data and + // chart area. + // + // Possible values: + // "BASIC_CHART_COMPARE_MODE_UNSPECIFIED" - Default value, do not use. + // "DATUM" - Only the focused data element is highlighted and shown in + // the tooltip. + // "CATEGORY" - All data elements with the same category (e.g., domain + // value) are + // highlighted and shown in the tooltip. + CompareMode string `json:"compareMode,omitempty"` + // Domains: The domain of data this is charting. // Only a single domain is supported. Domains []*BasicChartDomain `json:"domains,omitempty"` @@ -1590,7 +1606,7 @@ type BatchUpdateValuesByDataFilterRequest struct { // range is // matched by the specified DataFilter the specified values will // be - // applied to all of of those ranges. + // applied to all of those ranges. Data []*DataFilterValueRange `json:"data,omitempty"` // IncludeValuesInResponse: Determines if the update response should @@ -2849,6 +2865,17 @@ type ChartSpec struct { // PieChart: A pie chart specification. PieChart *PieChartSpec `json:"pieChart,omitempty"` + // Subtitle: The subtitle of the chart. + Subtitle string `json:"subtitle,omitempty"` + + // SubtitleTextFormat: The subtitle text format. + // Strikethrough and underline are not supported. + SubtitleTextFormat *TextFormat `json:"subtitleTextFormat,omitempty"` + + // SubtitleTextPosition: The subtitle text position. + // This field is optional. + SubtitleTextPosition *TextPosition `json:"subtitleTextPosition,omitempty"` + // Title: The title of the chart. Title string `json:"title,omitempty"` @@ -2856,6 +2883,10 @@ type ChartSpec struct { // Strikethrough and underline are not supported. TitleTextFormat *TextFormat `json:"titleTextFormat,omitempty"` + // TitleTextPosition: The title text position. + // This field is optional. + TitleTextPosition *TextPosition `json:"titleTextPosition,omitempty"` + // ForceSendFields is a list of field names (e.g. "AltText") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -4063,17 +4094,17 @@ func (s *DeveloperMetadataLocation) MarshalJSON() ([]byte, error) { // DeveloperMetadataLookup: Selects DeveloperMetadata that matches all // of the specified fields. For -// example, if only a metadata ID is specified this will consider +// example, if only a metadata ID is specified this considers // the // DeveloperMetadata with that particular unique ID. If a metadata key // is -// specified, all developer metadata with that key will be considered. -// If a -// key, visibility, and location type are all specified, then -// all -// developer metadata with that key, visibility, and associated with +// specified, this considers all developer metadata with that key. If // a -// location of that type will be considered. In general, this +// key, visibility, and location type are all specified, this considers +// all +// developer metadata with that key and visibility that are associated +// with a +// location of that type. In general, this // selects all DeveloperMetadata that matches the intersection of all // the // specified fields; any field or combination of fields may be @@ -4083,11 +4114,11 @@ type DeveloperMetadataLookup struct { // location. If this field is // specified as EXACT, only developer metadata associated on the // exact - // location specified will be matched. If this field is specified to + // location specified is matched. If this field is specified to // INTERSECTING, - // developer metadata associated on intersecting locations will also - // be - // matched. If left unspecified, this field will assume a default value + // developer metadata associated on intersecting locations is + // also + // matched. If left unspecified, this field assumes a default value // of // INTERSECTING. // If this field is specified, a metadataLocation @@ -4120,23 +4151,23 @@ type DeveloperMetadataLookup struct { // LocationType: Limits the selected developer metadata to those entries // which are - // associated with locations of the specified type. For example, - // specifying - // this as ROW will only consider - // developer metadata associated on rows. If left unspecified, all - // location - // types will be considered. This field cannot be specified - // as - // SPREADSHEET when the - // locationMatchingStrategy is - // specified as INTERSECTING or when the + // associated with locations of the specified type. For example, when + // this + // field is specified as ROW this lookup + // only considers developer metadata associated on rows. If the field + // is left + // unspecified, all location types are considered. This field cannot + // be + // specified as SPREADSHEET when + // the locationMatchingStrategy + // is specified as INTERSECTING or when the // metadataLocation is specified as a // non-spreadsheet location: spreadsheet metadata cannot intersect any // other // developer metadata location. This field also must be left - // unspecified when the - // locationMatchingStrategy is - // specified as EXACT. + // unspecified when + // the locationMatchingStrategy + // is specified as EXACT. // // Possible values: // "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED" - Default value. @@ -4176,7 +4207,7 @@ type DeveloperMetadataLookup struct { // a matching // DeveloperMetadata.visibility. If left unspecified, all // developer - // metadata visibile to the requesting project will be considered. + // metadata visibile to the requesting project is considered. // // Possible values: // "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED" - Default value. @@ -6218,9 +6249,7 @@ type PivotValue struct { // with an `=` character. Formula string `json:"formula,omitempty"` - // Name: A name to use for the value. This is only used if formula was - // set. - // Otherwise, the column name is used. + // Name: A name to use for the value. Name string `json:"name,omitempty"` // SourceColumnOffset: The column offset of the source range that this @@ -7347,6 +7376,44 @@ func (s *TextFormatRun) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TextPosition: Position settings for text. +type TextPosition struct { + // HorizontalAlignment: Horizontal alignment setting for the piece of + // text. + // + // Possible values: + // "HORIZONTAL_ALIGN_UNSPECIFIED" - The horizontal alignment is not + // specified. Do not use this. + // "LEFT" - The text is explicitly aligned to the left of the cell. + // "CENTER" - The text is explicitly aligned to the center of the + // cell. + // "RIGHT" - The text is explicitly aligned to the right of the cell. + HorizontalAlignment string `json:"horizontalAlignment,omitempty"` + + // ForceSendFields is a list of field names (e.g. "HorizontalAlignment") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "HorizontalAlignment") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *TextPosition) MarshalJSON() ([]byte, error) { + type noMethod TextPosition + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TextRotation: The rotation applied to text in a cell. type TextRotation struct { // Angle: The angle between the standard orientation and the desired @@ -8942,7 +9009,7 @@ type SpreadsheetsDeveloperMetadataGetCall struct { header_ http.Header } -// Get: Returns the developer metadata with the specified id. +// Get: Returns the developer metadata with the specified ID. // The caller must specify the spreadsheet ID and the developer // metadata's // unique metadataId. @@ -9048,7 +9115,7 @@ func (c *SpreadsheetsDeveloperMetadataGetCall) Do(opts ...googleapi.CallOption) } return ret, nil // { - // "description": "Returns the developer metadata with the specified id.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.", + // "description": "Returns the developer metadata with the specified ID.\nThe caller must specify the spreadsheet ID and the developer metadata's\nunique metadataId.", // "flatPath": "v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}", // "httpMethod": "GET", // "id": "sheets.spreadsheets.developerMetadata.get", @@ -10183,12 +10250,12 @@ type SpreadsheetsValuesBatchGetByDataFilterCall struct { header_ http.Header } -// BatchGetByDataFilter: Returns one or more ranges of values from a -// spreadsheet that match the -// specified data filters. The caller must specify the spreadsheet ID -// and -// one or more DataFilters. Ranges that match any of the data -// filters in the request will be returned. +// BatchGetByDataFilter: Returns one or more ranges of values that match +// the specified data filters. +// The caller must specify the spreadsheet ID and one or +// more +// DataFilters. Ranges that match any of the data filters in +// the request will be returned. func (r *SpreadsheetsValuesService) BatchGetByDataFilter(spreadsheetId string, batchgetvaluesbydatafilterrequest *BatchGetValuesByDataFilterRequest) *SpreadsheetsValuesBatchGetByDataFilterCall { c := &SpreadsheetsValuesBatchGetByDataFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.spreadsheetId = spreadsheetId @@ -10283,7 +10350,7 @@ func (c *SpreadsheetsValuesBatchGetByDataFilterCall) Do(opts ...googleapi.CallOp } return ret, nil // { - // "description": "Returns one or more ranges of values from a spreadsheet that match the\nspecified data filters. The caller must specify the spreadsheet ID and\none or more DataFilters. Ranges that match any of the data\nfilters in the request will be returned.", + // "description": "Returns one or more ranges of values that match the specified data filters.\nThe caller must specify the spreadsheet ID and one or more\nDataFilters. Ranges that match any of the data filters in\nthe request will be returned.", // "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter", // "httpMethod": "POST", // "id": "sheets.spreadsheets.values.batchGetByDataFilter", diff --git a/vendor/google.golang.org/api/slides/v1/slides-api.json b/vendor/google.golang.org/api/slides/v1/slides-api.json index 586ec9fc8..7ddaf34ab 100644 --- a/vendor/google.golang.org/api/slides/v1/slides-api.json +++ b/vendor/google.golang.org/api/slides/v1/slides-api.json @@ -1,8 +1,4 @@ { - "rootUrl": "https://slides.googleapis.com/", - "ownerDomain": "google.com", - "name": "slides", - "batchPath": "batch", "title": "Google Slides API", "ownerName": "Google", "resources": { @@ -10,16 +6,16 @@ "methods": { "get": { "flatPath": "v1/presentations/{presentationsId}", - "id": "slides.presentations.get", "path": "v1/presentations/{+presentationId}", + "id": "slides.presentations.get", "description": "Gets the latest version of the specified presentation.", - "response": { - "$ref": "Presentation" - }, + "httpMethod": "GET", "parameterOrder": [ "presentationId" ], - "httpMethod": "GET", + "response": { + "$ref": "Presentation" + }, "scopes": [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly", @@ -28,29 +24,29 @@ ], "parameters": { "presentationId": { - "pattern": "^[^/]+$", "location": "path", "description": "The ID of the presentation to retrieve.", "type": "string", - "required": true + "required": true, + "pattern": "^[^/]+$" } } }, "batchUpdate": { - "httpMethod": "POST", - "parameterOrder": [ - "presentationId" - ], + "flatPath": "v1/presentations/{presentationId}:batchUpdate", + "id": "slides.presentations.batchUpdate", + "path": "v1/presentations/{presentationId}:batchUpdate", + "description": "Applies one or more updates to the presentation.\n\nEach request is validated before\nbeing applied. If any request is not valid, then the entire request will\nfail and nothing will be applied.\n\nSome requests have replies to\ngive you some information about how they are applied. Other requests do\nnot need to return information; these each return an empty reply.\nThe order of replies matches that of the requests.\n\nFor example, suppose you call batchUpdate with four updates, and only the\nthird one returns information. The response would have two empty replies:\nthe reply to the third request, and another empty reply, in that order.\n\nBecause other users may be editing the presentation, the presentation\nmight not exactly reflect your changes: your changes may\nbe altered with respect to collaborator changes. If there are no\ncollaborators, the presentation should reflect your changes. In any case,\nthe updates in your request are guaranteed to be applied together\natomically.", + "request": { + "$ref": "BatchUpdatePresentationRequest" + }, "response": { "$ref": "BatchUpdatePresentationResponse" }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.readonly", - "https://www.googleapis.com/auth/presentations", - "https://www.googleapis.com/auth/spreadsheets", - "https://www.googleapis.com/auth/spreadsheets.readonly" + "parameterOrder": [ + "presentationId" ], + "httpMethod": "POST", "parameters": { "presentationId": { "location": "path", @@ -59,19 +55,15 @@ "required": true } }, - "flatPath": "v1/presentations/{presentationId}:batchUpdate", - "path": "v1/presentations/{presentationId}:batchUpdate", - "id": "slides.presentations.batchUpdate", - "request": { - "$ref": "BatchUpdatePresentationRequest" - }, - "description": "Applies one or more updates to the presentation.\n\nEach request is validated before\nbeing applied. If any request is not valid, then the entire request will\nfail and nothing will be applied.\n\nSome requests have replies to\ngive you some information about how they are applied. Other requests do\nnot need to return information; these each return an empty reply.\nThe order of replies matches that of the requests.\n\nFor example, suppose you call batchUpdate with four updates, and only the\nthird one returns information. The response would have two empty replies:\nthe reply to the third request, and another empty reply, in that order.\n\nBecause other users may be editing the presentation, the presentation\nmight not exactly reflect your changes: your changes may\nbe altered with respect to collaborator changes. If there are no\ncollaborators, the presentation should reflect your changes. In any case,\nthe updates in your request are guaranteed to be applied together\natomically." + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly", + "https://www.googleapis.com/auth/presentations", + "https://www.googleapis.com/auth/spreadsheets", + "https://www.googleapis.com/auth/spreadsheets.readonly" + ] }, "create": { - "description": "Creates a new presentation using the title given in the request. Other\nfields in the request are ignored.\nReturns the created presentation.", - "request": { - "$ref": "Presentation" - }, "response": { "$ref": "Presentation" }, @@ -84,33 +76,88 @@ ], "flatPath": "v1/presentations", "id": "slides.presentations.create", - "path": "v1/presentations" + "path": "v1/presentations", + "description": "Creates a new presentation using the title given in the request. Other\nfields in the request are ignored.\nReturns the created presentation.", + "request": { + "$ref": "Presentation" + } } }, "resources": { "pages": { "methods": { - "get": { - "response": { - "$ref": "Page" - }, + "getThumbnail": { + "flatPath": "v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail", + "path": "v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail", + "id": "slides.presentations.pages.getThumbnail", + "description": "Generates a thumbnail of the latest version of the specified page in the\npresentation and returns a URL to the thumbnail image.", + "httpMethod": "GET", "parameterOrder": [ "presentationId", "pageObjectId" ], - "httpMethod": "GET", + "response": { + "$ref": "Thumbnail" + }, "parameters": { - "presentationId": { - "location": "path", - "description": "The ID of the presentation to retrieve.", - "type": "string", - "required": true - }, "pageObjectId": { - "description": "The object ID of the page to retrieve.", "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "The object ID of the page whose thumbnail to retrieve." + }, + "thumbnailProperties.thumbnailSize": { + "type": "string", + "location": "query", + "enum": [ + "THUMBNAIL_SIZE_UNSPECIFIED", + "LARGE" + ], + "description": "The optional thumbnail image size.\n\nIf you don't specify the size, the server chooses a default size of the\nimage." + }, + "thumbnailProperties.mimeType": { + "type": "string", + "location": "query", + "enum": [ + "PNG" + ], + "description": "The optional mime type of the thumbnail image.\n\nIf you don't specify the mime type, the default mime type will be PNG." + }, + "presentationId": { + "type": "string", + "required": true, + "location": "path", + "description": "The ID of the presentation to retrieve." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly", + "https://www.googleapis.com/auth/presentations", + "https://www.googleapis.com/auth/presentations.readonly" + ] + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "presentationId", + "pageObjectId" + ], + "response": { + "$ref": "Page" + }, + "parameters": { + "presentationId": { + "type": "string", + "required": true, + "location": "path", + "description": "The ID of the presentation to retrieve." + }, + "pageObjectId": { + "location": "path", + "description": "The object ID of the page to retrieve.", + "type": "string", + "required": true } }, "scopes": [ @@ -120,60 +167,9 @@ "https://www.googleapis.com/auth/presentations.readonly" ], "flatPath": "v1/presentations/{presentationId}/pages/{pageObjectId}", - "id": "slides.presentations.pages.get", "path": "v1/presentations/{presentationId}/pages/{pageObjectId}", + "id": "slides.presentations.pages.get", "description": "Gets the latest version of the specified page in the presentation." - }, - "getThumbnail": { - "parameterOrder": [ - "presentationId", - "pageObjectId" - ], - "httpMethod": "GET", - "response": { - "$ref": "Thumbnail" - }, - "scopes": [ - "https://www.googleapis.com/auth/drive", - "https://www.googleapis.com/auth/drive.readonly", - "https://www.googleapis.com/auth/presentations", - "https://www.googleapis.com/auth/presentations.readonly" - ], - "parameters": { - "thumbnailProperties.thumbnailSize": { - "location": "query", - "enum": [ - "THUMBNAIL_SIZE_UNSPECIFIED", - "LARGE" - ], - "description": "The optional thumbnail image size.\n\nIf you don't specify the size, the server chooses a default size of the\nimage.", - "type": "string" - }, - "thumbnailProperties.mimeType": { - "enum": [ - "PNG" - ], - "description": "The optional mime type of the thumbnail image.\n\nIf you don't specify the mime type, the default mime type will be PNG.", - "type": "string", - "location": "query" - }, - "presentationId": { - "type": "string", - "required": true, - "location": "path", - "description": "The ID of the presentation to retrieve." - }, - "pageObjectId": { - "description": "The object ID of the page whose thumbnail to retrieve.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail", - "id": "slides.presentations.pages.getThumbnail", - "path": "v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail", - "description": "Generates a thumbnail of the latest version of the specified page in the\npresentation and returns a URL to the thumbnail image." } } } @@ -181,47 +177,16 @@ } }, "parameters": { - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "quotaUser": { - "type": "string", - "location": "query", - "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." - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, "upload_protocol": { + "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "type": "string" }, "prettyPrint": { + "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "uploadType": { "location": "query", @@ -234,24 +199,30 @@ "type": "string" }, "callback": { - "description": "JSONP", "type": "string", - "location": "query" + "location": "query", + "description": "JSONP" }, "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" ] }, "alt": { + "type": "string", + "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", "description": "Data format for response.", "default": "json", @@ -259,27 +230,100 @@ "json", "media", "proto" - ], - "type": "string", - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" ] + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "default": "true", + "type": "boolean", + "location": "query", + "description": "Pretty-print response." + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." } }, "version": "v1", "baseUrl": "https://slides.googleapis.com/", - "kind": "discovery#restDescription", "description": "An API for creating and editing Google Slides presentations.", + "kind": "discovery#restDescription", "servicePath": "", "basePath": "", - "id": "slides:v1", - "revision": "20170922", + "revision": "20171012", "documentationLink": "https://developers.google.com/slides/", + "id": "slides:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { + "UpdateShapePropertiesRequest": { + "description": "Update the properties of a Shape.", + "type": "object", + "properties": { + "fields": { + "type": "string", + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `shapeProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the shape background solid fill color, set `fields`\nto `\"shapeBackgroundFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset." + }, + "objectId": { + "description": "The object ID of the shape the updates are applied to.", + "type": "string" + }, + "shapeProperties": { + "$ref": "ShapeProperties", + "description": "The shape properties to update." + } + }, + "id": "UpdateShapePropertiesRequest" + }, + "UpdateTableColumnPropertiesRequest": { + "type": "object", + "properties": { + "objectId": { + "type": "string", + "description": "The object ID of the table." + }, + "tableColumnProperties": { + "$ref": "TableColumnProperties", + "description": "The table column properties to update.\n\nIf the value of `table_column_properties#column_width` in the request is\nless than 406,400 EMU (32 points), a 400 bad request error is returned." + }, + "columnIndices": { + "description": "The list of zero-based indices specifying which columns to update. If no\nindices are provided, all columns in the table will be updated.", + "items": { + "type": "integer", + "format": "int32" + }, + "type": "array" + }, + "fields": { + "type": "string", + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableColumnProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the column width, set `fields` to `\"column_width\"`.\n\nIf '\"column_width\"' is included in the field mask but the property is left\nunset, the column width will default to 406,400 EMU (32 points)." + } + }, + "id": "UpdateTableColumnPropertiesRequest", + "description": "Updates the properties of a Table column." + }, "WordArt": { "description": "A PageElement kind representing\nword art.", "type": "object", @@ -303,33 +347,6 @@ "type": "array" }, "name": { - "enumDescriptions": [ - "No recolor effect. The default value.", - "A recolor effect that lightens the image using the page's first available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's second\navailable color from its color scheme.", - "A recolor effect that lightens the image using the page's third available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's forth available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's fifth available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's sixth available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's seventh\navailable color from its color scheme.e.", - "A recolor effect that lightens the image using the page's eighth\navailable color from its color scheme.", - "A recolor effect that lightens the image using the page's ninth available\ncolor from its color scheme.", - "A recolor effect that lightens the image using the page's tenth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's first available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's second available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's third available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's fourth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's fifth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's sixth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's seventh\navailable color from its color scheme.", - "A recolor effect that darkens the image using the page's eighth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's ninth available\ncolor from its color scheme.", - "A recolor effect that darkens the image using the page's tenth available\ncolor from its color scheme.", - "A recolor effect that recolors the image to grayscale.", - "A recolor effect that recolors the image to negative grayscale.", - "A recolor effect that recolors the image using the sepia color.", - "Custom recolor effect. Refer to `recolor_stops` for the concrete\ngradient." - ], "enum": [ "NONE", "LIGHT1", @@ -358,12 +375,41 @@ "CUSTOM" ], "description": "The name of the recolor effect.\n\nThe name is determined from the `recolor_stops` by matching the gradient\nagainst the colors in the page's current color scheme. This property is\nread-only.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "No recolor effect. The default value.", + "A recolor effect that lightens the image using the page's first available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's second\navailable color from its color scheme.", + "A recolor effect that lightens the image using the page's third available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's forth available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's fifth available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's sixth available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's seventh\navailable color from its color scheme.e.", + "A recolor effect that lightens the image using the page's eighth\navailable color from its color scheme.", + "A recolor effect that lightens the image using the page's ninth available\ncolor from its color scheme.", + "A recolor effect that lightens the image using the page's tenth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's first available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's second available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's third available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's fourth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's fifth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's sixth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's seventh\navailable color from its color scheme.", + "A recolor effect that darkens the image using the page's eighth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's ninth available\ncolor from its color scheme.", + "A recolor effect that darkens the image using the page's tenth available\ncolor from its color scheme.", + "A recolor effect that recolors the image to grayscale.", + "A recolor effect that recolors the image to negative grayscale.", + "A recolor effect that recolors the image using the sepia color.", + "Custom recolor effect. Refer to `recolor_stops` for the concrete\ngradient." + ] } }, "id": "Recolor" }, "Link": { + "description": "A hypertext link.", + "type": "object", "properties": { "pageObjectId": { "description": "If set, indicates this is a link to the specific page in this\npresentation with this ID. A page with this ID may not exist.", @@ -375,6 +421,13 @@ "type": "integer" }, "relativeLink": { + "enum": [ + "RELATIVE_SLIDE_LINK_UNSPECIFIED", + "NEXT_SLIDE", + "PREVIOUS_SLIDE", + "FIRST_SLIDE", + "LAST_SLIDE" + ], "description": "If set, indicates this is a link to a slide in this presentation,\naddressed by its position.", "type": "string", "enumDescriptions": [ @@ -383,13 +436,6 @@ "A link to the previous slide.", "A link to the first slide in the presentation.", "A link to the last slide in the presentation." - ], - "enum": [ - "RELATIVE_SLIDE_LINK_UNSPECIFIED", - "NEXT_SLIDE", - "PREVIOUS_SLIDE", - "FIRST_SLIDE", - "LAST_SLIDE" ] }, "url": { @@ -397,13 +443,28 @@ "type": "string" } }, - "id": "Link", - "description": "A hypertext link.", - "type": "object" + "id": "Link" }, - "RgbColor": { + "CreateShapeResponse": { + "description": "The result of creating a shape.", "type": "object", "properties": { + "objectId": { + "description": "The object ID of the created shape.", + "type": "string" + } + }, + "id": "CreateShapeResponse" + }, + "RgbColor": { + "description": "An RGB color.", + "type": "object", + "properties": { + "red": { + "type": "number", + "format": "float", + "description": "The red component of the color, from 0.0 to 1.0." + }, "blue": { "format": "float", "description": "The blue component of the color, from 0.0 to 1.0.", @@ -413,36 +474,20 @@ "format": "float", "description": "The green component of the color, from 0.0 to 1.0.", "type": "number" - }, - "red": { - "format": "float", - "description": "The red component of the color, from 0.0 to 1.0.", - "type": "number" } }, - "id": "RgbColor", - "description": "An RGB color." + "id": "RgbColor" }, - "CreateShapeResponse": { - "description": "The result of creating a shape.", + "CreateLineRequest": { "type": "object", "properties": { "objectId": { "type": "string", - "description": "The object ID of the created shape." - } - }, - "id": "CreateShapeResponse" - }, - "CreateLineRequest": { - "properties": { - "objectId": { - "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated.", - "type": "string" + "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated." }, "elementProperties": { - "description": "The element properties for the line.", - "$ref": "PageElementProperties" + "$ref": "PageElementProperties", + "description": "The element properties for the line." }, "lineCategory": { "enum": [ @@ -460,25 +505,23 @@ } }, "id": "CreateLineRequest", - "description": "Creates a line.", - "type": "object" + "description": "Creates a line." }, "CreateSlideResponse": { - "description": "The result of creating a slide.", "type": "object", "properties": { "objectId": { - "description": "The object ID of the created slide.", - "type": "string" + "type": "string", + "description": "The object ID of the created slide." } }, - "id": "CreateSlideResponse" + "id": "CreateSlideResponse", + "description": "The result of creating a slide." }, "CreateShapeRequest": { "type": "object", "properties": { "shapeType": { - "description": "The shape type.", "type": "string", "enumDescriptions": [ "The shape type that is not predefined.", @@ -769,11 +812,12 @@ "ELLIPSE_RIBBON_2", "CLOUD_CALLOUT", "CUSTOM" - ] + ], + "description": "The shape type." }, "objectId": { - "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\nIf empty, a unique identifier will be generated.", - "type": "string" + "type": "string", + "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\nIf empty, a unique identifier will be generated." }, "elementProperties": { "$ref": "PageElementProperties", @@ -784,26 +828,27 @@ "description": "Creates a new shape." }, "Video": { + "type": "object", "properties": { "source": { - "type": "string", - "enumDescriptions": [ - "The video source is unspecified.", - "The video source is YouTube." - ], "enum": [ "SOURCE_UNSPECIFIED", "YOUTUBE" ], - "description": "The video source." + "description": "The video source.", + "type": "string", + "enumDescriptions": [ + "The video source is unspecified.", + "The video source is YouTube." + ] }, "id": { - "description": "The video source's unique identifier for this video.", - "type": "string" + "type": "string", + "description": "The video source's unique identifier for this video." }, "url": { - "description": "An URL to a video. The URL is valid as long as the source video\nexists and sharing settings do not change.", - "type": "string" + "type": "string", + "description": "An URL to a video. The URL is valid as long as the source video\nexists and sharing settings do not change." }, "videoProperties": { "$ref": "VideoProperties", @@ -811,42 +856,39 @@ } }, "id": "Video", - "description": "A PageElement kind representing a\nvideo.", - "type": "object" + "description": "A PageElement kind representing a\nvideo." }, "PageProperties": { + "description": "The properties of the Page.\n\nThe page will inherit properties from the parent page. Depending on the page\ntype the hierarchy is defined in either\nSlideProperties or\nLayoutProperties.", + "type": "object", "properties": { - "pageBackgroundFill": { - "$ref": "PageBackgroundFill", - "description": "The background fill of the page. If unset, the background fill is inherited\nfrom a parent page if it exists. If the page has no parent, then the\nbackground fill defaults to the corresponding fill in the Slides editor." - }, "colorScheme": { "$ref": "ColorScheme", "description": "The color scheme of the page. If unset, the color scheme is inherited from\na parent page. If the page has no parent, the color scheme uses a default\nSlides color scheme. This field is read-only." + }, + "pageBackgroundFill": { + "$ref": "PageBackgroundFill", + "description": "The background fill of the page. If unset, the background fill is inherited\nfrom a parent page if it exists. If the page has no parent, then the\nbackground fill defaults to the corresponding fill in the Slides editor." } }, - "id": "PageProperties", - "description": "The properties of the Page.\n\nThe page will inherit properties from the parent page. Depending on the page\ntype the hierarchy is defined in either\nSlideProperties or\nLayoutProperties.", - "type": "object" + "id": "PageProperties" }, "TableCell": { - "id": "TableCell", - "description": "Properties and contents of each table cell.", "type": "object", "properties": { "rowSpan": { + "type": "integer", "format": "int32", - "description": "Row span of the cell.", - "type": "integer" + "description": "Row span of the cell." }, "location": { - "description": "The location of the cell within the table.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The location of the cell within the table." }, "columnSpan": { + "type": "integer", "format": "int32", - "description": "Column span of the cell.", - "type": "integer" + "description": "Column span of the cell." }, "text": { "$ref": "TextContent", @@ -856,7 +898,9 @@ "$ref": "TableCellProperties", "description": "The properties of the table cell." } - } + }, + "id": "TableCell", + "description": "Properties and contents of each table cell." }, "NestingLevel": { "description": "Contains properties describing the look and feel of a list bullet at a given\nlevel of nesting.", @@ -870,6 +914,8 @@ "id": "NestingLevel" }, "UpdateLinePropertiesRequest": { + "description": "Updates the properties of a Line.", + "type": "object", "properties": { "lineProperties": { "$ref": "LineProperties", @@ -885,20 +931,32 @@ "description": "The object ID of the line the update is applied to." } }, - "id": "UpdateLinePropertiesRequest", - "description": "Updates the properties of a Line.", - "type": "object" + "id": "UpdateLinePropertiesRequest" + }, + "UpdateSlidesPositionRequest": { + "description": "Updates the position of slides in the presentation.", + "type": "object", + "properties": { + "slideObjectIds": { + "items": { + "type": "string" + }, + "type": "array", + "description": "The IDs of the slides in the presentation that should be moved.\nThe slides in this list must be in existing presentation order, without\nduplicates." + }, + "insertionIndex": { + "type": "integer", + "format": "int32", + "description": "The index where the slides should be inserted, based on the slide\narrangement before the move takes place. Must be between zero and the\nnumber of slides in the presentation, inclusive." + } + }, + "id": "UpdateSlidesPositionRequest" }, "TableCellBackgroundFill": { "description": "The table cell background fill.", "type": "object", "properties": { - "solidFill": { - "description": "Solid color fill.", - "$ref": "SolidFill" - }, "propertyState": { - "description": "The background fill property state.\n\nUpdating the the fill on a table cell will implicitly update this field\nto `RENDERED`, unless another value is specified in the same request. To\nhave no fill on a table cell, set this field to `NOT_RENDERED`. In this\ncase, any other fill fields set in the same request will be ignored.", "type": "string", "enumDescriptions": [ "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", @@ -909,32 +967,17 @@ "RENDERED", "NOT_RENDERED", "INHERIT" - ] + ], + "description": "The background fill property state.\n\nUpdating the fill on a table cell will implicitly update this field\nto `RENDERED`, unless another value is specified in the same request. To\nhave no fill on a table cell, set this field to `NOT_RENDERED`. In this\ncase, any other fill fields set in the same request will be ignored." + }, + "solidFill": { + "$ref": "SolidFill", + "description": "Solid color fill." } }, "id": "TableCellBackgroundFill" }, - "UpdateSlidesPositionRequest": { - "description": "Updates the position of slides in the presentation.", - "type": "object", - "properties": { - "slideObjectIds": { - "description": "The IDs of the slides in the presentation that should be moved.\nThe slides in this list must be in existing presentation order, without\nduplicates.", - "items": { - "type": "string" - }, - "type": "array" - }, - "insertionIndex": { - "format": "int32", - "description": "The index where the slides should be inserted, based on the slide\narrangement before the move takes place. Must be between zero and the\nnumber of slides in the presentation, inclusive.", - "type": "integer" - } - }, - "id": "UpdateSlidesPositionRequest" - }, "UpdatePagePropertiesRequest": { - "description": "Updates the properties of a Page.", "type": "object", "properties": { "pageProperties": { @@ -942,8 +985,8 @@ "description": "The page properties to update." }, "objectId": { - "description": "The object ID of the page the update is applied to.", - "type": "string" + "type": "string", + "description": "The object ID of the page the update is applied to." }, "fields": { "format": "google-fieldmask", @@ -951,36 +994,47 @@ "type": "string" } }, - "id": "UpdatePagePropertiesRequest" + "id": "UpdatePagePropertiesRequest", + "description": "Updates the properties of a Page." }, "Group": { - "description": "A PageElement kind representing a\njoined collection of PageElements.", "type": "object", "properties": { "children": { - "description": "The collection of elements in the group. The minimum size of a group is 2.", "items": { "$ref": "PageElement" }, - "type": "array" + "type": "array", + "description": "The collection of elements in the group. The minimum size of a group is 2." } }, - "id": "Group" + "id": "Group", + "description": "A PageElement kind representing a\njoined collection of PageElements." }, "Placeholder": { "description": "The placeholder information that uniquely identifies a placeholder shape.", "type": "object", "properties": { - "parentObjectId": { - "description": "The object ID of this shape's parent placeholder.\nIf unset, the parent placeholder shape does not exist, so the shape does\nnot inherit properties from any other shape.", - "type": "string" - }, - "index": { - "format": "int32", - "description": "The index of the placeholder. If the same placeholder types are present in\nthe same page, they would have different index values.", - "type": "integer" - }, "type": { + "enum": [ + "NONE", + "BODY", + "CHART", + "CLIP_ART", + "CENTERED_TITLE", + "DIAGRAM", + "DATE_AND_TIME", + "FOOTER", + "HEADER", + "MEDIA", + "OBJECT", + "PICTURE", + "SLIDE_NUMBER", + "SUBTITLE", + "TABLE", + "TITLE", + "SLIDE_IMAGE" + ], "description": "The type of the placeholder.", "type": "string", "enumDescriptions": [ @@ -1001,81 +1055,90 @@ "Table.", "Slide title.", "Slide image." - ], - "enum": [ - "NONE", - "BODY", - "CHART", - "CLIP_ART", - "CENTERED_TITLE", - "DIAGRAM", - "DATE_AND_TIME", - "FOOTER", - "HEADER", - "MEDIA", - "OBJECT", - "PICTURE", - "SLIDE_NUMBER", - "SUBTITLE", - "TABLE", - "TITLE", - "SLIDE_IMAGE" ] + }, + "parentObjectId": { + "description": "The object ID of this shape's parent placeholder.\nIf unset, the parent placeholder shape does not exist, so the shape does\nnot inherit properties from any other shape.", + "type": "string" + }, + "index": { + "format": "int32", + "description": "The index of the placeholder. If the same placeholder types are present in\nthe same page, they would have different index values.", + "type": "integer" } }, "id": "Placeholder" }, "DuplicateObjectRequest": { - "description": "Duplicates a slide or page element.\n\nWhen duplicating a slide, the duplicate slide will be created immediately\nfollowing the specified slide. When duplicating a page element, the duplicate\nwill be placed on the same page at the same position as the original.", "type": "object", "properties": { + "objectIds": { + "additionalProperties": { + "type": "string" + }, + "description": "The object being duplicated may contain other objects, for example when\nduplicating a slide or a group page element. This map defines how the IDs\nof duplicated objects are generated: the keys are the IDs of the original\nobjects and its values are the IDs that will be assigned to the\ncorresponding duplicate object. The ID of the source object's duplicate\nmay be specified in this map as well, using the same value of the\n`object_id` field as a key and the newly desired ID as the value.\n\nAll keys must correspond to existing IDs in the presentation. All values\nmust be unique in the presentation and must start with an alphanumeric\ncharacter or an underscore (matches regex `[a-zA-Z0-9_]`); remaining\ncharacters may include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`). The length of the new ID must not be less than 5 or\ngreater than 50.\n\nIf any IDs of source objects are omitted from the map, a new random ID will\nbe assigned. If the map is empty or unset, all duplicate objects will\nreceive a new random ID.", + "type": "object" + }, "objectId": { "description": "The ID of the object to duplicate.", "type": "string" - }, - "objectIds": { - "description": "The object being duplicated may contain other objects, for example when\nduplicating a slide or a group page element. This map defines how the IDs\nof duplicated objects are generated: the keys are the IDs of the original\nobjects and its values are the IDs that will be assigned to the\ncorresponding duplicate object. The ID of the source object's duplicate\nmay be specified in this map as well, using the same value of the\n`object_id` field as a key and the newly desired ID as the value.\n\nAll keys must correspond to existing IDs in the presentation. All values\nmust be unique in the presentation and must start with an alphanumeric\ncharacter or an underscore (matches regex `[a-zA-Z0-9_]`); remaining\ncharacters may include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`). The length of the new ID must not be less than 5 or\ngreater than 50.\n\nIf any IDs of source objects are omitted from the map, a new random ID will\nbe assigned. If the map is empty or unset, all duplicate objects will\nreceive a new random ID.", - "type": "object", - "additionalProperties": { - "type": "string" - } } }, - "id": "DuplicateObjectRequest" + "id": "DuplicateObjectRequest", + "description": "Duplicates a slide or page element.\n\nWhen duplicating a slide, the duplicate slide will be created immediately\nfollowing the specified slide. When duplicating a page element, the duplicate\nwill be placed on the same page at the same position as the original." }, "ReplaceAllTextRequest": { - "description": "Replaces all instances of text matching a criteria with replace text.", "type": "object", "properties": { "containsText": { - "description": "Finds text in a shape matching this substring.", - "$ref": "SubstringMatchCriteria" + "$ref": "SubstringMatchCriteria", + "description": "Finds text in a shape matching this substring." }, "pageObjectIds": { + "description": "If non-empty, limits the matches to page elements only on the given pages.\n\nReturns a 400 bad request error if given the page object ID of a\nnotes master,\nor if a page with that object ID doesn't exist in the presentation.", "items": { "type": "string" }, - "type": "array", - "description": "If non-empty, limits the matches to page elements only on the given pages.\n\nReturns a 400 bad request error if given the page object ID of a\nnotes master,\nor if a page with that object ID doesn't exist in the presentation." + "type": "array" }, "replaceText": { "description": "The text that will replace the matched text.", "type": "string" } }, - "id": "ReplaceAllTextRequest" + "id": "ReplaceAllTextRequest", + "description": "Replaces all instances of text matching a criteria with replace text." + }, + "UnmergeTableCellsRequest": { + "description": "Unmerges cells in a Table.", + "type": "object", + "properties": { + "tableRange": { + "$ref": "TableRange", + "description": "The table range specifying which cells of the table to unmerge.\n\nAll merged cells in this range will be unmerged, and cells that are already\nunmerged will not be affected. If the range has no merged cells, the\nrequest will do nothing. If there is text in any of the merged cells, the\ntext will remain in the upper-left (\"head\") cell of the resulting block of\nunmerged cells." + }, + "objectId": { + "description": "The object ID of the table.", + "type": "string" + } + }, + "id": "UnmergeTableCellsRequest" }, "Page": { "description": "A page in a presentation.", "type": "object", "properties": { + "objectId": { + "description": "The object ID for this page. Object IDs used by\nPage and\nPageElement share the same namespace.", + "type": "string" + }, "revisionId": { - "type": "string", - "description": "The revision ID of the presentation containing this page. Can be used in\nupdate requests to assert that the presentation revision hasn't changed\nsince the last read operation. Only populated if the user has edit access\nto the presentation.\n\nThe format of the revision ID may change over time, so it should be treated\nopaquely. A returned revision ID is only guaranteed to be valid for 24\nhours after it has been returned and cannot be shared across users. If the\nrevision ID is unchanged between calls, then the presentation has not\nchanged. Conversely, a changed ID (for the same presentation and user)\nusually means the presentation has been updated; however, a changed ID can\nalso be due to internal factors such as ID format changes." + "description": "The revision ID of the presentation containing this page. Can be used in\nupdate requests to assert that the presentation revision hasn't changed\nsince the last read operation. Only populated if the user has edit access\nto the presentation.\n\nThe format of the revision ID may change over time, so it should be treated\nopaquely. A returned revision ID is only guaranteed to be valid for 24\nhours after it has been returned and cannot be shared across users. If the\nrevision ID is unchanged between calls, then the presentation has not\nchanged. Conversely, a changed ID (for the same presentation and user)\nusually means the presentation has been updated; however, a changed ID can\nalso be due to internal factors such as ID format changes.", + "type": "string" }, "layoutProperties": { - "description": "Layout specific properties. Only set if page_type = LAYOUT.", - "$ref": "LayoutProperties" + "$ref": "LayoutProperties", + "description": "Layout specific properties. Only set if page_type = LAYOUT." }, "pageElements": { "description": "The page elements rendered on the page.", @@ -1085,14 +1148,6 @@ "type": "array" }, "pageType": { - "enum": [ - "SLIDE", - "MASTER", - "LAYOUT", - "NOTES", - "NOTES_MASTER" - ], - "description": "The type of the page.", "type": "string", "enumDescriptions": [ "A slide page.", @@ -1100,69 +1155,77 @@ "A layout page.", "A notes page.", "A notes master page." - ] + ], + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "description": "The type of the page." }, "notesProperties": { "$ref": "NotesProperties", "description": "Notes specific properties. Only set if page_type = NOTES." }, - "pageProperties": { - "description": "The properties of the page.", - "$ref": "PageProperties" - }, "slideProperties": { "$ref": "SlideProperties", "description": "Slide specific properties. Only set if page_type = SLIDE." }, + "pageProperties": { + "$ref": "PageProperties", + "description": "The properties of the page." + }, "masterProperties": { "$ref": "MasterProperties", "description": "Master specific properties. Only set if page_type = MASTER." - }, - "objectId": { - "description": "The object ID for this page. Object IDs used by\nPage and\nPageElement share the same namespace.", - "type": "string" } }, "id": "Page" }, "ShapeBackgroundFill": { - "id": "ShapeBackgroundFill", "description": "The shape background fill.", "type": "object", "properties": { + "solidFill": { + "$ref": "SolidFill", + "description": "Solid color fill." + }, "propertyState": { - "enumDescriptions": [ - "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", - "If a property's state is NOT_RENDERED, then the element does not have the\ncorresponding property when rendered on a page. However, the field may\nstill be set so it can be inherited by child shapes. To remove a property\nfrom a rendered element, set its property_state to NOT_RENDERED.", - "If a property's state is INHERIT, then the property state uses the value of\ncorresponding `property_state` field on the parent shape. Elements that do\nnot inherit will never have an INHERIT property state." - ], "enum": [ "RENDERED", "NOT_RENDERED", "INHERIT" ], - "description": "The background fill property state.\n\nUpdating the the fill on a shape will implicitly update this field to\n`RENDERED`, unless another value is specified in the same request. To\nhave no fill on a shape, set this field to `NOT_RENDERED`. In this case,\nany other fill fields set in the same request will be ignored.", - "type": "string" - }, - "solidFill": { - "$ref": "SolidFill", - "description": "Solid color fill." + "description": "The background fill property state.\n\nUpdating the fill on a shape will implicitly update this field to\n`RENDERED`, unless another value is specified in the same request. To\nhave no fill on a shape, set this field to `NOT_RENDERED`. In this case,\nany other fill fields set in the same request will be ignored.", + "type": "string", + "enumDescriptions": [ + "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", + "If a property's state is NOT_RENDERED, then the element does not have the\ncorresponding property when rendered on a page. However, the field may\nstill be set so it can be inherited by child shapes. To remove a property\nfrom a rendered element, set its property_state to NOT_RENDERED.", + "If a property's state is INHERIT, then the property state uses the value of\ncorresponding `property_state` field on the parent shape. Elements that do\nnot inherit will never have an INHERIT property state." + ] } - } + }, + "id": "ShapeBackgroundFill" }, "CropProperties": { - "description": "The crop properties of an object enclosed in a container. For example, an\nImage.\n\nThe crop properties is represented by the offsets of four edges which define\na crop rectangle. The offsets are measured in percentage from the\ncorresponding edges of the object's original bounding rectangle towards\ninside, relative to the object's original dimensions.\n\n- If the offset is in the interval (0, 1), the corresponding edge of crop\nrectangle is positioned inside of the object's original bounding rectangle.\n- If the offset is negative or greater than 1, the corresponding edge of crop\nrectangle is positioned outside of the object's original bounding rectangle.\n- If the left edge of the crop rectangle is on the right side of its right\nedge, the object will be flipped horizontally.\n- If the top edge of the crop rectangle is below its bottom edge, the object\nwill be flipped vertically.\n- If all offsets and rotation angle is 0, the object is not cropped.\n\nAfter cropping, the content in the crop rectangle will be stretched to fit\nits container.", "type": "object", "properties": { + "rightOffset": { + "type": "number", + "format": "float", + "description": "The offset specifies the right edge of the crop rectangle that is located\nto the left of the original bounding rectangle right edge, relative to the\nobject's original width." + }, "bottomOffset": { "format": "float", "description": "The offset specifies the bottom edge of the crop rectangle that is located\nabove the original bounding rectangle bottom edge, relative to the object's\noriginal height.", "type": "number" }, "angle": { + "type": "number", "format": "float", - "description": "The rotation angle of the crop window around its center, in radians.\nRotation angle is applied after the offset.", - "type": "number" + "description": "The rotation angle of the crop window around its center, in radians.\nRotation angle is applied after the offset." }, "topOffset": { "format": "float", @@ -1170,19 +1233,16 @@ "type": "number" }, "leftOffset": { + "type": "number", "format": "float", - "description": "The offset specifies the left edge of the crop rectangle that is located to\nthe right of the original bounding rectangle left edge, relative to the\nobject's original width.", - "type": "number" - }, - "rightOffset": { - "format": "float", - "description": "The offset specifies the right edge of the crop rectangle that is located\nto the left of the original bounding rectangle right edge, relative to the\nobject's original width.", - "type": "number" + "description": "The offset specifies the left edge of the crop rectangle that is located to\nthe right of the original bounding rectangle left edge, relative to the\nobject's original width." } }, - "id": "CropProperties" + "id": "CropProperties", + "description": "The crop properties of an object enclosed in a container. For example, an\nImage.\n\nThe crop properties is represented by the offsets of four edges which define\na crop rectangle. The offsets are measured in percentage from the\ncorresponding edges of the object's original bounding rectangle towards\ninside, relative to the object's original dimensions.\n\n- If the offset is in the interval (0, 1), the corresponding edge of crop\nrectangle is positioned inside of the object's original bounding rectangle.\n- If the offset is negative or greater than 1, the corresponding edge of crop\nrectangle is positioned outside of the object's original bounding rectangle.\n- If the left edge of the crop rectangle is on the right side of its right\nedge, the object will be flipped horizontally.\n- If the top edge of the crop rectangle is below its bottom edge, the object\nwill be flipped vertically.\n- If all offsets and rotation angle is 0, the object is not cropped.\n\nAfter cropping, the content in the crop rectangle will be stretched to fit\nits container." }, "ReplaceAllShapesWithSheetsChartRequest": { + "description": "Replaces all shapes that match the given criteria with the provided Google\nSheets chart. The chart will be scaled and centered to fit within the bounds\nof the original shape.\n\nNOTE: Replacing shapes with a chart requires at least one of the\nspreadsheets.readonly, spreadsheets, drive.readonly, or drive OAuth scopes.", "type": "object", "properties": { "linkingMode": { @@ -1198,28 +1258,27 @@ "description": "The mode with which the chart is linked to the source spreadsheet. When\nnot specified, the chart will be an image that is not linked." }, "spreadsheetId": { - "description": "The ID of the Google Sheets spreadsheet that contains the chart.", - "type": "string" + "type": "string", + "description": "The ID of the Google Sheets spreadsheet that contains the chart." }, "pageObjectIds": { - "description": "If non-empty, limits the matches to page elements only on the given pages.\n\nReturns a 400 bad request error if given the page object ID of a\nnotes page or a\nnotes master, or if a\npage with that object ID doesn't exist in the presentation.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "description": "If non-empty, limits the matches to page elements only on the given pages.\n\nReturns a 400 bad request error if given the page object ID of a\nnotes page or a\nnotes master, or if a\npage with that object ID doesn't exist in the presentation." }, "chartId": { + "type": "integer", "format": "int32", - "description": "The ID of the specific chart in the Google Sheets spreadsheet.", - "type": "integer" + "description": "The ID of the specific chart in the Google Sheets spreadsheet." }, "containsText": { "$ref": "SubstringMatchCriteria", "description": "The criteria that the shapes must match in order to be replaced. The\nrequest will replace all of the shapes that contain the given text." } }, - "id": "ReplaceAllShapesWithSheetsChartRequest", - "description": "Replaces all shapes that match the given criteria with the provided Google\nSheets chart. The chart will be scaled and centered to fit within the bounds\nof the original shape.\n\nNOTE: Replacing shapes with a chart requires at least one of the\nspreadsheets.readonly, spreadsheets, drive.readonly, or drive OAuth scopes." + "id": "ReplaceAllShapesWithSheetsChartRequest" }, "ColorStop": { "description": "A color and position in a gradient band.", @@ -1236,14 +1295,13 @@ "description": "The alpha value of this color in the gradient band. Defaults to 1.0,\nfully opaque." }, "color": { - "description": "The color of the gradient stop.", - "$ref": "OpaqueColor" + "$ref": "OpaqueColor", + "description": "The color of the gradient stop." } }, "id": "ColorStop" }, "Range": { - "description": "Specifies a contiguous range of an indexed collection, such as characters in\ntext.", "type": "object", "properties": { "endIndex": { @@ -1273,27 +1331,23 @@ ] } }, - "id": "Range" + "id": "Range", + "description": "Specifies a contiguous range of an indexed collection, such as characters in\ntext." }, "CreateVideoRequest": { - "description": "Creates a video.", "type": "object", "properties": { - "id": { - "type": "string", - "description": "The video source's unique identifier for this video.\n\ne.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0,\nthe ID is 7U3axjORYZ0." - }, "source": { - "enumDescriptions": [ - "The video source is unspecified.", - "The video source is YouTube." - ], "enum": [ "SOURCE_UNSPECIFIED", "YOUTUBE" ], "description": "The video source.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "The video source is unspecified.", + "The video source is YouTube." + ] }, "objectId": { "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated.", @@ -1302,16 +1356,21 @@ "elementProperties": { "$ref": "PageElementProperties", "description": "The element properties for the video." + }, + "id": { + "type": "string", + "description": "The video source's unique identifier for this video.\n\ne.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0,\nthe ID is 7U3axjORYZ0." } }, - "id": "CreateVideoRequest" + "id": "CreateVideoRequest", + "description": "Creates a video." }, "DuplicateObjectResponse": { "type": "object", "properties": { "objectId": { - "type": "string", - "description": "The ID of the new duplicate object." + "description": "The ID of the new duplicate object.", + "type": "string" } }, "id": "DuplicateObjectResponse", @@ -1326,16 +1385,16 @@ "type": "string" }, "replaceMethod": { - "enum": [ - "CENTER_INSIDE", - "CENTER_CROP" - ], - "description": "The replace method.", "type": "string", "enumDescriptions": [ "Scales and centers the image to fit within the bounds of the original\nshape and maintains the image's aspect ratio. The rendered size of the\nimage may be smaller than the size of the shape. This is the default\nmethod when one is not specified.", "Scales and centers the image to fill the bounds of the original shape.\nThe image may be cropped in order to fill the shape. The rendered size of\nthe image will be the same as that of the original shape." - ] + ], + "enum": [ + "CENTER_INSIDE", + "CENTER_CROP" + ], + "description": "The replace method." }, "pageObjectIds": { "description": "If non-empty, limits the matches to page elements only on the given pages.\n\nReturns a 400 bad request error if given the page object ID of a\nnotes page or a\nnotes master, or if a\npage with that object ID doesn't exist in the presentation.", @@ -1345,42 +1404,45 @@ "type": "array" }, "containsText": { - "description": "If set, this request will replace all of the shapes that contain the\ngiven text.", - "$ref": "SubstringMatchCriteria" + "$ref": "SubstringMatchCriteria", + "description": "If set, this request will replace all of the shapes that contain the\ngiven text." } }, "id": "ReplaceAllShapesWithImageRequest" }, + "MergeTableCellsRequest": { + "description": "Merges cells in a Table.", + "type": "object", + "properties": { + "tableRange": { + "$ref": "TableRange", + "description": "The table range specifying which cells of the table to merge.\n\nAny text in the cells being merged will be concatenated and stored in the\nupper-left (\"head\") cell of the range. If the range is non-rectangular\n(which can occur in some cases where the range covers cells that are\nalready merged), a 400 bad request error is returned." + }, + "objectId": { + "description": "The object ID of the table.", + "type": "string" + } + }, + "id": "MergeTableCellsRequest" + }, + "UngroupObjectsRequest": { + "description": "Ungroups objects, such as groups.", + "type": "object", + "properties": { + "objectIds": { + "description": "The object IDs of the objects to ungroup.\n\nOnly groups that are not inside other\ngroups can be ungrouped. All the groups\nshould be on the same page. The group itself is deleted. The visual sizes\nand positions of all the children are preserved.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "UngroupObjectsRequest" + }, "Shadow": { "description": "The shadow properties of a page element.\n\nIf these fields are unset, they may be inherited from a parent placeholder\nif it exists. If there is no parent, the fields will default to the value\nused for new page elements created in the Slides editor, which may depend on\nthe page element kind.", "type": "object", "properties": { - "rotateWithShape": { - "type": "boolean", - "description": "Whether the shadow should rotate with the shape." - }, - "propertyState": { - "type": "string", - "enumDescriptions": [ - "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", - "If a property's state is NOT_RENDERED, then the element does not have the\ncorresponding property when rendered on a page. However, the field may\nstill be set so it can be inherited by child shapes. To remove a property\nfrom a rendered element, set its property_state to NOT_RENDERED.", - "If a property's state is INHERIT, then the property state uses the value of\ncorresponding `property_state` field on the parent shape. Elements that do\nnot inherit will never have an INHERIT property state." - ], - "enum": [ - "RENDERED", - "NOT_RENDERED", - "INHERIT" - ], - "description": "The shadow property state.\n\nUpdating the the shadow on a page element will implicitly update this field\nto `RENDERED`, unless another value is specified in the same request. To\nhave no shadow on a page element, set this field to `NOT_RENDERED`. In this\ncase, any other shadow fields set in the same request will be ignored." - }, - "blurRadius": { - "$ref": "Dimension", - "description": "The radius of the shadow blur. The larger the radius, the more diffuse the\nshadow becomes." - }, - "transform": { - "$ref": "AffineTransform", - "description": "Transform that encodes the translate, scale, and skew of the shadow,\nrelative to the alignment position." - }, "type": { "type": "string", "enumDescriptions": [ @@ -1393,6 +1455,10 @@ ], "description": "The type of the shadow." }, + "transform": { + "$ref": "AffineTransform", + "description": "Transform that encodes the translate, scale, and skew of the shadow,\nrelative to the alignment position." + }, "alignment": { "enum": [ "RECTANGLE_POSITION_UNSPECIFIED", @@ -1422,13 +1488,35 @@ ] }, "alpha": { + "type": "number", "format": "float", - "description": "The alpha of the shadow's color, from 0.0 to 1.0.", - "type": "number" + "description": "The alpha of the shadow's color, from 0.0 to 1.0." }, "color": { "$ref": "OpaqueColor", "description": "The shadow color value." + }, + "rotateWithShape": { + "description": "Whether the shadow should rotate with the shape.", + "type": "boolean" + }, + "propertyState": { + "type": "string", + "enumDescriptions": [ + "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", + "If a property's state is NOT_RENDERED, then the element does not have the\ncorresponding property when rendered on a page. However, the field may\nstill be set so it can be inherited by child shapes. To remove a property\nfrom a rendered element, set its property_state to NOT_RENDERED.", + "If a property's state is INHERIT, then the property state uses the value of\ncorresponding `property_state` field on the parent shape. Elements that do\nnot inherit will never have an INHERIT property state." + ], + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "description": "The shadow property state.\n\nUpdating the the shadow on a page element will implicitly update this field\nto `RENDERED`, unless another value is specified in the same request. To\nhave no shadow on a page element, set this field to `NOT_RENDERED`. In this\ncase, any other shadow fields set in the same request will be ignored." + }, + "blurRadius": { + "$ref": "Dimension", + "description": "The radius of the shadow blur. The larger the radius, the more diffuse the\nshadow becomes." } }, "id": "Shadow" @@ -1441,8 +1529,8 @@ "description": "The reference table cell location from which a row will be deleted.\n\nThe row this cell spans will be deleted. If this is a merged cell, multiple\nrows will be deleted. If no rows remain in the table after this deletion,\nthe whole table is deleted." }, "tableObjectId": { - "description": "The table to delete rows from.", - "type": "string" + "type": "string", + "description": "The table to delete rows from." } }, "id": "DeleteTableRowRequest", @@ -1452,22 +1540,22 @@ "description": "Describes the bullet of a paragraph.", "type": "object", "properties": { + "glyph": { + "type": "string", + "description": "The rendered bullet glyph for this paragraph." + }, "nestingLevel": { - "type": "integer", "format": "int32", - "description": "The nesting level of this paragraph in the list." + "description": "The nesting level of this paragraph in the list.", + "type": "integer" }, "bulletStyle": { "$ref": "TextStyle", "description": "The paragraph specific text style applied to this bullet." }, "listId": { - "description": "The ID of the list this paragraph belongs to.", - "type": "string" - }, - "glyph": { - "description": "The rendered bullet glyph for this paragraph.", - "type": "string" + "type": "string", + "description": "The ID of the list this paragraph belongs to." } }, "id": "Bullet" @@ -1483,25 +1571,7 @@ }, "id": "OutlineFill" }, - "TableCellLocation": { - "description": "A location of a single table cell within a table.", - "type": "object", - "properties": { - "columnIndex": { - "format": "int32", - "description": "The 0-based column index.", - "type": "integer" - }, - "rowIndex": { - "type": "integer", - "format": "int32", - "description": "The 0-based row index." - } - }, - "id": "TableCellLocation" - }, "CreateLineResponse": { - "description": "The result of creating a line.", "type": "object", "properties": { "objectId": { @@ -1509,32 +1579,52 @@ "type": "string" } }, - "id": "CreateLineResponse" + "id": "CreateLineResponse", + "description": "The result of creating a line." }, - "ReplaceAllTextResponse": { - "description": "The result of replacing text.", + "TableCellLocation": { + "description": "A location of a single table cell within a table.", "type": "object", "properties": { - "occurrencesChanged": { + "columnIndex": { + "type": "integer", "format": "int32", - "description": "The number of occurrences changed by replacing all text.", + "description": "The 0-based column index." + }, + "rowIndex": { + "format": "int32", + "description": "The 0-based row index.", "type": "integer" } }, - "id": "ReplaceAllTextResponse" + "id": "TableCellLocation" }, - "UpdateParagraphStyleRequest": { - "description": "Updates the styling for all of the paragraphs within a Shape or Table that\noverlap with the given text index range.", + "ReplaceAllTextResponse": { + "type": "object", + "properties": { + "occurrencesChanged": { + "type": "integer", + "format": "int32", + "description": "The number of occurrences changed by replacing all text." + } + }, + "id": "ReplaceAllTextResponse", + "description": "The result of replacing text." + }, + "TableBorderFill": { + "type": "object", + "properties": { + "solidFill": { + "$ref": "SolidFill", + "description": "Solid fill." + } + }, + "id": "TableBorderFill", + "description": "The fill of the border." + }, + "UpdateParagraphStyleRequest": { "type": "object", "properties": { - "style": { - "$ref": "ParagraphStyle", - "description": "The paragraph's style." - }, - "cellLocation": { - "$ref": "TableCellLocation", - "description": "The location of the cell in the table containing the paragraph(s) to\nstyle. If `object_id` refers to a table, `cell_location` must have a value.\nOtherwise, it must not." - }, "fields": { "type": "string", "format": "google-fieldmask", @@ -1545,14 +1635,22 @@ "description": "The range of text containing the paragraph(s) to style." }, "objectId": { - "description": "The object ID of the shape or table with the text to be styled.", - "type": "string" + "type": "string", + "description": "The object ID of the shape or table with the text to be styled." + }, + "style": { + "$ref": "ParagraphStyle", + "description": "The paragraph's style." + }, + "cellLocation": { + "$ref": "TableCellLocation", + "description": "The location of the cell in the table containing the paragraph(s) to\nstyle. If `object_id` refers to a table, `cell_location` must have a value.\nOtherwise, it must not." } }, - "id": "UpdateParagraphStyleRequest" + "id": "UpdateParagraphStyleRequest", + "description": "Updates the styling for all of the paragraphs within a Shape or Table that\noverlap with the given text index range." }, "ColorScheme": { - "description": "The palette of predefined colors for a page.", "type": "object", "properties": { "colors": { @@ -1563,7 +1661,8 @@ "type": "array" } }, - "id": "ColorScheme" + "id": "ColorScheme", + "description": "The palette of predefined colors for a page." }, "Shape": { "description": "A PageElement kind representing a\ngeneric shape that does not have a more specific classification.", @@ -1574,10 +1673,11 @@ "description": "Placeholders are shapes that are inherit from corresponding placeholders on\nlayouts and masters.\n\nIf set, the shape is a placeholder shape and any inherited properties\ncan be resolved by looking at the parent placeholder identified by the\nPlaceholder.parent_object_id field." }, "text": { - "description": "The text content of the shape.", - "$ref": "TextContent" + "$ref": "TextContent", + "description": "The text content of the shape." }, "shapeType": { + "type": "string", "enumDescriptions": [ "The shape type that is not predefined.", "Text box shape.", @@ -1868,12 +1968,11 @@ "CLOUD_CALLOUT", "CUSTOM" ], - "description": "The type of the shape.", - "type": "string" + "description": "The type of the shape." }, "shapeProperties": { - "description": "The properties of the shape.", - "$ref": "ShapeProperties" + "$ref": "ShapeProperties", + "description": "The properties of the shape." } }, "id": "Shape" @@ -1887,8 +1986,8 @@ "description": "The properties of the image." }, "contentUrl": { - "type": "string", - "description": "An URL to an image with a default lifetime of 30 minutes.\nThis URL is tagged with the account of the requester. Anyone with the URL\neffectively accesses the image as the original requester. Access to the\nimage may be lost if the presentation's sharing settings change." + "description": "An URL to an image with a default lifetime of 30 minutes.\nThis URL is tagged with the account of the requester. Anyone with the URL\neffectively accesses the image as the original requester. Access to the\nimage may be lost if the presentation's sharing settings change.", + "type": "string" } }, "id": "Image" @@ -1897,10 +1996,15 @@ "description": "AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ]\nto transform source coordinates (x,y) into destination coordinates (x', y')\naccording to:\n\n x' x = shear_y scale_y translate_y \n 1 [ 1 ]\n\nAfter transformation,\n\n x' = scale_x * x + shear_x * y + translate_x;\n y' = scale_y * y + shear_y * x + translate_y;\n\nThis message is therefore composed of these six matrix elements.", "type": "object", "properties": { - "scaleY": { + "shearX": { + "type": "number", "format": "double", - "description": "The Y coordinate scaling element.", - "type": "number" + "description": "The X coordinate shearing element." + }, + "scaleY": { + "type": "number", + "format": "double", + "description": "The Y coordinate scaling element." }, "translateY": { "format": "double", @@ -1913,12 +2017,11 @@ "type": "number" }, "shearY": { + "type": "number", "format": "double", - "description": "The Y coordinate shearing element.", - "type": "number" + "description": "The Y coordinate shearing element." }, "unit": { - "description": "The units for translate elements.", "type": "string", "enumDescriptions": [ "The units are unknown.", @@ -1929,24 +2032,18 @@ "UNIT_UNSPECIFIED", "EMU", "PT" - ] + ], + "description": "The units for translate elements." }, "scaleX": { + "type": "number", "format": "double", - "description": "The X coordinate scaling element.", - "type": "number" - }, - "shearX": { - "format": "double", - "description": "The X coordinate shearing element.", - "type": "number" + "description": "The X coordinate scaling element." } }, "id": "AffineTransform" }, "InsertTextRequest": { - "id": "InsertTextRequest", - "description": "Inserts text into a shape or a table cell.", "type": "object", "properties": { "text": { @@ -1954,22 +2051,23 @@ "type": "string" }, "objectId": { - "description": "The object ID of the shape or table where the text will be inserted.", - "type": "string" + "type": "string", + "description": "The object ID of the shape or table where the text will be inserted." }, "insertionIndex": { + "type": "integer", "format": "int32", - "description": "The index where the text will be inserted, in Unicode code units, based\non TextElement indexes.\n\nThe index is zero-based and is computed from the start of the string.\nThe index may be adjusted to prevent insertions inside Unicode grapheme\nclusters. In these cases, the text will be inserted immediately after the\ngrapheme cluster.", - "type": "integer" + "description": "The index where the text will be inserted, in Unicode code units, based\non TextElement indexes.\n\nThe index is zero-based and is computed from the start of the string.\nThe index may be adjusted to prevent insertions inside Unicode grapheme\nclusters. In these cases, the text will be inserted immediately after the\ngrapheme cluster." }, "cellLocation": { "$ref": "TableCellLocation", "description": "The optional table cell location if the text is to be inserted into a table\ncell. If present, the object_id must refer to a table." } - } + }, + "id": "InsertTextRequest", + "description": "Inserts text into a shape or a table cell." }, "AutoText": { - "description": "A TextElement kind that represents auto text.", "type": "object", "properties": { "content": { @@ -1977,15 +2075,15 @@ "type": "string" }, "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "SLIDE_NUMBER" + ], "description": "The type of this auto text.", "type": "string", "enumDescriptions": [ "An unspecified autotext type.", "Type for autotext that represents the current slide number." - ], - "enum": [ - "TYPE_UNSPECIFIED", - "SLIDE_NUMBER" ] }, "style": { @@ -1993,63 +2091,64 @@ "description": "The styling applied to this auto text." } }, - "id": "AutoText" + "id": "AutoText", + "description": "A TextElement kind that represents auto text." }, "CreateVideoResponse": { "description": "The result of creating a video.", "type": "object", "properties": { "objectId": { - "type": "string", - "description": "The object ID of the created video." + "description": "The object ID of the created video.", + "type": "string" } }, "id": "CreateVideoResponse" }, "UpdatePageElementTransformRequest": { - "description": "Updates the transform of a page element.\n\nUpdating the transform of a group will change the absolute transform of the\npage elements in that group, which can change their visual appearance. See\nthe documentation for PageElement.transform for more details.", "type": "object", "properties": { "transform": { - "description": "The input transform matrix used to update the page element.", - "$ref": "AffineTransform" + "$ref": "AffineTransform", + "description": "The input transform matrix used to update the page element." }, "objectId": { - "description": "The object ID of the page element to update.", - "type": "string" + "type": "string", + "description": "The object ID of the page element to update." }, "applyMode": { + "enum": [ + "APPLY_MODE_UNSPECIFIED", + "RELATIVE", + "ABSOLUTE" + ], "description": "The apply mode of the transform update.", "type": "string", "enumDescriptions": [ "Unspecified mode.", "Applies the new AffineTransform matrix to the existing one, and\nreplaces the existing one with the resulting concatenation.", "Replaces the existing AffineTransform matrix with the new one." - ], - "enum": [ - "APPLY_MODE_UNSPECIFIED", - "RELATIVE", - "ABSOLUTE" ] } }, - "id": "UpdatePageElementTransformRequest" + "id": "UpdatePageElementTransformRequest", + "description": "Updates the transform of a page element.\n\nUpdating the transform of a group will change the absolute transform of the\npage elements in that group, which can change their visual appearance. See\nthe documentation for PageElement.transform for more details." }, "DeleteTextRequest": { "description": "Deletes text from a shape or a table cell.", "type": "object", "properties": { "textRange": { - "description": "The range of text to delete, based on TextElement indexes.\n\nThere is always an implicit newline character at the end of a shape's or\ntable cell's text that cannot be deleted. `Range.Type.ALL` will use the\ncorrect bounds, but care must be taken when specifying explicit bounds for\nrange types `FROM_START_INDEX` and `FIXED_RANGE`. For example, if the text\nis \"ABC\", followed by an implicit newline, then the maximum value is 2 for\n`text_range.start_index` and 3 for `text_range.end_index`.\n\nDeleting text that crosses a paragraph boundary may result in changes\nto paragraph styles and lists as the two paragraphs are merged.\n\nRanges that include only one code unit of a surrogate pair are expanded to\ninclude both code units.", - "$ref": "Range" + "$ref": "Range", + "description": "The range of text to delete, based on TextElement indexes.\n\nThere is always an implicit newline character at the end of a shape's or\ntable cell's text that cannot be deleted. `Range.Type.ALL` will use the\ncorrect bounds, but care must be taken when specifying explicit bounds for\nrange types `FROM_START_INDEX` and `FIXED_RANGE`. For example, if the text\nis \"ABC\", followed by an implicit newline, then the maximum value is 2 for\n`text_range.start_index` and 3 for `text_range.end_index`.\n\nDeleting text that crosses a paragraph boundary may result in changes\nto paragraph styles and lists as the two paragraphs are merged.\n\nRanges that include only one code unit of a surrogate pair are expanded to\ninclude both code units." }, "objectId": { - "description": "The object ID of the shape or table from which the text will be deleted.", - "type": "string" + "type": "string", + "description": "The object ID of the shape or table from which the text will be deleted." }, "cellLocation": { - "description": "The optional table cell location if the text is to be deleted from a table\ncell. If present, the object_id must refer to a table.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The optional table cell location if the text is to be deleted from a table\ncell. If present, the object_id must refer to a table." } }, "id": "DeleteTextRequest" @@ -2066,13 +2165,8 @@ "description": "Deletes an object, either pages or\npage elements, from the\npresentation." }, "TextElement": { - "description": "A TextElement describes the content of a range of indices in the text content\nof a Shape or TableCell.", "type": "object", "properties": { - "paragraphMarker": { - "$ref": "ParagraphMarker", - "description": "A marker representing the beginning of a new paragraph.\n\nThe `start_index` and `end_index` of this TextElement represent the\nrange of the paragraph. Other TextElements with an index range contained\ninside this paragraph's range are considered to be part of this\nparagraph. The range of indices of two separate paragraphs will never\noverlap." - }, "endIndex": { "format": "int32", "description": "The zero-based end index of this text element, exclusive, in Unicode code\nunits.", @@ -2090,21 +2184,24 @@ "autoText": { "$ref": "AutoText", "description": "A TextElement representing a spot in the text that is dynamically\nreplaced with content that can change over time." + }, + "paragraphMarker": { + "$ref": "ParagraphMarker", + "description": "A marker representing the beginning of a new paragraph.\n\nThe `start_index` and `end_index` of this TextElement represent the\nrange of the paragraph. Other TextElements with an index range contained\ninside this paragraph's range are considered to be part of this\nparagraph. The range of indices of two separate paragraphs will never\noverlap." } }, - "id": "TextElement" + "id": "TextElement", + "description": "A TextElement describes the content of a range of indices in the text content\nof a Shape or TableCell." }, "Dimension": { - "description": "A magnitude in a single direction in the specified units.", "type": "object", "properties": { "magnitude": { + "type": "number", "format": "double", - "description": "The magnitude.", - "type": "number" + "description": "The magnitude." }, "unit": { - "description": "The units for magnitude.", "type": "string", "enumDescriptions": [ "The units are unknown.", @@ -2115,10 +2212,12 @@ "UNIT_UNSPECIFIED", "EMU", "PT" - ] + ], + "description": "The units for magnitude." } }, - "id": "Dimension" + "id": "Dimension", + "description": "A magnitude in a single direction in the specified units." }, "LineFill": { "description": "The fill of the line.", @@ -2132,30 +2231,19 @@ "id": "LineFill" }, "VideoProperties": { + "description": "The properties of the Video.", + "type": "object", "properties": { "outline": { "$ref": "Outline", "description": "The outline of the video. The default outline matches the defaults for new\nvideos created in the Slides editor." } }, - "id": "VideoProperties", - "description": "The properties of the Video.", - "type": "object" + "id": "VideoProperties" }, "InsertTableRowsRequest": { - "id": "InsertTableRowsRequest", - "description": "Inserts rows into a table.", "type": "object", "properties": { - "number": { - "format": "int32", - "description": "The number of rows to be inserted. Maximum 20 per request.", - "type": "integer" - }, - "cellLocation": { - "description": "The reference table cell location from which rows will be inserted.\n\nA new row will be inserted above (or below) the row where the reference\ncell is. If the reference cell is a merged cell, a new row will be\ninserted above (or below) the merged cell.", - "$ref": "TableCellLocation" - }, "tableObjectId": { "description": "The table to insert rows into.", "type": "string" @@ -2163,11 +2251,21 @@ "insertBelow": { "description": "Whether to insert new rows below the reference cell location.\n\n- `True`: insert below the cell.\n- `False`: insert above the cell.", "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number of rows to be inserted. Maximum 20 per request." + }, + "cellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which rows will be inserted.\n\nA new row will be inserted above (or below) the row where the reference\ncell is. If the reference cell is a merged cell, a new row will be\ninserted above (or below) the merged cell." } - } + }, + "id": "InsertTableRowsRequest", + "description": "Inserts rows into a table." }, "LayoutProperties": { - "description": "The properties of Page are only\nrelevant for pages with page_type LAYOUT.", "type": "object", "properties": { "masterObjectId": { @@ -2179,21 +2277,34 @@ "type": "string" }, "displayName": { - "description": "The human-readable name of the layout.", - "type": "string" + "type": "string", + "description": "The human-readable name of the layout." } }, - "id": "LayoutProperties" + "id": "LayoutProperties", + "description": "The properties of Page are only\nrelevant for pages with page_type LAYOUT." }, "LineProperties": { - "description": "The properties of the Line.\n\nWhen unset, these fields default to values that match the appearance of\nnew lines created in the Slides editor.", "type": "object", "properties": { + "weight": { + "$ref": "Dimension", + "description": "The thickness of the line." + }, "lineFill": { "$ref": "LineFill", "description": "The fill of the line. The default line fill matches the defaults for new\nlines created in the Slides editor." }, "dashStyle": { + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], "description": "The dash style of the line.", "type": "string", "enumDescriptions": [ @@ -2204,51 +2315,12 @@ "Alternating dashes and dots. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'dashDot'.", "Line with large dashes. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'lgDash'.", "Alternating large dashes and dots. Corresponds to ECMA-376\nST_PresetLineDashVal value 'lgDashDot'." - ], - "enum": [ - "DASH_STYLE_UNSPECIFIED", - "SOLID", - "DOT", - "DASH", - "DASH_DOT", - "LONG_DASH", - "LONG_DASH_DOT" ] }, "link": { "$ref": "Link", "description": "The hyperlink destination of the line. If unset, there is no link." }, - "endArrow": { - "enum": [ - "ARROW_STYLE_UNSPECIFIED", - "NONE", - "STEALTH_ARROW", - "FILL_ARROW", - "FILL_CIRCLE", - "FILL_SQUARE", - "FILL_DIAMOND", - "OPEN_ARROW", - "OPEN_CIRCLE", - "OPEN_SQUARE", - "OPEN_DIAMOND" - ], - "description": "The style of the arrow at the end of the line.", - "type": "string", - "enumDescriptions": [ - "An unspecified arrow style.", - "No arrow.", - "Arrow with notched back. Corresponds to ECMA-376 ST_LineEndType value\n'stealth'.", - "Filled arrow. Corresponds to ECMA-376 ST_LineEndType value 'triangle'.", - "Filled circle. Corresponds to ECMA-376 ST_LineEndType value 'oval'.", - "Filled square.", - "Filled diamond. Corresponds to ECMA-376 ST_LineEndType value 'diamond'.", - "Hollow arrow.", - "Hollow circle.", - "Hollow square.", - "Hollow diamond." - ] - }, "startArrow": { "enum": [ "ARROW_STYLE_UNSPECIFIED", @@ -2279,16 +2351,41 @@ "Hollow diamond." ] }, - "weight": { - "description": "The thickness of the line.", - "$ref": "Dimension" + "endArrow": { + "enum": [ + "ARROW_STYLE_UNSPECIFIED", + "NONE", + "STEALTH_ARROW", + "FILL_ARROW", + "FILL_CIRCLE", + "FILL_SQUARE", + "FILL_DIAMOND", + "OPEN_ARROW", + "OPEN_CIRCLE", + "OPEN_SQUARE", + "OPEN_DIAMOND" + ], + "description": "The style of the arrow at the end of the line.", + "type": "string", + "enumDescriptions": [ + "An unspecified arrow style.", + "No arrow.", + "Arrow with notched back. Corresponds to ECMA-376 ST_LineEndType value\n'stealth'.", + "Filled arrow. Corresponds to ECMA-376 ST_LineEndType value 'triangle'.", + "Filled circle. Corresponds to ECMA-376 ST_LineEndType value 'oval'.", + "Filled square.", + "Filled diamond. Corresponds to ECMA-376 ST_LineEndType value 'diamond'.", + "Hollow arrow.", + "Hollow circle.", + "Hollow square.", + "Hollow diamond." + ] } }, - "id": "LineProperties" + "id": "LineProperties", + "description": "The properties of the Line.\n\nWhen unset, these fields default to values that match the appearance of\nnew lines created in the Slides editor." }, "Presentation": { - "id": "Presentation", - "description": "A Google Slides presentation.", "type": "object", "properties": { "presentationId": { @@ -2296,30 +2393,34 @@ "type": "string" }, "slides": { - "description": "The slides in the presentation.\nA slide inherits properties from a slide layout.", "items": { "$ref": "Page" }, - "type": "array" + "type": "array", + "description": "The slides in the presentation.\nA slide inherits properties from a slide layout." }, "revisionId": { - "type": "string", - "description": "The revision ID of the presentation. Can be used in update requests\nto assert that the presentation revision hasn't changed since the last\nread operation. Only populated if the user has edit access to the\npresentation.\n\nThe format of the revision ID may change over time, so it should be treated\nopaquely. A returned revision ID is only guaranteed to be valid for 24\nhours after it has been returned and cannot be shared across users. If the\nrevision ID is unchanged between calls, then the presentation has not\nchanged. Conversely, a changed ID (for the same presentation and user)\nusually means the presentation has been updated; however, a changed ID can\nalso be due to internal factors such as ID format changes." + "description": "The revision ID of the presentation. Can be used in update requests\nto assert that the presentation revision hasn't changed since the last\nread operation. Only populated if the user has edit access to the\npresentation.\n\nThe format of the revision ID may change over time, so it should be treated\nopaquely. A returned revision ID is only guaranteed to be valid for 24\nhours after it has been returned and cannot be shared across users. If the\nrevision ID is unchanged between calls, then the presentation has not\nchanged. Conversely, a changed ID (for the same presentation and user)\nusually means the presentation has been updated; however, a changed ID can\nalso be due to internal factors such as ID format changes.", + "type": "string" }, "notesMaster": { "$ref": "Page", "description": "The notes master in the presentation. It serves three purposes:\n\n- Placeholder shapes on a notes master contain the default text styles and\n shape properties of all placeholder shapes on notes pages. Specifically,\n a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a\n `BODY` placeholder shape contains the speaker notes.\n- The notes master page properties define the common page properties\n inherited by all notes pages.\n- Any other shapes on the notes master will appear on all notes pages.\n\nThe notes master is read-only." }, + "layouts": { + "items": { + "$ref": "Page" + }, + "type": "array", + "description": "The layouts in the presentation. A layout is a template that determines\nhow content is arranged and styled on the slides that inherit from that\nlayout." + }, "title": { "description": "The title of the presentation.", "type": "string" }, - "layouts": { - "description": "The layouts in the presentation. A layout is a template that determines\nhow content is arranged and styled on the slides that inherit from that\nlayout.", - "items": { - "$ref": "Page" - }, - "type": "array" + "locale": { + "type": "string", + "description": "The locale of the presentation, as an IETF BCP 47 language tag." }, "masters": { "description": "The slide masters in the presentation. A slide master contains all common\npage elements and the common properties for a set of layouts. They serve\nthree purposes:\n\n- Placeholder shapes on a master contain the default text styles and shape\n properties of all placeholder shapes on pages that use that master.\n- The master page properties define the common page properties inherited by\n its layouts.\n- Any other shapes on the master slide will appear on all slides using that\n master, regardless of their layout.", @@ -2328,23 +2429,24 @@ }, "type": "array" }, - "locale": { - "type": "string", - "description": "The locale of the presentation, as an IETF BCP 47 language tag." - }, "pageSize": { "$ref": "Size", "description": "The size of pages in the presentation." } - } + }, + "id": "Presentation", + "description": "A Google Slides presentation." }, "OpaqueColor": { + "description": "A themeable solid color value.", + "type": "object", "properties": { "rgbColor": { "$ref": "RgbColor", "description": "An opaque RGB color." }, "themeColor": { + "type": "string", "enumDescriptions": [ "Unspecified theme color. This value should not be used.", "Represents the first dark color.", @@ -2383,30 +2485,14 @@ "TEXT2", "BACKGROUND2" ], - "description": "An opaque theme color.", - "type": "string" + "description": "An opaque theme color." } }, - "id": "OpaqueColor", - "description": "A themeable solid color value.", - "type": "object" + "id": "OpaqueColor" }, "ImageProperties": { - "description": "The properties of the Image.", "type": "object", "properties": { - "recolor": { - "$ref": "Recolor", - "description": "The recolor effect of the image. If not set, the image is not recolored.\nThis property is read-only." - }, - "cropProperties": { - "$ref": "CropProperties", - "description": "The crop properties of the image. If not set, the image is not cropped.\nThis property is read-only." - }, - "outline": { - "description": "The outline of the image. If not set, the the image has no outline.", - "$ref": "Outline" - }, "brightness": { "format": "float", "description": "The brightness effect of the image. The value should be in the interval\n[-1.0, 1.0], where 0 means no effect. This property is read-only.", @@ -2422,19 +2508,31 @@ "description": "The shadow of the image. If not set, the image has no shadow. This property\nis read-only." }, "contrast": { + "type": "number", "format": "float", - "description": "The contrast effect of the image. The value should be in the interval\n[-1.0, 1.0], where 0 means no effect. This property is read-only.", - "type": "number" + "description": "The contrast effect of the image. The value should be in the interval\n[-1.0, 1.0], where 0 means no effect. This property is read-only." }, "link": { - "description": "The hyperlink destination of the image. If unset, there is no link.", - "$ref": "Link" + "$ref": "Link", + "description": "The hyperlink destination of the image. If unset, there is no link." + }, + "cropProperties": { + "$ref": "CropProperties", + "description": "The crop properties of the image. If not set, the image is not cropped.\nThis property is read-only." + }, + "recolor": { + "$ref": "Recolor", + "description": "The recolor effect of the image. If not set, the image is not recolored.\nThis property is read-only." + }, + "outline": { + "$ref": "Outline", + "description": "The outline of the image. If not set, the image has no outline." } }, - "id": "ImageProperties" + "id": "ImageProperties", + "description": "The properties of the Image." }, "ReplaceAllShapesWithImageResponse": { - "description": "The result of replacing shapes with an image.", "type": "object", "properties": { "occurrencesChanged": { @@ -2443,11 +2541,10 @@ "type": "integer" } }, - "id": "ReplaceAllShapesWithImageResponse" + "id": "ReplaceAllShapesWithImageResponse", + "description": "The result of replacing shapes with an image." }, "Line": { - "id": "Line", - "description": "A PageElement kind representing a\nline, curved connector, or bent connector.", "type": "object", "properties": { "lineProperties": { @@ -2455,18 +2552,6 @@ "description": "The properties of the line." }, "lineType": { - "enumDescriptions": [ - "An unspecified line type.", - "Straight connector 1 form. Corresponds to ECMA-376 ST_ShapeType\n'straightConnector1'.", - "Bent connector 2 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector2'.", - "Bent connector 3 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector3'.", - "Bent connector 4 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector4'.", - "Bent connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector5'.", - "Curved connector 2 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector2'.", - "Curved connector 3 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector3'.", - "Curved connector 4 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector4'.", - "Curved connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector5'." - ], "enum": [ "TYPE_UNSPECIFIED", "STRAIGHT_CONNECTOR_1", @@ -2480,45 +2565,23 @@ "CURVED_CONNECTOR_5" ], "description": "The type of the line.", - "type": "string" - } - } - }, - "CreateSheetsChartRequest": { - "type": "object", - "properties": { - "objectId": { - "description": "A user-supplied object ID.\n\nIf specified, the ID must be unique among all pages and page elements in\nthe presentation. The ID should start with a word character [a-zA-Z0-9_]\nand then followed by any number of the following characters [a-zA-Z0-9_-:].\nThe length of the ID should not be less than 5 or greater than 50.\nIf empty, a unique identifier will be generated.", - "type": "string" - }, - "elementProperties": { - "$ref": "PageElementProperties", - "description": "The element properties for the chart.\n\nWhen the aspect ratio of the provided size does not match the chart aspect\nratio, the chart is scaled and centered with respect to the size in order\nto maintain aspect ratio. The provided transform is applied after this\noperation." - }, - "linkingMode": { + "type": "string", "enumDescriptions": [ - "The chart is not associated with the source spreadsheet and cannot be\nupdated. A chart that is not linked will be inserted as an image.", - "Linking the chart allows it to be updated, and other collaborators will\nsee a link to the spreadsheet." - ], - "enum": [ - "NOT_LINKED_IMAGE", - "LINKED" - ], - "description": "The mode with which the chart is linked to the source spreadsheet. When\nnot specified, the chart will be an image that is not linked.", - "type": "string" - }, - "spreadsheetId": { - "description": "The ID of the Google Sheets spreadsheet that contains the chart.", - "type": "string" - }, - "chartId": { - "format": "int32", - "description": "The ID of the specific chart in the Google Sheets spreadsheet.", - "type": "integer" + "An unspecified line type.", + "Straight connector 1 form. Corresponds to ECMA-376 ST_ShapeType\n'straightConnector1'.", + "Bent connector 2 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector2'.", + "Bent connector 3 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector3'.", + "Bent connector 4 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector4'.", + "Bent connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'bentConnector5'.", + "Curved connector 2 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector2'.", + "Curved connector 3 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector3'.", + "Curved connector 4 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector4'.", + "Curved connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector5'." + ] } }, - "id": "CreateSheetsChartRequest", - "description": "Creates an embedded Google Sheets chart.\n\nNOTE: Chart creation requires at least one of the spreadsheets.readonly,\nspreadsheets, drive.readonly, or drive OAuth scopes." + "id": "Line", + "description": "A PageElement kind representing a\nline, curved connector, or bent connector." }, "BatchUpdatePresentationResponse": { "description": "Response message from a batch update.", @@ -2529,91 +2592,104 @@ "type": "string" }, "replies": { - "description": "The reply of the updates. This maps 1:1 with the updates, although\nreplies to some requests may be empty.", "items": { "$ref": "Response" }, - "type": "array" + "type": "array", + "description": "The reply of the updates. This maps 1:1 with the updates, although\nreplies to some requests may be empty." } }, "id": "BatchUpdatePresentationResponse" }, - "CreateImageResponse": { - "description": "The result of creating an image.", + "CreateSheetsChartRequest": { "type": "object", "properties": { "objectId": { - "description": "The object ID of the created image.", - "type": "string" + "type": "string", + "description": "A user-supplied object ID.\n\nIf specified, the ID must be unique among all pages and page elements in\nthe presentation. The ID should start with a word character [a-zA-Z0-9_]\nand then followed by any number of the following characters [a-zA-Z0-9_-:].\nThe length of the ID should not be less than 5 or greater than 50.\nIf empty, a unique identifier will be generated." + }, + "elementProperties": { + "$ref": "PageElementProperties", + "description": "The element properties for the chart.\n\nWhen the aspect ratio of the provided size does not match the chart aspect\nratio, the chart is scaled and centered with respect to the size in order\nto maintain aspect ratio. The provided transform is applied after this\noperation." + }, + "linkingMode": { + "enum": [ + "NOT_LINKED_IMAGE", + "LINKED" + ], + "description": "The mode with which the chart is linked to the source spreadsheet. When\nnot specified, the chart will be an image that is not linked.", + "type": "string", + "enumDescriptions": [ + "The chart is not associated with the source spreadsheet and cannot be\nupdated. A chart that is not linked will be inserted as an image.", + "Linking the chart allows it to be updated, and other collaborators will\nsee a link to the spreadsheet." + ] + }, + "spreadsheetId": { + "type": "string", + "description": "The ID of the Google Sheets spreadsheet that contains the chart." + }, + "chartId": { + "type": "integer", + "format": "int32", + "description": "The ID of the specific chart in the Google Sheets spreadsheet." } }, - "id": "CreateImageResponse" + "id": "CreateSheetsChartRequest", + "description": "Creates an embedded Google Sheets chart.\n\nNOTE: Chart creation requires at least one of the spreadsheets.readonly,\nspreadsheets, drive.readonly, or drive OAuth scopes." + }, + "CreateImageResponse": { + "type": "object", + "properties": { + "objectId": { + "type": "string", + "description": "The object ID of the created image." + } + }, + "id": "CreateImageResponse", + "description": "The result of creating an image." }, "SlideProperties": { "type": "object", "properties": { - "notesPage": { - "$ref": "Page", - "description": "The notes page that this slide is associated with. It defines the visual\nappearance of a notes page when printing or exporting slides with speaker\nnotes. A notes page inherits properties from the\nnotes master.\nThe placeholder shape with type BODY on the notes page contains the speaker\nnotes for this slide. The ID of this shape is identified by the\nspeakerNotesObjectId field.\nThe notes page is read-only except for the text content and styles of the\nspeaker notes shape." - }, "masterObjectId": { "description": "The object ID of the master that this slide is based on.", "type": "string" }, "layoutObjectId": { - "description": "The object ID of the layout that this slide is based on.", - "type": "string" + "type": "string", + "description": "The object ID of the layout that this slide is based on." + }, + "notesPage": { + "$ref": "Page", + "description": "The notes page that this slide is associated with. It defines the visual\nappearance of a notes page when printing or exporting slides with speaker\nnotes. A notes page inherits properties from the\nnotes master.\nThe placeholder shape with type BODY on the notes page contains the speaker\nnotes for this slide. The ID of this shape is identified by the\nspeakerNotesObjectId field.\nThe notes page is read-only except for the text content and styles of the\nspeaker notes shape." } }, "id": "SlideProperties", "description": "The properties of Page that are only\nrelevant for pages with page_type SLIDE." }, - "MasterProperties": { - "id": "MasterProperties", - "description": "The properties of Page that are only\nrelevant for pages with page_type MASTER.", - "type": "object", - "properties": { - "displayName": { - "description": "The human-readable name of the master.", - "type": "string" - } - } - }, "Response": { "description": "A single response from an update.", "type": "object", "properties": { - "duplicateObject": { - "description": "The result of duplicating an object.", - "$ref": "DuplicateObjectResponse" - }, - "createShape": { - "$ref": "CreateShapeResponse", - "description": "The result of creating a shape." - }, - "createLine": { - "description": "The result of creating a line.", - "$ref": "CreateLineResponse" - }, - "createImage": { - "description": "The result of creating an image.", - "$ref": "CreateImageResponse" - }, - "createVideo": { - "$ref": "CreateVideoResponse", - "description": "The result of creating a video." + "createSheetsChart": { + "$ref": "CreateSheetsChartResponse", + "description": "The result of creating a Google Sheets chart." }, "replaceAllShapesWithSheetsChart": { "$ref": "ReplaceAllShapesWithSheetsChartResponse", "description": "The result of replacing all shapes matching some criteria with a Google\nSheets chart." }, - "createSheetsChart": { - "description": "The result of creating a Google Sheets chart.", - "$ref": "CreateSheetsChartResponse" + "groupObjects": { + "$ref": "GroupObjectsResponse", + "description": "The result of grouping objects." + }, + "createShape": { + "$ref": "CreateShapeResponse", + "description": "The result of creating a shape." }, "replaceAllShapesWithImage": { - "description": "The result of replacing all shapes matching some criteria with an\nimage.", - "$ref": "ReplaceAllShapesWithImageResponse" + "$ref": "ReplaceAllShapesWithImageResponse", + "description": "The result of replacing all shapes matching some criteria with an\nimage." }, "createTable": { "$ref": "CreateTableResponse", @@ -2626,45 +2702,56 @@ "createSlide": { "$ref": "CreateSlideResponse", "description": "The result of creating a slide." + }, + "duplicateObject": { + "$ref": "DuplicateObjectResponse", + "description": "The result of duplicating an object." + }, + "createLine": { + "$ref": "CreateLineResponse", + "description": "The result of creating a line." + }, + "createImage": { + "$ref": "CreateImageResponse", + "description": "The result of creating an image." + }, + "createVideo": { + "$ref": "CreateVideoResponse", + "description": "The result of creating a video." } }, "id": "Response" }, - "SubstringMatchCriteria": { - "description": "A criteria that matches a specific string of text in a shape or table.", + "MasterProperties": { "type": "object", "properties": { - "text": { - "description": "The text to search for in the shape or table.", - "type": "string" - }, - "matchCase": { - "description": "Indicates whether the search should respect case:\n\n- `True`: the search is case sensitive.\n- `False`: the search is case insensitive.", - "type": "boolean" + "displayName": { + "type": "string", + "description": "The human-readable name of the master." } }, - "id": "SubstringMatchCriteria" + "id": "MasterProperties", + "description": "The properties of Page that are only\nrelevant for pages with page_type MASTER." + }, + "TextRun": { + "type": "object", + "properties": { + "content": { + "description": "The text of this run.", + "type": "string" + }, + "style": { + "$ref": "TextStyle", + "description": "The styling applied to this run." + } + }, + "id": "TextRun", + "description": "A TextElement kind that represents a run of text that all has the same\nstyling." }, "LayoutReference": { - "id": "LayoutReference", - "description": "Slide layout reference. This may reference either:\n\n- A predefined layout\n- One of the layouts in the presentation.", "type": "object", "properties": { "predefinedLayout": { - "enumDescriptions": [ - "Unspecified layout.", - "Blank layout, with no placeholders.", - "Layout with a caption at the bottom.", - "Layout with a title and a subtitle.", - "Layout with a title and body.", - "Layout with a title and two columns.", - "Layout with only a title.", - "Layout with a section title.", - "Layout with a title and subtitle on one side and description on the other.", - "Layout with one title and one body, arranged in a single column.", - "Layout with a main point.", - "Layout with a big number heading." - ], "enum": [ "PREDEFINED_LAYOUT_UNSPECIFIED", "BLANK", @@ -2680,90 +2767,138 @@ "BIG_NUMBER" ], "description": "Predefined layout.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified layout.", + "Blank layout, with no placeholders.", + "Layout with a caption at the bottom.", + "Layout with a title and a subtitle.", + "Layout with a title and body.", + "Layout with a title and two columns.", + "Layout with only a title.", + "Layout with a section title.", + "Layout with a title and subtitle on one side and description on the other.", + "Layout with one title and one body, arranged in a single column.", + "Layout with a main point.", + "Layout with a big number heading." + ] }, "layoutId": { "description": "Layout ID: the object ID of one of the layouts in the presentation.", "type": "string" } - } + }, + "id": "LayoutReference", + "description": "Slide layout reference. This may reference either:\n\n- A predefined layout\n- One of the layouts in the presentation." }, - "TextRun": { - "description": "A TextElement kind that represents a run of text that all has the same\nstyling.", + "SubstringMatchCriteria": { "type": "object", "properties": { - "style": { - "$ref": "TextStyle", - "description": "The styling applied to this run." + "text": { + "type": "string", + "description": "The text to search for in the shape or table." }, - "content": { - "description": "The text of this run.", - "type": "string" + "matchCase": { + "description": "Indicates whether the search should respect case:\n\n- `True`: the search is case sensitive.\n- `False`: the search is case insensitive.", + "type": "boolean" } }, - "id": "TextRun" + "id": "SubstringMatchCriteria", + "description": "A criteria that matches a specific string of text in a shape or table." }, "TableRange": { - "description": "A table range represents a reference to a subset of a table.\n\nIt's important to note that the cells specified by a table range do not\nnecessarily form a rectangle. For example, let's say we have a 3 x 3 table\nwhere all the cells of the last row are merged together. The table looks\nlike this:\n\n \n [ ]\n\nA table range with location = (0, 0), row span = 3 and column span = 2\nspecifies the following cells:\n\n x x \n [ x ]", "type": "object", "properties": { "rowSpan": { - "type": "integer", "format": "int32", - "description": "The row span of the table range." + "description": "The row span of the table range.", + "type": "integer" }, "location": { - "description": "The starting location of the table range.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The starting location of the table range." }, "columnSpan": { + "type": "integer", "format": "int32", - "description": "The column span of the table range.", - "type": "integer" + "description": "The column span of the table range." } }, - "id": "TableRange" + "id": "TableRange", + "description": "A table range represents a reference to a subset of a table.\n\nIt's important to note that the cells specified by a table range do not\nnecessarily form a rectangle. For example, let's say we have a 3 x 3 table\nwhere all the cells of the last row are merged together. The table looks\nlike this:\n\n \n [ ]\n\nA table range with location = (0, 0), row span = 3 and column span = 2\nspecifies the following cells:\n\n x x \n [ x ]" + }, + "CreateTableResponse": { + "description": "The result of creating a table.", + "type": "object", + "properties": { + "objectId": { + "type": "string", + "description": "The object ID of the created table." + } + }, + "id": "CreateTableResponse" }, "CreateTableRequest": { "description": "Creates a new table.", "type": "object", "properties": { - "rows": { - "format": "int32", - "description": "Number of rows in the table.", - "type": "integer" - }, "columns": { "format": "int32", "description": "Number of columns in the table.", "type": "integer" }, "objectId": { - "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated.", - "type": "string" + "type": "string", + "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated." }, "elementProperties": { "$ref": "PageElementProperties", "description": "The element properties for the table.\n\nThe table will be created at the provided size, subject to a minimum size.\nIf no size is provided, the table will be automatically sized.\n\nTable transforms must have a scale of 1 and no shear components. If no\ntransform is provided, the table will be centered on the page." + }, + "rows": { + "type": "integer", + "format": "int32", + "description": "Number of rows in the table." } }, "id": "CreateTableRequest" }, - "CreateTableResponse": { + "GroupObjectsRequest": { + "description": "Groups objects to create an object group. For example, groups PageElements to create a Group on the same page as all the children.", + "type": "object", "properties": { - "objectId": { - "description": "The object ID of the created table.", - "type": "string" + "groupObjectId": { + "type": "string", + "description": "A user-supplied object ID for the group to be created.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated." + }, + "childrenObjectIds": { + "description": "The object IDs of the objects to group.\n\nOnly page elements can be grouped. There should be at least two page\nelements on the same page that are not already in another group. Some page\nelements, such as videos, tables and placeholder shapes cannot be grouped.", + "items": { + "type": "string" + }, + "type": "array" } }, - "id": "CreateTableResponse", - "description": "The result of creating a table.", - "type": "object" + "id": "GroupObjectsRequest" }, "Table": { "description": "A PageElement kind representing a\ntable.", "type": "object", "properties": { + "horizontalBorderRows": { + "items": { + "$ref": "TableBorderRow" + }, + "type": "array", + "description": "Properties of horizontal cell borders.\n\nA table's horizontal cell borders are represented as a grid. The grid has\none more row than the number of rows in the table and the same number of\ncolumns as the table. For example, if the table is 3 x 3, its horizontal\nborders will be represented as a grid with 4 rows and 3 columns." + }, + "verticalBorderRows": { + "description": "Properties of vertical cell borders.\n\nA table's vertical cell borders are represented as a grid. The grid has the\nsame number of rows as the table and one more column than the number of\ncolumns in the table. For example, if the table is 3 x 3, its vertical\nborders will be represented as a grid with 3 rows and 4 columns.", + "items": { + "$ref": "TableBorderRow" + }, + "type": "array" + }, "rows": { "format": "int32", "description": "Number of rows in the table.", @@ -2777,9 +2912,9 @@ "type": "array" }, "columns": { + "type": "integer", "format": "int32", - "description": "Number of columns in the table.", - "type": "integer" + "description": "Number of columns in the table." }, "tableRows": { "description": "Properties and contents of each row.\n\nCells that span multiple rows are contained in only one of these rows and\nhave a row_span greater\nthan 1.", @@ -2791,22 +2926,37 @@ }, "id": "Table" }, + "TableBorderRow": { + "type": "object", + "properties": { + "tableBorderCells": { + "items": { + "$ref": "TableBorderCell" + }, + "type": "array", + "description": "Properties of each border cell. When a border's adjacent table cells are\nmerged, it is not included in the response." + } + }, + "id": "TableBorderRow", + "description": "Contents of each border row in a table." + }, "PageBackgroundFill": { + "description": "The page background fill.", "type": "object", "properties": { "propertyState": { - "enum": [ - "RENDERED", - "NOT_RENDERED", - "INHERIT" - ], - "description": "The background fill property state.\n\nUpdating the fill on a page will implicitly update this field to\n`RENDERED`, unless another value is specified in the same request. To\nhave no fill on a page, set this field to `NOT_RENDERED`. In this case,\nany other fill fields set in the same request will be ignored.", "type": "string", "enumDescriptions": [ "If a property's state is RENDERED, then the element has the corresponding\nproperty when rendered on a page. If the element is a placeholder shape as\ndetermined by the placeholder\nfield, and it inherits from a placeholder shape, the corresponding field\nmay be unset, meaning that the property value is inherited from a parent\nplaceholder. If the element does not inherit, then the field will contain\nthe rendered value. This is the default value.", "If a property's state is NOT_RENDERED, then the element does not have the\ncorresponding property when rendered on a page. However, the field may\nstill be set so it can be inherited by child shapes. To remove a property\nfrom a rendered element, set its property_state to NOT_RENDERED.", "If a property's state is INHERIT, then the property state uses the value of\ncorresponding `property_state` field on the parent shape. Elements that do\nnot inherit will never have an INHERIT property state." - ] + ], + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "description": "The background fill property state.\n\nUpdating the fill on a page will implicitly update this field to\n`RENDERED`, unless another value is specified in the same request. To\nhave no fill on a page, set this field to `NOT_RENDERED`. In this case,\nany other fill fields set in the same request will be ignored." }, "stretchedPictureFill": { "$ref": "StretchedPictureFill", @@ -2817,13 +2967,19 @@ "description": "Solid color fill." } }, - "id": "PageBackgroundFill", - "description": "The page background fill." + "id": "PageBackgroundFill" }, "SheetsChart": { - "description": "A PageElement kind representing\na linked chart embedded from Google Sheets.", "type": "object", "properties": { + "sheetsChartProperties": { + "$ref": "SheetsChartProperties", + "description": "The properties of the Sheets chart." + }, + "contentUrl": { + "description": "The URL of an image of the embedded chart, with a default lifetime of 30\nminutes. This URL is tagged with the account of the requester. Anyone with\nthe URL effectively accesses the image as the original requester. Access to\nthe image may be lost if the presentation's sharing settings change.", + "type": "string" + }, "spreadsheetId": { "description": "The ID of the Google Sheets spreadsheet that contains the source chart.", "type": "string" @@ -2832,30 +2988,23 @@ "type": "integer", "format": "int32", "description": "The ID of the specific chart in the Google Sheets spreadsheet that is\nembedded." - }, - "sheetsChartProperties": { - "description": "The properties of the Sheets chart.", - "$ref": "SheetsChartProperties" - }, - "contentUrl": { - "description": "The URL of an image of the embedded chart, with a default lifetime of 30\nminutes. This URL is tagged with the account of the requester. Anyone with\nthe URL effectively accesses the image as the original requester. Access to\nthe image may be lost if the presentation's sharing settings change.", - "type": "string" } }, - "id": "SheetsChart" + "id": "SheetsChart", + "description": "A PageElement kind representing\na linked chart embedded from Google Sheets." }, "SolidFill": { "description": "A solid color fill. The page or page element is filled entirely with the\nspecified color value.\n\nIf any field is unset, its value may be inherited from a parent placeholder\nif it exists.", "type": "object", "properties": { + "alpha": { + "type": "number", + "format": "float", + "description": "The fraction of this `color` that should be applied to the pixel.\nThat is, the final pixel color is defined by the equation:\n\n pixel color = alpha * (color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color." + }, "color": { "$ref": "OpaqueColor", "description": "The color value of the solid fill." - }, - "alpha": { - "format": "float", - "description": "The fraction of this `color` that should be applied to the pixel.\nThat is, the final pixel color is defined by the equation:\n\n pixel color = alpha * (color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color.", - "type": "number" } }, "id": "SolidFill" @@ -2864,30 +3013,7 @@ "description": "A pair mapping a theme color type to the concrete color it represents.", "type": "object", "properties": { - "color": { - "description": "The concrete color corresponding to the theme color type above.", - "$ref": "RgbColor" - }, "type": { - "enumDescriptions": [ - "Unspecified theme color. This value should not be used.", - "Represents the first dark color.", - "Represents the first light color.", - "Represents the second dark color.", - "Represents the second light color.", - "Represents the first accent color.", - "Represents the second accent color.", - "Represents the third accent color.", - "Represents the fourth accent color.", - "Represents the fifth accent color.", - "Represents the sixth accent color.", - "Represents the color to use for hyperlinks.", - "Represents the color to use for visited hyperlinks.", - "Represents the first text color.", - "Represents the first background color.", - "Represents the second text color.", - "Represents the second background color." - ], "enum": [ "THEME_COLOR_TYPE_UNSPECIFIED", "DARK1", @@ -2908,13 +3034,35 @@ "BACKGROUND2" ], "description": "The type of the theme color.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified theme color. This value should not be used.", + "Represents the first dark color.", + "Represents the first light color.", + "Represents the second dark color.", + "Represents the second light color.", + "Represents the first accent color.", + "Represents the second accent color.", + "Represents the third accent color.", + "Represents the fourth accent color.", + "Represents the fifth accent color.", + "Represents the sixth accent color.", + "Represents the color to use for hyperlinks.", + "Represents the color to use for visited hyperlinks.", + "Represents the first text color.", + "Represents the first background color.", + "Represents the second text color.", + "Represents the second background color." + ] + }, + "color": { + "$ref": "RgbColor", + "description": "The concrete color corresponding to the theme color type above." } }, "id": "ThemeColorPair" }, "OptionalColor": { - "description": "A color that can either be fully opaque or fully transparent.", "type": "object", "properties": { "opaqueColor": { @@ -2922,40 +3070,40 @@ "description": "If set, this will be used as an opaque color. If unset, this represents\na transparent color." } }, - "id": "OptionalColor" + "id": "OptionalColor", + "description": "A color that can either be fully opaque or fully transparent." }, "PageElementProperties": { + "type": "object", "properties": { "transform": { "$ref": "AffineTransform", "description": "The transform for the element." }, "pageObjectId": { - "description": "The object ID of the page where the element is located.", - "type": "string" + "type": "string", + "description": "The object ID of the page where the element is located." }, "size": { - "description": "The size of the element.", - "$ref": "Size" + "$ref": "Size", + "description": "The size of the element." } }, "id": "PageElementProperties", - "description": "Common properties for a page element.\n\nNote: When you initially create a\nPageElement, the API may modify\nthe values of both `size` and `transform`, but the\nvisual size will be unchanged.", - "type": "object" + "description": "Common properties for a page element.\n\nNote: When you initially create a\nPageElement, the API may modify\nthe values of both `size` and `transform`, but the\nvisual size will be unchanged." }, "SheetsChartProperties": { + "description": "The properties of the SheetsChart.", + "type": "object", "properties": { "chartImageProperties": { "$ref": "ImageProperties", "description": "The properties of the embedded chart image." } }, - "id": "SheetsChartProperties", - "description": "The properties of the SheetsChart.", - "type": "object" + "id": "SheetsChartProperties" }, "StretchedPictureFill": { - "description": "The stretched picture fill. The page or page element is filled entirely with\nthe specified picture. The picture is stretched to fit its container.", "type": "object", "properties": { "contentUrl": { @@ -2967,68 +3115,69 @@ "description": "The original size of the picture fill. This field is read-only." } }, - "id": "StretchedPictureFill" - }, - "DeleteTableColumnRequest": { - "description": "Deletes a column from a table.", - "type": "object", - "properties": { - "cellLocation": { - "$ref": "TableCellLocation", - "description": "The reference table cell location from which a column will be deleted.\n\nThe column this cell spans will be deleted. If this is a merged cell,\nmultiple columns will be deleted. If no columns remain in the table after\nthis deletion, the whole table is deleted." - }, - "tableObjectId": { - "description": "The table to delete columns from.", - "type": "string" - } - }, - "id": "DeleteTableColumnRequest" + "id": "StretchedPictureFill", + "description": "The stretched picture fill. The page or page element is filled entirely with\nthe specified picture. The picture is stretched to fit its container." }, "UpdateTextStyleRequest": { + "type": "object", "properties": { + "fields": { + "type": "string", + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `style` is implied and\nshould not be specified. A single `\"*\"` can be used as short-hand for\nlisting every field.\n\nFor example, to update the text style to bold, set `fields` to `\"bold\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset." + }, + "textRange": { + "$ref": "Range", + "description": "The range of text to style.\n\nThe range may be extended to include adjacent newlines.\n\nIf the range fully contains a paragraph belonging to a list, the\nparagraph's bullet is also updated with the matching text style." + }, + "objectId": { + "type": "string", + "description": "The object ID of the shape or table with the text to be styled." + }, "style": { "$ref": "TextStyle", "description": "The style(s) to set on the text.\n\nIf the value for a particular style matches that of the parent, that style\nwill be set to inherit.\n\nCertain text style changes may cause other changes meant to mirror the\nbehavior of the Slides editor. See the documentation of\nTextStyle for more information." }, "cellLocation": { - "description": "The location of the cell in the table containing the text to style. If\n`object_id` refers to a table, `cell_location` must have a value.\nOtherwise, it must not.", - "$ref": "TableCellLocation" - }, - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `style` is implied and\nshould not be specified. A single `\"*\"` can be used as short-hand for\nlisting every field.\n\nFor example, to update the text style to bold, set `fields` to `\"bold\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", - "type": "string" - }, - "textRange": { - "description": "The range of text to style.\n\nThe range may be extended to include adjacent newlines.\n\nIf the range fully contains a paragraph belonging to a list, the\nparagraph's bullet is also updated with the matching text style.", - "$ref": "Range" - }, - "objectId": { - "type": "string", - "description": "The object ID of the shape or table with the text to be styled." + "$ref": "TableCellLocation", + "description": "The location of the cell in the table containing the text to style. If\n`object_id` refers to a table, `cell_location` must have a value.\nOtherwise, it must not." } }, "id": "UpdateTextStyleRequest", - "description": "Update the styling of text in a Shape or\nTable.", - "type": "object" + "description": "Update the styling of text in a Shape or\nTable." + }, + "DeleteTableColumnRequest": { + "type": "object", + "properties": { + "tableObjectId": { + "description": "The table to delete columns from.", + "type": "string" + }, + "cellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which a column will be deleted.\n\nThe column this cell spans will be deleted. If this is a merged cell,\nmultiple columns will be deleted. If no columns remain in the table after\nthis deletion, the whole table is deleted." + } + }, + "id": "DeleteTableColumnRequest", + "description": "Deletes a column from a table." }, "List": { - "id": "List", "description": "A List describes the look and feel of bullets belonging to paragraphs\nassociated with a list. A paragraph that is part of a list has an implicit\nreference to that list's ID.", "type": "object", "properties": { "nestingLevel": { - "description": "A map of nesting levels to the properties of bullets at the associated\nlevel. A list has at most nine levels of nesting, so the possible values\nfor the keys of this map are 0 through 8, inclusive.", - "type": "object", "additionalProperties": { "$ref": "NestingLevel" - } + }, + "description": "A map of nesting levels to the properties of bullets at the associated\nlevel. A list has at most nine levels of nesting, so the possible values\nfor the keys of this map are 0 through 8, inclusive.", + "type": "object" }, "listId": { - "description": "The ID of the list.", - "type": "string" + "type": "string", + "description": "The ID of the list." } - } + }, + "id": "List" }, "WeightedFontFamily": { "description": "Represents a font family and weight used to style a TextRun.", @@ -3047,7 +3196,29 @@ "id": "WeightedFontFamily" }, "PageElement": { + "description": "A visual element rendered on a page.", + "type": "object", "properties": { + "elementGroup": { + "$ref": "Group", + "description": "A collection of page elements joined as a single unit." + }, + "image": { + "$ref": "Image", + "description": "An image page element." + }, + "size": { + "$ref": "Size", + "description": "The size of the page element." + }, + "sheetsChart": { + "$ref": "SheetsChart", + "description": "A linked chart embedded from Google Sheets. Unlinked charts are\nrepresented as images." + }, + "title": { + "type": "string", + "description": "The title of the page element. Combined with description to display alt\ntext." + }, "video": { "$ref": "Video", "description": "A video page element." @@ -3057,69 +3228,47 @@ "description": "A word art page element." }, "table": { - "description": "A table page element.", - "$ref": "Table" - }, - "objectId": { - "description": "The object ID for this page element. Object IDs used by\ngoogle.apps.slides.v1.Page and\ngoogle.apps.slides.v1.PageElement share the same namespace.", - "type": "string" + "$ref": "Table", + "description": "A table page element." }, "transform": { "$ref": "AffineTransform", "description": "The transform of the page element.\n\nThe visual appearance of the page element is determined by its absolute\ntransform. To compute the absolute transform, preconcatenate a page\nelement's transform with the transforms of all of its parent groups. If the\npage element is not in a group, its absolute transform is the same as the\nvalue in this field.\n\nThe initial transform for the newly created Group is always the identity transform." }, + "objectId": { + "type": "string", + "description": "The object ID for this page element. Object IDs used by\ngoogle.apps.slides.v1.Page and\ngoogle.apps.slides.v1.PageElement share the same namespace." + }, "shape": { "$ref": "Shape", "description": "A generic shape." }, "line": { - "description": "A line page element.", - "$ref": "Line" + "$ref": "Line", + "description": "A line page element." }, "description": { "description": "The description of the page element. Combined with title to display alt\ntext.", "type": "string" - }, - "elementGroup": { - "description": "A collection of page elements joined as a single unit.", - "$ref": "Group" - }, - "image": { - "description": "An image page element.", - "$ref": "Image" - }, - "size": { - "description": "The size of the page element.", - "$ref": "Size" - }, - "sheetsChart": { - "description": "A linked chart embedded from Google Sheets. Unlinked charts are\nrepresented as images.", - "$ref": "SheetsChart" - }, - "title": { - "description": "The title of the page element. Combined with description to display alt\ntext.", - "type": "string" } }, - "id": "PageElement", - "description": "A visual element rendered on a page.", - "type": "object" + "id": "PageElement" }, "CreateImageRequest": { "description": "Creates an image.", "type": "object", "properties": { - "url": { - "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at maximum 2K bytes large.", - "type": "string" - }, "objectId": { "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated.", "type": "string" }, "elementProperties": { - "description": "The element properties for the image.\n\nWhen the aspect ratio of the provided size does not match the image aspect\nratio, the image is scaled and centered with respect to the size in order\nto maintain aspect ratio. The provided transform is applied after this\noperation.", - "$ref": "PageElementProperties" + "$ref": "PageElementProperties", + "description": "The element properties for the image.\n\nWhen the aspect ratio of the provided size does not match the image aspect\nratio, the image is scaled and centered with respect to the size in order\nto maintain aspect ratio. The provided transform is applied after this\noperation." + }, + "url": { + "type": "string", + "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at maximum 2K bytes large." } }, "id": "CreateImageRequest" @@ -3129,14 +3278,31 @@ "type": "object", "properties": { "textRange": { - "description": "The range of text to apply the bullet presets to, based on TextElement indexes.", - "$ref": "Range" + "$ref": "Range", + "description": "The range of text to apply the bullet presets to, based on TextElement indexes." }, "objectId": { - "description": "The object ID of the shape or table containing the text to add bullets to.", - "type": "string" + "type": "string", + "description": "The object ID of the shape or table containing the text to add bullets to." }, "bulletPreset": { + "enum": [ + "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_DIGIT_ALPHA_ROMAN", + "NUMBERED_DIGIT_ALPHA_ROMAN_PARENS", + "NUMBERED_DIGIT_NESTED", + "NUMBERED_UPPERALPHA_ALPHA_ROMAN", + "NUMBERED_UPPERROMAN_UPPERALPHA_DIGIT", + "NUMBERED_ZERODIGIT_ALPHA_ROMAN" + ], "description": "The kinds of bullet glyphs to be used. Defaults to the\n`BULLET_DISC_CIRCLE_SQUARE` preset.", "type": "string", "enumDescriptions": [ @@ -3155,66 +3321,64 @@ "A numbered list with `UPPERALPHA`, `ALPHA` and `ROMAN` numeric glyphs for\nthe first 3 list nesting levels, followed by periods.", "A numbered list with `UPPERROMAN`, `UPPERALPHA` and `DIGIT` numeric glyphs\nfor the first 3 list nesting levels, followed by periods.", "A numbered list with `ZERODIGIT`, `ALPHA` and `ROMAN` numeric glyphs for\nthe first 3 list nesting levels, followed by periods." - ], - "enum": [ - "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_DIGIT_ALPHA_ROMAN", - "NUMBERED_DIGIT_ALPHA_ROMAN_PARENS", - "NUMBERED_DIGIT_NESTED", - "NUMBERED_UPPERALPHA_ALPHA_ROMAN", - "NUMBERED_UPPERROMAN_UPPERALPHA_DIGIT", - "NUMBERED_ZERODIGIT_ALPHA_ROMAN" ] }, "cellLocation": { - "description": "The optional table cell location if the text to be modified is in a table\ncell. If present, the object_id must refer to a table.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The optional table cell location if the text to be modified is in a table\ncell. If present, the object_id must refer to a table." } }, "id": "CreateParagraphBulletsRequest" }, - "Size": { - "description": "A width and height.", + "TextStyle": { "type": "object", "properties": { - "width": { - "$ref": "Dimension", - "description": "The width of the object." + "weightedFontFamily": { + "$ref": "WeightedFontFamily", + "description": "The font family and rendered weight of the text.\n\nThis field is an extension of `font_family` meant to support explicit font\nweights without breaking backwards compatibility. As such, when reading the\nstyle of a range of text, the value of `weighted_font_family#font_family`\nwill always be equal to that of `font_family`. However, when writing, if\nboth fields are included in the field mask (either explicitly or through\nthe wildcard `\"*\"`), their values are reconciled as follows:\n\n* If `font_family` is set and `weighted_font_family` is not, the value of\n `font_family` is applied with weight `400` (\"normal\").\n* If both fields are set, the value of `font_family` must match that of\n `weighted_font_family#font_family`. If so, the font family and weight of\n `weighted_font_family` is applied. Otherwise, a 400 bad request error is\n returned.\n* If `weighted_font_family` is set and `font_family` is not, the font\n family and weight of `weighted_font_family` is applied.\n* If neither field is set, the font family and weight of the text inherit\n from the parent. Note that these properties cannot inherit separately\n from each other.\n\nIf an update request specifies values for both `weighted_font_family` and\n`bold`, the `weighted_font_family` is applied first, then `bold`.\n\nIf `weighted_font_family#weight` is not set, it defaults to `400`.\n\nIf `weighted_font_family` is set, then `weighted_font_family#font_family`\nmust also be set with a non-empty value. Otherwise, a 400 bad request error\nis returned." + }, + "smallCaps": { + "description": "Whether or not the text is in small capital letters.", + "type": "boolean" + }, + "backgroundColor": { + "$ref": "OptionalColor", + "description": "The background color of the text. If set, the color is either opaque or\ntransparent, depending on if the `opaque_color` field in it is set." + }, + "link": { + "$ref": "Link", + "description": "The hyperlink destination of the text. If unset, there is no link. Links\nare not inherited from parent text.\n\nChanging the link in an update request causes some other changes to the\ntext style of the range:\n\n* When setting a link, the text foreground color will be set to\n ThemeColorType.HYPERLINK and the text will\n be underlined. If these fields are modified in the same\n request, those values will be used instead of the link defaults.\n* Setting a link on a text range that overlaps with an existing link will\n also update the existing link to point to the new URL.\n* Links are not settable on newline characters. As a result, setting a link\n on a text range that crosses a paragraph boundary, such as `\"ABC\\n123\"`,\n will separate the newline character(s) into their own text runs. The\n link will be applied separately to the runs before and after the newline.\n* Removing a link will update the text style of the range to match the\n style of the preceding text (or the default text styles if the preceding\n text is another link) unless different styles are being set in the same\n request." + }, + "underline": { + "description": "Whether or not the text is underlined.", + "type": "boolean" + }, + "foregroundColor": { + "$ref": "OptionalColor", + "description": "The color of the text itself. If set, the color is either opaque or\ntransparent, depending on if the `opaque_color` field in it is set." + }, + "bold": { + "type": "boolean", + "description": "Whether or not the text is rendered as bold." }, - "height": { - "description": "The height of the object.", - "$ref": "Dimension" - } - }, - "id": "Size" - }, - "TextStyle": { - "properties": { "fontFamily": { - "description": "The font family of the text.\n\nThe font family can be any font from the Font menu in Slides or from\n[Google Fonts] (https://fonts.google.com/). If the font name is\nunrecognized, the text is rendered in `Arial`.\n\nSome fonts can affect the weight of the text. If an update request\nspecifies values for both `font_family` and `bold`, the explicitly-set\n`bold` value is used.", - "type": "string" + "type": "string", + "description": "The font family of the text.\n\nThe font family can be any font from the Font menu in Slides or from\n[Google Fonts] (https://fonts.google.com/). If the font name is\nunrecognized, the text is rendered in `Arial`.\n\nSome fonts can affect the weight of the text. If an update request\nspecifies values for both `font_family` and `bold`, the explicitly-set\n`bold` value is used." + }, + "italic": { + "description": "Whether or not the text is italicized.", + "type": "boolean" }, "strikethrough": { "description": "Whether or not the text is struck through.", "type": "boolean" }, - "italic": { - "type": "boolean", - "description": "Whether or not the text is italicized." - }, "fontSize": { "$ref": "Dimension", "description": "The size of the text's font. When read, the `font_size` will specified in\npoints." }, "baselineOffset": { + "type": "string", "enumDescriptions": [ "The text's baseline offset is inherited from the parent.", "The text is not vertically offset.", @@ -3227,57 +3391,42 @@ "SUPERSCRIPT", "SUBSCRIPT" ], - "description": "The text's vertical offset from its normal position.\n\nText with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically\nrendered in a smaller font size, computed based on the `font_size` field.\nThe `font_size` itself is not affected by changes in this field.", - "type": "string" - }, - "weightedFontFamily": { - "description": "The font family and rendered weight of the text.\n\nThis field is an extension of `font_family` meant to support explicit font\nweights without breaking backwards compatibility. As such, when reading the\nstyle of a range of text, the value of `weighted_font_family#font_family`\nwill always be equal to that of `font_family`. However, when writing, if\nboth fields are included in the field mask (either explicitly or through\nthe wildcard `\"*\"`), their values are reconciled as follows:\n\n* If `font_family` is set and `weighted_font_family` is not, the value of\n `font_family` is applied with weight `400` (\"normal\").\n* If both fields are set, the value of `font_family` must match that of\n `weighted_font_family#font_family`. If so, the font family and weight of\n `weighted_font_family` is applied. Otherwise, a 400 bad request error is\n returned.\n* If `weighted_font_family` is set and `font_family` is not, the font\n family and weight of `weighted_font_family` is applied.\n* If neither field is set, the font family and weight of the text inherit\n from the parent. Note that these properties cannot inherit separately\n from each other.\n\nIf an update request specifies values for both `weighted_font_family` and\n`bold`, the `weighted_font_family` is applied first, then `bold`.\n\nIf `weighted_font_family#weight` is not set, it defaults to `400`.\n\nIf `weighted_font_family` is set, then `weighted_font_family#font_family`\nmust also be set with a non-empty value. Otherwise, a 400 bad request error\nis returned.", - "$ref": "WeightedFontFamily" - }, - "smallCaps": { - "description": "Whether or not the text is in small capital letters.", - "type": "boolean" - }, - "backgroundColor": { - "$ref": "OptionalColor", - "description": "The background color of the text. If set, the color is either opaque or\ntransparent, depending on if the `opaque_color` field in it is set." - }, - "underline": { - "description": "Whether or not the text is underlined.", - "type": "boolean" - }, - "link": { - "description": "The hyperlink destination of the text. If unset, there is no link. Links\nare not inherited from parent text.\n\nChanging the link in an update request causes some other changes to the\ntext style of the range:\n\n* When setting a link, the text foreground color will be set to\n ThemeColorType.HYPERLINK and the text will\n be underlined. If these fields are modified in the same\n request, those values will be used instead of the link defaults.\n* Setting a link on a text range that overlaps with an existing link will\n also update the existing link to point to the new URL.\n* Links are not settable on newline characters. As a result, setting a link\n on a text range that crosses a paragraph boundary, such as `\"ABC\\n123\"`,\n will separate the newline character(s) into their own text runs. The\n link will be applied separately to the runs before and after the newline.\n* Removing a link will update the text style of the range to match the\n style of the preceding text (or the default text styles if the preceding\n text is another link) unless different styles are being set in the same\n request.", - "$ref": "Link" - }, - "foregroundColor": { - "$ref": "OptionalColor", - "description": "The color of the text itself. If set, the color is either opaque or\ntransparent, depending on if the `opaque_color` field in it is set." - }, - "bold": { - "description": "Whether or not the text is rendered as bold.", - "type": "boolean" + "description": "The text's vertical offset from its normal position.\n\nText with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically\nrendered in a smaller font size, computed based on the `font_size` field.\nThe `font_size` itself is not affected by changes in this field." } }, "id": "TextStyle", - "description": "Represents the styling that can be applied to a TextRun.\n\nIf this text is contained in a shape with a parent placeholder, then these text styles may be\ninherited from the parent. Which text styles are inherited depend on the\nnesting level of lists:\n\n* A text run in a paragraph that is not in a list will inherit its text style\n from the the newline character in the paragraph at the 0 nesting level of\n the list inside the parent placeholder.\n* A text run in a paragraph that is in a list will inherit its text style\n from the newline character in the paragraph at its corresponding nesting\n level of the list inside the parent placeholder.\n\nInherited text styles are represented as unset fields in this message. If\ntext is contained in a shape without a parent placeholder, unsetting these\nfields will revert the style to a value matching the defaults in the Slides\neditor.", - "type": "object" + "description": "Represents the styling that can be applied to a TextRun.\n\nIf this text is contained in a shape with a parent placeholder, then these text styles may be\ninherited from the parent. Which text styles are inherited depend on the\nnesting level of lists:\n\n* A text run in a paragraph that is not in a list will inherit its text style\n from the the newline character in the paragraph at the 0 nesting level of\n the list inside the parent placeholder.\n* A text run in a paragraph that is in a list will inherit its text style\n from the newline character in the paragraph at its corresponding nesting\n level of the list inside the parent placeholder.\n\nInherited text styles are represented as unset fields in this message. If\ntext is contained in a shape without a parent placeholder, unsetting these\nfields will revert the style to a value matching the defaults in the Slides\neditor." + }, + "Size": { + "description": "A width and height.", + "type": "object", + "properties": { + "height": { + "$ref": "Dimension", + "description": "The height of the object." + }, + "width": { + "$ref": "Dimension", + "description": "The width of the object." + } + }, + "id": "Size" }, "UpdateVideoPropertiesRequest": { "type": "object", "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `videoProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the video outline color, set `fields` to\n`\"outline.outlineFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", - "type": "string" - }, "objectId": { - "description": "The object ID of the video the updates are applied to.", - "type": "string" + "type": "string", + "description": "The object ID of the video the updates are applied to." }, "videoProperties": { - "description": "The video properties to update.", - "$ref": "VideoProperties" + "$ref": "VideoProperties", + "description": "The video properties to update." + }, + "fields": { + "type": "string", + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `videoProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the video outline color, set `fields` to\n`\"outline.outlineFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset." } }, "id": "UpdateVideoPropertiesRequest", @@ -3287,110 +3436,30 @@ "description": "A single kind of update to apply to a presentation.", "type": "object", "properties": { - "refreshSheetsChart": { - "$ref": "RefreshSheetsChartRequest", - "description": "Refreshes a Google Sheets chart." - }, - "updateTableCellProperties": { - "$ref": "UpdateTableCellPropertiesRequest", - "description": "Updates the properties of a TableCell." - }, - "createTable": { - "description": "Creates a new table.", - "$ref": "CreateTableRequest" - }, - "deleteObject": { - "$ref": "DeleteObjectRequest", - "description": "Deletes a page or page element from the presentation." - }, - "updateParagraphStyle": { - "$ref": "UpdateParagraphStyleRequest", - "description": "Updates the styling of paragraphs within a Shape or Table." - }, - "duplicateObject": { - "$ref": "DuplicateObjectRequest", - "description": "Duplicates a slide or page element." - }, - "deleteTableColumn": { - "$ref": "DeleteTableColumnRequest", - "description": "Deletes a column from a table." - }, - "updateVideoProperties": { - "$ref": "UpdateVideoPropertiesRequest", - "description": "Updates the properties of a Video." - }, - "createLine": { - "$ref": "CreateLineRequest", - "description": "Creates a line." - }, - "createImage": { - "$ref": "CreateImageRequest", - "description": "Creates an image." - }, - "createParagraphBullets": { - "$ref": "CreateParagraphBulletsRequest", - "description": "Creates bullets for paragraphs." - }, - "createVideo": { - "description": "Creates a video.", - "$ref": "CreateVideoRequest" - }, - "replaceAllShapesWithSheetsChart": { - "$ref": "ReplaceAllShapesWithSheetsChartRequest", - "description": "Replaces all shapes matching some criteria with a Google Sheets chart." - }, - "createSheetsChart": { - "$ref": "CreateSheetsChartRequest", - "description": "Creates an embedded Google Sheets chart." - }, - "updatePageElementTransform": { - "description": "Updates the transform of a page element.", - "$ref": "UpdatePageElementTransformRequest" - }, - "updateTextStyle": { - "description": "Updates the styling of text within a Shape or Table.", - "$ref": "UpdateTextStyleRequest" - }, - "replaceAllShapesWithImage": { - "$ref": "ReplaceAllShapesWithImageRequest", - "description": "Replaces all shapes matching some criteria with an image." - }, - "replaceAllText": { - "$ref": "ReplaceAllTextRequest", - "description": "Replaces all instances of specified text." - }, - "updateImageProperties": { - "$ref": "UpdateImagePropertiesRequest", - "description": "Updates the properties of an Image." - }, - "insertTableRows": { - "$ref": "InsertTableRowsRequest", - "description": "Inserts rows into a table." - }, - "createSlide": { - "$ref": "CreateSlideRequest", - "description": "Creates a new slide." - }, - "updateLineProperties": { - "$ref": "UpdateLinePropertiesRequest", - "description": "Updates the properties of a Line." - }, - "updateSlidesPosition": { - "description": "Updates the position of a set of slides in the presentation.", - "$ref": "UpdateSlidesPositionRequest" - }, "deleteTableRow": { - "description": "Deletes a row from a table.", - "$ref": "DeleteTableRowRequest" + "$ref": "DeleteTableRowRequest", + "description": "Deletes a row from a table." }, "updateShapeProperties": { "$ref": "UpdateShapePropertiesRequest", "description": "Updates the properties of a Shape." }, + "ungroupObjects": { + "$ref": "UngroupObjectsRequest", + "description": "Ungroups objects, such as groups." + }, + "groupObjects": { + "$ref": "GroupObjectsRequest", + "description": "Groups objects, such as page elements." + }, "insertText": { "$ref": "InsertTextRequest", "description": "Inserts text into a shape or table cell." }, + "updateTableColumnProperties": { + "$ref": "UpdateTableColumnPropertiesRequest", + "description": "Updates the properties of a Table\ncolumn." + }, "deleteText": { "$ref": "DeleteTextRequest", "description": "Deletes text from a shape or a table cell." @@ -3407,9 +3476,117 @@ "$ref": "CreateShapeRequest", "description": "Creates a new shape." }, + "updateTableBorderProperties": { + "$ref": "UpdateTableBorderPropertiesRequest", + "description": "Updates the properties of the table borders in a Table." + }, "insertTableColumns": { "$ref": "InsertTableColumnsRequest", "description": "Inserts columns into a table." + }, + "mergeTableCells": { + "$ref": "MergeTableCellsRequest", + "description": "Merges cells in a Table." + }, + "refreshSheetsChart": { + "$ref": "RefreshSheetsChartRequest", + "description": "Refreshes a Google Sheets chart." + }, + "createTable": { + "$ref": "CreateTableRequest", + "description": "Creates a new table." + }, + "updateTableCellProperties": { + "$ref": "UpdateTableCellPropertiesRequest", + "description": "Updates the properties of a TableCell." + }, + "deleteObject": { + "$ref": "DeleteObjectRequest", + "description": "Deletes a page or page element from the presentation." + }, + "updateParagraphStyle": { + "$ref": "UpdateParagraphStyleRequest", + "description": "Updates the styling of paragraphs within a Shape or Table." + }, + "duplicateObject": { + "$ref": "DuplicateObjectRequest", + "description": "Duplicates a slide or page element." + }, + "deleteTableColumn": { + "$ref": "DeleteTableColumnRequest", + "description": "Deletes a column from a table." + }, + "createLine": { + "$ref": "CreateLineRequest", + "description": "Creates a line." + }, + "updateVideoProperties": { + "$ref": "UpdateVideoPropertiesRequest", + "description": "Updates the properties of a Video." + }, + "createImage": { + "$ref": "CreateImageRequest", + "description": "Creates an image." + }, + "createParagraphBullets": { + "$ref": "CreateParagraphBulletsRequest", + "description": "Creates bullets for paragraphs." + }, + "createVideo": { + "$ref": "CreateVideoRequest", + "description": "Creates a video." + }, + "replaceAllShapesWithSheetsChart": { + "$ref": "ReplaceAllShapesWithSheetsChartRequest", + "description": "Replaces all shapes matching some criteria with a Google Sheets chart." + }, + "createSheetsChart": { + "$ref": "CreateSheetsChartRequest", + "description": "Creates an embedded Google Sheets chart." + }, + "unmergeTableCells": { + "$ref": "UnmergeTableCellsRequest", + "description": "Unmerges cells in a Table." + }, + "updatePageElementTransform": { + "$ref": "UpdatePageElementTransformRequest", + "description": "Updates the transform of a page element." + }, + "updateTextStyle": { + "$ref": "UpdateTextStyleRequest", + "description": "Updates the styling of text within a Shape or Table." + }, + "updateTableRowProperties": { + "$ref": "UpdateTableRowPropertiesRequest", + "description": "Updates the properties of a Table row." + }, + "replaceAllShapesWithImage": { + "$ref": "ReplaceAllShapesWithImageRequest", + "description": "Replaces all shapes matching some criteria with an image." + }, + "replaceAllText": { + "$ref": "ReplaceAllTextRequest", + "description": "Replaces all instances of specified text." + }, + "updateImageProperties": { + "$ref": "UpdateImagePropertiesRequest", + "description": "Updates the properties of an Image." + }, + "createSlide": { + "$ref": "CreateSlideRequest", + "description": "Creates a new slide." + }, + "insertTableRows": { + "$ref": "InsertTableRowsRequest", + "description": "Inserts rows into a table." + }, + "updateLineProperties": { + "$ref": "UpdateLinePropertiesRequest", + "description": "Updates the properties of a Line." + }, + "updateSlidesPosition": { + "$ref": "UpdateSlidesPositionRequest", + "description": "Updates the position of a set of slides in the presentation." } }, "id": "Request" @@ -3418,6 +3595,10 @@ "description": "Update the properties of an Image.", "type": "object", "properties": { + "objectId": { + "type": "string", + "description": "The object ID of the image the updates are applied to." + }, "fields": { "format": "google-fieldmask", "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `imageProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the image outline color, set `fields` to\n`\"outline.outlineFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", @@ -3426,22 +3607,48 @@ "imageProperties": { "$ref": "ImageProperties", "description": "The image properties to update." - }, - "objectId": { - "description": "The object ID of the image the updates are applied to.", - "type": "string" } }, "id": "UpdateImagePropertiesRequest" }, "ParagraphStyle": { - "description": "Styles that apply to a whole paragraph.\n\nIf this text is contained in a shape with a parent placeholder, then these paragraph styles may be\ninherited from the parent. Which paragraph styles are inherited depend on the\nnesting level of lists:\n\n* A paragraph not in a list will inherit its paragraph style from the\n paragraph at the 0 nesting level of the list inside the parent placeholder.\n* A paragraph in a list will inherit its paragraph style from the paragraph\n at its corresponding nesting level of the list inside the parent\n placeholder.\n\nInherited paragraph styles are represented as unset fields in this message.", "type": "object", "properties": { + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "description": "The spacing mode for the paragraph.", + "type": "string", + "enumDescriptions": [ + "The spacing mode is inherited from the parent.", + "Paragraph spacing is always rendered.", + "Paragraph spacing is skipped between list elements." + ] + }, + "indentEnd": { + "$ref": "Dimension", + "description": "The amount indentation for the paragraph on the side that corresponds to\nthe end of the text, based on the current text direction. If unset, the\nvalue is inherited from the parent." + }, + "indentStart": { + "$ref": "Dimension", + "description": "The amount indentation for the paragraph on the side that corresponds to\nthe start of the text, based on the current text direction. If unset, the\nvalue is inherited from the parent." + }, "spaceAbove": { "$ref": "Dimension", "description": "The amount of extra space above the paragraph. If unset, the value is\ninherited from the parent." }, + "indentFirstLine": { + "$ref": "Dimension", + "description": "The amount of indentation for the start of the first line of the paragraph.\nIf unset, the value is inherited from the parent." + }, + "lineSpacing": { + "format": "float", + "description": "The amount of space between lines, as a percentage of normal, where normal\nis represented as 100.0. If unset, the value is inherited from the parent.", + "type": "number" + }, "alignment": { "enum": [ "ALIGNMENT_UNSPECIFIED", @@ -3460,20 +3667,12 @@ "The paragraph is justified." ] }, - "lineSpacing": { - "format": "float", - "description": "The amount of space between lines, as a percentage of normal, where normal\nis represented as 100.0. If unset, the value is inherited from the parent.", - "type": "number" - }, - "indentFirstLine": { - "description": "The amount of indentation for the start of the first line of the paragraph.\nIf unset, the value is inherited from the parent.", - "$ref": "Dimension" - }, "spaceBelow": { "$ref": "Dimension", "description": "The amount of extra space above the paragraph. If unset, the value is\ninherited from the parent." }, "direction": { + "type": "string", "enumDescriptions": [ "The text direction is inherited from the parent.", "The text goes from left to right.", @@ -3484,35 +3683,42 @@ "LEFT_TO_RIGHT", "RIGHT_TO_LEFT" ], - "description": "The text direction of this paragraph. If unset, the value defaults to\nLEFT_TO_RIGHT since\ntext direction is not inherited.", - "type": "string" - }, - "indentEnd": { - "description": "The amount indentation for the paragraph on the side that corresponds to\nthe end of the text, based on the current text direction. If unset, the\nvalue is inherited from the parent.", - "$ref": "Dimension" - }, - "spacingMode": { - "enumDescriptions": [ - "The spacing mode is inherited from the parent.", - "Paragraph spacing is always rendered.", - "Paragraph spacing is skipped between list elements." - ], - "enum": [ - "SPACING_MODE_UNSPECIFIED", - "NEVER_COLLAPSE", - "COLLAPSE_LISTS" - ], - "description": "The spacing mode for the paragraph.", - "type": "string" - }, - "indentStart": { - "$ref": "Dimension", - "description": "The amount indentation for the paragraph on the side that corresponds to\nthe start of the text, based on the current text direction. If unset, the\nvalue is inherited from the parent." + "description": "The text direction of this paragraph. If unset, the value defaults to\nLEFT_TO_RIGHT since\ntext direction is not inherited." } }, - "id": "ParagraphStyle" + "id": "ParagraphStyle", + "description": "Styles that apply to a whole paragraph.\n\nIf this text is contained in a shape with a parent placeholder, then these paragraph styles may be\ninherited from the parent. Which paragraph styles are inherited depend on the\nnesting level of lists:\n\n* A paragraph not in a list will inherit its paragraph style from the\n paragraph at the 0 nesting level of the list inside the parent placeholder.\n* A paragraph in a list will inherit its paragraph style from the paragraph\n at its corresponding nesting level of the list inside the parent\n placeholder.\n\nInherited paragraph styles are represented as unset fields in this message." + }, + "UpdateTableRowPropertiesRequest": { + "description": "Updates the properties of a Table row.", + "type": "object", + "properties": { + "objectId": { + "type": "string", + "description": "The object ID of the table." + }, + "rowIndices": { + "items": { + "type": "integer", + "format": "int32" + }, + "type": "array", + "description": "The list of zero-based indices specifying which rows to update. If no\nindices are provided, all rows in the table will be updated." + }, + "fields": { + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableRowProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the minimum row height, set `fields` to\n`\"min_row_height\"`.\n\nIf '\"min_row_height\"' is included in the field mask but the property is\nleft unset, the minimum row height will default to 0.", + "type": "string" + }, + "tableRowProperties": { + "$ref": "TableRowProperties", + "description": "The table row properties to update." + } + }, + "id": "UpdateTableRowPropertiesRequest" }, "ReplaceAllShapesWithSheetsChartResponse": { + "description": "The result of replacing shapes with a Google Sheets chart.", "type": "object", "properties": { "occurrencesChanged": { @@ -3521,8 +3727,7 @@ "type": "integer" } }, - "id": "ReplaceAllShapesWithSheetsChartResponse", - "description": "The result of replacing shapes with a Google Sheets chart." + "id": "ReplaceAllShapesWithSheetsChartResponse" }, "TableCellProperties": { "description": "The properties of the TableCell.", @@ -3547,6 +3752,8 @@ "id": "RefreshSheetsChartRequest" }, "Outline": { + "description": "The outline of a PageElement.\n\nIf these fields are unset, they may be inherited from a parent placeholder\nif it exists. If there is no parent, the fields will default to the value\nused for new page elements created in the Slides editor, which may depend on\nthe page element kind.", + "type": "object", "properties": { "outlineFill": { "$ref": "OutlineFill", @@ -3557,16 +3764,6 @@ "description": "The thickness of the outline." }, "dashStyle": { - "enum": [ - "DASH_STYLE_UNSPECIFIED", - "SOLID", - "DOT", - "DASH", - "DASH_DOT", - "LONG_DASH", - "LONG_DASH_DOT" - ], - "description": "The dash style of the outline.", "type": "string", "enumDescriptions": [ "Unspecified dash style.", @@ -3576,7 +3773,17 @@ "Alternating dashes and dots. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'dashDot'.", "Line with large dashes. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'lgDash'.", "Alternating large dashes and dots. Corresponds to ECMA-376\nST_PresetLineDashVal value 'lgDashDot'." - ] + ], + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], + "description": "The dash style of the outline." }, "propertyState": { "enum": [ @@ -3593,29 +3800,23 @@ ] } }, - "id": "Outline", - "description": "The outline of a PageElement.\n\nIf these fields are unset, they may be inherited from a parent placeholder\nif it exists. If there is no parent, the fields will default to the value\nused for new page elements created in the Slides editor, which may depend on\nthe page element kind.", - "type": "object" + "id": "Outline" }, - "NotesProperties": { - "description": "The properties of Page that are only\nrelevant for pages with page_type NOTES.", + "TableColumnProperties": { + "description": "Properties of each column in a table.", "type": "object", "properties": { - "speakerNotesObjectId": { - "description": "The object ID of the shape on this notes page that contains the speaker\nnotes for the corresponding slide.\nThe actual shape may not always exist on the notes page. Inserting text\nusing this object ID will automatically create the shape. In this case, the\nactual shape may have different object ID. The `GetPresentation` or\n`GetPage` action will always return the latest object ID.", - "type": "string" + "columnWidth": { + "$ref": "Dimension", + "description": "Width of a column." } }, - "id": "NotesProperties" + "id": "TableColumnProperties" }, "ShapeProperties": { "description": "The properties of a Shape.\n\nIf the shape is a placeholder shape as determined by the\nplaceholder field, then these\nproperties may be inherited from a parent placeholder shape.\nDetermining the rendered value of the property depends on the corresponding\nproperty_state field value.", "type": "object", "properties": { - "outline": { - "$ref": "Outline", - "description": "The outline of the shape. If unset, the outline is inherited from a\nparent placeholder if it exists. If the shape has no parent, then the\ndefault outline depends on the shape type, matching the defaults for\nnew shapes created in the Slides editor." - }, "shadow": { "$ref": "Shadow", "description": "The shadow properties of the shape. If unset, the shadow is inherited from\na parent placeholder if it exists. If the shape has no parent, then the\ndefault shadow matches the defaults for new shapes created in the Slides\neditor. This property is read-only." @@ -3627,24 +3828,33 @@ "link": { "$ref": "Link", "description": "The hyperlink destination of the shape. If unset, there is no link. Links\nare not inherited from parent placeholders." + }, + "outline": { + "$ref": "Outline", + "description": "The outline of the shape. If unset, the outline is inherited from a\nparent placeholder if it exists. If the shape has no parent, then the\ndefault outline depends on the shape type, matching the defaults for\nnew shapes created in the Slides editor." } }, "id": "ShapeProperties" }, - "TableColumnProperties": { - "description": "Properties of each column in a table.", + "NotesProperties": { + "description": "The properties of Page that are only\nrelevant for pages with page_type NOTES.", "type": "object", "properties": { - "columnWidth": { - "description": "Width of a column.", - "$ref": "Dimension" + "speakerNotesObjectId": { + "type": "string", + "description": "The object ID of the shape on this notes page that contains the speaker\nnotes for the corresponding slide.\nThe actual shape may not always exist on the notes page. Inserting text\nusing this object ID will automatically create the shape. In this case, the\nactual shape may have different object ID. The `GetPresentation` or\n`GetPage` action will always return the latest object ID." } }, - "id": "TableColumnProperties" + "id": "NotesProperties" }, "TableRow": { + "description": "Properties and contents of each row in a table.", "type": "object", "properties": { + "tableRowProperties": { + "$ref": "TableRowProperties", + "description": "Properties of the row." + }, "tableCells": { "items": { "$ref": "TableCell" @@ -3653,39 +3863,37 @@ "description": "Properties and contents of each cell.\n\nCells that span multiple columns are represented only once with a\ncolumn_span greater\nthan 1. As a result, the length of this collection does not always match\nthe number of columns of the entire table." }, "rowHeight": { - "description": "Height of a row.", - "$ref": "Dimension" + "$ref": "Dimension", + "description": "Height of a row." } }, - "id": "TableRow", - "description": "Properties and contents of each row in a table." + "id": "TableRow" }, "UpdateTableCellPropertiesRequest": { "description": "Update the properties of a TableCell.", "type": "object", "properties": { - "fields": { - "format": "google-fieldmask", - "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableCellProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the table cell background solid fill color, set\n`fields` to `\"tableCellBackgroundFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", - "type": "string" - }, "tableRange": { - "description": "The table range representing the subset of the table to which the updates\nare applied. If a table range is not specified, the updates will apply to\nthe entire table.", - "$ref": "TableRange" + "$ref": "TableRange", + "description": "The table range representing the subset of the table to which the updates\nare applied. If a table range is not specified, the updates will apply to\nthe entire table." }, "objectId": { - "description": "The object ID of the table.", - "type": "string" + "type": "string", + "description": "The object ID of the table." }, "tableCellProperties": { "$ref": "TableCellProperties", "description": "The table cell properties to update." + }, + "fields": { + "format": "google-fieldmask", + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableCellProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the table cell background solid fill color, set\n`fields` to `\"tableCellBackgroundFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", + "type": "string" } }, "id": "UpdateTableCellPropertiesRequest" }, "CreateSlideRequest": { - "description": "Creates a new slide.", "type": "object", "properties": { "slideLayoutReference": { @@ -3693,8 +3901,8 @@ "description": "Layout reference of the slide to be inserted, based on the *current\nmaster*, which is one of the following:\n\n- The master of the previous slide index.\n- The master of the first slide, if the insertion_index is zero.\n- The first master in the presentation, if there are no slides.\n\nIf the LayoutReference is not found in the current master, a 400 bad\nrequest error is returned.\n\nIf you don't specify a layout reference, then the new slide will use the\npredefined layout `BLANK`." }, "objectId": { - "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated.", - "type": "string" + "type": "string", + "description": "A user-supplied object ID.\n\nIf you specify an ID, it must be unique among all pages and page elements\nin the presentation. The ID must start with an alphanumeric character or an\nunderscore (matches regex `[a-zA-Z0-9_]`); remaining characters\nmay include those as well as a hyphen or colon (matches regex\n`[a-zA-Z0-9_-:]`).\nThe length of the ID must not be less than 5 or greater than 50.\n\nIf you don't specify an ID, a unique one is generated." }, "insertionIndex": { "format": "int32", @@ -3709,7 +3917,19 @@ "type": "array" } }, - "id": "CreateSlideRequest" + "id": "CreateSlideRequest", + "description": "Creates a new slide." + }, + "TableRowProperties": { + "type": "object", + "properties": { + "minRowHeight": { + "$ref": "Dimension", + "description": "Minimum height of the row. The row will be rendered in the Slides editor at\na height equal to or greater than this value in order to show all the text\nin the row's cell(s)." + } + }, + "id": "TableRowProperties", + "description": "Properties of each row in a table." }, "BatchUpdatePresentationRequest": { "type": "object", @@ -3719,44 +3939,107 @@ "description": "Provides control over how write requests are executed." }, "requests": { - "description": "A list of updates to apply to the presentation.", "items": { "$ref": "Request" }, - "type": "array" + "type": "array", + "description": "A list of updates to apply to the presentation." } }, "id": "BatchUpdatePresentationRequest", "description": "Request message for PresentationsService.BatchUpdatePresentation." }, - "TextContent": { - "description": "The general text content. The text must reside in a compatible shape (e.g.\ntext box or rectangle) or a table cell in a page.", + "GroupObjectsResponse": { + "description": "The result of grouping objects.", "type": "object", "properties": { - "textElements": { - "description": "The text contents broken down into its component parts, including styling\ninformation. This property is read-only.", - "items": { - "$ref": "TextElement" - }, - "type": "array" + "objectId": { + "description": "The object ID of the created group.", + "type": "string" + } + }, + "id": "GroupObjectsResponse" + }, + "TableBorderProperties": { + "type": "object", + "properties": { + "weight": { + "$ref": "Dimension", + "description": "The thickness of the border." }, + "dashStyle": { + "type": "string", + "enumDescriptions": [ + "Unspecified dash style.", + "Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'.\nThis 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'.", + "Alternating dashes and dots. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'dashDot'.", + "Line with large dashes. Corresponds to ECMA-376 ST_PresetLineDashVal\nvalue 'lgDash'.", + "Alternating large dashes and dots. Corresponds to ECMA-376\nST_PresetLineDashVal value 'lgDashDot'." + ], + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], + "description": "The dash style of the border." + }, + "tableBorderFill": { + "$ref": "TableBorderFill", + "description": "The fill of the table border." + } + }, + "id": "TableBorderProperties", + "description": "The border styling properties of the\nTableBorderCell." + }, + "TableBorderCell": { + "type": "object", + "properties": { + "tableBorderProperties": { + "$ref": "TableBorderProperties", + "description": "The border properties." + }, + "location": { + "$ref": "TableCellLocation", + "description": "The location of the border within the border table." + } + }, + "id": "TableBorderCell", + "description": "The properties of each border cell." + }, + "TextContent": { + "type": "object", + "properties": { "lists": { + "type": "object", "additionalProperties": { "$ref": "List" }, - "description": "The bulleted lists contained in this text, keyed by list ID.", - "type": "object" + "description": "The bulleted lists contained in this text, keyed by list ID." + }, + "textElements": { + "items": { + "$ref": "TextElement" + }, + "type": "array", + "description": "The text contents broken down into its component parts, including styling\ninformation. This property is read-only." } }, - "id": "TextContent" + "id": "TextContent", + "description": "The general text content. The text must reside in a compatible shape (e.g.\ntext box or rectangle) or a table cell in a page." }, "CreateSheetsChartResponse": { "description": "The result of creating an embedded Google Sheets chart.", "type": "object", "properties": { "objectId": { - "description": "The object ID of the created chart.", - "type": "string" + "type": "string", + "description": "The object ID of the created chart." } }, "id": "CreateSheetsChartResponse" @@ -3766,93 +4049,92 @@ "type": "object", "properties": { "requiredRevisionId": { - "description": "The revision ID of the presentation required for the write request. If\nspecified and the `required_revision_id` doesn't exactly match the\npresentation's current `revision_id`, the request will not be processed and\nwill return a 400 bad request error.", - "type": "string" + "type": "string", + "description": "The revision ID of the presentation required for the write request. If\nspecified and the `required_revision_id` doesn't exactly match the\npresentation's current `revision_id`, the request will not be processed and\nwill return a 400 bad request error." } }, "id": "WriteControl" }, "DeleteParagraphBulletsRequest": { + "description": "Deletes bullets from all of the paragraphs that overlap with the given text\nindex range.\n\nThe nesting level of each paragraph will be visually preserved by adding\nindent to the start of the corresponding paragraph.", + "type": "object", "properties": { "textRange": { - "description": "The range of text to delete bullets from, based on TextElement indexes.", - "$ref": "Range" + "$ref": "Range", + "description": "The range of text to delete bullets from, based on TextElement indexes." }, "objectId": { "description": "The object ID of the shape or table containing the text to delete bullets\nfrom.", "type": "string" }, "cellLocation": { - "description": "The optional table cell location if the text to be modified is in a table\ncell. If present, the object_id must refer to a table.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The optional table cell location if the text to be modified is in a table\ncell. If present, the object_id must refer to a table." } }, - "id": "DeleteParagraphBulletsRequest", - "description": "Deletes bullets from all of the paragraphs that overlap with the given text\nindex range.\n\nThe nesting level of each paragraph will be visually preserved by adding\nindent to the start of the corresponding paragraph.", - "type": "object" + "id": "DeleteParagraphBulletsRequest" }, "ParagraphMarker": { - "description": "A TextElement kind that represents the beginning of a new paragraph.", "type": "object", "properties": { - "style": { - "$ref": "ParagraphStyle", - "description": "The paragraph's style" - }, "bullet": { "$ref": "Bullet", "description": "The bullet for this paragraph. If not present, the paragraph does not\nbelong to a list." + }, + "style": { + "$ref": "ParagraphStyle", + "description": "The paragraph's style" } }, - "id": "ParagraphMarker" + "id": "ParagraphMarker", + "description": "A TextElement kind that represents the beginning of a new paragraph." }, "Thumbnail": { + "type": "object", "properties": { - "width": { - "format": "int32", - "description": "The positive width in pixels of the thumbnail image.", - "type": "integer" - }, "height": { + "type": "integer", "format": "int32", - "description": "The positive height in pixels of the thumbnail image.", - "type": "integer" + "description": "The positive height in pixels of the thumbnail image." }, "contentUrl": { "description": "The content URL of the thumbnail image.\n\nThe URL to the image has a default lifetime of 30 minutes.\nThis URL is tagged with the account of the requester. Anyone with the URL\neffectively accesses the image as the original requester. Access to the\nimage may be lost if the presentation's sharing settings change.\nThe mime type of the thumbnail image is the same as specified in the\n`GetPageThumbnailRequest`.", "type": "string" + }, + "width": { + "type": "integer", + "format": "int32", + "description": "The positive width in pixels of the thumbnail image." } }, "id": "Thumbnail", - "description": "The thumbnail of a page.", - "type": "object" + "description": "The thumbnail of a page." }, "InsertTableColumnsRequest": { - "id": "InsertTableColumnsRequest", - "description": "Inserts columns into a table.\n\nOther columns in the table will be resized to fit the new column.", "type": "object", "properties": { "number": { + "type": "integer", "format": "int32", - "description": "The number of columns to be inserted. Maximum 20 per request.", - "type": "integer" + "description": "The number of columns to be inserted. Maximum 20 per request." }, "cellLocation": { - "description": "The reference table cell location from which columns will be inserted.\n\nA new column will be inserted to the left (or right) of the column where\nthe reference cell is. If the reference cell is a merged cell, a new\ncolumn will be inserted to the left (or right) of the merged cell.", - "$ref": "TableCellLocation" + "$ref": "TableCellLocation", + "description": "The reference table cell location from which columns will be inserted.\n\nA new column will be inserted to the left (or right) of the column where\nthe reference cell is. If the reference cell is a merged cell, a new\ncolumn will be inserted to the left (or right) of the merged cell." }, "insertRight": { "description": "Whether to insert new columns to the right of the reference cell location.\n\n- `True`: insert to the right.\n- `False`: insert to the left.", "type": "boolean" }, "tableObjectId": { - "description": "The table to insert columns into.", - "type": "string" + "type": "string", + "description": "The table to insert columns into." } - } + }, + "id": "InsertTableColumnsRequest", + "description": "Inserts columns into a table.\n\nOther columns in the table will be resized to fit the new column." }, "LayoutPlaceholderIdMapping": { - "description": "The user-specified ID mapping for a placeholder that will be created on a\nslide from a specified layout.", "type": "object", "properties": { "objectId": { @@ -3864,31 +4146,62 @@ "description": "The placeholder on a layout that will be applied to a slide. Only type and index are needed. For example, a\npredefined `TITLE_AND_BODY` layout may usually have a TITLE placeholder\nwith index 0 and a BODY placeholder with index 0." }, "layoutPlaceholderObjectId": { - "description": "The object ID of the placeholder on a layout that will be applied\nto a slide.", - "type": "string" + "type": "string", + "description": "The object ID of the placeholder on a layout that will be applied\nto a slide." } }, - "id": "LayoutPlaceholderIdMapping" + "id": "LayoutPlaceholderIdMapping", + "description": "The user-specified ID mapping for a placeholder that will be created on a\nslide from a specified layout." }, - "UpdateShapePropertiesRequest": { + "UpdateTableBorderPropertiesRequest": { "type": "object", "properties": { "fields": { + "type": "string", "format": "google-fieldmask", - "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `shapeProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the shape background solid fill color, set `fields`\nto `\"shapeBackgroundFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset.", - "type": "string" + "description": "The fields that should be updated.\n\nAt least one field must be specified. The root `tableBorderProperties` is\nimplied and should not be specified. A single `\"*\"` can be used as\nshort-hand for listing every field.\n\nFor example to update the table border solid fill color, set\n`fields` to `\"tableBorderFill.solidFill.color\"`.\n\nTo reset a property to its default value, include its field name in the\nfield mask but leave the field itself unset." + }, + "borderPosition": { + "type": "string", + "enumDescriptions": [ + "All borders in the range.", + "Borders at the bottom of the range.", + "Borders on the inside of the range.", + "Horizontal borders on the inside of the range.", + "Vertical borders on the inside of the range.", + "Borders at the left of the range.", + "Borders along the outside of the range.", + "Borders at the right of the range.", + "Borders at the top of the range." + ], + "enum": [ + "ALL", + "BOTTOM", + "INNER", + "INNER_HORIZONTAL", + "INNER_VERTICAL", + "LEFT", + "OUTER", + "RIGHT", + "TOP" + ], + "description": "The border position in the table range the updates should apply to. If a\nborder position is not specified, the updates will apply to all borders in\nthe table range." + }, + "tableRange": { + "$ref": "TableRange", + "description": "The table range representing the subset of the table to which the updates\nare applied. If a table range is not specified, the updates will apply to\nthe entire table." }, "objectId": { - "description": "The object ID of the shape the updates are applied to.", + "description": "The object ID of the table.", "type": "string" }, - "shapeProperties": { - "description": "The shape properties to update.", - "$ref": "ShapeProperties" + "tableBorderProperties": { + "$ref": "TableBorderProperties", + "description": "The table border properties to update." } }, - "id": "UpdateShapePropertiesRequest", - "description": "Update the properties of a Shape." + "id": "UpdateTableBorderPropertiesRequest", + "description": "Updates the properties of the table borders in a Table." } }, "protocol": "rest", @@ -3900,6 +4213,12 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/presentations": { + "description": "View and manage your Google Slides presentations" + }, + "https://www.googleapis.com/auth/presentations.readonly": { + "description": "View your Google Slides presentations" + }, "https://www.googleapis.com/auth/spreadsheets.readonly": { "description": "View your Google Spreadsheets" }, @@ -3911,14 +4230,12 @@ }, "https://www.googleapis.com/auth/spreadsheets": { "description": "View and manage your spreadsheets in Google Drive" - }, - "https://www.googleapis.com/auth/presentations": { - "description": "View and manage your Google Slides presentations" - }, - "https://www.googleapis.com/auth/presentations.readonly": { - "description": "View your Google Slides presentations" } } } - } + }, + "rootUrl": "https://slides.googleapis.com/", + "ownerDomain": "google.com", + "name": "slides", + "batchPath": "batch" } diff --git a/vendor/google.golang.org/api/slides/v1/slides-gen.go b/vendor/google.golang.org/api/slides/v1/slides-gen.go index c0287fa07..a8afbc888 100644 --- a/vendor/google.golang.org/api/slides/v1/slides-gen.go +++ b/vendor/google.golang.org/api/slides/v1/slides-gen.go @@ -1993,6 +1993,88 @@ func (s *Group) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GroupObjectsRequest: Groups objects to create an object group. For +// example, groups PageElements to create a Group on the same page as +// all the children. +type GroupObjectsRequest struct { + // ChildrenObjectIds: The object IDs of the objects to group. + // + // Only page elements can be grouped. There should be at least two + // page + // elements on the same page that are not already in another group. Some + // page + // elements, such as videos, tables and placeholder shapes cannot be + // grouped. + ChildrenObjectIds []string `json:"childrenObjectIds,omitempty"` + + // GroupObjectId: A user-supplied object ID for the group to be + // created. + // + // 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. + GroupObjectId string `json:"groupObjectId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ChildrenObjectIds") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ChildrenObjectIds") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GroupObjectsRequest) MarshalJSON() ([]byte, error) { + type noMethod GroupObjectsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GroupObjectsResponse: The result of grouping objects. +type GroupObjectsResponse struct { + // ObjectId: The object ID of the created group. + ObjectId string `json:"objectId,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ObjectId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ObjectId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GroupObjectsResponse) MarshalJSON() ([]byte, error) { + type noMethod GroupObjectsResponse + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Image: A PageElement kind representing an // image. type Image struct { @@ -2052,7 +2134,7 @@ type ImageProperties struct { // link. Link *Link `json:"link,omitempty"` - // Outline: The outline of the image. If not set, the the image has no + // Outline: The outline of the image. If not set, the image has no // outline. Outline *Outline `json:"outline,omitempty"` @@ -2743,6 +2825,46 @@ func (s *MasterProperties) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// MergeTableCellsRequest: Merges cells in a Table. +type MergeTableCellsRequest struct { + // ObjectId: The object ID of the table. + ObjectId string `json:"objectId,omitempty"` + + // TableRange: 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 + // upper-left ("head") cell of the range. If the range is + // non-rectangular + // (which can occur in some cases where the range covers cells that + // are + // already merged), a 400 bad request error is returned. + TableRange *TableRange `json:"tableRange,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ObjectId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ObjectId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MergeTableCellsRequest) MarshalJSON() ([]byte, error) { + type noMethod MergeTableCellsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NestingLevel: Contains properties describing the look and feel of a // list bullet at a given // level of nesting. @@ -4208,6 +4330,9 @@ type Request struct { // DuplicateObject: Duplicates a slide or page element. DuplicateObject *DuplicateObjectRequest `json:"duplicateObject,omitempty"` + // GroupObjects: Groups objects, such as page elements. + GroupObjects *GroupObjectsRequest `json:"groupObjects,omitempty"` + // InsertTableColumns: Inserts columns into a table. InsertTableColumns *InsertTableColumnsRequest `json:"insertTableColumns,omitempty"` @@ -4217,6 +4342,9 @@ type Request struct { // InsertText: Inserts text into a shape or table cell. InsertText *InsertTextRequest `json:"insertText,omitempty"` + // MergeTableCells: Merges cells in a Table. + MergeTableCells *MergeTableCellsRequest `json:"mergeTableCells,omitempty"` + // RefreshSheetsChart: Refreshes a Google Sheets chart. RefreshSheetsChart *RefreshSheetsChartRequest `json:"refreshSheetsChart,omitempty"` @@ -4231,6 +4359,12 @@ type Request struct { // ReplaceAllText: Replaces all instances of specified text. ReplaceAllText *ReplaceAllTextRequest `json:"replaceAllText,omitempty"` + // UngroupObjects: Ungroups objects, such as groups. + UngroupObjects *UngroupObjectsRequest `json:"ungroupObjects,omitempty"` + + // UnmergeTableCells: Unmerges cells in a Table. + UnmergeTableCells *UnmergeTableCellsRequest `json:"unmergeTableCells,omitempty"` + // UpdateImageProperties: Updates the properties of an Image. UpdateImageProperties *UpdateImagePropertiesRequest `json:"updateImageProperties,omitempty"` @@ -4254,9 +4388,21 @@ type Request struct { // presentation. UpdateSlidesPosition *UpdateSlidesPositionRequest `json:"updateSlidesPosition,omitempty"` + // UpdateTableBorderProperties: Updates the properties of the table + // borders in a Table. + UpdateTableBorderProperties *UpdateTableBorderPropertiesRequest `json:"updateTableBorderProperties,omitempty"` + // UpdateTableCellProperties: Updates the properties of a TableCell. UpdateTableCellProperties *UpdateTableCellPropertiesRequest `json:"updateTableCellProperties,omitempty"` + // UpdateTableColumnProperties: Updates the properties of a + // Table + // column. + UpdateTableColumnProperties *UpdateTableColumnPropertiesRequest `json:"updateTableColumnProperties,omitempty"` + + // UpdateTableRowProperties: Updates the properties of a Table row. + UpdateTableRowProperties *UpdateTableRowPropertiesRequest `json:"updateTableRowProperties,omitempty"` + // UpdateTextStyle: Updates the styling of text within a Shape or Table. UpdateTextStyle *UpdateTextStyleRequest `json:"updateTextStyle,omitempty"` @@ -4312,6 +4458,9 @@ type Response struct { // DuplicateObject: The result of duplicating an object. DuplicateObject *DuplicateObjectResponse `json:"duplicateObject,omitempty"` + // GroupObjects: The result of grouping objects. + GroupObjects *GroupObjectsResponse `json:"groupObjects,omitempty"` + // ReplaceAllShapesWithImage: The result of replacing all shapes // matching some criteria with an // image. @@ -4904,7 +5053,7 @@ func (s *Shape) MarshalJSON() ([]byte, error) { type ShapeBackgroundFill struct { // PropertyState: The background fill property state. // - // Updating the the fill on a shape will implicitly update this field + // Updating the fill on a shape will implicitly update this field // to // `RENDERED`, unless another value is specified in the same request. // To @@ -5343,6 +5492,17 @@ type Table struct { // Columns: Number of columns in the table. Columns int64 `json:"columns,omitempty"` + // HorizontalBorderRows: Properties of horizontal cell borders. + // + // A table's horizontal cell borders are represented as a grid. The grid + // has + // one more row than the number of rows in the table and the same number + // of + // columns as the table. For example, if the table is 3 x 3, its + // horizontal + // borders will be represented as a grid with 4 rows and 3 columns. + HorizontalBorderRows []*TableBorderRow `json:"horizontalBorderRows,omitempty"` + // Rows: Number of rows in the table. Rows int64 `json:"rows,omitempty"` @@ -5357,6 +5517,17 @@ type Table struct { // than 1. TableRows []*TableRow `json:"tableRows,omitempty"` + // VerticalBorderRows: Properties of vertical cell borders. + // + // A table's vertical cell borders are represented as a grid. The grid + // has the + // same number of rows as the table and one more column than the number + // of + // columns in the table. For example, if the table is 3 x 3, its + // vertical + // borders will be represented as a grid with 3 rows and 4 columns. + VerticalBorderRows []*TableBorderRow `json:"verticalBorderRows,omitempty"` + // ForceSendFields is a list of field names (e.g. "Columns") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -5380,6 +5551,151 @@ func (s *Table) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TableBorderCell: The properties of each border cell. +type TableBorderCell struct { + // Location: The location of the border within the border table. + Location *TableCellLocation `json:"location,omitempty"` + + // TableBorderProperties: The border properties. + TableBorderProperties *TableBorderProperties `json:"tableBorderProperties,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Location") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Location") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TableBorderCell) MarshalJSON() ([]byte, error) { + type noMethod TableBorderCell + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TableBorderFill: The fill of the border. +type TableBorderFill struct { + // SolidFill: Solid fill. + SolidFill *SolidFill `json:"solidFill,omitempty"` + + // ForceSendFields is a list of field names (e.g. "SolidFill") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "SolidFill") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TableBorderFill) MarshalJSON() ([]byte, error) { + type noMethod TableBorderFill + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TableBorderProperties: The border styling properties of +// the +// TableBorderCell. +type TableBorderProperties struct { + // DashStyle: The dash style of the border. + // + // Possible values: + // "DASH_STYLE_UNSPECIFIED" - Unspecified dash style. + // "SOLID" - Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal + // value 'solid'. + // This is the default dash style. + // "DOT" - Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal + // value 'dot'. + // "DASH" - Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal + // value 'dash'. + // "DASH_DOT" - Alternating dashes and dots. Corresponds to ECMA-376 + // ST_PresetLineDashVal + // value 'dashDot'. + // "LONG_DASH" - Line with large dashes. Corresponds to ECMA-376 + // ST_PresetLineDashVal + // value 'lgDash'. + // "LONG_DASH_DOT" - Alternating large dashes and dots. Corresponds to + // ECMA-376 + // ST_PresetLineDashVal value 'lgDashDot'. + DashStyle string `json:"dashStyle,omitempty"` + + // TableBorderFill: The fill of the table border. + TableBorderFill *TableBorderFill `json:"tableBorderFill,omitempty"` + + // Weight: The thickness of the border. + Weight *Dimension `json:"weight,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DashStyle") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DashStyle") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TableBorderProperties) MarshalJSON() ([]byte, error) { + type noMethod TableBorderProperties + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// TableBorderRow: Contents of each border row in a table. +type TableBorderRow struct { + // TableBorderCells: Properties of each border cell. When a border's + // adjacent table cells are + // merged, it is not included in the response. + TableBorderCells []*TableBorderCell `json:"tableBorderCells,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TableBorderCells") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TableBorderCells") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *TableBorderRow) MarshalJSON() ([]byte, error) { + type noMethod TableBorderRow + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TableCell: Properties and contents of each table cell. type TableCell struct { // ColumnSpan: Column span of the cell. @@ -5424,7 +5740,7 @@ func (s *TableCell) MarshalJSON() ([]byte, error) { type TableCellBackgroundFill struct { // PropertyState: The background fill property state. // - // Updating the the fill on a table cell will implicitly update this + // Updating the fill on a table cell will implicitly update this // field // to `RENDERED`, unless another value is specified in the same request. // To @@ -5644,6 +5960,9 @@ type TableRow struct { // the number of columns of the entire table. TableCells []*TableCell `json:"tableCells,omitempty"` + // TableRowProperties: Properties of the row. + TableRowProperties *TableRowProperties `json:"tableRowProperties,omitempty"` + // ForceSendFields is a list of field names (e.g. "RowHeight") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, @@ -5667,6 +5986,38 @@ func (s *TableRow) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TableRowProperties: Properties of each row in a table. +type TableRowProperties struct { + // MinRowHeight: Minimum height of the row. The row will be rendered in + // the Slides editor at + // a height equal to or greater than this value in order to show all the + // text + // in the row's cell(s). + MinRowHeight *Dimension `json:"minRowHeight,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MinRowHeight") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MinRowHeight") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *TableRowProperties) MarshalJSON() ([]byte, error) { + type noMethod TableRowProperties + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TextContent: The general text content. The text must reside in a // compatible shape (e.g. // text box or rectangle) or a table cell in a page. @@ -6098,6 +6449,82 @@ func (s *Thumbnail) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UngroupObjectsRequest: Ungroups objects, such as groups. +type UngroupObjectsRequest struct { + // ObjectIds: The object IDs of the objects to ungroup. + // + // Only groups that are not inside other + // groups can be ungrouped. All the groups + // should be on the same page. The group itself is deleted. The visual + // sizes + // and positions of all the children are preserved. + ObjectIds []string `json:"objectIds,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ObjectIds") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ObjectIds") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UngroupObjectsRequest) MarshalJSON() ([]byte, error) { + type noMethod UngroupObjectsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UnmergeTableCellsRequest: Unmerges cells in a Table. +type UnmergeTableCellsRequest struct { + // ObjectId: The object ID of the table. + ObjectId string `json:"objectId,omitempty"` + + // TableRange: 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 upper-left ("head") cell of the resulting + // block of + // unmerged cells. + TableRange *TableRange `json:"tableRange,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ObjectId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ObjectId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UnmergeTableCellsRequest) MarshalJSON() ([]byte, error) { + type noMethod UnmergeTableCellsRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // UpdateImagePropertiesRequest: Update the properties of an Image. type UpdateImagePropertiesRequest struct { // Fields: The fields that should be updated. @@ -6442,6 +6869,80 @@ func (s *UpdateSlidesPositionRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UpdateTableBorderPropertiesRequest: Updates the properties of the +// table borders in a Table. +type UpdateTableBorderPropertiesRequest struct { + // BorderPosition: The border position in the table range the updates + // should apply to. If a + // border position is not specified, the updates will apply to all + // borders in + // the table range. + // + // Possible values: + // "ALL" - All borders in the range. + // "BOTTOM" - Borders at the bottom of the range. + // "INNER" - Borders on the inside of the range. + // "INNER_HORIZONTAL" - Horizontal borders on the inside of the range. + // "INNER_VERTICAL" - Vertical borders on the inside of the range. + // "LEFT" - Borders at the left of the range. + // "OUTER" - Borders along the outside of the range. + // "RIGHT" - Borders at the right of the range. + // "TOP" - Borders at the top of the range. + BorderPosition string `json:"borderPosition,omitempty"` + + // Fields: The fields that should be updated. + // + // At least one field must be specified. The root + // `tableBorderProperties` 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 border solid fill color, set + // `fields` to "tableBorderFill.solidFill.color". + // + // To reset a property to its default value, include its field name in + // the + // field mask but leave the field itself unset. + Fields string `json:"fields,omitempty"` + + // ObjectId: The object ID of the table. + ObjectId string `json:"objectId,omitempty"` + + // TableBorderProperties: The table border properties to update. + TableBorderProperties *TableBorderProperties `json:"tableBorderProperties,omitempty"` + + // TableRange: The table range representing the subset of the table to + // which the updates + // are applied. If a table range is not specified, the updates will + // apply to + // the entire table. + TableRange *TableRange `json:"tableRange,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BorderPosition") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BorderPosition") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *UpdateTableBorderPropertiesRequest) MarshalJSON() ([]byte, error) { + type noMethod UpdateTableBorderPropertiesRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // UpdateTableCellPropertiesRequest: Update the properties of a // TableCell. type UpdateTableCellPropertiesRequest struct { @@ -6498,6 +6999,118 @@ func (s *UpdateTableCellPropertiesRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UpdateTableColumnPropertiesRequest: Updates the properties of a Table +// column. +type UpdateTableColumnPropertiesRequest struct { + // ColumnIndices: The list of zero-based indices specifying which + // columns to update. If no + // indices are provided, all columns in the table will be updated. + ColumnIndices []int64 `json:"columnIndices,omitempty"` + + // Fields: 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 + // "column_width". + // + // If '"column_width"' is included in the field mask but the property is + // left + // unset, the column width will default to 406,400 EMU (32 points). + Fields string `json:"fields,omitempty"` + + // ObjectId: The object ID of the table. + ObjectId string `json:"objectId,omitempty"` + + // TableColumnProperties: The table column properties to update. + // + // If the value of `table_column_properties#column_width` in the request + // is + // less than 406,400 EMU (32 points), a 400 bad request error is + // returned. + TableColumnProperties *TableColumnProperties `json:"tableColumnProperties,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ColumnIndices") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ColumnIndices") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UpdateTableColumnPropertiesRequest) MarshalJSON() ([]byte, error) { + type noMethod UpdateTableColumnPropertiesRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UpdateTableRowPropertiesRequest: Updates the properties of a Table +// row. +type UpdateTableRowPropertiesRequest struct { + // Fields: The fields that should be updated. + // + // At least one field must be specified. The root `tableRowProperties` + // 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". + // + // If '"min_row_height"' is included in the field mask but the property + // is + // left unset, the minimum row height will default to 0. + Fields string `json:"fields,omitempty"` + + // ObjectId: The object ID of the table. + ObjectId string `json:"objectId,omitempty"` + + // RowIndices: The list of zero-based indices specifying which rows to + // update. If no + // indices are provided, all rows in the table will be updated. + RowIndices []int64 `json:"rowIndices,omitempty"` + + // TableRowProperties: The table row properties to update. + TableRowProperties *TableRowProperties `json:"tableRowProperties,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Fields") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Fields") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UpdateTableRowPropertiesRequest) MarshalJSON() ([]byte, error) { + type noMethod UpdateTableRowPropertiesRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // UpdateTextStyleRequest: Update the styling of text in a Shape // or // Table. diff --git a/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-api.json b/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-api.json index e7a1fd398..bdf1bad93 100644 --- a/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-api.json +++ b/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-api.json @@ -1,529 +1,8 @@ { - "ownerName": "Google", - "resources": { - "projects": { - "resources": { - "repos": { - "methods": { - "list": { - "response": { - "$ref": "ListReposResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "pageSize": { - "format": "int32", - "description": "Maximum number of repositories to return; between 1 and 500.\nIf not set or zero, defaults to 100 at the server.", - "type": "integer", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "Resume listing repositories where a prior ListReposResponse\nleft off. This is an opaque token that must be obtained from\na recent, prior ListReposResponse's next_page_token field.", - "type": "string" - }, - "name": { - "location": "path", - "description": "The project ID whose repos should be listed. Values are of the form\n`projects/\u003cproject\u003e`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "flatPath": "v1/projects/{projectsId}/repos", - "id": "sourcerepo.projects.repos.list", - "path": "v1/{+name}/repos", - "description": "Returns all repos belonging to a project. The sizes of the repos are\nnot set by ListRepos. To get the size of a repo, use GetRepo." - }, - "setIamPolicy": { - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", - "httpMethod": "POST", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/repos/.+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/repos/{reposId}:setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "id": "sourcerepo.projects.repos.setIamPolicy" - }, - "create": { - "flatPath": "v1/projects/{projectsId}/repos", - "id": "sourcerepo.projects.repos.create", - "path": "v1/{+parent}/repos", - "description": "Creates a repo in the given project with the given name.\n\nIf the named repository already exists, `CreateRepo` returns\n`ALREADY_EXISTS`.", - "request": { - "$ref": "Repo" - }, - "response": { - "$ref": "Repo" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "description": "The project in which to create the repo. Values are of the form\n`projects/\u003cproject\u003e`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ] - }, - "getIamPolicy": { - "httpMethod": "GET", - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/repos/.+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "flatPath": "v1/projects/{projectsId}/repos/{reposId}:getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "id": "sourcerepo.projects.repos.getIamPolicy", - "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset." - }, - "get": { - "description": "Returns information about a repo.", - "response": { - "$ref": "Repo" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "location": "path", - "description": "The name of the requested repository. Values are of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/repos/.+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "flatPath": "v1/projects/{projectsId}/repos/{reposId}", - "id": "sourcerepo.projects.repos.get", - "path": "v1/{+name}" - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/repos/.+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/repos/{reposId}:testIamPermissions", - "id": "sourcerepo.projects.repos.testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error." - }, - "delete": { - "description": "Deletes a repo.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/source.full_control", - "https://www.googleapis.com/auth/source.read_only", - "https://www.googleapis.com/auth/source.read_write" - ], - "parameters": { - "name": { - "description": "The name of the repo to delete. Values are of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`.", - "type": "string", - "required": true, - "pattern": "^projects/[^/]+/repos/.+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/repos/{reposId}", - "path": "v1/{+name}", - "id": "sourcerepo.projects.repos.delete" - } - } - } - } - } - }, - "parameters": { - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - } - }, - "version": "v1", - "baseUrl": "https://sourcerepo.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Access source code repositories hosted by Google.", - "servicePath": "", - "basePath": "", - "revision": "20170908", - "documentationLink": "https://cloud.google.com/source-repositories/docs/apis", - "id": "sourcerepo:v1", "discoveryVersion": "v1", "version_module": true, "schemas": { - "AuditConfig": { - "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", - "type": "object", - "properties": { - "auditLogConfigs": { - "description": "The configuration for logging of each type of permission.\nNext ID: 4", - "items": { - "$ref": "AuditLogConfig" - }, - "type": "array" - }, - "exemptedMembers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "service": { - "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", - "type": "string" - } - }, - "id": "AuditConfig" - }, - "SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "type": "object", - "properties": { - "updateMask": { - "format": "google-fieldmask", - "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.", - "type": "string" - }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest" - }, - "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", - "properties": { - "condition": { - "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL.", - "$ref": "Expr" - }, - "members": { - "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", - "type": "string" - } - }, - "id": "Binding" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "MirrorConfig": { - "description": "Configuration to automatically mirror a repository from another\nhosting service, for example GitHub or BitBucket.", - "type": "object", - "properties": { - "webhookId": { - "description": "ID of the webhook listening to updates to trigger mirroring.\nRemoving this webook from the other hosting service will stop\nGoogle Cloud Source Repositories from receiving notifications,\nand thereby disabling mirroring.", - "type": "string" - }, - "deployKeyId": { - "description": "ID of the SSH deploy key at the other hosting service.\nRemoving this key from the other service would deauthorize\nGoogle Cloud Source Repositories from mirroring.", - "type": "string" - }, - "url": { - "description": "URL of the main repository at the other hosting service.", - "type": "string" - } - }, - "id": "MirrorConfig" - }, - "Expr": { - "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"", - "type": "object", - "properties": { - "location": { - "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", - "type": "string" - }, - "title": { - "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", - "type": "string" - }, - "description": { - "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", - "type": "string" - } - }, - "id": "Expr" - }, - "Repo": { - "description": "A repository (or repo) is a Git repository storing versioned source content.", - "type": "object", - "properties": { - "mirrorConfig": { - "description": "How this repository mirrors a repository managed by another service.", - "$ref": "MirrorConfig" - }, - "url": { - "description": "URL to clone the repository from Google Cloud Source Repositories.", - "type": "string" - }, - "size": { - "format": "int64", - "description": "The disk usage of the repo, in bytes.\nOnly returned by GetRepo.", - "type": "string" - }, - "name": { - "description": "Resource name of the repository, of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`. The repo name may contain slashes.\neg, `projects/myproject/repos/name/with/slash`", - "type": "string" - } - }, - "id": "Repo" - }, - "TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "TestIamPermissionsResponse" - }, - "ListReposResponse": { - "description": "Response for ListRepos. The size is not set in the returned repositories.", - "type": "object", - "properties": { - "repos": { - "description": "The listed repos.", - "items": { - "$ref": "Repo" - }, - "type": "array" - }, - "nextPageToken": { - "description": "If non-empty, additional repositories exist within the project. These\ncan be retrieved by including this value in the next ListReposRequest's\npage_token field.", - "type": "string" - } - }, - "id": "ListReposResponse" - }, - "AuditLogConfig": { - "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", - "type": "object", - "properties": { - "logType": { - "enumDescriptions": [ - "Default case. Should never be this.", - "Admin reads. Example: CloudIAM getIamPolicy", - "Data writes. Example: CloudSQL Users create", - "Data reads. Example: CloudSQL Users list" - ], - "enum": [ - "LOG_TYPE_UNSPECIFIED", - "ADMIN_READ", - "DATA_WRITE", - "DATA_READ" - ], - "description": "The log type that this config enables.", - "type": "string" - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "AuditLogConfig" - }, "TestIamPermissionsRequest": { - "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { @@ -534,19 +13,12 @@ "type": "array" } }, - "id": "TestIamPermissionsRequest" + "id": "TestIamPermissionsRequest", + "description": "Request message for `TestIamPermissions` method." }, "Policy": { - "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "AuditConfig" - }, - "type": "array" - }, "bindings": { "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.", "items": { @@ -566,23 +38,224 @@ "format": "int32", "description": "Version of the `Policy`. The default version is 0.", "type": "integer" + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "AuditConfig" + }, + "type": "array" } }, - "id": "Policy" + "id": "Policy", + "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam)." + }, + "AuditConfig": { + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n },\n {\n \"log_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n \"service\": \"fooservice.googleapis.com\"\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:bar@gmail.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", + "type": "object", + "properties": { + "service": { + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "type": "string" + }, + "auditLogConfigs": { + "items": { + "$ref": "AuditLogConfig" + }, + "type": "array", + "description": "The configuration for logging of each type of permission.\nNext ID: 4" + }, + "exemptedMembers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "AuditConfig" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." + }, + "updateMask": { + "type": "string", + "format": "google-fieldmask", + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM." + } + }, + "id": "SetIamPolicyRequest" + }, + "Binding": { + "description": "Associates `members` with a `role`.", + "type": "object", + "properties": { + "role": { + "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", + "type": "string" + }, + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL." + }, + "members": { + "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "Binding" + }, + "MirrorConfig": { + "description": "Configuration to automatically mirror a repository from another\nhosting service, for example GitHub or BitBucket.", + "type": "object", + "properties": { + "webhookId": { + "description": "ID of the webhook listening to updates to trigger mirroring.\nRemoving this webhook from the other hosting service will stop\nGoogle Cloud Source Repositories from receiving notifications,\nand thereby disabling mirroring.", + "type": "string" + }, + "deployKeyId": { + "type": "string", + "description": "ID of the SSH deploy key at the other hosting service.\nRemoving this key from the other service would deauthorize\nGoogle Cloud Source Repositories from mirroring." + }, + "url": { + "description": "URL of the main repository at the other hosting service.", + "type": "string" + } + }, + "id": "MirrorConfig" + }, + "Empty": { + "type": "object", + "properties": {}, + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`." + }, + "Expr": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file." + }, + "title": { + "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", + "type": "string" + }, + "description": { + "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.", + "type": "string" + } + }, + "id": "Expr", + "description": "Represents an expression text. Example:\n\n title: \"User account presence\"\n description: \"Determines whether the request has a user account\"\n expression: \"size(request.user) \u003e 0\"" + }, + "Repo": { + "description": "A repository (or repo) is a Git repository storing versioned source content.", + "type": "object", + "properties": { + "mirrorConfig": { + "$ref": "MirrorConfig", + "description": "How this repository mirrors a repository managed by another service." + }, + "url": { + "type": "string", + "description": "URL to clone the repository from Google Cloud Source Repositories." + }, + "size": { + "type": "string", + "format": "int64", + "description": "The disk usage of the repo, in bytes.\nOnly returned by GetRepo." + }, + "name": { + "description": "Resource name of the repository, of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`. The repo name may contain slashes.\neg, `projects/myproject/repos/name/with/slash`", + "type": "string" + } + }, + "id": "Repo" + }, + "ListReposResponse": { + "description": "Response for ListRepos. The size is not set in the returned repositories.", + "type": "object", + "properties": { + "repos": { + "description": "The listed repos.", + "items": { + "$ref": "Repo" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If non-empty, additional repositories exist within the project. These\ncan be retrieved by including this value in the next ListReposRequest's\npage_token field.", + "type": "string" + } + }, + "id": "ListReposResponse" + }, + "TestIamPermissionsResponse": { + "type": "object", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "TestIamPermissionsResponse", + "description": "Response message for `TestIamPermissions` method." + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", + "type": "object", + "properties": { + "logType": { + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "description": "The log type that this config enables.", + "type": "string", + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ] + }, + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "AuditLogConfig" } }, "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "protocol": "rest", "canonicalName": "Cloud Source Repositories", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/source.read_write": { - "description": "Manage the contents of your source code repositories" - }, "https://www.googleapis.com/auth/source.full_control": { "description": "Manage your source code repositories" }, @@ -591,6 +264,9 @@ }, "https://www.googleapis.com/auth/source.read_only": { "description": "View the contents of your source code repositories" + }, + "https://www.googleapis.com/auth/source.read_write": { + "description": "Manage the contents of your source code repositories" } } } @@ -599,5 +275,329 @@ "ownerDomain": "google.com", "name": "sourcerepo", "batchPath": "batch", - "title": "Cloud Source Repositories API" + "title": "Cloud Source Repositories API", + "ownerName": "Google", + "resources": { + "projects": { + "resources": { + "repos": { + "methods": { + "getIamPolicy": { + "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/repos/.+$" + } + }, + "flatPath": "v1/projects/{projectsId}/repos/{reposId}:getIamPolicy", + "id": "sourcerepo.projects.repos.getIamPolicy", + "path": "v1/{+resource}:getIamPolicy" + }, + "get": { + "flatPath": "v1/projects/{projectsId}/repos/{reposId}", + "id": "sourcerepo.projects.repos.get", + "path": "v1/{+name}", + "description": "Returns information about a repo.", + "response": { + "$ref": "Repo" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the requested repository. Values are of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/repos/.+$" + } + } + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/repos/.+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "flatPath": "v1/projects/{projectsId}/repos/{reposId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "sourcerepo.projects.repos.testIamPermissions" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the repo to delete. Values are of the form\n`projects/\u003cproject\u003e/repos/\u003crepo\u003e`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/repos/.+$" + } + }, + "flatPath": "v1/projects/{projectsId}/repos/{reposId}", + "path": "v1/{+name}", + "id": "sourcerepo.projects.repos.delete", + "description": "Deletes a repo." + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "ListReposResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "Resume listing repositories where a prior ListReposResponse\nleft off. This is an opaque token that must be obtained from\na recent, prior ListReposResponse's next_page_token field." + }, + "name": { + "location": "path", + "description": "The project ID whose repos should be listed. Values are of the form\n`projects/\u003cproject\u003e`.", + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "Maximum number of repositories to return; between 1 and 500.\nIf not set or zero, defaults to 100 at the server.", + "type": "integer" + } + }, + "flatPath": "v1/projects/{projectsId}/repos", + "path": "v1/{+name}/repos", + "id": "sourcerepo.projects.repos.list", + "description": "Returns all repos belonging to a project. The sizes of the repos are\nnot set by ListRepos. To get the size of a repo, use GetRepo." + }, + "create": { + "flatPath": "v1/projects/{projectsId}/repos", + "path": "v1/{+parent}/repos", + "id": "sourcerepo.projects.repos.create", + "description": "Creates a repo in the given project with the given name.\n\nIf the named repository already exists, `CreateRepo` returns\n`ALREADY_EXISTS`.", + "request": { + "$ref": "Repo" + }, + "httpMethod": "POST", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "Repo" + }, + "parameters": { + "parent": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "The project in which to create the repo. Values are of the form\n`projects/\u003cproject\u003e`." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ] + }, + "setIamPolicy": { + "flatPath": "v1/projects/{projectsId}/repos/{reposId}:setIamPolicy", + "id": "sourcerepo.projects.repos.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/source.full_control", + "https://www.googleapis.com/auth/source.read_only", + "https://www.googleapis.com/auth/source.read_write" + ], + "parameters": { + "resource": { + "type": "string", + "required": true, + "pattern": "^projects/[^/]+/repos/.+$", + "location": "path", + "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field." + } + } + } + } + } + } + } + }, + "parameters": { + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "type": "string", + "location": "query", + "description": "Selector specifying which fields to include in a partial response." + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "alt": { + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response." + }, + "key": { + "type": "string", + "location": "query", + "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." + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "type": "string", + "location": "query", + "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." + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." + }, + "upload_protocol": { + "type": "string", + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" + } + }, + "version": "v1", + "baseUrl": "https://sourcerepo.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Access source code repositories hosted by Google.", + "servicePath": "", + "basePath": "", + "id": "sourcerepo:v1", + "documentationLink": "https://cloud.google.com/source-repositories/docs/apis", + "revision": "20171011" } diff --git a/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-gen.go b/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-gen.go index d3277ad3e..d68a9a27a 100644 --- a/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-gen.go +++ b/vendor/google.golang.org/api/sourcerepo/v1/sourcerepo-gen.go @@ -464,7 +464,7 @@ type MirrorConfig struct { // WebhookId: ID of the webhook listening to updates to trigger // mirroring. - // Removing this webook from the other hosting service will stop + // Removing this webhook from the other hosting service will stop // Google Cloud Source Repositories from receiving notifications, // and thereby disabling mirroring. WebhookId string `json:"webhookId,omitempty"` diff --git a/vendor/google.golang.org/api/spanner/v1/spanner-api.json b/vendor/google.golang.org/api/spanner/v1/spanner-api.json index 56870e3fa..c2844ab3f 100644 --- a/vendor/google.golang.org/api/spanner/v1/spanner-api.json +++ b/vendor/google.golang.org/api/spanner/v1/spanner-api.json @@ -1,11 +1,1261 @@ { + "resources": { + "projects": { + "resources": { + "instances": { + "resources": { + "databases": { + "resources": { + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}:cancel", + "path": "v1/{+name}:cancel", + "id": "spanner.projects.instances.databases.operations.cancel" + }, + "delete": { + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}", + "id": "spanner.projects.instances.databases.operations.delete", + "path": "v1/{+name}", + "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`." + }, + "list": { + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "name": { + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$", + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations", + "id": "spanner.projects.instances.databases.operations.list", + "path": "v1/{+name}", + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", + "httpMethod": "GET", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "name" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "parameters": { + "name": { + "description": "The name of the operation resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}", + "path": "v1/{+name}", + "id": "spanner.projects.instances.databases.operations.get" + } + } + }, + "sessions": { + "methods": { + "commit": { + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:commit", + "id": "spanner.projects.instances.databases.sessions.commit", + "path": "v1/{+session}:commit", + "request": { + "$ref": "CommitRequest" + }, + "description": "Commits a transaction. The request includes the mutations to be\napplied to rows in the database.\n\n`Commit` might return an `ABORTED` error. This can occur at any time;\ncommonly, the cause is conflicts with concurrent\ntransactions. However, it can also happen for a variety of other\nreasons. If `Commit` returns `ABORTED`, the caller should re-attempt\nthe transaction from the beginning, re-using the same session.", + "httpMethod": "POST", + "parameterOrder": [ + "session" + ], + "response": { + "$ref": "CommitResponse" + }, + "parameters": { + "session": { + "description": "Required. The session in which the transaction to be committed is running.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ] + }, + "beginTransaction": { + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:beginTransaction", + "id": "spanner.projects.instances.databases.sessions.beginTransaction", + "path": "v1/{+session}:beginTransaction", + "request": { + "$ref": "BeginTransactionRequest" + }, + "description": "Begins a new transaction. This step can often be skipped:\nRead, ExecuteSql and\nCommit can begin a new transaction as a\nside-effect.", + "httpMethod": "POST", + "parameterOrder": [ + "session" + ], + "response": { + "$ref": "Transaction" + }, + "parameters": { + "session": { + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path", + "description": "Required. The session in which the transaction runs.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ] + }, + "executeStreamingSql": { + "response": { + "$ref": "PartialResultSet" + }, + "parameterOrder": [ + "session" + ], + "httpMethod": "POST", + "parameters": { + "session": { + "description": "Required. The session in which the SQL query should be performed.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeStreamingSql", + "path": "v1/{+session}:executeStreamingSql", + "id": "spanner.projects.instances.databases.sessions.executeStreamingSql", + "request": { + "$ref": "ExecuteSqlRequest" + }, + "description": "Like ExecuteSql, except returns the result\nset as a stream. Unlike ExecuteSql, there\nis no limit on the size of the returned result set. However, no\nindividual row in the result set can exceed 100 MiB, and no\ncolumn value can exceed 10 MiB." + }, + "delete": { + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}", + "id": "spanner.projects.instances.databases.sessions.delete", + "path": "v1/{+name}", + "description": "Ends a session, releasing server resources associated with it.", + "httpMethod": "DELETE", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path", + "description": "Required. The name of the session to delete.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ] + }, + "executeSql": { + "path": "v1/{+session}:executeSql", + "id": "spanner.projects.instances.databases.sessions.executeSql", + "description": "Executes an SQL query, returning all rows in a single reply. This\nmethod cannot be used to return a result set larger than 10 MiB;\nif the query yields more data than that, the query fails with\na `FAILED_PRECONDITION` error.\n\nQueries inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be fetched in streaming fashion by calling\nExecuteStreamingSql instead.", + "request": { + "$ref": "ExecuteSqlRequest" + }, + "response": { + "$ref": "ResultSet" + }, + "parameterOrder": [ + "session" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "parameters": { + "session": { + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path", + "description": "Required. The session in which the SQL query should be performed.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeSql" + }, + "list": { + "parameters": { + "pageToken": { + "description": "If non-empty, `page_token` should contain a\nnext_page_token from a previous\nListSessionsResponse.", + "type": "string", + "location": "query" + }, + "pageSize": { + "location": "query", + "description": "Number of sessions to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.", + "format": "int32", + "type": "integer" + }, + "database": { + "location": "path", + "description": "Required. The database in which to list sessions.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$" + }, + "filter": { + "location": "query", + "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n * labels.key where key is the name of a label\n\nSome examples of using filters are:\n\n * labels.env:* --\u003e The session has the label \"env\".\n * labels.env:dev --\u003e The session has the label \"env\" and the value of\n the label contains the string \"dev\".", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions", + "path": "v1/{+database}/sessions", + "id": "spanner.projects.instances.databases.sessions.list", + "description": "Lists all sessions in a given database.", + "response": { + "$ref": "ListSessionsResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "GET" + }, + "streamingRead": { + "response": { + "$ref": "PartialResultSet" + }, + "parameterOrder": [ + "session" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "parameters": { + "session": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path", + "description": "Required. The session in which the read should be performed." + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:streamingRead", + "path": "v1/{+session}:streamingRead", + "id": "spanner.projects.instances.databases.sessions.streamingRead", + "description": "Like Read, except returns the result set as a\nstream. Unlike Read, there is no limit on the\nsize of the returned result set. However, no individual row in\nthe result set can exceed 100 MiB, and no column value can exceed\n10 MiB.", + "request": { + "$ref": "ReadRequest" + } + }, + "rollback": { + "request": { + "$ref": "RollbackRequest" + }, + "description": "Rolls back a transaction, releasing any locks it holds. It is a good\nidea to call this for any transaction that includes one or more\nRead or ExecuteSql requests and\nultimately decides not to commit.\n\n`Rollback` returns `OK` if it successfully aborts the transaction, the\ntransaction was already aborted, or the transaction is not\nfound. `Rollback` never returns `ABORTED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "session" + ], + "httpMethod": "POST", + "parameters": { + "session": { + "location": "path", + "description": "Required. The session in which the transaction to roll back is running.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:rollback", + "path": "v1/{+session}:rollback", + "id": "spanner.projects.instances.databases.sessions.rollback" + }, + "create": { + "request": { + "$ref": "CreateSessionRequest" + }, + "description": "Creates a new session. A session can be used to perform\ntransactions that read and/or modify data in a Cloud Spanner database.\nSessions are meant to be reused for many consecutive\ntransactions.\n\nSessions can only execute one transaction at a time. To execute\nmultiple concurrent read-write/write-only transactions, create\nmultiple sessions. Note that standalone reads and queries use a\ntransaction internally, and count toward the one transaction\nlimit.\n\nCloud Spanner limits the number of sessions that can exist at any given\ntime; thus, it is a good idea to delete idle and/or unneeded sessions.\nAside from explicit deletes, Cloud Spanner can delete sessions for which no\noperations are sent for more than an hour. If a session is deleted,\nrequests to it return `NOT_FOUND`.\n\nIdle sessions can be kept alive by sending a trivial SQL query\nperiodically, e.g., `\"SELECT 1\"`.", + "response": { + "$ref": "Session" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "POST", + "parameters": { + "database": { + "location": "path", + "description": "Required. The database in which the new session is created.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions", + "path": "v1/{+database}/sessions", + "id": "spanner.projects.instances.databases.sessions.create" + }, + "read": { + "httpMethod": "POST", + "parameterOrder": [ + "session" + ], + "response": { + "$ref": "ResultSet" + }, + "parameters": { + "session": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path", + "description": "Required. The session in which the read should be performed." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:read", + "id": "spanner.projects.instances.databases.sessions.read", + "path": "v1/{+session}:read", + "request": { + "$ref": "ReadRequest" + }, + "description": "Reads rows from the database using key lookups and scans, as a\nsimple key/value style alternative to\nExecuteSql. This method cannot be used to\nreturn a result set larger than 10 MiB; if the read matches more\ndata than that, the read fails with a `FAILED_PRECONDITION`\nerror.\n\nReads inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be yielded in streaming fashion by calling\nStreamingRead instead." + }, + "get": { + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Session" + }, + "parameters": { + "name": { + "description": "Required. The name of the session to retrieve.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}", + "id": "spanner.projects.instances.databases.sessions.get", + "path": "v1/{+name}", + "description": "Gets a session. Returns `NOT_FOUND` if the session does not exist.\nThis is mainly useful for determining whether a session is still\nalive." + } + } + } + }, + "methods": { + "create": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "description": "Required. The name of the instance that will serve the new database.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases", + "path": "v1/{+parent}/databases", + "id": "spanner.projects.instances.databases.create", + "request": { + "$ref": "CreateDatabaseRequest" + }, + "description": "Creates a new Cloud Spanner database and starts to prepare it for serving.\nThe returned long-running operation will\nhave a name of the format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track preparation of the database. The\nmetadata field type is\nCreateDatabaseMetadata. The\nresponse field type is\nDatabase, if successful." + }, + "setIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "id": "spanner.projects.instances.databases.setIamPolicy", + "description": "Sets the access control policy on a database resource. Replaces any\nexisting policy.\n\nAuthorization requires `spanner.databases.setIamPolicy` permission on\nresource.", + "request": { + "$ref": "SetIamPolicyRequest" + } + }, + "getIamPolicy": { + "description": "Gets the access control policy for a database resource. Returns an empty\npolicy if a database exists but does not have a policy set.\n\nAuthorization requires `spanner.databases.getIamPolicy` permission on\nresource.", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "spanner.projects.instances.databases.getIamPolicy" + }, + "get": { + "description": "Gets the state of a Cloud Spanner database.", + "response": { + "$ref": "Database" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "name": { + "description": "Required. The name of the requested database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}", + "path": "v1/{+name}", + "id": "spanner.projects.instances.databases.get" + }, + "dropDatabase": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "database" + ], + "parameters": { + "database": { + "description": "Required. The database to be dropped.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}", + "id": "spanner.projects.instances.databases.dropDatabase", + "path": "v1/{+database}", + "description": "Drops (aka deletes) a Cloud Spanner database." + }, + "updateDdl": { + "path": "v1/{+database}/ddl", + "id": "spanner.projects.instances.databases.updateDdl", + "description": "Updates the schema of a Cloud Spanner database by\ncreating/altering/dropping tables, columns, indexes, etc. The returned\nlong-running operation will have a name of\nthe format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and can be used to\ntrack execution of the schema change(s). The\nmetadata field type is\nUpdateDatabaseDdlMetadata. The operation has no response.", + "request": { + "$ref": "UpdateDatabaseDdlRequest" + }, + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "PATCH", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "database": { + "description": "Required. The database to update.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl" + }, + "testIamPermissions": { + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameters": { + "resource": { + "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:testIamPermissions", + "id": "spanner.projects.instances.databases.testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that the caller has on the specified database resource.\n\nAttempting this RPC on a non-existent Cloud Spanner database will result in\na NOT_FOUND error if the user has `spanner.databases.list` permission on\nthe containing Cloud Spanner instance. Otherwise returns an empty set of\npermissions." + }, + "getDdl": { + "path": "v1/{+database}/ddl", + "id": "spanner.projects.instances.databases.getDdl", + "description": "Returns the schema of a Cloud Spanner database as a list of formatted\nDDL statements. This method does not show pending schema updates, those may\nbe queried using the Operations API.", + "response": { + "$ref": "GetDatabaseDdlResponse" + }, + "parameterOrder": [ + "database" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "database": { + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "location": "path", + "description": "Required. The database whose schema we wish to get.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListDatabasesResponse" + }, + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListDatabasesResponse.", + "type": "string" + }, + "pageSize": { + "description": "Number of databases to be returned in the response. If 0 or less,\ndefaults to the server's maximum allowed page size.", + "format": "int32", + "type": "integer", + "location": "query" + }, + "parent": { + "pattern": "^projects/[^/]+/instances/[^/]+$", + "location": "path", + "description": "Required. The instance whose databases should be listed.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases", + "id": "spanner.projects.instances.databases.list", + "path": "v1/{+parent}/databases", + "description": "Lists Cloud Spanner databases." + } + } + }, + "operations": { + "methods": { + "cancel": { + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}:cancel", + "id": "spanner.projects.instances.operations.cancel", + "path": "v1/{+name}:cancel", + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", + "httpMethod": "POST", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Empty" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource to be cancelled.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "name": { + "location": "path", + "description": "The name of the operation resource to be deleted.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}", + "path": "v1/{+name}", + "id": "spanner.projects.instances.operations.delete", + "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE" + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "type": "string", + "location": "query" + }, + "name": { + "description": "The name of the operation's parent resource.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+/operations$", + "location": "path" + }, + "pageToken": { + "location": "query", + "description": "The standard list page token.", + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "type": "integer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations", + "id": "spanner.projects.instances.operations.list", + "path": "v1/{+name}", + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id." + }, + "get": { + "id": "spanner.projects.instances.operations.get", + "path": "v1/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$", + "location": "path", + "description": "The name of the operation resource.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}" + } + } + } + }, + "methods": { + "testIamPermissions": { + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "description": "Returns permissions that the caller has on the specified instance resource.\n\nAttempting this RPC on a non-existent Cloud Spanner instance resource will\nresult in a NOT_FOUND error if the user has `spanner.instances.list`\npermission on the containing Google Cloud Project. Otherwise returns an\nempty set of permissions.", + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "location": "path", + "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:testIamPermissions", + "path": "v1/{+resource}:testIamPermissions", + "id": "spanner.projects.instances.testIamPermissions" + }, + "delete": { + "path": "v1/{+name}", + "id": "spanner.projects.instances.delete", + "description": "Deletes an instance.\n\nImmediately upon completion of the request:\n\n * Billing ceases for all of the instance's reserved resources.\n\nSoon afterward:\n\n * The instance and *all of its databases* immediately and\n irrevocably disappear from the API. All data in the databases\n is permanently deleted.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "name": { + "description": "Required. The name of the instance to be deleted. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "location": "path" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}" + }, + "list": { + "httpMethod": "GET", + "parameterOrder": [ + "parent" + ], + "response": { + "$ref": "ListInstancesResponse" + }, + "parameters": { + "parent": { + "pattern": "^projects/[^/]+$", + "location": "path", + "description": "Required. The name of the project for which a list of instances is\nrequested. Values are of the form `projects/\u003cproject\u003e`.", + "required": true, + "type": "string" + }, + "filter": { + "location": "query", + "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n * name\n * display_name\n * labels.key where key is the name of a label\n\nSome examples of using filters are:\n\n * name:* --\u003e The instance has a name.\n * name:Howl --\u003e The instance's name contains the string \"howl\".\n * name:HOWL --\u003e Equivalent to above.\n * NAME:howl --\u003e Equivalent to above.\n * labels.env:* --\u003e The instance has the label \"env\".\n * labels.env:dev --\u003e The instance has the label \"env\" and the value of\n the label contains the string \"dev\".\n * name:howl labels.env:dev --\u003e The instance's name contains \"howl\" and\n it has the label \"env\" with its value\n containing \"dev\".", + "type": "string" + }, + "pageToken": { + "type": "string", + "location": "query", + "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListInstancesResponse." + }, + "pageSize": { + "type": "integer", + "location": "query", + "description": "Number of instances to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.", + "format": "int32" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances", + "id": "spanner.projects.instances.list", + "path": "v1/{+parent}/instances", + "description": "Lists all instances in the given project." + }, + "create": { + "request": { + "$ref": "CreateInstanceRequest" + }, + "description": "Creates an instance and begins preparing it to begin serving. The\nreturned long-running operation\ncan be used to track the progress of preparing the new\ninstance. The instance name is assigned by the caller. If the\nnamed instance already exists, `CreateInstance` returns\n`ALREADY_EXISTS`.\n\nImmediately upon completion of this request:\n\n * The instance is readable via the API, with all requested attributes\n but no allocated resources. Its state is `CREATING`.\n\nUntil completion of the returned operation:\n\n * Cancelling the operation renders the instance immediately unreadable\n via the API.\n * The instance can be deleted.\n * All other attempts to modify the instance are rejected.\n\nUpon completion of the returned operation:\n\n * Billing for all successfully-allocated resources begins (some types\n may have lower than the requested levels).\n * Databases can be created in the instance.\n * The instance's allocated resource levels are readable via the API.\n * The instance's state becomes `READY`.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track creation of the instance. The\nmetadata field type is\nCreateInstanceMetadata.\nThe response field type is\nInstance, if successful.", + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "POST", + "parameters": { + "parent": { + "description": "Required. The name of the project in which to create the instance. Values\nare of the form `projects/\u003cproject\u003e`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances", + "path": "v1/{+parent}/instances", + "id": "spanner.projects.instances.create" + }, + "setIamPolicy": { + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:setIamPolicy", + "id": "spanner.projects.instances.setIamPolicy", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "description": "Sets the access control policy on an instance resource. Replaces any\nexisting policy.\n\nAuthorization requires `spanner.instances.setIamPolicy` on\nresource.", + "httpMethod": "POST", + "parameterOrder": [ + "resource" + ], + "response": { + "$ref": "Policy" + }, + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "getIamPolicy": { + "response": { + "$ref": "Policy" + }, + "parameterOrder": [ + "resource" + ], + "httpMethod": "POST", + "parameters": { + "resource": { + "location": "path", + "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:getIamPolicy", + "path": "v1/{+resource}:getIamPolicy", + "id": "spanner.projects.instances.getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "description": "Gets the access control policy for an instance resource. Returns an empty\npolicy if an instance exists but does not have a policy set.\n\nAuthorization requires `spanner.instances.getIamPolicy` on\nresource." + }, + "get": { + "description": "Gets information about a particular instance.", + "httpMethod": "GET", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "name": { + "location": "path", + "description": "Required. The name of the requested instance. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+/instances/[^/]+$" + } + }, + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", + "id": "spanner.projects.instances.get", + "path": "v1/{+name}" + }, + "patch": { + "httpMethod": "PATCH", + "parameterOrder": [ + "name" + ], + "response": { + "$ref": "Operation" + }, + "parameters": { + "name": { + "pattern": "^projects/[^/]+/instances/[^/]+$", + "location": "path", + "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length.", + "required": true, + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", + "id": "spanner.projects.instances.patch", + "path": "v1/{+name}", + "request": { + "$ref": "UpdateInstanceRequest" + }, + "description": "Updates an instance, and begins allocating or releasing resources\nas requested. The returned long-running\noperation can be used to track the\nprogress of updating the instance. If the named instance does not\nexist, returns `NOT_FOUND`.\n\nImmediately upon completion of this request:\n\n * For resource types for which a decrease in the instance's allocation\n has been requested, billing is based on the newly-requested level.\n\nUntil completion of the returned operation:\n\n * Cancelling the operation sets its metadata's\n cancel_time, and begins\n restoring resources to their pre-request values. The operation\n is guaranteed to succeed at undoing all resource changes,\n after which point it terminates with a `CANCELLED` status.\n * All other attempts to modify the instance are rejected.\n * Reading the instance via the API continues to give the pre-request\n resource levels.\n\nUpon completion of the returned operation:\n\n * Billing begins for all successfully-allocated resources (some types\n may have lower than the requested levels).\n * All newly-reserved resources are available for serving the instance's\n tables.\n * The instance's new resource levels are readable via the API.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track the instance modification. The\nmetadata field type is\nUpdateInstanceMetadata.\nThe response field type is\nInstance, if successful.\n\nAuthorization requires `spanner.instances.update` permission on\nresource name." + } + } + }, + "instanceConfigs": { + "methods": { + "list": { + "response": { + "$ref": "ListInstanceConfigsResponse" + }, + "parameterOrder": [ + "parent" + ], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "location": "query", + "description": "If non-empty, `page_token` should contain a\nnext_page_token\nfrom a previous ListInstanceConfigsResponse.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "Number of instance configurations to be returned in the response. If 0 or\nless, defaults to the server's maximum allowed page size.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The name of the project for which a list of supported instance\nconfigurations is requested. Values are of the form\n`projects/\u003cproject\u003e`.", + "required": true, + "type": "string", + "pattern": "^projects/[^/]+$", + "location": "path" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "flatPath": "v1/projects/{projectsId}/instanceConfigs", + "path": "v1/{+parent}/instanceConfigs", + "id": "spanner.projects.instanceConfigs.list", + "description": "Lists the supported instance configurations for a given project." + }, + "get": { + "response": { + "$ref": "InstanceConfig" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ], + "parameters": { + "name": { + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+$", + "location": "path", + "description": "Required. The name of the requested instance configuration. Values are of\nthe form `projects/\u003cproject\u003e/instanceConfigs/\u003cconfig\u003e`.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}", + "path": "v1/{+name}", + "id": "spanner.projects.instanceConfigs.get", + "description": "Gets information about a particular instance configuration." + } + } + } + } + } + }, + "parameters": { + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "type": "boolean", + "default": "true" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + } + }, "version": "v1", "baseUrl": "https://spanner.googleapis.com/", - "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", "kind": "discovery#restDescription", + "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", "servicePath": "", "basePath": "", - "revision": "20170914", + "revision": "20171003", "documentationLink": "https://cloud.google.com/spanner/", "id": "spanner:v1", "discoveryVersion": "v1", @@ -20,31 +1270,12 @@ "type": "string" }, "type": { - "description": "The type of the field.", - "$ref": "Type" + "$ref": "Type", + "description": "The type of the field." } }, "id": "Field" }, - "ResultSetStats": { - "type": "object", - "properties": { - "queryStats": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "Aggregated statistics from the execution of the query. Only present when\nthe query is profiled. For example, a query could return the statistics as\nfollows:\n\n {\n \"rows_returned\": \"3\",\n \"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }" - }, - "queryPlan": { - "description": "QueryPlan for the query associated with this result.", - "$ref": "QueryPlan" - } - }, - "id": "ResultSetStats", - "description": "Additional statistics about a ResultSet or PartialResultSet." - }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "type": "object", @@ -59,6 +1290,25 @@ }, "id": "TestIamPermissionsRequest" }, + "ResultSetStats": { + "type": "object", + "properties": { + "queryStats": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object." + }, + "description": "Aggregated statistics from the execution of the query. Only present when\nthe query is profiled. For example, a query could return the statistics as\nfollows:\n\n {\n \"rows_returned\": \"3\",\n \"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }", + "type": "object" + }, + "queryPlan": { + "description": "QueryPlan for the query associated with this result.", + "$ref": "QueryPlan" + } + }, + "id": "ResultSetStats", + "description": "Additional statistics about a ResultSet or PartialResultSet." + }, "CommitResponse": { "id": "CommitResponse", "description": "The response for Commit.", @@ -72,16 +1322,16 @@ } }, "Type": { - "id": "Type", - "description": "`Type` indicates the type of a Cloud Spanner value, as might be stored in a\ntable cell or returned from an SQL query.", - "type": "object", "properties": { + "structType": { + "$ref": "StructType", + "description": "If code == STRUCT, then `struct_type`\nprovides type information for the struct's fields." + }, "arrayElementType": { "$ref": "Type", "description": "If code == ARRAY, then `array_element_type`\nis the type of the array elements." }, "code": { - "type": "string", "enumDescriptions": [ "Not specified.", "Encoded as JSON `true` or `false`.", @@ -106,26 +1356,19 @@ "ARRAY", "STRUCT" ], - "description": "Required. The TypeCode for this type." - }, - "structType": { - "$ref": "StructType", - "description": "If code == STRUCT, then `struct_type`\nprovides type information for the struct's fields." + "description": "Required. The TypeCode for this type.", + "type": "string" } - } + }, + "id": "Type", + "description": "`Type` indicates the type of a Cloud Spanner value, as might be stored in a\ntable cell or returned from an SQL query.", + "type": "object" }, "PlanNode": { + "id": "PlanNode", "description": "Node information for nodes appearing in a QueryPlan.plan_nodes.", "type": "object", "properties": { - "metadata": { - "description": "Attributes relevant to the node contained in a group of key-value pairs.\nFor example, a Parameter Reference node could have the following\ninformation in its metadata:\n\n {\n \"parameter_reference\": \"param1\",\n \"parameter_type\": \"array\"\n }", - "type": "object", - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - } - }, "executionStats": { "additionalProperties": { "description": "Properties of the object.", @@ -135,19 +1378,17 @@ "type": "object" }, "shortRepresentation": { - "description": "Condensed representation for SCALAR nodes.", - "$ref": "ShortRepresentation" + "$ref": "ShortRepresentation", + "description": "Condensed representation for SCALAR nodes." }, "index": { "description": "The `PlanNode`'s index in node list.", "format": "int32", "type": "integer" }, - "displayName": { - "description": "The display name for the node.", - "type": "string" - }, "kind": { + "description": "Used to determine the type of node. May be needed for visualizing\ndifferent kinds of nodes differently. For example, If the node is a\nSCALAR node, it will have a condensed representation\nwhich can be used to directly embed a description of the node in its\nparent.", + "type": "string", "enumDescriptions": [ "Not specified.", "Denotes a Relational operator node in the expression tree. Relational\noperators represent iterative processing of rows during query execution.\nFor example, a `TableScan` operation that reads rows from a table.", @@ -157,8 +1398,10 @@ "KIND_UNSPECIFIED", "RELATIONAL", "SCALAR" - ], - "description": "Used to determine the type of node. May be needed for visualizing\ndifferent kinds of nodes differently. For example, If the node is a\nSCALAR node, it will have a condensed representation\nwhich can be used to directly embed a description of the node in its\nparent.", + ] + }, + "displayName": { + "description": "The display name for the node.", "type": "string" }, "childLinks": { @@ -167,21 +1410,21 @@ "items": { "$ref": "ChildLink" } + }, + "metadata": { + "description": "Attributes relevant to the node contained in a group of key-value pairs.\nFor example, a Parameter Reference node could have the following\ninformation in its metadata:\n\n {\n \"parameter_reference\": \"param1\",\n \"parameter_type\": \"array\"\n }", + "type": "object", + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + } } - }, - "id": "PlanNode" + } }, "CreateInstanceMetadata": { + "description": "Metadata type for the operation returned by\nCreateInstance.", + "type": "object", "properties": { - "instance": { - "description": "The instance being created.", - "$ref": "Instance" - }, - "startTime": { - "description": "The time at which the\nCreateInstance request was\nreceived.", - "format": "google-datetime", - "type": "string" - }, "cancelTime": { "description": "The time at which this operation was cancelled. If set, this operation is\nin the process of undoing itself (which is guaranteed to succeed) and\ncannot be cancelled again.", "format": "google-datetime", @@ -191,14 +1434,20 @@ "description": "The time at which this operation failed or was completed successfully.", "format": "google-datetime", "type": "string" + }, + "instance": { + "$ref": "Instance", + "description": "The instance being created." + }, + "startTime": { + "description": "The time at which the\nCreateInstance request was\nreceived.", + "format": "google-datetime", + "type": "string" } }, - "id": "CreateInstanceMetadata", - "description": "Metadata type for the operation returned by\nCreateInstance.", - "type": "object" + "id": "CreateInstanceMetadata" }, "ChildLink": { - "description": "Metadata associated with a parent-child relationship appearing in a\nPlanNode.", "type": "object", "properties": { "type": { @@ -206,19 +1455,19 @@ "type": "string" }, "childIndex": { + "type": "integer", "description": "The node to which the link points.", - "format": "int32", - "type": "integer" + "format": "int32" }, "variable": { "description": "Only present if the child node is SCALAR and corresponds\nto an output variable of the parent node. The field carries the name of\nthe output variable.\nFor example, a `TableScan` operator that reads rows from a table will\nhave child links to the `SCALAR` nodes representing the output variables\ncreated for each column that is read by the operator. The corresponding\n`variable` fields will be set to the variable names assigned to the\ncolumns.", "type": "string" } }, - "id": "ChildLink" + "id": "ChildLink", + "description": "Metadata associated with a parent-child relationship appearing in a\nPlanNode." }, "Delete": { - "id": "Delete", "description": "Arguments to delete operations.", "type": "object", "properties": { @@ -227,11 +1476,46 @@ "type": "string" }, "keySet": { - "description": "Required. The primary keys of the rows within table to delete.", - "$ref": "KeySet" + "$ref": "KeySet", + "description": "Required. The primary keys of the rows within table to delete." + } + }, + "id": "Delete" + }, + "CommitRequest": { + "id": "CommitRequest", + "description": "The request for Commit.", + "type": "object", + "properties": { + "singleUseTransaction": { + "$ref": "TransactionOptions", + "description": "Execute mutations in a temporary transaction. Note that unlike\ncommit of a previously-started transaction, commit with a\ntemporary transaction is non-idempotent. That is, if the\n`CommitRequest` is sent to Cloud Spanner more than once (for\ninstance, due to retries in the application, or in the\ntransport library), it is possible that the mutations are\nexecuted more than once. If this is undesirable, use\nBeginTransaction and\nCommit instead." + }, + "mutations": { + "description": "The mutations to be executed when this transaction commits. All\nmutations are applied atomically, in the order they appear in\nthis list.", + "type": "array", + "items": { + "$ref": "Mutation" + } + }, + "transactionId": { + "description": "Commit a previously-started transaction.", + "format": "byte", + "type": "string" } } }, + "BeginTransactionRequest": { + "description": "The request for BeginTransaction.", + "type": "object", + "properties": { + "options": { + "$ref": "TransactionOptions", + "description": "Required. Options for the new transaction." + } + }, + "id": "BeginTransactionRequest" + }, "ListInstanceConfigsResponse": { "description": "The response for ListInstanceConfigs.", "type": "object", @@ -250,39 +1534,11 @@ }, "id": "ListInstanceConfigsResponse" }, - "BeginTransactionRequest": { - "id": "BeginTransactionRequest", - "description": "The request for BeginTransaction.", - "type": "object", - "properties": { - "options": { - "description": "Required. Options for the new transaction.", - "$ref": "TransactionOptions" - } - } - }, - "CommitRequest": { - "id": "CommitRequest", - "description": "The request for Commit.", - "type": "object", - "properties": { - "singleUseTransaction": { - "$ref": "TransactionOptions", - "description": "Execute mutations in a temporary transaction. Note that unlike\ncommit of a previously-started transaction, commit with a\ntemporary transaction is non-idempotent. That is, if the\n`CommitRequest` is sent to Cloud Spanner more than once (for\ninstance, due to retries in the application, or in the\ntransport library), it is possible that the mutations are\nexecuted more than once. If this is undesirable, use\nBeginTransaction and\nCommit instead." - }, - "mutations": { - "description": "The mutations to be executed when this transaction commits. All\nmutations are applied atomically, in the order they appear in\nthis list.", - "type": "array", - "items": { - "$ref": "Mutation" - } - }, - "transactionId": { - "type": "string", - "description": "Commit a previously-started transaction.", - "format": "byte" - } - } + "GetIamPolicyRequest": { + "properties": {}, + "id": "GetIamPolicyRequest", + "description": "Request message for `GetIamPolicy` method.", + "type": "object" }, "TestIamPermissionsResponse": { "description": "Response message for `TestIamPermissions` method.", @@ -298,12 +1554,6 @@ }, "id": "TestIamPermissionsResponse" }, - "GetIamPolicyRequest": { - "description": "Request message for `GetIamPolicy` method.", - "type": "object", - "properties": {}, - "id": "GetIamPolicyRequest" - }, "CreateDatabaseMetadata": { "description": "Metadata type for the operation returned by\nCreateDatabase.", "type": "object", @@ -316,6 +1566,8 @@ "id": "CreateDatabaseMetadata" }, "ListSessionsResponse": { + "description": "The response for ListSessions.", + "type": "object", "properties": { "nextPageToken": { "description": "`next_page_token` can be sent in a subsequent\nListSessions call to fetch more of the matching\nsessions.", @@ -329,21 +1581,12 @@ } } }, - "id": "ListSessionsResponse", - "description": "The response for ListSessions.", - "type": "object" + "id": "ListSessionsResponse" }, "Session": { + "description": "A session in the Cloud Spanner API.", + "type": "object", "properties": { - "name": { - "description": "The name of the session.", - "type": "string" - }, - "approximateLastUseTime": { - "description": "Output only. The approximate timestamp when the session is last used. It is\ntypically earlier than the actual last use time.", - "format": "google-datetime", - "type": "string" - }, "labels": { "additionalProperties": { "type": "string" @@ -355,14 +1598,20 @@ "description": "Output only. The timestamp when the session is created.", "format": "google-datetime", "type": "string" + }, + "name": { + "description": "The name of the session.", + "type": "string" + }, + "approximateLastUseTime": { + "description": "Output only. The approximate timestamp when the session is last used. It is\ntypically earlier than the actual last use time.", + "format": "google-datetime", + "type": "string" } }, - "id": "Session", - "description": "A session in the Cloud Spanner API.", - "type": "object" + "id": "Session" }, "ListInstancesResponse": { - "description": "The response for ListInstances.", "type": "object", "properties": { "instances": { @@ -377,26 +1626,13 @@ "type": "string" } }, - "id": "ListInstancesResponse" + "id": "ListInstancesResponse", + "description": "The response for ListInstances." }, "KeyRange": { "description": "KeyRange represents a range of rows in a table or index.\n\nA range has a start key and an end key. These keys can be open or\nclosed, indicating if the range includes rows with that key.\n\nKeys are represented by lists, where the ith value in the list\ncorresponds to the ith component of the table or index primary key.\nIndividual values are encoded as described here.\n\nFor example, consider the following table definition:\n\n CREATE TABLE UserEvents (\n UserName STRING(MAX),\n EventDate STRING(10)\n ) PRIMARY KEY(UserName, EventDate);\n\nThe following keys name rows in this table:\n\n \"Bob\", \"2014-09-23\"\n\nSince the `UserEvents` table's `PRIMARY KEY` clause names two\ncolumns, each `UserEvents` key has two elements; the first is the\n`UserName`, and the second is the `EventDate`.\n\nKey ranges with multiple components are interpreted\nlexicographically by component using the table or index key's declared\nsort order. For example, the following range returns all events for\nuser `\"Bob\"` that occurred in the year 2015:\n\n \"start_closed\": [\"Bob\", \"2015-01-01\"]\n \"end_closed\": [\"Bob\", \"2015-12-31\"]\n\nStart and end keys can omit trailing key components. This affects the\ninclusion and exclusion of rows that exactly match the provided key\ncomponents: if the key is closed, then rows that exactly match the\nprovided components are included; if the key is open, then rows\nthat exactly match are not included.\n\nFor example, the following range includes all events for `\"Bob\"` that\noccurred during and after the year 2000:\n\n \"start_closed\": [\"Bob\", \"2000-01-01\"]\n \"end_closed\": [\"Bob\"]\n\nThe next example retrieves all events for `\"Bob\"`:\n\n \"start_closed\": [\"Bob\"]\n \"end_closed\": [\"Bob\"]\n\nTo retrieve events before the year 2000:\n\n \"start_closed\": [\"Bob\"]\n \"end_open\": [\"Bob\", \"2000-01-01\"]\n\nThe following range includes all rows in the table:\n\n \"start_closed\": []\n \"end_closed\": []\n\nThis range returns all users whose `UserName` begins with any\ncharacter from A to C:\n\n \"start_closed\": [\"A\"]\n \"end_open\": [\"D\"]\n\nThis range returns all users whose `UserName` begins with B:\n\n \"start_closed\": [\"B\"]\n \"end_open\": [\"C\"]\n\nKey ranges honor column sort order. For example, suppose a table is\ndefined as follows:\n\n CREATE TABLE DescendingSortedTable {\n Key INT64,\n ...\n ) PRIMARY KEY(Key DESC);\n\nThe following range retrieves all rows with key values between 1\nand 100 inclusive:\n\n \"start_closed\": [\"100\"]\n \"end_closed\": [\"1\"]\n\nNote that 100 is passed as the start, and 1 is passed as the end,\nbecause `Key` is a descending column in the schema.", "type": "object", "properties": { - "startClosed": { - "type": "array", - "items": { - "type": "any" - }, - "description": "If the start is closed, then the range includes all rows whose\nfirst `len(start_closed)` key columns exactly match `start_closed`." - }, - "startOpen": { - "description": "If the start is open, then the range excludes rows whose first\n`len(start_open)` key columns exactly match `start_open`.", - "type": "array", - "items": { - "type": "any" - } - }, "endOpen": { "description": "If the end is open, then the range excludes rows whose first\n`len(end_open)` key columns exactly match `end_open`.", "type": "array", @@ -410,11 +1646,26 @@ "items": { "type": "any" } + }, + "startClosed": { + "description": "If the start is closed, then the range includes all rows whose\nfirst `len(start_closed)` key columns exactly match `start_closed`.", + "type": "array", + "items": { + "type": "any" + } + }, + "startOpen": { + "description": "If the start is open, then the range excludes rows whose first\n`len(start_open)` key columns exactly match `start_open`.", + "type": "array", + "items": { + "type": "any" + } } }, "id": "KeyRange" }, "ShortRepresentation": { + "id": "ShortRepresentation", "description": "Condensed representation of a node and its subtree. Only present for\n`SCALAR` PlanNode(s).", "type": "object", "properties": { @@ -423,15 +1674,14 @@ "type": "string" }, "subqueries": { - "description": "A mapping of (subquery variable name) -\u003e (subquery node id) for cases\nwhere the `description` string of this node references a `SCALAR`\nsubquery contained in the expression subtree rooted at this node. The\nreferenced `SCALAR` subquery may not necessarily be a direct child of\nthis node.", - "type": "object", "additionalProperties": { "format": "int32", "type": "integer" - } + }, + "description": "A mapping of (subquery variable name) -\u003e (subquery node id) for cases\nwhere the `description` string of this node references a `SCALAR`\nsubquery contained in the expression subtree rooted at this node. The\nreferenced `SCALAR` subquery may not necessarily be a direct child of\nthis node.", + "type": "object" } - }, - "id": "ShortRepresentation" + } }, "InstanceConfig": { "description": "A possible configuration for a Cloud Spanner instance. Configurations\ndefine the geographic placement of nodes and their replication.", @@ -449,20 +1699,20 @@ "id": "InstanceConfig" }, "UpdateInstanceRequest": { - "description": "The request for UpdateInstance.", - "type": "object", "properties": { "instance": { "$ref": "Instance", "description": "Required. The instance to update, which must always include the instance\nname. Otherwise, only fields mentioned in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included." }, "fieldMask": { + "type": "string", "description": "Required. A mask specifying which fields in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be updated.\nThe field mask must always be specified; this prevents any future fields in\n[][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know\nabout them.", - "format": "google-fieldmask", - "type": "string" + "format": "google-fieldmask" } }, - "id": "UpdateInstanceRequest" + "id": "UpdateInstanceRequest", + "description": "The request for UpdateInstance.", + "type": "object" }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", @@ -471,40 +1721,39 @@ "id": "Empty" }, "TransactionOptions": { - "description": "# Transactions\n\n\nEach session can have at most one active transaction at a time. After the\nactive transaction is completed, the session can immediately be\nre-used for the next transaction. It is not necessary to create a\nnew session for each transaction.\n\n# Transaction Modes\n\nCloud Spanner supports two transaction modes:\n\n 1. Locking read-write. This type of transaction is the only way\n to write data into Cloud Spanner. These transactions rely on\n pessimistic locking and, if necessary, two-phase commit.\n Locking read-write transactions may abort, requiring the\n application to retry.\n\n 2. Snapshot read-only. This transaction type provides guaranteed\n consistency across several reads, but does not allow\n writes. Snapshot read-only transactions can be configured to\n read at timestamps in the past. Snapshot read-only\n transactions do not need to be committed.\n\nFor transactions that only read, snapshot read-only transactions\nprovide simpler semantics and are almost always faster. In\nparticular, read-only transactions do not take locks, so they do\nnot conflict with read-write transactions. As a consequence of not\ntaking locks, they also do not abort, so retry loops are not needed.\n\nTransactions may only read/write data in a single database. They\nmay, however, read/write data in different tables within that\ndatabase.\n\n## Locking Read-Write Transactions\n\nLocking transactions may be used to atomically read-modify-write\ndata anywhere in a database. This type of transaction is externally\nconsistent.\n\nClients should attempt to minimize the amount of time a transaction\nis active. Faster transactions commit with higher probability\nand cause less contention. Cloud Spanner attempts to keep read locks\nactive as long as the transaction continues to do reads, and the\ntransaction has not been terminated by\nCommit or\nRollback. Long periods of\ninactivity at the client may cause Cloud Spanner to release a\ntransaction's locks and abort it.\n\nReads performed within a transaction acquire locks on the data\nbeing read. Writes can only be done at commit time, after all reads\nhave been completed.\nConceptually, a read-write transaction consists of zero or more\nreads or SQL queries followed by\nCommit. At any time before\nCommit, the client can send a\nRollback request to abort the\ntransaction.\n\n### Semantics\n\nCloud Spanner can commit the transaction if all read locks it acquired\nare still valid at commit time, and it is able to acquire write\nlocks for all writes. Cloud Spanner can abort the transaction for any\nreason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees\nthat the transaction has not modified any user data in Cloud Spanner.\n\nUnless the transaction commits, Cloud Spanner makes no guarantees about\nhow long the transaction's locks were held for. It is an error to\nuse Cloud Spanner locks for any sort of mutual exclusion other than\nbetween Cloud Spanner transactions themselves.\n\n### Retrying Aborted Transactions\n\nWhen a transaction aborts, the application can choose to retry the\nwhole transaction again. To maximize the chances of successfully\ncommitting the retry, the client should execute the retry in the\nsame session as the original attempt. The original session's lock\npriority increases with each consecutive abort, meaning that each\nattempt has a slightly better chance of success than the previous.\n\nUnder some circumstances (e.g., many transactions attempting to\nmodify the same row(s)), a transaction can abort many times in a\nshort period before successfully committing. Thus, it is not a good\nidea to cap the number of retries a transaction can attempt;\ninstead, it is better to limit the total amount of wall time spent\nretrying.\n\n### Idle Transactions\n\nA transaction is considered idle if it has no outstanding reads or\nSQL queries and has not started a read or SQL query within the last 10\nseconds. Idle transactions can be aborted by Cloud Spanner so that they\ndon't hold on to locks indefinitely. In that case, the commit will\nfail with error `ABORTED`.\n\nIf this behavior is undesirable, periodically executing a simple\nSQL query in the transaction (e.g., `SELECT 1`) prevents the\ntransaction from becoming idle.\n\n## Snapshot Read-Only Transactions\n\nSnapshot read-only transactions provides a simpler method than\nlocking read-write transactions for doing several consistent\nreads. However, this type of transaction does not support writes.\n\nSnapshot transactions do not take locks. Instead, they work by\nchoosing a Cloud Spanner timestamp, then executing all reads at that\ntimestamp. Since they do not acquire locks, they do not block\nconcurrent read-write transactions.\n\nUnlike locking read-write transactions, snapshot read-only\ntransactions never abort. They can fail if the chosen read\ntimestamp is garbage collected; however, the default garbage\ncollection policy is generous enough that most applications do not\nneed to worry about this in practice.\n\nSnapshot read-only transactions do not need to call\nCommit or\nRollback (and in fact are not\npermitted to do so).\n\nTo execute a snapshot transaction, the client specifies a timestamp\nbound, which tells Cloud Spanner how to choose a read timestamp.\n\nThe types of timestamp bound are:\n\n - Strong (the default).\n - Bounded staleness.\n - Exact staleness.\n\nIf the Cloud Spanner database to be read is geographically distributed,\nstale read-only transactions can execute more quickly than strong\nor read-write transaction, because they are able to execute far\nfrom the leader replica.\n\nEach type of timestamp bound is discussed in detail below.\n\n### Strong\n\nStrong reads are guaranteed to see the effects of all transactions\nthat have committed before the start of the read. Furthermore, all\nrows yielded by a single read are consistent with each other -- if\nany part of the read observes a transaction, all parts of the read\nsee the transaction.\n\nStrong reads are not repeatable: two consecutive strong read-only\ntransactions might return inconsistent results if there are\nconcurrent writes. If consistency across reads is required, the\nreads should be executed within a transaction or at an exact read\ntimestamp.\n\nSee TransactionOptions.ReadOnly.strong.\n\n### Exact Staleness\n\nThese timestamp bounds execute reads at a user-specified\ntimestamp. Reads at a timestamp are guaranteed to see a consistent\nprefix of the global transaction history: they observe\nmodifications done by all transactions with a commit timestamp \u003c=\nthe read timestamp, and observe none of the modifications done by\ntransactions with a larger commit timestamp. They will block until\nall conflicting transactions that may be assigned commit timestamps\n\u003c= the read timestamp have finished.\n\nThe timestamp can either be expressed as an absolute Cloud Spanner commit\ntimestamp or a staleness relative to the current time.\n\nThese modes do not require a \"negotiation phase\" to pick a\ntimestamp. As a result, they execute slightly faster than the\nequivalent boundedly stale concurrency modes. On the other hand,\nboundedly stale reads usually return fresher results.\n\nSee TransactionOptions.ReadOnly.read_timestamp and\nTransactionOptions.ReadOnly.exact_staleness.\n\n### Bounded Staleness\n\nBounded staleness modes allow Cloud Spanner to pick the read timestamp,\nsubject to a user-provided staleness bound. Cloud Spanner chooses the\nnewest timestamp within the staleness bound that allows execution\nof the reads at the closest available replica without blocking.\n\nAll rows yielded are consistent with each other -- if any part of\nthe read observes a transaction, all parts of the read see the\ntransaction. Boundedly stale reads are not repeatable: two stale\nreads, even if they use the same staleness bound, can execute at\ndifferent timestamps and thus return inconsistent results.\n\nBoundedly stale reads execute in two phases: the first phase\nnegotiates a timestamp among all replicas needed to serve the\nread. In the second phase, reads are executed at the negotiated\ntimestamp.\n\nAs a result of the two phase execution, bounded staleness reads are\nusually a little slower than comparable exact staleness\nreads. However, they are typically able to return fresher\nresults, and are more likely to execute at the closest replica.\n\nBecause the timestamp negotiation requires up-front knowledge of\nwhich rows will be read, it can only be used with single-use\nread-only transactions.\n\nSee TransactionOptions.ReadOnly.max_staleness and\nTransactionOptions.ReadOnly.min_read_timestamp.\n\n### Old Read Timestamps and Garbage Collection\n\nCloud Spanner continuously garbage collects deleted and overwritten data\nin the background to reclaim storage space. This process is known\nas \"version GC\". By default, version GC reclaims versions after they\nare one hour old. Because of this, Cloud Spanner cannot perform reads\nat read timestamps more than one hour in the past. This\nrestriction also applies to in-progress reads and/or SQL queries whose\ntimestamp become too old while executing. Reads and SQL queries with\ntoo-old read timestamps fail with the error `FAILED_PRECONDITION`.", "type": "object", "properties": { "readWrite": { - "$ref": "ReadWrite", - "description": "Transaction may write.\n\nAuthorization to begin a read-write transaction requires\n`spanner.databases.beginOrRollbackReadWriteTransaction` permission\non the `session` resource." + "description": "Transaction may write.\n\nAuthorization to begin a read-write transaction requires\n`spanner.databases.beginOrRollbackReadWriteTransaction` permission\non the `session` resource.", + "$ref": "ReadWrite" }, "readOnly": { "$ref": "ReadOnly", "description": "Transaction will not write.\n\nAuthorization to begin a read-only transaction requires\n`spanner.databases.beginReadOnlyTransaction` permission\non the `session` resource." } }, - "id": "TransactionOptions" + "id": "TransactionOptions", + "description": "# Transactions\n\n\nEach session can have at most one active transaction at a time. After the\nactive transaction is completed, the session can immediately be\nre-used for the next transaction. It is not necessary to create a\nnew session for each transaction.\n\n# Transaction Modes\n\nCloud Spanner supports two transaction modes:\n\n 1. Locking read-write. This type of transaction is the only way\n to write data into Cloud Spanner. These transactions rely on\n pessimistic locking and, if necessary, two-phase commit.\n Locking read-write transactions may abort, requiring the\n application to retry.\n\n 2. Snapshot read-only. This transaction type provides guaranteed\n consistency across several reads, but does not allow\n writes. Snapshot read-only transactions can be configured to\n read at timestamps in the past. Snapshot read-only\n transactions do not need to be committed.\n\nFor transactions that only read, snapshot read-only transactions\nprovide simpler semantics and are almost always faster. In\nparticular, read-only transactions do not take locks, so they do\nnot conflict with read-write transactions. As a consequence of not\ntaking locks, they also do not abort, so retry loops are not needed.\n\nTransactions may only read/write data in a single database. They\nmay, however, read/write data in different tables within that\ndatabase.\n\n## Locking Read-Write Transactions\n\nLocking transactions may be used to atomically read-modify-write\ndata anywhere in a database. This type of transaction is externally\nconsistent.\n\nClients should attempt to minimize the amount of time a transaction\nis active. Faster transactions commit with higher probability\nand cause less contention. Cloud Spanner attempts to keep read locks\nactive as long as the transaction continues to do reads, and the\ntransaction has not been terminated by\nCommit or\nRollback. Long periods of\ninactivity at the client may cause Cloud Spanner to release a\ntransaction's locks and abort it.\n\nReads performed within a transaction acquire locks on the data\nbeing read. Writes can only be done at commit time, after all reads\nhave been completed.\nConceptually, a read-write transaction consists of zero or more\nreads or SQL queries followed by\nCommit. At any time before\nCommit, the client can send a\nRollback request to abort the\ntransaction.\n\n### Semantics\n\nCloud Spanner can commit the transaction if all read locks it acquired\nare still valid at commit time, and it is able to acquire write\nlocks for all writes. Cloud Spanner can abort the transaction for any\nreason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees\nthat the transaction has not modified any user data in Cloud Spanner.\n\nUnless the transaction commits, Cloud Spanner makes no guarantees about\nhow long the transaction's locks were held for. It is an error to\nuse Cloud Spanner locks for any sort of mutual exclusion other than\nbetween Cloud Spanner transactions themselves.\n\n### Retrying Aborted Transactions\n\nWhen a transaction aborts, the application can choose to retry the\nwhole transaction again. To maximize the chances of successfully\ncommitting the retry, the client should execute the retry in the\nsame session as the original attempt. The original session's lock\npriority increases with each consecutive abort, meaning that each\nattempt has a slightly better chance of success than the previous.\n\nUnder some circumstances (e.g., many transactions attempting to\nmodify the same row(s)), a transaction can abort many times in a\nshort period before successfully committing. Thus, it is not a good\nidea to cap the number of retries a transaction can attempt;\ninstead, it is better to limit the total amount of wall time spent\nretrying.\n\n### Idle Transactions\n\nA transaction is considered idle if it has no outstanding reads or\nSQL queries and has not started a read or SQL query within the last 10\nseconds. Idle transactions can be aborted by Cloud Spanner so that they\ndon't hold on to locks indefinitely. In that case, the commit will\nfail with error `ABORTED`.\n\nIf this behavior is undesirable, periodically executing a simple\nSQL query in the transaction (e.g., `SELECT 1`) prevents the\ntransaction from becoming idle.\n\n## Snapshot Read-Only Transactions\n\nSnapshot read-only transactions provides a simpler method than\nlocking read-write transactions for doing several consistent\nreads. However, this type of transaction does not support writes.\n\nSnapshot transactions do not take locks. Instead, they work by\nchoosing a Cloud Spanner timestamp, then executing all reads at that\ntimestamp. Since they do not acquire locks, they do not block\nconcurrent read-write transactions.\n\nUnlike locking read-write transactions, snapshot read-only\ntransactions never abort. They can fail if the chosen read\ntimestamp is garbage collected; however, the default garbage\ncollection policy is generous enough that most applications do not\nneed to worry about this in practice.\n\nSnapshot read-only transactions do not need to call\nCommit or\nRollback (and in fact are not\npermitted to do so).\n\nTo execute a snapshot transaction, the client specifies a timestamp\nbound, which tells Cloud Spanner how to choose a read timestamp.\n\nThe types of timestamp bound are:\n\n - Strong (the default).\n - Bounded staleness.\n - Exact staleness.\n\nIf the Cloud Spanner database to be read is geographically distributed,\nstale read-only transactions can execute more quickly than strong\nor read-write transaction, because they are able to execute far\nfrom the leader replica.\n\nEach type of timestamp bound is discussed in detail below.\n\n### Strong\n\nStrong reads are guaranteed to see the effects of all transactions\nthat have committed before the start of the read. Furthermore, all\nrows yielded by a single read are consistent with each other -- if\nany part of the read observes a transaction, all parts of the read\nsee the transaction.\n\nStrong reads are not repeatable: two consecutive strong read-only\ntransactions might return inconsistent results if there are\nconcurrent writes. If consistency across reads is required, the\nreads should be executed within a transaction or at an exact read\ntimestamp.\n\nSee TransactionOptions.ReadOnly.strong.\n\n### Exact Staleness\n\nThese timestamp bounds execute reads at a user-specified\ntimestamp. Reads at a timestamp are guaranteed to see a consistent\nprefix of the global transaction history: they observe\nmodifications done by all transactions with a commit timestamp \u003c=\nthe read timestamp, and observe none of the modifications done by\ntransactions with a larger commit timestamp. They will block until\nall conflicting transactions that may be assigned commit timestamps\n\u003c= the read timestamp have finished.\n\nThe timestamp can either be expressed as an absolute Cloud Spanner commit\ntimestamp or a staleness relative to the current time.\n\nThese modes do not require a \"negotiation phase\" to pick a\ntimestamp. As a result, they execute slightly faster than the\nequivalent boundedly stale concurrency modes. On the other hand,\nboundedly stale reads usually return fresher results.\n\nSee TransactionOptions.ReadOnly.read_timestamp and\nTransactionOptions.ReadOnly.exact_staleness.\n\n### Bounded Staleness\n\nBounded staleness modes allow Cloud Spanner to pick the read timestamp,\nsubject to a user-provided staleness bound. Cloud Spanner chooses the\nnewest timestamp within the staleness bound that allows execution\nof the reads at the closest available replica without blocking.\n\nAll rows yielded are consistent with each other -- if any part of\nthe read observes a transaction, all parts of the read see the\ntransaction. Boundedly stale reads are not repeatable: two stale\nreads, even if they use the same staleness bound, can execute at\ndifferent timestamps and thus return inconsistent results.\n\nBoundedly stale reads execute in two phases: the first phase\nnegotiates a timestamp among all replicas needed to serve the\nread. In the second phase, reads are executed at the negotiated\ntimestamp.\n\nAs a result of the two phase execution, bounded staleness reads are\nusually a little slower than comparable exact staleness\nreads. However, they are typically able to return fresher\nresults, and are more likely to execute at the closest replica.\n\nBecause the timestamp negotiation requires up-front knowledge of\nwhich rows will be read, it can only be used with single-use\nread-only transactions.\n\nSee TransactionOptions.ReadOnly.max_staleness and\nTransactionOptions.ReadOnly.min_read_timestamp.\n\n### Old Read Timestamps and Garbage Collection\n\nCloud Spanner continuously garbage collects deleted and overwritten data\nin the background to reclaim storage space. This process is known\nas \"version GC\". By default, version GC reclaims versions after they\nare one hour old. Because of this, Cloud Spanner cannot perform reads\nat read timestamps more than one hour in the past. This\nrestriction also applies to in-progress reads and/or SQL queries whose\ntimestamp become too old while executing. Reads and SQL queries with\ntoo-old read timestamps fail with the error `FAILED_PRECONDITION`." }, "CreateDatabaseRequest": { "description": "The request for CreateDatabase.", "type": "object", "properties": { + "createStatement": { + "description": "Required. A `CREATE DATABASE` statement, which specifies the ID of the\nnew database. The database ID must conform to the regular expression\n`a-z*[a-z0-9]` and be between 2 and 30 characters in length.\nIf the database ID is a reserved word or if it contains a hyphen, the\ndatabase ID must be enclosed in backticks (`` ` ``).", + "type": "string" + }, "extraStatements": { "description": "An optional list of DDL statements to run inside the newly created\ndatabase. Statements can create tables, indexes, etc. These\nstatements execute atomically with the creation of the database:\nif there is an error in any statement, the database is not created.", "type": "array", "items": { "type": "string" } - }, - "createStatement": { - "description": "Required. A `CREATE DATABASE` statement, which specifies the ID of the\nnew database. The database ID must conform to the regular expression\n`a-z*[a-z0-9]` and be between 2 and 30 characters in length.\nIf the database ID is a reserved word or if it contains a hyphen, the\ndatabase ID must be enclosed in backticks (`` ` ``).", - "type": "string" } }, "id": "CreateDatabaseRequest" }, "CreateInstanceRequest": { - "description": "The request for CreateInstance.", "type": "object", "properties": { "instanceId": { @@ -512,21 +1761,17 @@ "type": "string" }, "instance": { - "description": "Required. The instance to create. The name may be omitted, but if\nspecified must be `\u003cparent\u003e/instances/\u003cinstance_id\u003e`.", - "$ref": "Instance" + "$ref": "Instance", + "description": "Required. The instance to create. The name may be omitted, but if\nspecified must be `\u003cparent\u003e/instances/\u003cinstance_id\u003e`." } }, - "id": "CreateInstanceRequest" + "id": "CreateInstanceRequest", + "description": "The request for CreateInstance." }, "ReadOnly": { "description": "Message type to initiate a read-only transaction.", "type": "object", "properties": { - "exactStaleness": { - "description": "Executes all reads at a timestamp that is `exact_staleness`\nold. The timestamp is chosen soon after the read is started.\n\nGuarantees that all writes that have committed more than the\nspecified number of seconds ago are visible. Because Cloud Spanner\nchooses the exact timestamp, this mode works even if the client's\nlocal clock is substantially skewed from Cloud Spanner commit\ntimestamps.\n\nUseful for reading at nearby replicas without the distributed\ntimestamp negotiation overhead of `max_staleness`.", - "format": "google-duration", - "type": "string" - }, "strong": { "description": "Read at a timestamp where all previously committed transactions\nare visible.", "type": "boolean" @@ -542,13 +1787,18 @@ "type": "string" }, "readTimestamp": { + "type": "string", "description": "Executes all reads at the given timestamp. Unlike other modes,\nreads at a specific timestamp are repeatable; the same read at\nthe same timestamp always returns the same data. If the\ntimestamp is in the future, the read will block until the\nspecified timestamp, modulo the read's deadline.\n\nUseful for large scale consistent reads such as mapreduces, or\nfor coordinating many reads against a consistent snapshot of the\ndata.", - "format": "google-datetime", - "type": "string" + "format": "google-datetime" }, "returnReadTimestamp": { "description": "If true, the Cloud Spanner-selected read timestamp is included in\nthe Transaction message that describes the transaction.", "type": "boolean" + }, + "exactStaleness": { + "description": "Executes all reads at a timestamp that is `exact_staleness`\nold. The timestamp is chosen soon after the read is started.\n\nGuarantees that all writes that have committed more than the\nspecified number of seconds ago are visible. Because Cloud Spanner\nchooses the exact timestamp, this mode works even if the client's\nlocal clock is substantially skewed from Cloud Spanner commit\ntimestamps.\n\nUseful for reading at nearby replicas without the distributed\ntimestamp negotiation overhead of `max_staleness`.", + "format": "google-duration", + "type": "string" } }, "id": "ReadOnly" @@ -557,52 +1807,53 @@ "description": "The request for ExecuteSql and\nExecuteStreamingSql.", "type": "object", "properties": { + "resumeToken": { + "description": "If this request is resuming a previously interrupted SQL query\nexecution, `resume_token` should be copied from the last\nPartialResultSet yielded before the interruption. Doing this\nenables the new SQL query execution to resume where the last one left\noff. The rest of the request parameters must exactly match the\nrequest that yielded this token.", + "format": "byte", + "type": "string" + }, "paramTypes": { + "description": "It is not always possible for Cloud Spanner to infer the right SQL type\nfrom a JSON value. For example, values of type `BYTES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn these cases, `param_types` can be used to specify the exact\nSQL type for some or all of the SQL query parameters. See the\ndefinition of Type for more information\nabout SQL types.", "type": "object", "additionalProperties": { "$ref": "Type" - }, - "description": "It is not always possible for Cloud Spanner to infer the right SQL type\nfrom a JSON value. For example, values of type `BYTES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn these cases, `param_types` can be used to specify the exact\nSQL type for some or all of the SQL query parameters. See the\ndefinition of Type for more information\nabout SQL types." + } }, "sql": { "description": "Required. The SQL query string.", "type": "string" }, "params": { - "description": "The SQL query string can contain parameter placeholders. A parameter\nplaceholder consists of `'@'` followed by the parameter\nname. Parameter names consist of any combination of letters,\nnumbers, and underscores.\n\nParameters can appear anywhere that a literal value is expected. The same\nparameter name can be used more than once, for example:\n `\"WHERE id \u003e @msg_id AND id \u003c @msg_id + 100\"`\n\nIt is an error to execute an SQL query with unbound parameters.\n\nParameter values are specified using `params`, which is a JSON\nobject whose keys are parameter names, and whose values are the\ncorresponding parameter values.", - "type": "object", "additionalProperties": { "description": "Properties of the object.", "type": "any" - } + }, + "description": "The SQL query string can contain parameter placeholders. A parameter\nplaceholder consists of `'@'` followed by the parameter\nname. Parameter names consist of any combination of letters,\nnumbers, and underscores.\n\nParameters can appear anywhere that a literal value is expected. The same\nparameter name can be used more than once, for example:\n `\"WHERE id \u003e @msg_id AND id \u003c @msg_id + 100\"`\n\nIt is an error to execute an SQL query with unbound parameters.\n\nParameter values are specified using `params`, which is a JSON\nobject whose keys are parameter names, and whose values are the\ncorresponding parameter values.", + "type": "object" }, "queryMode": { + "enum": [ + "NORMAL", + "PLAN", + "PROFILE" + ], "description": "Used to control the amount of debugging information returned in\nResultSetStats.", "type": "string", "enumDescriptions": [ "The default mode where only the query result, without any information\nabout the query plan is returned.", "This mode returns only the query plan, without any result rows or\nexecution statistics information.", "This mode returns both the query plan and the execution statistics along\nwith the result rows." - ], - "enum": [ - "NORMAL", - "PLAN", - "PROFILE" ] }, "transaction": { "$ref": "TransactionSelector", "description": "The transaction to use. If none is provided, the default is a\ntemporary read-only transaction with strong concurrency." - }, - "resumeToken": { - "type": "string", - "description": "If this request is resuming a previously interrupted SQL query\nexecution, `resume_token` should be copied from the last\nPartialResultSet yielded before the interruption. Doing this\nenables the new SQL query execution to resume where the last one left\noff. The rest of the request parameters must exactly match the\nrequest that yielded this token.", - "format": "byte" } }, "id": "ExecuteSqlRequest" }, "Policy": { + "id": "Policy", "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).", "type": "object", "properties": { @@ -623,25 +1874,20 @@ "$ref": "Binding" } } - }, - "id": "Policy" + } }, "ReadRequest": { "description": "The request for Read and\nStreamingRead.", "type": "object", "properties": { - "transaction": { - "description": "The transaction to use. If none is provided, the default is a\ntemporary read-only transaction with strong concurrency.", - "$ref": "TransactionSelector" - }, "resumeToken": { "description": "If this request is resuming a previously interrupted read,\n`resume_token` should be copied from the last\nPartialResultSet yielded before the interruption. Doing this\nenables the new read to resume where the last read left off. The\nrest of the request parameters must exactly match the request\nthat yielded this token.", "format": "byte", "type": "string" }, "table": { - "description": "Required. The name of the table in the database to be read.", - "type": "string" + "type": "string", + "description": "Required. The name of the table in the database to be read." }, "limit": { "description": "If greater than zero, only the first `limit` rows are yielded. If `limit`\nis zero, the default is no limit.\nA limit cannot be specified if partition_token is set.", @@ -662,12 +1908,15 @@ "items": { "type": "string" } + }, + "transaction": { + "$ref": "TransactionSelector", + "description": "The transaction to use. If none is provided, the default is a\ntemporary read-only transaction with strong concurrency." } }, "id": "ReadRequest" }, "Write": { - "description": "Arguments to insert, update, insert_or_update, and\nreplace operations.", "type": "object", "properties": { "columns": { @@ -692,17 +1941,27 @@ "type": "string" } }, - "id": "Write" + "id": "Write", + "description": "Arguments to insert, update, insert_or_update, and\nreplace operations." }, "ReadWrite": { - "properties": {}, - "id": "ReadWrite", "description": "Message type to initiate a read-write transaction. Currently this\ntransaction type has no options.", - "type": "object" + "type": "object", + "properties": {}, + "id": "ReadWrite" }, "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { + "name": { + "type": "string", + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`." + }, + "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.", @@ -716,65 +1975,38 @@ "type": "boolean" }, "response": { + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object", "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, - "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." + } } }, - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." + "id": "Operation" }, - "ResultSet": { - "id": "ResultSet", - "description": "Results from Read or\nExecuteSql.", + "CreateSessionRequest": { + "description": "The request for CreateSession.", "type": "object", "properties": { - "rows": { - "description": "Each element in `rows` is a row whose format is defined by\nmetadata.row_type. The ith element\nin each row matches the ith field in\nmetadata.row_type. Elements are\nencoded based on type as described\nhere.", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "any" - } - } - }, - "metadata": { - "$ref": "ResultSetMetadata", - "description": "Metadata about the result set, such as row type information." - }, - "stats": { - "description": "Query plan and execution statistics for the query that produced this\nresult set. These can be requested by setting\nExecuteSqlRequest.query_mode.", - "$ref": "ResultSetStats" + "session": { + "$ref": "Session", + "description": "The session to create." } - } + }, + "id": "CreateSessionRequest" }, "Status": { "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { - "message": { - "type": "string", - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client." - }, "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "type": "array", "items": { "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" }, "type": "object" } @@ -783,42 +2015,40 @@ "description": "The status code, which should be an enum value of google.rpc.Code.", "format": "int32", "type": "integer" + }, + "message": { + "type": "string", + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client." } }, "id": "Status" }, - "CreateSessionRequest": { - "description": "The request for CreateSession.", + "ResultSet": { "type": "object", "properties": { - "session": { - "description": "The session to create.", - "$ref": "Session" - } - }, - "id": "CreateSessionRequest" - }, - "UpdateDatabaseDdlRequest": { - "description": "Enqueues the given DDL statements to be applied, in order but not\nnecessarily all at once, to the database schema at some point (or\npoints) in the future. The server checks that the statements\nare executable (syntactically valid, name tables that exist, etc.)\nbefore enqueueing them, but they may still fail upon\nlater execution (e.g., if a statement from another batch of\nstatements is applied first and it conflicts in some way, or if\nthere is some data-related problem like a `NULL` value in a column to\nwhich `NOT NULL` would be added). If a statement fails, all\nsubsequent statements in the batch are automatically cancelled.\n\nEach batch of statements is assigned a name which can be used with\nthe Operations API to monitor\nprogress. See the\noperation_id field for more\ndetails.", - "type": "object", - "properties": { - "statements": { - "description": "DDL statements to be applied to the database.", + "stats": { + "description": "Query plan and execution statistics for the query that produced this\nresult set. These can be requested by setting\nExecuteSqlRequest.query_mode.", + "$ref": "ResultSetStats" + }, + "rows": { "type": "array", "items": { - "type": "string" - } + "type": "array", + "items": { + "type": "any" + } + }, + "description": "Each element in `rows` is a row whose format is defined by\nmetadata.row_type. The ith element\nin each row matches the ith field in\nmetadata.row_type. Elements are\nencoded based on type as described\nhere." }, - "operationId": { - "type": "string", - "description": "If empty, the new update request is assigned an\nautomatically-generated operation ID. Otherwise, `operation_id`\nis used to construct the name of the resulting\nOperation.\n\nSpecifying an explicit operation ID simplifies determining\nwhether the statements were executed in the event that the\nUpdateDatabaseDdl call is replayed,\nor the return value is otherwise lost: the database and\n`operation_id` fields can be combined to form the\nname of the resulting\nlongrunning.Operation: `\u003cdatabase\u003e/operations/\u003coperation_id\u003e`.\n\n`operation_id` should be unique within the database, and must be\na valid identifier: `a-z*`. Note that\nautomatically-generated operation IDs always begin with an\nunderscore. If the named operation already exists,\nUpdateDatabaseDdl returns\n`ALREADY_EXISTS`." + "metadata": { + "$ref": "ResultSetMetadata", + "description": "Metadata about the result set, such as row type information." } }, - "id": "UpdateDatabaseDdlRequest" + "id": "ResultSet", + "description": "Results from Read or\nExecuteSql." }, "Binding": { - "description": "Associates `members` with a `role`.", - "type": "object", "properties": { "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n", @@ -832,12 +2062,41 @@ "type": "string" } }, - "id": "Binding" + "id": "Binding", + "description": "Associates `members` with a `role`.", + "type": "object" + }, + "UpdateDatabaseDdlRequest": { + "description": "Enqueues the given DDL statements to be applied, in order but not\nnecessarily all at once, to the database schema at some point (or\npoints) in the future. The server checks that the statements\nare executable (syntactically valid, name tables that exist, etc.)\nbefore enqueueing them, but they may still fail upon\nlater execution (e.g., if a statement from another batch of\nstatements is applied first and it conflicts in some way, or if\nthere is some data-related problem like a `NULL` value in a column to\nwhich `NOT NULL` would be added). If a statement fails, all\nsubsequent statements in the batch are automatically cancelled.\n\nEach batch of statements is assigned a name which can be used with\nthe Operations API to monitor\nprogress. See the\noperation_id field for more\ndetails.", + "type": "object", + "properties": { + "statements": { + "description": "DDL statements to be applied to the database.", + "type": "array", + "items": { + "type": "string" + } + }, + "operationId": { + "description": "If empty, the new update request is assigned an\nautomatically-generated operation ID. Otherwise, `operation_id`\nis used to construct the name of the resulting\nOperation.\n\nSpecifying an explicit operation ID simplifies determining\nwhether the statements were executed in the event that the\nUpdateDatabaseDdl call is replayed,\nor the return value is otherwise lost: the database and\n`operation_id` fields can be combined to form the\nname of the resulting\nlongrunning.Operation: `\u003cdatabase\u003e/operations/\u003coperation_id\u003e`.\n\n`operation_id` should be unique within the database, and must be\na valid identifier: `a-z*`. Note that\nautomatically-generated operation IDs always begin with an\nunderscore. If the named operation already exists,\nUpdateDatabaseDdl returns\n`ALREADY_EXISTS`.", + "type": "string" + } + }, + "id": "UpdateDatabaseDdlRequest" }, "PartialResultSet": { "description": "Partial results from a streaming read or SQL query. Streaming reads and\nSQL queries better tolerate large result sets, large rows, and large\nvalues, but are a little trickier to consume.", "type": "object", "properties": { + "resumeToken": { + "description": "Streaming calls might be interrupted for a variety of reasons, such\nas TCP connection loss. If this occurs, the stream of results can\nbe resumed by re-sending the original request and including\n`resume_token`. Note that executing any other transaction in the\nsame session invalidates the token.", + "format": "byte", + "type": "string" + }, + "stats": { + "description": "Query plan and execution statistics for the query that produced this\nstreaming result set. These can be requested by setting\nExecuteSqlRequest.query_mode and are sent\nonly once with the last response in the stream.", + "$ref": "ResultSetStats" + }, "chunkedValue": { "description": "If true, then the final value in values is chunked, and must\nbe combined with more values from subsequent `PartialResultSet`s\nto obtain a complete field value.", "type": "boolean" @@ -852,51 +2111,32 @@ "type": "any" }, "description": "A streamed result set consists of a stream of values, which might\nbe split into many `PartialResultSet` messages to accommodate\nlarge rows and/or large values. Every N complete values defines a\nrow, where N is equal to the number of entries in\nmetadata.row_type.fields.\n\nMost values are encoded based on type as described\nhere.\n\nIt is possible that the last value in values is \"chunked\",\nmeaning that the rest of the value is sent in subsequent\n`PartialResultSet`(s). This is denoted by the chunked_value\nfield. Two or more chunked values can be merged to form a\ncomplete value as follows:\n\n * `bool/number/null`: cannot be chunked\n * `string`: concatenate the strings\n * `list`: concatenate the lists. If the last element in a list is a\n `string`, `list`, or `object`, merge it with the first element in\n the next list by applying these rules recursively.\n * `object`: concatenate the (field name, field value) pairs. If a\n field name is duplicated, then apply these rules recursively\n to merge the field values.\n\nSome examples of merging:\n\n # Strings are concatenated.\n \"foo\", \"bar\" =\u003e \"foobar\"\n\n # Lists of non-strings are concatenated.\n [2, 3], [4] =\u003e [2, 3, 4]\n\n # Lists are concatenated, but the last and first elements are merged\n # because they are strings.\n [\"a\", \"b\"], [\"c\", \"d\"] =\u003e [\"a\", \"bc\", \"d\"]\n\n # Lists are concatenated, but the last and first elements are merged\n # because they are lists. Recursively, the last and first elements\n # of the inner lists are merged because they are strings.\n [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] =\u003e [\"a\", [\"b\", \"cd\"], \"e\"]\n\n # Non-overlapping object fields are combined.\n {\"a\": \"1\"}, {\"b\": \"2\"} =\u003e {\"a\": \"1\", \"b\": 2\"}\n\n # Overlapping object fields are merged.\n {\"a\": \"1\"}, {\"a\": \"2\"} =\u003e {\"a\": \"12\"}\n\n # Examples of merging objects containing lists of strings.\n {\"a\": [\"1\"]}, {\"a\": [\"2\"]} =\u003e {\"a\": [\"12\"]}\n\nFor a more complete example, suppose a streaming SQL query is\nyielding a result set whose rows contain a single string\nfield. The following `PartialResultSet`s might be yielded:\n\n {\n \"metadata\": { ... }\n \"values\": [\"Hello\", \"W\"]\n \"chunked_value\": true\n \"resume_token\": \"Af65...\"\n }\n {\n \"values\": [\"orl\"]\n \"chunked_value\": true\n \"resume_token\": \"Bqp2...\"\n }\n {\n \"values\": [\"d\"]\n \"resume_token\": \"Zx1B...\"\n }\n\nThis sequence of `PartialResultSet`s encodes two rows, one\ncontaining the field value `\"Hello\"`, and a second containing the\nfield value `\"World\" = \"W\" + \"orl\" + \"d\"`." - }, - "resumeToken": { - "type": "string", - "description": "Streaming calls might be interrupted for a variety of reasons, such\nas TCP connection loss. If this occurs, the stream of results can\nbe resumed by re-sending the original request and including\n`resume_token`. Note that executing any other transaction in the\nsame session invalidates the token.", - "format": "byte" - }, - "stats": { - "description": "Query plan and execution statistics for the query that produced this\nstreaming result set. These can be requested by setting\nExecuteSqlRequest.query_mode and are sent\nonly once with the last response in the stream.", - "$ref": "ResultSetStats" } }, "id": "PartialResultSet" }, "ListOperationsResponse": { - "id": "ListOperationsResponse", "description": "The response message for Operations.ListOperations.", "type": "object", "properties": { - "operations": { - "type": "array", - "items": { - "$ref": "Operation" - }, - "description": "A list of operations that matches the specified filter in the request." - }, "nextPageToken": { "description": "The standard List next-page token.", "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "type": "array", + "items": { + "$ref": "Operation" + } } - } + }, + "id": "ListOperationsResponse" }, "UpdateInstanceMetadata": { "description": "Metadata type for the operation returned by\nUpdateInstance.", "type": "object", "properties": { - "cancelTime": { - "description": "The time at which this operation was cancelled. If set, this operation is\nin the process of undoing itself (which is guaranteed to succeed) and\ncannot be cancelled again.", - "format": "google-datetime", - "type": "string" - }, - "endTime": { - "description": "The time at which this operation failed or was completed successfully.", - "format": "google-datetime", - "type": "string" - }, "instance": { "$ref": "Instance", "description": "The desired end state of the update." @@ -905,32 +2145,42 @@ "description": "The time at which UpdateInstance\nrequest was received.", "format": "google-datetime", "type": "string" + }, + "cancelTime": { + "type": "string", + "description": "The time at which this operation was cancelled. If set, this operation is\nin the process of undoing itself (which is guaranteed to succeed) and\ncannot be cancelled again.", + "format": "google-datetime" + }, + "endTime": { + "description": "The time at which this operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" } }, "id": "UpdateInstanceMetadata" }, "ResultSetMetadata": { - "id": "ResultSetMetadata", "description": "Metadata about a ResultSet or PartialResultSet.", "type": "object", "properties": { - "transaction": { - "description": "If the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here.", - "$ref": "Transaction" - }, "rowType": { "$ref": "StructType", "description": "Indicates the field names and types for the rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserName FROM\nUsers\"` could return a `row_type` value like:\n\n \"fields\": [\n { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]" + }, + "transaction": { + "description": "If the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here.", + "$ref": "Transaction" } - } + }, + "id": "ResultSetMetadata" }, "TransactionSelector": { "description": "This message is used to select the transaction in which a\nRead or\nExecuteSql call runs.\n\nSee TransactionOptions for more information about transactions.", "type": "object", "properties": { "singleUse": { - "$ref": "TransactionOptions", - "description": "Execute the read or SQL query in a temporary transaction.\nThis is the most efficient way to execute a transaction that\nconsists of a single SQL query." + "description": "Execute the read or SQL query in a temporary transaction.\nThis is the most efficient way to execute a transaction that\nconsists of a single SQL query.", + "$ref": "TransactionOptions" }, "begin": { "$ref": "TransactionOptions", @@ -944,9 +2194,34 @@ }, "id": "TransactionSelector" }, - "KeySet": { - "description": "`KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All\nthe keys are expected to be in the same table or index. The keys need\nnot be sorted in any particular way.\n\nIf the same key is specified multiple times in the set (for example\nif two ranges, two keys, or a key and a range overlap), Cloud Spanner\nbehaves as if the key were only specified once.", + "Mutation": { + "description": "A modification to one or more Cloud Spanner rows. Mutations can be\napplied to a Cloud Spanner database by sending them in a\nCommit call.", "type": "object", + "properties": { + "insert": { + "$ref": "Write", + "description": "Insert new rows in a table. If any of the rows already exist,\nthe write or transaction fails with error `ALREADY_EXISTS`." + }, + "insertOrUpdate": { + "$ref": "Write", + "description": "Like insert, except that if the row already exists, then\nits column values are overwritten with the ones provided. Any\ncolumn values not explicitly written are preserved." + }, + "update": { + "description": "Update existing rows in a table. If any of the rows does not\nalready exist, the transaction fails with error `NOT_FOUND`.", + "$ref": "Write" + }, + "replace": { + "$ref": "Write", + "description": "Like insert, except that if the row already exists, it is\ndeleted, and the column values provided are inserted\ninstead. Unlike insert_or_update, this means any values not\nexplicitly written become `NULL`." + }, + "delete": { + "$ref": "Delete", + "description": "Delete rows from a table. Succeeds whether or not the named\nrows were present." + } + }, + "id": "Mutation" + }, + "KeySet": { "properties": { "ranges": { "description": "A list of key ranges. See KeyRange for more information about\nkey range specifications.", @@ -956,52 +2231,25 @@ } }, "keys": { - "description": "A list of specific keys. Entries in `keys` should have exactly as\nmany elements as there are columns in the primary or index key\nwith which this `KeySet` is used. Individual key values are\nencoded as described here.", "type": "array", "items": { "type": "array", "items": { "type": "any" } - } + }, + "description": "A list of specific keys. Entries in `keys` should have exactly as\nmany elements as there are columns in the primary or index key\nwith which this `KeySet` is used. Individual key values are\nencoded as described here." }, "all": { "description": "For convenience `all` can be set to `true` to indicate that this\n`KeySet` matches all keys in the table or index. Note that any keys\nspecified in `keys` or `ranges` are only yielded once.", "type": "boolean" } }, - "id": "KeySet" - }, - "Mutation": { - "description": "A modification to one or more Cloud Spanner rows. Mutations can be\napplied to a Cloud Spanner database by sending them in a\nCommit call.", - "type": "object", - "properties": { - "update": { - "$ref": "Write", - "description": "Update existing rows in a table. If any of the rows does not\nalready exist, the transaction fails with error `NOT_FOUND`." - }, - "replace": { - "$ref": "Write", - "description": "Like insert, except that if the row already exists, it is\ndeleted, and the column values provided are inserted\ninstead. Unlike insert_or_update, this means any values not\nexplicitly written become `NULL`." - }, - "delete": { - "description": "Delete rows from a table. Succeeds whether or not the named\nrows were present.", - "$ref": "Delete" - }, - "insert": { - "$ref": "Write", - "description": "Insert new rows in a table. If any of the rows already exist,\nthe write or transaction fails with error `ALREADY_EXISTS`." - }, - "insertOrUpdate": { - "description": "Like insert, except that if the row already exists, then\nits column values are overwritten with the ones provided. Any\ncolumn values not explicitly written are preserved.", - "$ref": "Write" - } - }, - "id": "Mutation" + "id": "KeySet", + "description": "`KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All\nthe keys are expected to be in the same table or index. The keys need\nnot be sorted in any particular way.\n\nIf the same key is specified multiple times in the set (for example\nif two ranges, two keys, or a key and a range overlap), Cloud Spanner\nbehaves as if the key were only specified once.", + "type": "object" }, "GetDatabaseDdlResponse": { - "description": "The response for GetDatabaseDdl.", - "type": "object", "properties": { "statements": { "description": "A list of formatted DDL statements defining the schema of the database\nspecified in the request.", @@ -1011,37 +2259,65 @@ } } }, - "id": "GetDatabaseDdlResponse" + "id": "GetDatabaseDdlResponse", + "description": "The response for GetDatabaseDdl.", + "type": "object" }, "Database": { + "description": "A Cloud Spanner database.", + "type": "object", "properties": { + "name": { + "description": "Required. The name of the database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`,\nwhere `\u003cdatabase\u003e` is as specified in the `CREATE DATABASE`\nstatement. This name can be passed to other API methods to\nidentify the database.", + "type": "string" + }, "state": { - "enum": [ - "STATE_UNSPECIFIED", - "CREATING", - "READY" - ], "description": "Output only. The current database state.", "type": "string", "enumDescriptions": [ "Not specified.", "The database is still being created. Operations on the database may fail\nwith `FAILED_PRECONDITION` in this state.", "The database is fully created and ready for use." + ], + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY" ] - }, - "name": { - "description": "Required. The name of the database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`,\nwhere `\u003cdatabase\u003e` is as specified in the `CREATE DATABASE`\nstatement. This name can be passed to other API methods to\nidentify the database.", - "type": "string" } }, - "id": "Database", - "description": "A Cloud Spanner database.", - "type": "object" + "id": "Database" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "type": "object", + "properties": { + "policy": { + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", + "$ref": "Policy" + } + }, + "id": "SetIamPolicyRequest" + }, + "ListDatabasesResponse": { + "description": "The response for ListDatabases.", + "type": "object", + "properties": { + "nextPageToken": { + "description": "`next_page_token` can be sent in a subsequent\nListDatabases call to fetch more\nof the matching databases.", + "type": "string" + }, + "databases": { + "description": "Databases that matched the request.", + "type": "array", + "items": { + "$ref": "Database" + } + } + }, + "id": "ListDatabasesResponse" }, "Instance": { - "id": "Instance", - "description": "An isolated set of Cloud Spanner resources on which databases can be hosted.", - "type": "object", "properties": { "displayName": { "description": "Required. The descriptive name for this instance as it appears in UIs.\nMust be unique per project and between 4 and 30 characters in length.", @@ -1078,42 +2354,15 @@ "type": "string" }, "name": { - "type": "string", - "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length." - } - } - }, - "ListDatabasesResponse": { - "description": "The response for ListDatabases.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "`next_page_token` can be sent in a subsequent\nListDatabases call to fetch more\nof the matching databases.", + "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length.", "type": "string" - }, - "databases": { - "description": "Databases that matched the request.", - "type": "array", - "items": { - "$ref": "Database" - } } }, - "id": "ListDatabasesResponse" - }, - "SetIamPolicyRequest": { - "type": "object", - "properties": { - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them." - } - }, - "id": "SetIamPolicyRequest", - "description": "Request message for `SetIamPolicy` method." + "id": "Instance", + "description": "An isolated set of Cloud Spanner resources on which databases can be hosted.", + "type": "object" }, "RollbackRequest": { - "description": "The request for Rollback.", "type": "object", "properties": { "transactionId": { @@ -1122,7 +2371,8 @@ "type": "string" } }, - "id": "RollbackRequest" + "id": "RollbackRequest", + "description": "The request for Rollback." }, "Transaction": { "description": "A transaction.", @@ -1134,54 +2384,41 @@ "type": "string" }, "readTimestamp": { - "type": "string", "description": "For snapshot read-only transactions, the read timestamp chosen\nfor the transaction. Not returned by default: see\nTransactionOptions.ReadOnly.return_read_timestamp.", - "format": "google-datetime" + "format": "google-datetime", + "type": "string" } }, "id": "Transaction" }, "UpdateDatabaseDdlMetadata": { + "id": "UpdateDatabaseDdlMetadata", + "description": "Metadata type for the operation returned by\nUpdateDatabaseDdl.", + "type": "object", "properties": { + "statements": { + "description": "For an update this list contains all the statements. For an\nindividual statement, this list contains only that statement.", + "type": "array", + "items": { + "type": "string" + } + }, "commitTimestamps": { + "description": "Reports the commit timestamps of all statements that have\nsucceeded so far, where `commit_timestamps[i]` is the commit\ntimestamp for the statement `statements[i]`.", "type": "array", "items": { "format": "google-datetime", "type": "string" - }, - "description": "Reports the commit timestamps of all statements that have\nsucceeded so far, where `commit_timestamps[i]` is the commit\ntimestamp for the statement `statements[i]`." + } }, "database": { "description": "The database being modified.", "type": "string" - }, - "statements": { - "type": "array", - "items": { - "type": "string" - }, - "description": "For an update this list contains all the statements. For an\nindividual statement, this list contains only that statement." } - }, - "id": "UpdateDatabaseDdlMetadata", - "description": "Metadata type for the operation returned by\nUpdateDatabaseDdl.", - "type": "object" - }, - "QueryPlan": { - "properties": { - "planNodes": { - "description": "The nodes in the query plan. Plan nodes are returned in pre-order starting\nwith the plan root. Each PlanNode's `id` corresponds to its index in\n`plan_nodes`.", - "type": "array", - "items": { - "$ref": "PlanNode" - } - } - }, - "id": "QueryPlan", - "description": "Contains an ordered list of nodes appearing in the query plan.", - "type": "object" + } }, "StructType": { + "type": "object", "properties": { "fields": { "description": "The list of fields that make up this struct. Order is\nsignificant, because values of this struct type are represented as\nlists, where the order of field values matches the order of\nfields in the StructType. In turn, the order of fields\nmatches the order of columns in a read request, or the order of\nfields in the `SELECT` clause of a query.", @@ -1192,8 +2429,21 @@ } }, "id": "StructType", - "description": "`StructType` defines the fields of a STRUCT type.", - "type": "object" + "description": "`StructType` defines the fields of a STRUCT type." + }, + "QueryPlan": { + "description": "Contains an ordered list of nodes appearing in the query plan.", + "type": "object", + "properties": { + "planNodes": { + "description": "The nodes in the query plan. Plan nodes are returned in pre-order starting\nwith the plan root. Each PlanNode's `id` corresponds to its index in\n`plan_nodes`.", + "type": "array", + "items": { + "$ref": "PlanNode" + } + } + }, + "id": "QueryPlan" } }, "icons": { @@ -1205,14 +2455,14 @@ "auth": { "oauth2": { "scopes": { + "https://www.googleapis.com/auth/spanner.data": { + "description": "View and manage the contents of your Spanner databases" + }, "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" }, "https://www.googleapis.com/auth/spanner.admin": { "description": "Administer your Spanner databases" - }, - "https://www.googleapis.com/auth/spanner.data": { - "description": "View and manage the contents of your Spanner databases" } } } @@ -1222,1255 +2472,5 @@ "name": "spanner", "batchPath": "batch", "title": "Cloud Spanner API", - "ownerName": "Google", - "resources": { - "projects": { - "resources": { - "instanceConfigs": { - "methods": { - "list": { - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the project for which a list of supported instance\nconfigurations is requested. Values are of the form\n`projects/\u003cproject\u003e`.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+$" - }, - "pageToken": { - "location": "query", - "description": "If non-empty, `page_token` should contain a\nnext_page_token\nfrom a previous ListInstanceConfigsResponse.", - "type": "string" - }, - "pageSize": { - "location": "query", - "description": "Number of instance configurations to be returned in the response. If 0 or\nless, defaults to the server's maximum allowed page size.", - "format": "int32", - "type": "integer" - } - }, - "flatPath": "v1/projects/{projectsId}/instanceConfigs", - "path": "v1/{+parent}/instanceConfigs", - "id": "spanner.projects.instanceConfigs.list", - "description": "Lists the supported instance configurations for a given project.", - "response": { - "$ref": "ListInstanceConfigsResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET" - }, - "get": { - "response": { - "$ref": "InstanceConfig" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "description": "Required. The name of the requested instance configuration. Values are of\nthe form `projects/\u003cproject\u003e/instanceConfigs/\u003cconfig\u003e`.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instanceConfigs/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}", - "path": "v1/{+name}", - "id": "spanner.projects.instanceConfigs.get", - "description": "Gets information about a particular instance configuration." - } - } - }, - "instances": { - "methods": { - "get": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.get", - "description": "Gets information about a particular instance.", - "response": { - "$ref": "Instance" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "pattern": "^projects/[^/]+/instances/[^/]+$", - "location": "path", - "description": "Required. The name of the requested instance. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ] - }, - "patch": { - "description": "Updates an instance, and begins allocating or releasing resources\nas requested. The returned long-running\noperation can be used to track the\nprogress of updating the instance. If the named instance does not\nexist, returns `NOT_FOUND`.\n\nImmediately upon completion of this request:\n\n * For resource types for which a decrease in the instance's allocation\n has been requested, billing is based on the newly-requested level.\n\nUntil completion of the returned operation:\n\n * Cancelling the operation sets its metadata's\n cancel_time, and begins\n restoring resources to their pre-request values. The operation\n is guaranteed to succeed at undoing all resource changes,\n after which point it terminates with a `CANCELLED` status.\n * All other attempts to modify the instance are rejected.\n * Reading the instance via the API continues to give the pre-request\n resource levels.\n\nUpon completion of the returned operation:\n\n * Billing begins for all successfully-allocated resources (some types\n may have lower than the requested levels).\n * All newly-reserved resources are available for serving the instance's\n tables.\n * The instance's new resource levels are readable via the API.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track the instance modification. The\nmetadata field type is\nUpdateInstanceMetadata.\nThe response field type is\nInstance, if successful.\n\nAuthorization requires `spanner.instances.update` permission on\nresource name.", - "request": { - "$ref": "UpdateInstanceRequest" - }, - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "pattern": "^projects/[^/]+/instances/[^/]+$", - "location": "path", - "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length.", - "required": true, - "type": "string" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.patch" - }, - "testIamPermissions": { - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "id": "spanner.projects.instances.testIamPermissions", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "description": "Returns permissions that the caller has on the specified instance resource.\n\nAttempting this RPC on a non-existent Cloud Spanner instance resource will\nresult in a NOT_FOUND error if the user has `spanner.instances.list`\npermission on the containing Google Cloud Project. Otherwise returns an\nempty set of permissions." - }, - "delete": { - "description": "Deletes an instance.\n\nImmediately upon completion of the request:\n\n * Billing ceases for all of the instance's reserved resources.\n\nSoon afterward:\n\n * The instance and *all of its databases* immediately and\n irrevocably disappear from the API. All data in the databases\n is permanently deleted.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "parameters": { - "name": { - "location": "path", - "description": "Required. The name of the instance to be deleted. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.delete" - }, - "list": { - "response": { - "$ref": "ListInstancesResponse" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "GET", - "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the project for which a list of instances is\nrequested. Values are of the form `projects/\u003cproject\u003e`.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+$" - }, - "filter": { - "type": "string", - "location": "query", - "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n * name\n * display_name\n * labels.key where key is the name of a label\n\nSome examples of using filters are:\n\n * name:* --\u003e The instance has a name.\n * name:Howl --\u003e The instance's name contains the string \"howl\".\n * name:HOWL --\u003e Equivalent to above.\n * NAME:howl --\u003e Equivalent to above.\n * labels.env:* --\u003e The instance has the label \"env\".\n * labels.env:dev --\u003e The instance has the label \"env\" and the value of\n the label contains the string \"dev\".\n * name:howl labels.env:dev --\u003e The instance's name contains \"howl\" and\n it has the label \"env\" with its value\n containing \"dev\"." - }, - "pageToken": { - "location": "query", - "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListInstancesResponse.", - "type": "string" - }, - "pageSize": { - "location": "query", - "description": "Number of instances to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.", - "format": "int32", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances", - "path": "v1/{+parent}/instances", - "id": "spanner.projects.instances.list", - "description": "Lists all instances in the given project." - }, - "create": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the project in which to create the instance. Values\nare of the form `projects/\u003cproject\u003e`.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances", - "path": "v1/{+parent}/instances", - "id": "spanner.projects.instances.create", - "request": { - "$ref": "CreateInstanceRequest" - }, - "description": "Creates an instance and begins preparing it to begin serving. The\nreturned long-running operation\ncan be used to track the progress of preparing the new\ninstance. The instance name is assigned by the caller. If the\nnamed instance already exists, `CreateInstance` returns\n`ALREADY_EXISTS`.\n\nImmediately upon completion of this request:\n\n * The instance is readable via the API, with all requested attributes\n but no allocated resources. Its state is `CREATING`.\n\nUntil completion of the returned operation:\n\n * Cancelling the operation renders the instance immediately unreadable\n via the API.\n * The instance can be deleted.\n * All other attempts to modify the instance are rejected.\n\nUpon completion of the returned operation:\n\n * Billing for all successfully-allocated resources begins (some types\n may have lower than the requested levels).\n * Databases can be created in the instance.\n * The instance's allocated resource levels are readable via the API.\n * The instance's state becomes `READY`.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track creation of the instance. The\nmetadata field type is\nCreateInstanceMetadata.\nThe response field type is\nInstance, if successful." - }, - "setIamPolicy": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:setIamPolicy", - "path": "v1/{+resource}:setIamPolicy", - "id": "spanner.projects.instances.setIamPolicy", - "description": "Sets the access control policy on an instance resource. Replaces any\nexisting policy.\n\nAuthorization requires `spanner.instances.setIamPolicy` on\nresource.", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "resource": { - "location": "path", - "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$" - } - } - }, - "getIamPolicy": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:getIamPolicy", - "path": "v1/{+resource}:getIamPolicy", - "id": "spanner.projects.instances.getIamPolicy", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "description": "Gets the access control policy for an instance resource. Returns an empty\npolicy if an instance exists but does not have a policy set.\n\nAuthorization requires `spanner.instances.getIamPolicy` on\nresource.", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ] - } - }, - "resources": { - "databases": { - "methods": { - "get": { - "description": "Gets the state of a Cloud Spanner database.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Database" - }, - "parameters": { - "name": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path", - "description": "Required. The name of the requested database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}", - "id": "spanner.projects.instances.databases.get", - "path": "v1/{+name}" - }, - "dropDatabase": { - "description": "Drops (aka deletes) a Cloud Spanner database.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "database" - ], - "httpMethod": "DELETE", - "parameters": { - "database": { - "location": "path", - "description": "Required. The database to be dropped.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}", - "path": "v1/{+database}", - "id": "spanner.projects.instances.databases.dropDatabase" - }, - "updateDdl": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "database" - ], - "httpMethod": "PATCH", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "database": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path", - "description": "Required. The database to update.", - "required": true, - "type": "string" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl", - "path": "v1/{+database}/ddl", - "id": "spanner.projects.instances.databases.updateDdl", - "description": "Updates the schema of a Cloud Spanner database by\ncreating/altering/dropping tables, columns, indexes, etc. The returned\nlong-running operation will have a name of\nthe format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and can be used to\ntrack execution of the schema change(s). The\nmetadata field type is\nUpdateDatabaseDdlMetadata. The operation has no response.", - "request": { - "$ref": "UpdateDatabaseDdlRequest" - } - }, - "testIamPermissions": { - "description": "Returns permissions that the caller has on the specified database resource.\n\nAttempting this RPC on a non-existent Cloud Spanner database will result in\na NOT_FOUND error if the user has `spanner.databases.list` permission on\nthe containing Cloud Spanner instance. Otherwise returns an empty set of\npermissions.", - "request": { - "$ref": "TestIamPermissionsRequest" - }, - "response": { - "$ref": "TestIamPermissionsResponse" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "resource": { - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path", - "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources." - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:testIamPermissions", - "path": "v1/{+resource}:testIamPermissions", - "id": "spanner.projects.instances.databases.testIamPermissions" - }, - "getDdl": { - "parameters": { - "database": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path", - "description": "Required. The database whose schema we wish to get.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl", - "path": "v1/{+database}/ddl", - "id": "spanner.projects.instances.databases.getDdl", - "description": "Returns the schema of a Cloud Spanner database as a list of formatted\nDDL statements. This method does not show pending schema updates, those may\nbe queried using the Operations API.", - "response": { - "$ref": "GetDatabaseDdlResponse" - }, - "parameterOrder": [ - "database" - ], - "httpMethod": "GET" - }, - "list": { - "id": "spanner.projects.instances.databases.list", - "path": "v1/{+parent}/databases", - "description": "Lists Cloud Spanner databases.", - "httpMethod": "GET", - "parameterOrder": [ - "parent" - ], - "response": { - "$ref": "ListDatabasesResponse" - }, - "parameters": { - "parent": { - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$", - "location": "path", - "description": "Required. The instance whose databases should be listed.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`." - }, - "pageToken": { - "location": "query", - "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListDatabasesResponse.", - "type": "string" - }, - "pageSize": { - "location": "query", - "description": "Number of databases to be returned in the response. If 0 or less,\ndefaults to the server's maximum allowed page size.", - "format": "int32", - "type": "integer" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases" - }, - "create": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "parent" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "parent": { - "location": "path", - "description": "Required. The name of the instance that will serve the new database.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases", - "path": "v1/{+parent}/databases", - "id": "spanner.projects.instances.databases.create", - "description": "Creates a new Cloud Spanner database and starts to prepare it for serving.\nThe returned long-running operation will\nhave a name of the format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track preparation of the database. The\nmetadata field type is\nCreateDatabaseMetadata. The\nresponse field type is\nDatabase, if successful.", - "request": { - "$ref": "CreateDatabaseRequest" - } - }, - "setIamPolicy": { - "path": "v1/{+resource}:setIamPolicy", - "id": "spanner.projects.instances.databases.setIamPolicy", - "request": { - "$ref": "SetIamPolicyRequest" - }, - "description": "Sets the access control policy on a database resource. Replaces any\nexisting policy.\n\nAuthorization requires `spanner.databases.setIamPolicy` permission on\nresource.", - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "parameters": { - "resource": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path", - "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:setIamPolicy" - }, - "getIamPolicy": { - "path": "v1/{+resource}:getIamPolicy", - "id": "spanner.projects.instances.databases.getIamPolicy", - "description": "Gets the access control policy for a database resource. Returns an empty\npolicy if a database exists but does not have a policy set.\n\nAuthorization requires `spanner.databases.getIamPolicy` permission on\nresource.", - "request": { - "$ref": "GetIamPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "parameterOrder": [ - "resource" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "resource": { - "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:getIamPolicy" - } - }, - "resources": { - "operations": { - "methods": { - "cancel": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}:cancel", - "path": "v1/{+name}:cancel", - "id": "spanner.projects.instances.databases.operations.cancel", - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`." - }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}", - "id": "spanner.projects.instances.databases.operations.delete", - "path": "v1/{+name}" - }, - "list": { - "response": { - "$ref": "ListOperationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "name": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$", - "location": "path", - "description": "The name of the operation's parent resource.", - "required": true, - "type": "string" - }, - "pageToken": { - "description": "The standard list page token.", - "type": "string", - "location": "query" - }, - "pageSize": { - "description": "The standard list page size.", - "format": "int32", - "type": "integer", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations", - "path": "v1/{+name}", - "id": "spanner.projects.instances.databases.operations.list", - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id." - }, - "get": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.databases.operations.get", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." - } - } - }, - "sessions": { - "methods": { - "list": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions", - "id": "spanner.projects.instances.databases.sessions.list", - "path": "v1/{+database}/sessions", - "description": "Lists all sessions in a given database.", - "httpMethod": "GET", - "parameterOrder": [ - "database" - ], - "response": { - "$ref": "ListSessionsResponse" - }, - "parameters": { - "filter": { - "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n * labels.key where key is the name of a label\n\nSome examples of using filters are:\n\n * labels.env:* --\u003e The session has the label \"env\".\n * labels.env:dev --\u003e The session has the label \"env\" and the value of\n the label contains the string \"dev\".", - "type": "string", - "location": "query" - }, - "pageToken": { - "location": "query", - "description": "If non-empty, `page_token` should contain a\nnext_page_token from a previous\nListSessionsResponse.", - "type": "string" - }, - "pageSize": { - "type": "integer", - "location": "query", - "description": "Number of sessions to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.", - "format": "int32" - }, - "database": { - "description": "Required. The database in which to list sessions.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ] - }, - "executeSql": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeSql", - "path": "v1/{+session}:executeSql", - "id": "spanner.projects.instances.databases.sessions.executeSql", - "description": "Executes an SQL query, returning all rows in a single reply. This\nmethod cannot be used to return a result set larger than 10 MiB;\nif the query yields more data than that, the query fails with\na `FAILED_PRECONDITION` error.\n\nQueries inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be fetched in streaming fashion by calling\nExecuteStreamingSql instead.", - "request": { - "$ref": "ExecuteSqlRequest" - }, - "response": { - "$ref": "ResultSet" - }, - "parameterOrder": [ - "session" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "parameters": { - "session": { - "description": "Required. The session in which the SQL query should be performed.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path" - } - } - }, - "rollback": { - "parameters": { - "session": { - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path", - "description": "Required. The session in which the transaction to roll back is running." - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:rollback", - "path": "v1/{+session}:rollback", - "id": "spanner.projects.instances.databases.sessions.rollback", - "request": { - "$ref": "RollbackRequest" - }, - "description": "Rolls back a transaction, releasing any locks it holds. It is a good\nidea to call this for any transaction that includes one or more\nRead or ExecuteSql requests and\nultimately decides not to commit.\n\n`Rollback` returns `OK` if it successfully aborts the transaction, the\ntransaction was already aborted, or the transaction is not\nfound. `Rollback` never returns `ABORTED`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "session" - ], - "httpMethod": "POST" - }, - "streamingRead": { - "httpMethod": "POST", - "parameterOrder": [ - "session" - ], - "response": { - "$ref": "PartialResultSet" - }, - "parameters": { - "session": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path", - "description": "Required. The session in which the read should be performed.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:streamingRead", - "id": "spanner.projects.instances.databases.sessions.streamingRead", - "path": "v1/{+session}:streamingRead", - "request": { - "$ref": "ReadRequest" - }, - "description": "Like Read, except returns the result set as a\nstream. Unlike Read, there is no limit on the\nsize of the returned result set. However, no individual row in\nthe result set can exceed 100 MiB, and no column value can exceed\n10 MiB." - }, - "create": { - "request": { - "$ref": "CreateSessionRequest" - }, - "description": "Creates a new session. A session can be used to perform\ntransactions that read and/or modify data in a Cloud Spanner database.\nSessions are meant to be reused for many consecutive\ntransactions.\n\nSessions can only execute one transaction at a time. To execute\nmultiple concurrent read-write/write-only transactions, create\nmultiple sessions. Note that standalone reads and queries use a\ntransaction internally, and count toward the one transaction\nlimit.\n\nCloud Spanner limits the number of sessions that can exist at any given\ntime; thus, it is a good idea to delete idle and/or unneeded sessions.\nAside from explicit deletes, Cloud Spanner can delete sessions for which no\noperations are sent for more than an hour. If a session is deleted,\nrequests to it return `NOT_FOUND`.\n\nIdle sessions can be kept alive by sending a trivial SQL query\nperiodically, e.g., `\"SELECT 1\"`.", - "response": { - "$ref": "Session" - }, - "parameterOrder": [ - "database" - ], - "httpMethod": "POST", - "parameters": { - "database": { - "description": "Required. The database in which the new session is created.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions", - "path": "v1/{+database}/sessions", - "id": "spanner.projects.instances.databases.sessions.create" - }, - "read": { - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:read", - "path": "v1/{+session}:read", - "id": "spanner.projects.instances.databases.sessions.read", - "description": "Reads rows from the database using key lookups and scans, as a\nsimple key/value style alternative to\nExecuteSql. This method cannot be used to\nreturn a result set larger than 10 MiB; if the read matches more\ndata than that, the read fails with a `FAILED_PRECONDITION`\nerror.\n\nReads inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be yielded in streaming fashion by calling\nStreamingRead instead.", - "request": { - "$ref": "ReadRequest" - }, - "response": { - "$ref": "ResultSet" - }, - "parameterOrder": [ - "session" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "parameters": { - "session": { - "description": "Required. The session in which the read should be performed.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path" - } - } - }, - "get": { - "path": "v1/{+name}", - "id": "spanner.projects.instances.databases.sessions.get", - "description": "Gets a session. Returns `NOT_FOUND` if the session does not exist.\nThis is mainly useful for determining whether a session is still\nalive.", - "response": { - "$ref": "Session" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "Required. The name of the session to retrieve.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}" - }, - "delete": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "parameters": { - "name": { - "location": "path", - "description": "Required. The name of the session to delete.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.databases.sessions.delete", - "description": "Ends a session, releasing server resources associated with it." - }, - "executeStreamingSql": { - "response": { - "$ref": "PartialResultSet" - }, - "parameterOrder": [ - "session" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "parameters": { - "session": { - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path", - "description": "Required. The session in which the SQL query should be performed.", - "required": true, - "type": "string" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeStreamingSql", - "path": "v1/{+session}:executeStreamingSql", - "id": "spanner.projects.instances.databases.sessions.executeStreamingSql", - "description": "Like ExecuteSql, except returns the result\nset as a stream. Unlike ExecuteSql, there\nis no limit on the size of the returned result set. However, no\nindividual row in the result set can exceed 100 MiB, and no\ncolumn value can exceed 10 MiB.", - "request": { - "$ref": "ExecuteSqlRequest" - } - }, - "beginTransaction": { - "path": "v1/{+session}:beginTransaction", - "id": "spanner.projects.instances.databases.sessions.beginTransaction", - "description": "Begins a new transaction. This step can often be skipped:\nRead, ExecuteSql and\nCommit can begin a new transaction as a\nside-effect.", - "request": { - "$ref": "BeginTransactionRequest" - }, - "response": { - "$ref": "Transaction" - }, - "parameterOrder": [ - "session" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "parameters": { - "session": { - "location": "path", - "description": "Required. The session in which the transaction runs.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:beginTransaction" - }, - "commit": { - "httpMethod": "POST", - "parameterOrder": [ - "session" - ], - "response": { - "$ref": "CommitResponse" - }, - "parameters": { - "session": { - "description": "Required. The session in which the transaction to be committed is running.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.data" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:commit", - "id": "spanner.projects.instances.databases.sessions.commit", - "path": "v1/{+session}:commit", - "request": { - "$ref": "CommitRequest" - }, - "description": "Commits a transaction. The request includes the mutations to be\napplied to rows in the database.\n\n`Commit` might return an `ABORTED` error. This can occur at any time;\ncommonly, the cause is conflicts with concurrent\ntransactions. However, it can also happen for a variety of other\nreasons. If `Commit` returns `ABORTED`, the caller should re-attempt\nthe transaction from the beginning, re-using the same session." - } - } - } - } - }, - "operations": { - "methods": { - "list": { - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "response": { - "$ref": "ListOperationsResponse" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "description": "The name of the operation's parent resource.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/operations$", - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "pageSize": { - "location": "query", - "description": "The standard list page size.", - "format": "int32", - "type": "integer" - }, - "filter": { - "type": "string", - "location": "query", - "description": "The standard list filter." - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations", - "path": "v1/{+name}", - "id": "spanner.projects.instances.operations.list" - }, - "get": { - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "parameters": { - "name": { - "description": "The name of the operation resource.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.operations.get", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." - }, - "cancel": { - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}:cancel", - "path": "v1/{+name}:cancel", - "id": "spanner.projects.instances.operations.cancel" - }, - "delete": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/spanner.admin" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be deleted.", - "required": true, - "type": "string", - "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$" - } - }, - "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}", - "path": "v1/{+name}", - "id": "spanner.projects.instances.operations.delete", - "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`." - } - } - } - } - } - } - } - }, - "parameters": { - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "type": "boolean", - "default": "true" - }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "description": "Pretty-print response.", - "type": "boolean", - "default": "true", - "location": "query" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - } - } + "ownerName": "Google" } diff --git a/vendor/google.golang.org/api/speech/v1/speech-api.json b/vendor/google.golang.org/api/speech/v1/speech-api.json index f0c13198b..60532898d 100644 --- a/vendor/google.golang.org/api/speech/v1/speech-api.json +++ b/vendor/google.golang.org/api/speech/v1/speech-api.json @@ -1,50 +1,5 @@ { - "baseUrl": "https://speech.googleapis.com/", - "servicePath": "", - "description": "Converts audio to text by applying powerful neural network models.", - "kind": "discovery#restDescription", - "basePath": "", - "documentationLink": "https://cloud.google.com/speech/", - "revision": "20170925", - "id": "speech:v1", - "discoveryVersion": "v1", - "version_module": true, "schemas": { - "LongRunningRecognizeRequest": { - "description": "The top-level message sent by the client for the `LongRunningRecognize`\nmethod.", - "type": "object", - "properties": { - "audio": { - "description": "*Required* The audio data to be recognized.", - "$ref": "RecognitionAudio" - }, - "config": { - "description": "*Required* Provides information to the recognizer that specifies how to\nprocess the request.", - "$ref": "RecognitionConfig" - } - }, - "id": "LongRunningRecognizeRequest" - }, - "RecognizeResponse": { - "description": "The only message returned to the client by the `Recognize` method. It\ncontains the result as zero or more sequential `SpeechRecognitionResult`\nmessages.", - "type": "object", - "properties": { - "results": { - "description": "*Output-only* Sequential list of transcription results corresponding to\nsequential portions of audio.", - "items": { - "$ref": "SpeechRecognitionResult" - }, - "type": "array" - } - }, - "id": "RecognizeResponse" - }, - "CancelOperationRequest": { - "description": "The request message for Operations.CancelOperation.", - "type": "object", - "properties": {}, - "id": "CancelOperationRequest" - }, "Operation": { "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", @@ -66,8 +21,8 @@ "type": "string" }, "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." + "description": "The error result of the operation in case of failure or cancellation.", + "$ref": "Status" }, "metadata": { "additionalProperties": { @@ -81,8 +36,6 @@ "id": "Operation" }, "RecognitionConfig": { - "description": "Provides information to the recognizer that specifies how to process the\nrequest.", - "type": "object", "properties": { "sampleRateHertz": { "format": "int32", @@ -103,6 +56,16 @@ "type": "string" }, "encoding": { + "enum": [ + "ENCODING_UNSPECIFIED", + "LINEAR16", + "FLAC", + "MULAW", + "AMR", + "AMR_WB", + "OGG_OPUS", + "SPEEX_WITH_HEADER_BYTE" + ], "description": "*Required* Encoding of audio data sent in all `RecognitionAudio` messages.", "type": "string", "enumDescriptions": [ @@ -114,16 +77,6 @@ "Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", "Opus encoded audio frames in Ogg container\n([OggOpus](https://wiki.xiph.org/OggOpus)).\n`sample_rate_hertz` must be 16000.", "Although the use of lossy encodings is not recommended, if a very low\nbitrate encoding is required, `OGG_OPUS` is highly preferred over\nSpeex encoding. The [Speex](https://speex.org/) encoding supported by\nCloud Speech API has a header byte in each block, as in MIME type\n`audio/x-speex-with-header-byte`.\nIt is a variant of the RTP Speex encoding defined in\n[RFC 5574](https://tools.ietf.org/html/rfc5574).\nThe stream is a sequence of blocks, one block per RTP packet. Each block\nstarts with a byte containing the length of the block, in bytes, followed\nby one or more frames of Speex data, padded to an integral number of\nbytes (octets) as specified in RFC 5574. In other words, each RTP header\nis replaced with a single byte containing the block length. Only Speex\nwideband is supported. `sample_rate_hertz` must be 16000." - ], - "enum": [ - "ENCODING_UNSPECIFIED", - "LINEAR16", - "FLAC", - "MULAW", - "AMR", - "AMR_WB", - "OGG_OPUS", - "SPEEX_WITH_HEADER_BYTE" ] }, "profanityFilter": { @@ -138,17 +91,12 @@ "type": "array" } }, - "id": "RecognitionConfig" + "id": "RecognitionConfig", + "description": "Provides information to the recognizer that specifies how to process the\nrequest.", + "type": "object" }, "WordInfo": { - "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.", - "type": "object", "properties": { - "endTime": { - "format": "google-duration", - "description": "*Output-only* Time offset relative to the beginning of the audio,\nand corresponding to the end of the spoken word.\nThis field is only set if `enable_word_time_offsets=true` and only\nin the top hypothesis.\nThis is an experimental feature and the accuracy of the time offset can\nvary.", - "type": "string" - }, "startTime": { "format": "google-duration", "description": "*Output-only* Time offset relative to the beginning of the audio,\nand corresponding to the start of the spoken word.\nThis field is only set if `enable_word_time_offsets=true` and only\nin the top hypothesis.\nThis is an experimental feature and the accuracy of the time offset can\nvary.", @@ -157,13 +105,18 @@ "word": { "description": "*Output-only* The word corresponding to this set of information.", "type": "string" + }, + "endTime": { + "format": "google-duration", + "description": "*Output-only* Time offset relative to the beginning of the audio,\nand corresponding to the end of the spoken word.\nThis field is only set if `enable_word_time_offsets=true` and only\nin the top hypothesis.\nThis is an experimental feature and the accuracy of the time offset can\nvary.", + "type": "string" } }, - "id": "WordInfo" + "id": "WordInfo", + "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.", + "type": "object" }, "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", "properties": { "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", @@ -186,7 +139,9 @@ "type": "string" } }, - "id": "Status" + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object" }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", @@ -199,37 +154,23 @@ "type": "object", "properties": { "audio": { - "$ref": "RecognitionAudio", - "description": "*Required* The audio data to be recognized." + "description": "*Required* The audio data to be recognized.", + "$ref": "RecognitionAudio" }, "config": { - "$ref": "RecognitionConfig", - "description": "*Required* Provides information to the recognizer that specifies how to\nprocess the request." + "description": "*Required* Provides information to the recognizer that specifies how to\nprocess the request.", + "$ref": "RecognitionConfig" } }, "id": "RecognizeRequest" }, - "SpeechContext": { - "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases\nin the results.", - "type": "object", - "properties": { - "phrases": { - "description": "*Optional* A list of strings containing words and phrases \"hints\" so that\nthe speech recognition is more likely to recognize them. This can be used\nto improve the accuracy for specific words and phrases, for example, if\nspecific commands are typically spoken by the user. This can also be used\nto add additional words to the vocabulary of the recognizer. See\n[usage limits](https://cloud.google.com/speech/limits#content).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "SpeechContext" - }, "SpeechRecognitionAlternative": { "description": "Alternative hypotheses (a.k.a. n-best list).", "type": "object", "properties": { "confidence": { "format": "float", - "description": "*Output-only* The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.", + "description": "*Output-only* The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate, or even set, in\nany of the results.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.", "type": "number" }, "words": { @@ -247,8 +188,6 @@ "id": "SpeechRecognitionAlternative" }, "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", "properties": { "nextPageToken": { "description": "The standard List next-page token.", @@ -262,12 +201,31 @@ "type": "array" } }, - "id": "ListOperationsResponse" + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations.", + "type": "object" }, - "SpeechRecognitionResult": { - "description": "A speech recognition result corresponding to a portion of the audio.", + "SpeechContext": { + "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases\nin the results.", "type": "object", "properties": { + "phrases": { + "description": "*Optional* A list of strings containing words and phrases \"hints\" so that\nthe speech recognition is more likely to recognize them. This can be used\nto improve the accuracy for specific words and phrases, for example, if\nspecific commands are typically spoken by the user. This can also be used\nto add additional words to the vocabulary of the recognizer. See\n[usage limits](https://cloud.google.com/speech/limits#content).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "SpeechContext" + }, + "SpeechRecognitionResult": { + "properties": { + "channelTag": { + "format": "int32", + "description": "For multi-channel audio, this is the channel number corresponding to the\nrecognized result for the audio from that channel.\nFor audio_channel_count = N, its output values can range from '0' to 'N-1'.", + "type": "integer" + }, "alternatives": { "description": "*Output-only* May contain one or more recognition hypotheses (up to the\nmaximum specified in `max_alternatives`).\nThese alternatives are ordered in terms of accuracy, with the top (first)\nalternative being the most probable, as ranked by the recognizer.", "items": { @@ -276,7 +234,9 @@ "type": "array" } }, - "id": "SpeechRecognitionResult" + "id": "SpeechRecognitionResult", + "description": "A speech recognition result corresponding to a portion of the audio.", + "type": "object" }, "RecognitionAudio": { "description": "Contains audio data in the encoding specified in the `RecognitionConfig`.\nEither `content` or `uri` must be supplied. Supplying both or neither\nreturns google.rpc.Code.INVALID_ARGUMENT. See\n[audio limits](https://cloud.google.com/speech/limits#content).", @@ -293,11 +253,46 @@ } }, "id": "RecognitionAudio" + }, + "LongRunningRecognizeRequest": { + "properties": { + "audio": { + "$ref": "RecognitionAudio", + "description": "*Required* The audio data to be recognized." + }, + "config": { + "description": "*Required* Provides information to the recognizer that specifies how to\nprocess the request.", + "$ref": "RecognitionConfig" + } + }, + "id": "LongRunningRecognizeRequest", + "description": "The top-level message sent by the client for the `LongRunningRecognize`\nmethod.", + "type": "object" + }, + "RecognizeResponse": { + "properties": { + "results": { + "description": "*Output-only* Sequential list of transcription results corresponding to\nsequential portions of audio.", + "items": { + "$ref": "SpeechRecognitionResult" + }, + "type": "array" + } + }, + "id": "RecognizeResponse", + "description": "The only message returned to the client by the `Recognize` method. It\ncontains the result as zero or more sequential `SpeechRecognitionResult`\nmessages.", + "type": "object" + }, + "CancelOperationRequest": { + "properties": {}, + "id": "CancelOperationRequest", + "description": "The request message for Operations.CancelOperation.", + "type": "object" } }, "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "protocol": "rest", "canonicalName": "Speech", @@ -317,225 +312,168 @@ "title": "Google Cloud Speech API", "ownerName": "Google", "resources": { - "operations": { - "methods": { - "get": { - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/operations/{operationsId}", - "id": "speech.operations.get", - "path": "v1/operations/{+name}" - }, - "list": { - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListOperationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, - "filter": { - "location": "query", - "description": "The standard list filter.", - "type": "string" - }, - "pageToken": { - "location": "query", - "description": "The standard list page token.", - "type": "string" - }, - "name": { - "location": "query", - "description": "The name of the operation's parent resource.", - "type": "string" - } - }, - "flatPath": "v1/operations", - "path": "v1/operations", - "id": "speech.operations.list" - }, - "cancel": { - "request": { - "$ref": "CancelOperationRequest" - }, - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - } - }, - "flatPath": "v1/operations/{operationsId}:cancel", - "id": "speech.operations.cancel", - "path": "v1/operations/{+name}:cancel" - }, - "delete": { - "flatPath": "v1/operations/{operationsId}", - "path": "v1/operations/{+name}", - "id": "speech.operations.delete", - "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", - "httpMethod": "DELETE", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource to be deleted.", - "type": "string", - "required": true, - "pattern": "^[^/]+$" - } - } - } - } - }, "speech": { "methods": { "longrunningrecognize": { - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "Operation" }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": {}, "flatPath": "v1/speech:longrunningrecognize", - "path": "v1/speech:longrunningrecognize", "id": "speech.speech.longrunningrecognize", + "path": "v1/speech:longrunningrecognize", "request": { "$ref": "LongRunningRecognizeRequest" }, "description": "Performs asynchronous speech recognition: receive results via the\ngoogle.longrunning.Operations interface. Returns either an\n`Operation.error` or an `Operation.response` which contains\na `LongRunningRecognizeResponse` message." }, "recognize": { - "description": "Performs synchronous speech recognition: receive results after all audio\nhas been sent and processed.", + "id": "speech.speech.recognize", + "path": "v1/speech:recognize", "request": { "$ref": "RecognizeRequest" }, + "description": "Performs synchronous speech recognition: receive results after all audio\nhas been sent and processed.", "response": { "$ref": "RecognizeResponse" }, "parameterOrder": [], "httpMethod": "POST", - "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/speech:recognize", - "id": "speech.speech.recognize", - "path": "v1/speech:recognize" + "parameters": {}, + "flatPath": "v1/speech:recognize" + } + } + }, + "operations": { + "methods": { + "cancel": { + "id": "speech.operations.cancel", + "path": "v1/operations/{+name}:cancel", + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", + "request": { + "$ref": "CancelOperationRequest" + }, + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "The name of the operation resource to be cancelled.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/operations/{operationsId}:cancel" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "The name of the operation resource to be deleted.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/operations/{operationsId}", + "id": "speech.operations.delete", + "path": "v1/operations/{+name}", + "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`." + }, + "get": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "The name of the operation resource.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/operations/{operationsId}", + "id": "speech.operations.get", + "path": "v1/operations/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "name": { + "location": "query", + "description": "The name of the operation's parent resource.", + "type": "string" + }, + "pageSize": { + "format": "int32", + "description": "The standard list page size.", + "type": "integer", + "location": "query" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/operations", + "id": "speech.operations.list", + "path": "v1/operations" } } } }, "parameters": { - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, "alt": { - "description": "Data format for response.", - "default": "json", "enum": [ "json", "media", @@ -547,7 +485,9 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query" + "location": "query", + "description": "Data format for response.", + "default": "json" }, "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.", @@ -555,15 +495,80 @@ "location": "query" }, "access_token": { - "location": "query", "description": "OAuth access token.", - "type": "string" + "type": "string", + "location": "query" }, "quotaUser": { - "location": "query", "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.", + "type": "string", + "location": "query" + }, + "pp": { + "description": "Pretty-print response.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "$.xgafv": { + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" + }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" } }, - "version": "v1" + "version": "v1", + "baseUrl": "https://speech.googleapis.com/", + "kind": "discovery#restDescription", + "description": "Converts audio to text by applying powerful neural network models.", + "servicePath": "", + "basePath": "", + "revision": "20171018", + "documentationLink": "https://cloud.google.com/speech/", + "id": "speech:v1", + "discoveryVersion": "v1", + "version_module": true } diff --git a/vendor/google.golang.org/api/speech/v1/speech-gen.go b/vendor/google.golang.org/api/speech/v1/speech-gen.go index aa15c73bc..2f185ceed 100644 --- a/vendor/google.golang.org/api/speech/v1/speech-gen.go +++ b/vendor/google.golang.org/api/speech/v1/speech-gen.go @@ -572,8 +572,9 @@ type SpeechRecognitionAlternative struct { // hypothesis, and // only for `is_final=true` results. Clients should not rely on // the - // `confidence` field as it is not guaranteed to be accurate or - // consistent. + // `confidence` field as it is not guaranteed to be accurate, or even + // set, in + // any of the results. // The default of 0.0 is a sentinel value indicating `confidence` was // not set. Confidence float64 `json:"confidence,omitempty"` @@ -634,6 +635,13 @@ type SpeechRecognitionResult struct { // alternative being the most probable, as ranked by the recognizer. Alternatives []*SpeechRecognitionAlternative `json:"alternatives,omitempty"` + // ChannelTag: For multi-channel audio, this is the channel number + // corresponding to the + // recognized result for the audio from that channel. + // For audio_channel_count = N, its output values can range from '0' to + // 'N-1'. + ChannelTag int64 `json:"channelTag,omitempty"` + // ForceSendFields is a list of field names (e.g. "Alternatives") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, diff --git a/vendor/google.golang.org/api/speech/v1beta1/speech-api.json b/vendor/google.golang.org/api/speech/v1beta1/speech-api.json index 2c1cdc7f2..0502a54ae 100644 --- a/vendor/google.golang.org/api/speech/v1beta1/speech-api.json +++ b/vendor/google.golang.org/api/speech/v1beta1/speech-api.json @@ -1,21 +1,274 @@ { + "ownerName": "Google", + "resources": { + "operations": { + "methods": { + "cancel": { + "id": "speech.operations.cancel", + "path": "v1beta1/operations/{+name}:cancel", + "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "The name of the operation resource to be cancelled.", + "type": "string", + "required": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/operations/{operationsId}:cancel" + }, + "delete": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "name" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "pattern": "^[^/]+$", + "location": "path", + "description": "The name of the operation resource to be deleted.", + "type": "string", + "required": true + } + }, + "flatPath": "v1beta1/operations/{operationsId}", + "path": "v1beta1/operations/{+name}", + "id": "speech.operations.delete", + "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`." + }, + "get": { + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "type": "string", + "required": true, + "pattern": "^[^/]+$", + "location": "path" + } + }, + "flatPath": "v1beta1/operations/{operationsId}", + "id": "speech.operations.get", + "path": "v1beta1/operations/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." + }, + "list": { + "httpMethod": "GET", + "response": { + "$ref": "ListOperationsResponse" + }, + "parameterOrder": [], + "parameters": { + "pageToken": { + "description": "The standard list page token.", + "type": "string", + "location": "query" + }, + "name": { + "location": "query", + "description": "The name of the operation's parent resource.", + "type": "string" + }, + "pageSize": { + "location": "query", + "format": "int32", + "description": "The standard list page size.", + "type": "integer" + }, + "filter": { + "location": "query", + "description": "The standard list filter.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/operations", + "path": "v1beta1/operations", + "id": "speech.operations.list", + "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id." + } + } + }, + "speech": { + "methods": { + "asyncrecognize": { + "path": "v1beta1/speech:asyncrecognize", + "id": "speech.speech.asyncrecognize", + "description": "Performs asynchronous speech recognition: receive results via the\n[google.longrunning.Operations]\n(/speech/reference/rest/v1beta1/operations#Operation)\ninterface. Returns either an\n`Operation.error` or an `Operation.response` which contains\nan `AsyncRecognizeResponse` message.", + "request": { + "$ref": "AsyncRecognizeRequest" + }, + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "Operation" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/speech:asyncrecognize" + }, + "syncrecognize": { + "response": { + "$ref": "SyncRecognizeResponse" + }, + "parameterOrder": [], + "httpMethod": "POST", + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1beta1/speech:syncrecognize", + "id": "speech.speech.syncrecognize", + "path": "v1beta1/speech:syncrecognize", + "description": "Performs synchronous speech recognition: receive results after all audio\nhas been sent and processed.", + "request": { + "$ref": "SyncRecognizeRequest" + } + } + } + } + }, + "parameters": { + "alt": { + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response.", + "default": "json" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "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.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "location": "query", + "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.", + "type": "string" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean", + "location": "query" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string", + "location": "query" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + } + }, + "version": "v1beta1", + "baseUrl": "https://speech.googleapis.com/", + "servicePath": "", + "kind": "discovery#restDescription", + "description": "Converts audio to text by applying powerful neural network models.", + "basePath": "", + "id": "speech:v1beta1", + "documentationLink": "https://cloud.google.com/speech/", + "revision": "20171018", + "discoveryVersion": "v1", "version_module": true, "schemas": { "Operation": { "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" }, "name": { "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", @@ -26,19 +279,21 @@ "$ref": "Status" }, "metadata": { - "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - } + }, + "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" } }, "id": "Operation" }, "RecognitionConfig": { - "description": "Provides information to the recognizer that specifies how to process the\nrequest.", - "type": "object", "properties": { "maxAlternatives": { "format": "int32", @@ -54,15 +309,15 @@ "description": "*Optional* The language of the supplied audio as a BCP-47 language tag.\nExample: \"en-GB\" https://www.rfc-editor.org/rfc/bcp/bcp47.txt\nIf omitted, defaults to \"en-US\". See\n[Language Support](https://cloud.google.com/speech/docs/languages)\nfor a list of the currently supported language codes.", "type": "string" }, - "profanityFilter": { - "description": "*Optional* If set to `true`, the server will attempt to filter out\nprofanities, replacing all but the initial character in each filtered word\nwith asterisks, e.g. \"f***\". If set to `false` or omitted, profanities\nwon't be filtered out.", - "type": "boolean" - }, - "speechContext": { - "description": "*Optional* A means to provide context to assist the speech recognition.", - "$ref": "SpeechContext" - }, "encoding": { + "enum": [ + "ENCODING_UNSPECIFIED", + "LINEAR16", + "FLAC", + "MULAW", + "AMR", + "AMR_WB" + ], "description": "*Required* Encoding of audio data sent in all `RecognitionAudio` messages.", "type": "string", "enumDescriptions": [ @@ -72,22 +327,22 @@ "8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", "Adaptive Multi-Rate Narrowband codec. `sample_rate` must be 8000 Hz.", "Adaptive Multi-Rate Wideband codec. `sample_rate` must be 16000 Hz." - ], - "enum": [ - "ENCODING_UNSPECIFIED", - "LINEAR16", - "FLAC", - "MULAW", - "AMR", - "AMR_WB" ] + }, + "profanityFilter": { + "description": "*Optional* If set to `true`, the server will attempt to filter out\nprofanities, replacing all but the initial character in each filtered word\nwith asterisks, e.g. \"f***\". If set to `false` or omitted, profanities\nwon't be filtered out.", + "type": "boolean" + }, + "speechContext": { + "description": "*Optional* A means to provide context to assist the speech recognition.", + "$ref": "SpeechContext" } }, - "id": "RecognitionConfig" + "id": "RecognitionConfig", + "description": "Provides information to the recognizer that specifies how to process the\nrequest.", + "type": "object" }, "SyncRecognizeRequest": { - "description": "The top-level message sent by the client for the `SyncRecognize` method.", - "type": "object", "properties": { "audio": { "$ref": "RecognitionAudio", @@ -98,34 +353,9 @@ "$ref": "RecognitionConfig" } }, - "id": "SyncRecognizeRequest" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "id": "Status" + "id": "SyncRecognizeRequest", + "description": "The top-level message sent by the client for the `SyncRecognize` method.", + "type": "object" }, "SyncRecognizeResponse": { "description": "The only message returned to the client by `SyncRecognize`. method. It\ncontains the result as zero or more sequential `SpeechRecognitionResult`\nmessages.", @@ -141,11 +371,68 @@ }, "id": "SyncRecognizeResponse" }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", + "properties": { + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "id": "Status" + }, + "Empty": { "properties": {}, - "id": "Empty" + "id": "Empty", + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object" + }, + "SpeechRecognitionAlternative": { + "properties": { + "confidence": { + "format": "float", + "description": "*Output-only* The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate, or even set, in\nany of the results.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.", + "type": "number" + }, + "transcript": { + "description": "*Output-only* Transcript text representing the words that the user spoke.", + "type": "string" + } + }, + "id": "SpeechRecognitionAlternative", + "description": "Alternative hypotheses (a.k.a. n-best list).", + "type": "object" + }, + "SpeechContext": { + "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases\nin the results.", + "type": "object", + "properties": { + "phrases": { + "description": "*Optional* A list of strings containing words and phrases \"hints\" so that\nthe speech recognition is more likely to recognize them. This can be used\nto improve the accuracy for specific words and phrases, for example, if\nspecific commands are typically spoken by the user. This can also be used\nto add additional words to the vocabulary of the recognizer. See\n[usage limits](https://cloud.google.com/speech/limits#content).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "id": "SpeechContext" }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", @@ -165,36 +452,6 @@ }, "id": "ListOperationsResponse" }, - "SpeechContext": { - "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases\nin the results.", - "type": "object", - "properties": { - "phrases": { - "description": "*Optional* A list of strings containing words and phrases \"hints\" so that\nthe speech recognition is more likely to recognize them. This can be used\nto improve the accuracy for specific words and phrases, for example, if\nspecific commands are typically spoken by the user. This can also be used\nto add additional words to the vocabulary of the recognizer. See\n[usage limits](https://cloud.google.com/speech/limits#content).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "SpeechContext" - }, - "SpeechRecognitionAlternative": { - "description": "Alternative hypotheses (a.k.a. n-best list).", - "type": "object", - "properties": { - "confidence": { - "format": "float", - "description": "*Output-only* The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate, or even set, in\nany of the results.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.", - "type": "number" - }, - "transcript": { - "description": "*Output-only* Transcript text representing the words that the user spoke.", - "type": "string" - } - }, - "id": "SpeechRecognitionAlternative" - }, "SpeechRecognitionResult": { "description": "A speech recognition result corresponding to a portion of the audio.", "type": "object", @@ -210,20 +467,20 @@ "id": "SpeechRecognitionResult" }, "RecognitionAudio": { - "description": "Contains audio data in the encoding specified in the `RecognitionConfig`.\nEither `content` or `uri` must be supplied. Supplying both or neither\nreturns google.rpc.Code.INVALID_ARGUMENT. See\n[audio limits](https://cloud.google.com/speech/limits#content).", - "type": "object", "properties": { + "uri": { + "description": "URI that points to a file that contains audio data bytes as specified in\n`RecognitionConfig`. Currently, only Google Cloud Storage URIs are\nsupported, which must be specified in the following format:\n`gs://bucket_name/object_name` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](https://cloud.google.com/storage/docs/reference-uris).", + "type": "string" + }, "content": { "format": "byte", "description": "The audio data bytes encoded as specified in\n`RecognitionConfig`. Note: as with all bytes fields, protobuffers use a\npure binary representation, whereas JSON representations use base64.", "type": "string" - }, - "uri": { - "description": "URI that points to a file that contains audio data bytes as specified in\n`RecognitionConfig`. Currently, only Google Cloud Storage URIs are\nsupported, which must be specified in the following format:\n`gs://bucket_name/object_name` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](https://cloud.google.com/storage/docs/reference-uris).", - "type": "string" } }, - "id": "RecognitionAudio" + "id": "RecognitionAudio", + "description": "Contains audio data in the encoding specified in the `RecognitionConfig`.\nEither `content` or `uri` must be supplied. Supplying both or neither\nreturns google.rpc.Code.INVALID_ARGUMENT. See\n[audio limits](https://cloud.google.com/speech/limits#content).", + "type": "object" }, "AsyncRecognizeRequest": { "description": "The top-level message sent by the client for the `AsyncRecognize` method.", @@ -241,11 +498,11 @@ "id": "AsyncRecognizeRequest" } }, + "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, - "protocol": "rest", "canonicalName": "Speech", "auth": { "oauth2": { @@ -260,262 +517,5 @@ "ownerDomain": "google.com", "name": "speech", "batchPath": "batch", - "title": "Google Cloud Speech API", - "ownerName": "Google", - "resources": { - "operations": { - "methods": { - "cancel": { - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - } - }, - "flatPath": "v1beta1/operations/{operationsId}:cancel", - "id": "speech.operations.cancel", - "path": "v1beta1/operations/{+name}:cancel", - "description": "Starts asynchronous cancellation on a long-running operation. The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`." - }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "DELETE", - "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", - "type": "string", - "required": true, - "pattern": "^[^/]+$", - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/operations/{operationsId}", - "id": "speech.operations.delete", - "path": "v1beta1/operations/{+name}" - }, - "get": { - "flatPath": "v1beta1/operations/{operationsId}", - "id": "speech.operations.get", - "path": "v1beta1/operations/{+name}", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "response": { - "$ref": "Operation" - }, - "parameterOrder": [ - "name" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "name": { - "location": "path", - "description": "The name of the operation resource.", - "type": "string", - "required": true, - "pattern": "^[^/]+$" - } - } - }, - "list": { - "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListOperationsResponse" - }, - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The standard list page size.", - "type": "integer" - }, - "filter": { - "description": "The standard list filter.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "The standard list page token.", - "type": "string", - "location": "query" - }, - "name": { - "location": "query", - "description": "The name of the operation's parent resource.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/operations", - "path": "v1beta1/operations", - "id": "speech.operations.list" - } - } - }, - "speech": { - "methods": { - "asyncrecognize": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {}, - "flatPath": "v1beta1/speech:asyncrecognize", - "path": "v1beta1/speech:asyncrecognize", - "id": "speech.speech.asyncrecognize", - "request": { - "$ref": "AsyncRecognizeRequest" - }, - "description": "Performs asynchronous speech recognition: receive results via the\n[google.longrunning.Operations]\n(/speech/reference/rest/v1beta1/operations#Operation)\ninterface. Returns either an\n`Operation.error` or an `Operation.response` which contains\nan `AsyncRecognizeResponse` message." - }, - "syncrecognize": { - "description": "Performs synchronous speech recognition: receive results after all audio\nhas been sent and processed.", - "request": { - "$ref": "SyncRecognizeRequest" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "SyncRecognizeResponse" - }, - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1beta1/speech:syncrecognize", - "path": "v1beta1/speech:syncrecognize", - "id": "speech.speech.syncrecognize" - } - } - } - }, - "parameters": { - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, - "uploadType": { - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string", - "location": "query" - }, - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, - "alt": { - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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", - "description": "Data format for response.", - "default": "json" - }, - "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.", - "type": "string", - "location": "query" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" - }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - } - }, - "version": "v1beta1", - "baseUrl": "https://speech.googleapis.com/", - "kind": "discovery#restDescription", - "description": "Converts audio to text by applying powerful neural network models.", - "servicePath": "", - "basePath": "", - "id": "speech:v1beta1", - "revision": "20170925", - "documentationLink": "https://cloud.google.com/speech/", - "discoveryVersion": "v1" + "title": "Google Cloud Speech API" } diff --git a/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-api.json b/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-api.json index e62435bce..7b4a2f4e9 100644 --- a/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-api.json +++ b/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/odbYGRT1izLWfRhfVNwcTacV8sM\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/qGR3q9t_cRz9md0zXxOmhlJ1eX0\"", "discoveryVersion": "v1", "id": "sqladmin:v1beta4", "name": "sqladmin", "canonicalName": "SQL Admin", "version": "v1beta4", - "revision": "20170807", + "revision": "20171011", "title": "Cloud SQL Administration API", "description": "Creates and configures Cloud SQL instances, which provide fully-managed MySQL databases.", "ownerDomain": "google.com", @@ -483,6 +483,74 @@ } } }, + "DemoteMasterConfiguration": { + "id": "DemoteMasterConfiguration", + "type": "object", + "description": "Read-replica configuration for connecting to the on-premises master.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#demoteMasterConfiguration.", + "default": "sql#demoteMasterConfiguration" + }, + "mysqlReplicaConfiguration": { + "$ref": "DemoteMasterMySqlReplicaConfiguration", + "description": "MySQL specific configuration when replicating from a MySQL on-premises master. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata. The configuration information is used only to set up the replication connection and is stored by MySQL in a file named master.info in the data directory." + } + } + }, + "DemoteMasterContext": { + "id": "DemoteMasterContext", + "type": "object", + "description": "Database instance demote master context.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#demoteMasterContext.", + "default": "sql#demoteMasterContext" + }, + "masterInstanceName": { + "type": "string", + "description": "The name of the instance which will act as on-premises master in the replication setup." + }, + "replicaConfiguration": { + "$ref": "DemoteMasterConfiguration", + "description": "Configuration specific to read-replicas replicating from the on-premises master." + } + } + }, + "DemoteMasterMySqlReplicaConfiguration": { + "id": "DemoteMasterMySqlReplicaConfiguration", + "type": "object", + "description": "Read-replica configuration specific to MySQL databases.", + "properties": { + "caCertificate": { + "type": "string", + "description": "PEM representation of the trusted CA's x509 certificate." + }, + "clientCertificate": { + "type": "string", + "description": "PEM representation of the slave's x509 certificate." + }, + "clientKey": { + "type": "string", + "description": "PEM representation of the slave's private key. The corresponsing public key is encoded in the client's certificate. The format of the slave's private key can be either PKCS #1 or PKCS #8." + }, + "kind": { + "type": "string", + "description": "This is always sql#demoteMasterMysqlReplicaConfiguration.", + "default": "sql#demoteMasterMysqlReplicaConfiguration" + }, + "password": { + "type": "string", + "description": "The password for the replication connection." + }, + "username": { + "type": "string", + "description": "The username for the replication connection." + } + } + }, "ExportContext": { "id": "ExportContext", "type": "object", @@ -677,6 +745,17 @@ } } }, + "InstancesDemoteMasterRequest": { + "id": "InstancesDemoteMasterRequest", + "type": "object", + "description": "Database demote master request.", + "properties": { + "demoteMasterContext": { + "$ref": "DemoteMasterContext", + "description": "Contains details about the demoteMaster operation." + } + } + }, "InstancesExportRequest": { "id": "InstancesExportRequest", "type": "object", @@ -1933,6 +2012,40 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "demoteMaster": { + "id": "sql.instances.demoteMaster", + "path": "projects/{project}/instances/{instance}/demoteMaster", + "httpMethod": "POST", + "description": "Demotes the standalone instance to be a read replica Cloud SQL instance of an on-premises master.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance name.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesDemoteMasterRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "export": { "id": "sql.instances.export", "path": "projects/{project}/instances/{instance}/export", diff --git a/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-gen.go b/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-gen.go index 248cae02a..46f56a27b 100644 --- a/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-gen.go +++ b/vendor/google.golang.org/api/sqladmin/v1beta4/sqladmin-gen.go @@ -755,6 +755,128 @@ func (s *DatabasesListResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DemoteMasterConfiguration: Read-replica configuration for connecting +// to the on-premises master. +type DemoteMasterConfiguration struct { + // Kind: This is always sql#demoteMasterConfiguration. + Kind string `json:"kind,omitempty"` + + // MysqlReplicaConfiguration: MySQL specific configuration when + // replicating from a MySQL on-premises master. Replication + // configuration information such as the username, password, + // certificates, and keys are not stored in the instance metadata. The + // configuration information is used only to set up the replication + // connection and is stored by MySQL in a file named master.info in the + // data directory. + MysqlReplicaConfiguration *DemoteMasterMySqlReplicaConfiguration `json:"mysqlReplicaConfiguration,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Kind") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DemoteMasterConfiguration) MarshalJSON() ([]byte, error) { + type noMethod DemoteMasterConfiguration + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DemoteMasterContext: Database instance demote master context. +type DemoteMasterContext struct { + // Kind: This is always sql#demoteMasterContext. + Kind string `json:"kind,omitempty"` + + // MasterInstanceName: The name of the instance which will act as + // on-premises master in the replication setup. + MasterInstanceName string `json:"masterInstanceName,omitempty"` + + // ReplicaConfiguration: Configuration specific to read-replicas + // replicating from the on-premises master. + ReplicaConfiguration *DemoteMasterConfiguration `json:"replicaConfiguration,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Kind") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DemoteMasterContext) MarshalJSON() ([]byte, error) { + type noMethod DemoteMasterContext + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DemoteMasterMySqlReplicaConfiguration: Read-replica configuration +// specific to MySQL databases. +type DemoteMasterMySqlReplicaConfiguration struct { + // CaCertificate: PEM representation of the trusted CA's x509 + // certificate. + CaCertificate string `json:"caCertificate,omitempty"` + + // ClientCertificate: PEM representation of the slave's x509 + // certificate. + ClientCertificate string `json:"clientCertificate,omitempty"` + + // ClientKey: PEM representation of the slave's private key. The + // corresponsing public key is encoded in the client's certificate. The + // format of the slave's private key can be either PKCS #1 or PKCS #8. + ClientKey string `json:"clientKey,omitempty"` + + // Kind: This is always sql#demoteMasterMysqlReplicaConfiguration. + Kind string `json:"kind,omitempty"` + + // Password: The password for the replication connection. + Password string `json:"password,omitempty"` + + // Username: The username for the replication connection. + Username string `json:"username,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CaCertificate") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CaCertificate") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DemoteMasterMySqlReplicaConfiguration) MarshalJSON() ([]byte, error) { + type noMethod DemoteMasterMySqlReplicaConfiguration + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ExportContext: Database instance export context. type ExportContext struct { // CsvExportOptions: Options for exporting data as CSV. @@ -1107,6 +1229,36 @@ func (s *InstancesCloneRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// InstancesDemoteMasterRequest: Database demote master request. +type InstancesDemoteMasterRequest struct { + // DemoteMasterContext: Contains details about the demoteMaster + // operation. + DemoteMasterContext *DemoteMasterContext `json:"demoteMasterContext,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DemoteMasterContext") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DemoteMasterContext") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InstancesDemoteMasterRequest) MarshalJSON() ([]byte, error) { + type noMethod InstancesDemoteMasterRequest + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // InstancesExportRequest: Database instance export request. type InstancesExportRequest struct { // ExportContext: Contains details about the export operation. @@ -4358,6 +4510,151 @@ func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, erro } +// method id "sql.instances.demoteMaster": + +type InstancesDemoteMasterCall struct { + s *Service + project string + instance string + instancesdemotemasterrequest *InstancesDemoteMasterRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DemoteMaster: Demotes the standalone instance to be a read replica +// Cloud SQL instance of an on-premises master. +func (r *InstancesService) DemoteMaster(project string, instance string, instancesdemotemasterrequest *InstancesDemoteMasterRequest) *InstancesDemoteMasterCall { + c := &InstancesDemoteMasterCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.instance = instance + c.instancesdemotemasterrequest = instancesdemotemasterrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InstancesDemoteMasterCall) Fields(s ...googleapi.Field) *InstancesDemoteMasterCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InstancesDemoteMasterCall) Context(ctx context.Context) *InstancesDemoteMasterCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InstancesDemoteMasterCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesDemoteMasterCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesdemotemasterrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/instances/{instance}/demoteMaster") + urls += "?" + c.urlParams_.Encode() + req, _ := http.NewRequest("POST", urls, body) + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "instance": c.instance, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "sql.instances.demoteMaster" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InstancesDemoteMasterCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := json.NewDecoder(res.Body).Decode(target); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Demotes the standalone instance to be a read replica Cloud SQL instance of an on-premises master.", + // "httpMethod": "POST", + // "id": "sql.instances.demoteMaster", + // "parameterOrder": [ + // "project", + // "instance" + // ], + // "parameters": { + // "instance": { + // "description": "Cloud SQL instance name.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "project": { + // "description": "ID of the project that contains the instance.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "projects/{project}/instances/{instance}/demoteMaster", + // "request": { + // "$ref": "InstancesDemoteMasterRequest" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/sqlservice.admin" + // ] + // } + +} + // method id "sql.instances.export": type InstancesExportCall struct { diff --git a/vendor/google.golang.org/api/storage/v1/storage-api.json b/vendor/google.golang.org/api/storage/v1/storage-api.json index d5eb39a44..e30379b28 100644 --- a/vendor/google.golang.org/api/storage/v1/storage-api.json +++ b/vendor/google.golang.org/api/storage/v1/storage-api.json @@ -1,11 +1,11 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/aAU6-GJtzQTwC546w_DsCPIRIUA\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/wG6rmEvDnTlddzJg86OD2al2nik\"", "discoveryVersion": "v1", "id": "storage:v1", "name": "storage", "version": "v1", - "revision": "20170915", + "revision": "20171004", "title": "Cloud Storage JSON API", "description": "Stores and retrieves potentially large, immutable data objects.", "ownerDomain": "google.com", @@ -1090,7 +1090,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1123,7 +1123,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1153,7 +1153,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1185,7 +1185,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1220,7 +1220,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1259,7 +1259,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1308,7 +1308,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1360,7 +1360,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1392,7 +1392,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1477,7 +1477,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request", "location": "query" } }, @@ -1541,7 +1541,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request.", "location": "query" } }, @@ -1638,7 +1638,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1670,7 +1670,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1710,7 +1710,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1808,7 +1808,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1871,7 +1871,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1904,7 +1904,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1934,7 +1934,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -1978,7 +1978,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2013,7 +2013,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2052,7 +2052,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2095,7 +2095,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2129,7 +2129,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2162,7 +2162,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2195,7 +2195,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2249,7 +2249,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2295,7 +2295,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2338,7 +2338,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2383,7 +2383,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2431,7 +2431,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2483,7 +2483,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2565,7 +2565,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2707,7 +2707,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2781,7 +2781,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2858,7 +2858,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -2905,7 +2905,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3011,7 +3011,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3098,7 +3098,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" }, "versions": { @@ -3206,7 +3206,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3361,7 +3361,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3409,7 +3409,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3462,7 +3462,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3566,7 +3566,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" } }, @@ -3637,7 +3637,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query" }, "versions": { @@ -3685,7 +3685,7 @@ }, "userProject": { "type": "string", - "description": "The project to be billed for this request, for Requester Pays buckets.", + "description": "The project to be billed for this request.", "location": "query" } }, diff --git a/vendor/google.golang.org/api/storage/v1/storage-gen.go b/vendor/google.golang.org/api/storage/v1/storage-gen.go index ae840c4d8..e311c29ce 100644 --- a/vendor/google.golang.org/api/storage/v1/storage-gen.go +++ b/vendor/google.golang.org/api/storage/v1/storage-gen.go @@ -1839,7 +1839,7 @@ func (r *BucketAccessControlsService) Delete(bucket string, entity string) *Buck } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsDeleteCall) UserProject(userProject string) *BucketAccessControlsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -1923,7 +1923,7 @@ func (c *BucketAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) error // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -1959,7 +1959,7 @@ func (r *BucketAccessControlsService) Get(bucket string, entity string) *BucketA } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsGetCall) UserProject(userProject string) *BucketAccessControlsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -2081,7 +2081,7 @@ func (c *BucketAccessControlsGetCall) Do(opts ...googleapi.CallOption) (*BucketA // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2118,7 +2118,7 @@ func (r *BucketAccessControlsService) Insert(bucket string, bucketaccesscontrol } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsInsertCall) UserProject(userProject string) *BucketAccessControlsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -2224,7 +2224,7 @@ func (c *BucketAccessControlsInsertCall) Do(opts ...googleapi.CallOption) (*Buck // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2263,7 +2263,7 @@ func (r *BucketAccessControlsService) List(bucket string) *BucketAccessControlsL } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsListCall) UserProject(userProject string) *BucketAccessControlsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -2377,7 +2377,7 @@ func (c *BucketAccessControlsListCall) Do(opts ...googleapi.CallOption) (*Bucket // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2417,7 +2417,7 @@ func (r *BucketAccessControlsService) Patch(bucket string, entity string, bucket } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsPatchCall) UserProject(userProject string) *BucketAccessControlsPatchCall { c.urlParams_.Set("userProject", userProject) return c @@ -2531,7 +2531,7 @@ func (c *BucketAccessControlsPatchCall) Do(opts ...googleapi.CallOption) (*Bucke // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2573,7 +2573,7 @@ func (r *BucketAccessControlsService) Update(bucket string, entity string, bucke } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsUpdateCall) UserProject(userProject string) *BucketAccessControlsUpdateCall { c.urlParams_.Set("userProject", userProject) return c @@ -2687,7 +2687,7 @@ func (c *BucketAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) (*Buck // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2741,7 +2741,7 @@ func (c *BucketsDeleteCall) IfMetagenerationNotMatch(ifMetagenerationNotMatch in } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsDeleteCall) UserProject(userProject string) *BucketsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -2829,7 +2829,7 @@ func (c *BucketsDeleteCall) Do(opts ...googleapi.CallOption) error { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -2892,7 +2892,7 @@ func (c *BucketsGetCall) Projection(projection string) *BucketsGetCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsGetCall) UserProject(userProject string) *BucketsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -3031,7 +3031,7 @@ func (c *BucketsGetCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -3070,7 +3070,7 @@ func (r *BucketsService) GetIamPolicy(bucket string) *BucketsGetIamPolicyCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsGetIamPolicyCall) UserProject(userProject string) *BucketsGetIamPolicyCall { c.urlParams_.Set("userProject", userProject) return c @@ -3184,7 +3184,7 @@ func (c *BucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -3275,7 +3275,7 @@ func (c *BucketsInsertCall) Projection(projection string) *BucketsInsertCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request func (c *BucketsInsertCall) UserProject(userProject string) *BucketsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -3431,7 +3431,7 @@ func (c *BucketsInsertCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request", // "location": "query", // "type": "string" // } @@ -3504,7 +3504,7 @@ func (c *BucketsListCall) Projection(projection string) *BucketsListCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. func (c *BucketsListCall) UserProject(userProject string) *BucketsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -3646,7 +3646,7 @@ func (c *BucketsListCall) Do(opts ...googleapi.CallOption) (*Buckets, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request.", // "location": "query", // "type": "string" // } @@ -3777,7 +3777,7 @@ func (c *BucketsPatchCall) Projection(projection string) *BucketsPatchCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsPatchCall) UserProject(userProject string) *BucketsPatchCall { c.urlParams_.Set("userProject", userProject) return c @@ -3948,7 +3948,7 @@ func (c *BucketsPatchCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -3988,7 +3988,7 @@ func (r *BucketsService) SetIamPolicy(bucket string, policy *Policy) *BucketsSet } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsSetIamPolicyCall) UserProject(userProject string) *BucketsSetIamPolicyCall { c.urlParams_.Set("userProject", userProject) return c @@ -4094,7 +4094,7 @@ func (c *BucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -4136,7 +4136,7 @@ func (r *BucketsService) TestIamPermissions(bucket string, permissions []string) } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsTestIamPermissionsCall) UserProject(userProject string) *BucketsTestIamPermissionsCall { c.urlParams_.Set("userProject", userProject) return c @@ -4258,7 +4258,7 @@ func (c *BucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestI // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -4368,7 +4368,7 @@ func (c *BucketsUpdateCall) Projection(projection string) *BucketsUpdateCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *BucketsUpdateCall) UserProject(userProject string) *BucketsUpdateCall { c.urlParams_.Set("userProject", userProject) return c @@ -4539,7 +4539,7 @@ func (c *BucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -4674,7 +4674,7 @@ func (r *DefaultObjectAccessControlsService) Delete(bucket string, entity string } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsDeleteCall) UserProject(userProject string) *DefaultObjectAccessControlsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -4758,7 +4758,7 @@ func (c *DefaultObjectAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -4794,7 +4794,7 @@ func (r *DefaultObjectAccessControlsService) Get(bucket string, entity string) * } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsGetCall) UserProject(userProject string) *DefaultObjectAccessControlsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -4916,7 +4916,7 @@ func (c *DefaultObjectAccessControlsGetCall) Do(opts ...googleapi.CallOption) (* // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -4954,7 +4954,7 @@ func (r *DefaultObjectAccessControlsService) Insert(bucket string, objectaccessc } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsInsertCall) UserProject(userProject string) *DefaultObjectAccessControlsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -5060,7 +5060,7 @@ func (c *DefaultObjectAccessControlsInsertCall) Do(opts ...googleapi.CallOption) // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5116,7 +5116,7 @@ func (c *DefaultObjectAccessControlsListCall) IfMetagenerationNotMatch(ifMetagen } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsListCall) UserProject(userProject string) *DefaultObjectAccessControlsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -5242,7 +5242,7 @@ func (c *DefaultObjectAccessControlsListCall) Do(opts ...googleapi.CallOption) ( // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5282,7 +5282,7 @@ func (r *DefaultObjectAccessControlsService) Patch(bucket string, entity string, } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsPatchCall) UserProject(userProject string) *DefaultObjectAccessControlsPatchCall { c.urlParams_.Set("userProject", userProject) return c @@ -5396,7 +5396,7 @@ func (c *DefaultObjectAccessControlsPatchCall) Do(opts ...googleapi.CallOption) // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5438,7 +5438,7 @@ func (r *DefaultObjectAccessControlsService) Update(bucket string, entity string } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsUpdateCall) UserProject(userProject string) *DefaultObjectAccessControlsUpdateCall { c.urlParams_.Set("userProject", userProject) return c @@ -5552,7 +5552,7 @@ func (c *DefaultObjectAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5592,7 +5592,7 @@ func (r *NotificationsService) Delete(bucket string, notification string) *Notif } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *NotificationsDeleteCall) UserProject(userProject string) *NotificationsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -5676,7 +5676,7 @@ func (c *NotificationsDeleteCall) Do(opts ...googleapi.CallOption) error { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5712,7 +5712,7 @@ func (r *NotificationsService) Get(bucket string, notification string) *Notifica } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *NotificationsGetCall) UserProject(userProject string) *NotificationsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -5834,7 +5834,7 @@ func (c *NotificationsGetCall) Do(opts ...googleapi.CallOption) (*Notification, // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -5874,7 +5874,7 @@ func (r *NotificationsService) Insert(bucket string, notification *Notification) } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *NotificationsInsertCall) UserProject(userProject string) *NotificationsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -5980,7 +5980,7 @@ func (c *NotificationsInsertCall) Do(opts ...googleapi.CallOption) (*Notificatio // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6021,7 +6021,7 @@ func (r *NotificationsService) List(bucket string) *NotificationsListCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *NotificationsListCall) UserProject(userProject string) *NotificationsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -6135,7 +6135,7 @@ func (c *NotificationsListCall) Do(opts ...googleapi.CallOption) (*Notifications // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6186,7 +6186,7 @@ func (c *ObjectAccessControlsDeleteCall) Generation(generation int64) *ObjectAcc } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsDeleteCall) UserProject(userProject string) *ObjectAccessControlsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -6284,7 +6284,7 @@ func (c *ObjectAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) error // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6330,7 +6330,7 @@ func (c *ObjectAccessControlsGetCall) Generation(generation int64) *ObjectAccess } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsGetCall) UserProject(userProject string) *ObjectAccessControlsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -6466,7 +6466,7 @@ func (c *ObjectAccessControlsGetCall) Do(opts ...googleapi.CallOption) (*ObjectA // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6513,7 +6513,7 @@ func (c *ObjectAccessControlsInsertCall) Generation(generation int64) *ObjectAcc } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsInsertCall) UserProject(userProject string) *ObjectAccessControlsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -6633,7 +6633,7 @@ func (c *ObjectAccessControlsInsertCall) Do(opts ...googleapi.CallOption) (*Obje // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6682,7 +6682,7 @@ func (c *ObjectAccessControlsListCall) Generation(generation int64) *ObjectAcces } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsListCall) UserProject(userProject string) *ObjectAccessControlsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -6810,7 +6810,7 @@ func (c *ObjectAccessControlsListCall) Do(opts ...googleapi.CallOption) (*Object // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -6860,7 +6860,7 @@ func (c *ObjectAccessControlsPatchCall) Generation(generation int64) *ObjectAcce } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsPatchCall) UserProject(userProject string) *ObjectAccessControlsPatchCall { c.urlParams_.Set("userProject", userProject) return c @@ -6988,7 +6988,7 @@ func (c *ObjectAccessControlsPatchCall) Do(opts ...googleapi.CallOption) (*Objec // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -7040,7 +7040,7 @@ func (c *ObjectAccessControlsUpdateCall) Generation(generation int64) *ObjectAcc } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsUpdateCall) UserProject(userProject string) *ObjectAccessControlsUpdateCall { c.urlParams_.Set("userProject", userProject) return c @@ -7168,7 +7168,7 @@ func (c *ObjectAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) (*Obje // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -7259,7 +7259,7 @@ func (c *ObjectsComposeCall) KmsKeyName(kmsKeyName string) *ObjectsComposeCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsComposeCall) UserProject(userProject string) *ObjectsComposeCall { c.urlParams_.Set("userProject", userProject) return c @@ -7427,7 +7427,7 @@ func (c *ObjectsComposeCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -7591,7 +7591,7 @@ func (c *ObjectsCopyCall) SourceGeneration(sourceGeneration int64) *ObjectsCopyC } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsCopyCall) UserProject(userProject string) *ObjectsCopyCall { c.urlParams_.Set("userProject", userProject) return c @@ -7825,7 +7825,7 @@ func (c *ObjectsCopyCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -7914,7 +7914,7 @@ func (c *ObjectsDeleteCall) IfMetagenerationNotMatch(ifMetagenerationNotMatch in } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsDeleteCall) UserProject(userProject string) *ObjectsDeleteCall { c.urlParams_.Set("userProject", userProject) return c @@ -8028,7 +8028,7 @@ func (c *ObjectsDeleteCall) Do(opts ...googleapi.CallOption) error { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -8119,7 +8119,7 @@ func (c *ObjectsGetCall) Projection(projection string) *ObjectsGetCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsGetCall) UserProject(userProject string) *ObjectsGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -8300,7 +8300,7 @@ func (c *ObjectsGetCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -8351,7 +8351,7 @@ func (c *ObjectsGetIamPolicyCall) Generation(generation int64) *ObjectsGetIamPol } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsGetIamPolicyCall) UserProject(userProject string) *ObjectsGetIamPolicyCall { c.urlParams_.Set("userProject", userProject) return c @@ -8479,7 +8479,7 @@ func (c *ObjectsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -8618,7 +8618,7 @@ func (c *ObjectsInsertCall) Projection(projection string) *ObjectsInsertCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsInsertCall) UserProject(userProject string) *ObjectsInsertCall { c.urlParams_.Set("userProject", userProject) return c @@ -8881,7 +8881,7 @@ func (c *ObjectsInsertCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -8971,7 +8971,7 @@ func (c *ObjectsListCall) Projection(projection string) *ObjectsListCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsListCall) UserProject(userProject string) *ObjectsListCall { c.urlParams_.Set("userProject", userProject) return c @@ -9129,7 +9129,7 @@ func (c *ObjectsListCall) Do(opts ...googleapi.CallOption) (*Objects, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // }, @@ -9274,7 +9274,7 @@ func (c *ObjectsPatchCall) Projection(projection string) *ObjectsPatchCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsPatchCall) UserProject(userProject string) *ObjectsPatchCall { c.urlParams_.Set("userProject", userProject) return c @@ -9452,7 +9452,7 @@ func (c *ObjectsPatchCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -9648,7 +9648,7 @@ func (c *ObjectsRewriteCall) SourceGeneration(sourceGeneration int64) *ObjectsRe } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsRewriteCall) UserProject(userProject string) *ObjectsRewriteCall { c.urlParams_.Set("userProject", userProject) return c @@ -9882,7 +9882,7 @@ func (c *ObjectsRewriteCall) Do(opts ...googleapi.CallOption) (*RewriteResponse, // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -9933,7 +9933,7 @@ func (c *ObjectsSetIamPolicyCall) Generation(generation int64) *ObjectsSetIamPol } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsSetIamPolicyCall) UserProject(userProject string) *ObjectsSetIamPolicyCall { c.urlParams_.Set("userProject", userProject) return c @@ -10053,7 +10053,7 @@ func (c *ObjectsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -10105,7 +10105,7 @@ func (c *ObjectsTestIamPermissionsCall) Generation(generation int64) *ObjectsTes } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsTestIamPermissionsCall) UserProject(userProject string) *ObjectsTestIamPermissionsCall { c.urlParams_.Set("userProject", userProject) return c @@ -10241,7 +10241,7 @@ func (c *ObjectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestI // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -10358,7 +10358,7 @@ func (c *ObjectsUpdateCall) Projection(projection string) *ObjectsUpdateCall { } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsUpdateCall) UserProject(userProject string) *ObjectsUpdateCall { c.urlParams_.Set("userProject", userProject) return c @@ -10552,7 +10552,7 @@ func (c *ObjectsUpdateCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // } @@ -10641,7 +10641,7 @@ func (c *ObjectsWatchAllCall) Projection(projection string) *ObjectsWatchAllCall } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. Required for Requester Pays buckets. func (c *ObjectsWatchAllCall) UserProject(userProject string) *ObjectsWatchAllCall { c.urlParams_.Set("userProject", userProject) return c @@ -10791,7 +10791,7 @@ func (c *ObjectsWatchAllCall) Do(opts ...googleapi.CallOption) (*Channel, error) // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", // "type": "string" // }, @@ -10841,7 +10841,7 @@ func (r *ProjectsServiceAccountService) Get(projectId string) *ProjectsServiceAc } // UserProject sets the optional parameter "userProject": The project to -// be billed for this request, for Requester Pays buckets. +// be billed for this request. func (c *ProjectsServiceAccountGetCall) UserProject(userProject string) *ProjectsServiceAccountGetCall { c.urlParams_.Set("userProject", userProject) return c @@ -10955,7 +10955,7 @@ func (c *ProjectsServiceAccountGetCall) Do(opts ...googleapi.CallOption) (*Servi // "type": "string" // }, // "userProject": { - // "description": "The project to be billed for this request, for Requester Pays buckets.", + // "description": "The project to be billed for this request.", // "location": "query", // "type": "string" // } diff --git a/vendor/google.golang.org/api/storagetransfer/v1/storagetransfer-api.json b/vendor/google.golang.org/api/storagetransfer/v1/storagetransfer-api.json index f2c8065ec..d8372aa6e 100644 --- a/vendor/google.golang.org/api/storagetransfer/v1/storagetransfer-api.json +++ b/vendor/google.golang.org/api/storagetransfer/v1/storagetransfer-api.json @@ -1,4 +1,25 @@ { + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "kind": "discovery#restDescription", + "description": "Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets.", + "servicePath": "", + "rootUrl": "https://storagetransfer.googleapis.com/", + "basePath": "", + "ownerDomain": "google.com", + "name": "storagetransfer", + "batchPath": "batch", + "documentationLink": "https://cloud.google.com/storage/transfer", + "id": "storagetransfer:v1", + "revision": "20171012", + "title": "Google Storage Transfer API", "ownerName": "Google", "discoveryVersion": "v1", "version_module": true, @@ -6,36 +27,34 @@ "googleServiceAccounts": { "methods": { "get": { - "description": "Returns the Google service account that is used by Storage Transfer\nService to access buckets in the project where transfers\nrun or in other projects. Each Google service account is associated\nwith one Google Cloud Platform Console project. Users\nshould add this service account to the Google Cloud Storage bucket\nACLs to grant access to Storage Transfer Service. This service\naccount is created and owned by Storage Transfer Service and can\nonly be used by Storage Transfer Service.", - "httpMethod": "GET", - "parameterOrder": [ - "projectId" - ], "response": { "$ref": "GoogleServiceAccount" }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "projectId": { + "location": "path", "description": "The ID of the Google Cloud Platform Console project that the Google service\naccount is associated with.\nRequired.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "flatPath": "v1/googleServiceAccounts/{projectId}", + "id": "storagetransfer.googleServiceAccounts.get", "path": "v1/googleServiceAccounts/{projectId}", - "id": "storagetransfer.googleServiceAccounts.get" + "description": "Returns the Google service account that is used by Storage Transfer\nService to access buckets in the project where transfers\nrun or in other projects. Each Google service account is associated\nwith one Google Cloud Platform Console project. Users\nshould add this service account to the Google Cloud Storage bucket\nACLs to grant access to Storage Transfer Service. This service\naccount is created and owned by Storage Transfer Service and can\nonly be used by Storage Transfer Service." } } }, "transferOperations": { "methods": { "resume": { - "path": "v1/{+name}:resume", - "id": "storagetransfer.transferOperations.resume", "description": "Resumes a transfer operation that is paused.", "request": { "$ref": "ResumeTransferOperationRequest" @@ -49,220 +68,201 @@ }, "parameters": { "name": { - "description": "The name of the transfer operation.\nRequired.", "type": "string", "required": true, "pattern": "^transferOperations/.+$", - "location": "path" + "location": "path", + "description": "The name of the transfer operation.\nRequired." } }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/transferOperations/{transferOperationsId}:resume" + "flatPath": "v1/transferOperations/{transferOperationsId}:resume", + "path": "v1/{+name}:resume", + "id": "storagetransfer.transferOperations.resume" }, "cancel": { - "path": "v1/{+name}:cancel", - "id": "storagetransfer.transferOperations.cancel", - "description": "Cancels a transfer. Use the get method to check whether the cancellation succeeded or whether the operation completed despite cancellation.", - "httpMethod": "POST", "response": { "$ref": "Empty" }, "parameterOrder": [ "name" ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], + "httpMethod": "POST", "parameters": { "name": { - "description": "The name of the operation resource to be cancelled.", "type": "string", "required": true, "pattern": "^transferOperations/.+$", - "location": "path" + "location": "path", + "description": "The name of the operation resource to be cancelled." } }, - "flatPath": "v1/transferOperations/{transferOperationsId}:cancel" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/transferOperations/{transferOperationsId}:cancel", + "id": "storagetransfer.transferOperations.cancel", + "path": "v1/{+name}:cancel", + "description": "Cancels a transfer. Use the get method to check whether the cancellation succeeded or whether the operation completed despite cancellation." }, "get": { + "response": { + "$ref": "Operation" + }, + "parameterOrder": [ + "name" + ], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { + "location": "path", "description": "The name of the operation resource.", "type": "string", "required": true, - "pattern": "^transferOperations/.+$", - "location": "path" + "pattern": "^transferOperations/.+$" } }, "flatPath": "v1/transferOperations/{transferOperationsId}", - "path": "v1/{+name}", "id": "storagetransfer.transferOperations.get", - "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", - "httpMethod": "GET", - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Operation" - } + "path": "v1/{+name}", + "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice." }, "pause": { - "httpMethod": "POST", - "parameterOrder": [ - "name" - ], "response": { "$ref": "Empty" }, + "parameterOrder": [ + "name" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { + "location": "path", "description": "The name of the transfer operation.\nRequired.", "type": "string", "required": true, - "pattern": "^transferOperations/.+$", - "location": "path" + "pattern": "^transferOperations/.+$" } }, "flatPath": "v1/transferOperations/{transferOperationsId}:pause", - "path": "v1/{+name}:pause", "id": "storagetransfer.transferOperations.pause", + "path": "v1/{+name}:pause", "request": { "$ref": "PauseTransferOperationRequest" }, "description": "Pauses a transfer operation." }, "delete": { - "httpMethod": "DELETE", + "flatPath": "v1/transferOperations/{transferOperationsId}", + "id": "storagetransfer.transferOperations.delete", + "path": "v1/{+name}", + "description": "This method is not supported and the server returns `UNIMPLEMENTED`.", "response": { "$ref": "Empty" }, "parameterOrder": [ "name" ], + "httpMethod": "DELETE", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "name": { + "type": "string", + "required": true, "pattern": "^transferOperations/.+$", "location": "path", - "description": "The name of the operation resource to be deleted.", - "type": "string", - "required": true + "description": "The name of the operation resource to be deleted." } - }, - "flatPath": "v1/transferOperations/{transferOperationsId}", - "path": "v1/{+name}", - "id": "storagetransfer.transferOperations.delete", - "description": "This method is not supported and the server returns `UNIMPLEMENTED`." + } }, "list": { - "id": "storagetransfer.transferOperations.list", - "path": "v1/{+name}", "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.", + "httpMethod": "GET", "response": { "$ref": "ListOperationsResponse" }, "parameterOrder": [ "name" ], - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A list of query parameters specified as JSON text in the form of {\\\"project_id\\\" : \\\"my_project_id\\\", \\\"job_names\\\" : [\\\"jobid1\\\", \\\"jobid2\\\",...], \\\"operation_names\\\" : [\\\"opid1\\\", \\\"opid2\\\",...], \\\"transfer_statuses\\\":[\\\"status1\\\", \\\"status2\\\",...]}. Since `job_names`, `operation_names`, and `transfer_statuses` support multiple values, they must be specified with array notation. `job_names`, `operation_names`, and `transfer_statuses` are optional.", - "type": "string", - "location": "query" - }, - "pageToken": { - "description": "The list page token.", - "type": "string", - "location": "query" - }, - "name": { - "description": "The value `transferOperations`.", - "type": "string", - "required": true, - "pattern": "^transferOperations$", - "location": "path" - }, - "pageSize": { - "format": "int32", - "description": "The list page size. The max allowed value is 256.", - "type": "integer", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/transferOperations" - } - } - }, - "transferJobs": { - "methods": { - "create": { - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/transferJobs", - "id": "storagetransfer.transferJobs.create", - "path": "v1/transferJobs", - "description": "Creates a transfer job that runs periodically.", - "request": { - "$ref": "TransferJob" - }, - "response": { - "$ref": "TransferJob" - }, - "parameterOrder": [], - "httpMethod": "POST" - }, - "list": { "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": { "filter": { "location": "query", - "description": "A list of query parameters specified as JSON text in the form of\n{\"project_id\":\"my_project_id\",\n\"job_names\":[\"jobid1\",\"jobid2\",...],\n\"job_statuses\":[\"status1\",\"status2\",...]}.\nSince `job_names` and `job_statuses` support multiple values, their values\nmust be specified with array notation. `project_id` is required. `job_names`\nand `job_statuses` are optional. The valid values for `job_statuses` are\ncase-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.", + "description": "A list of query parameters specified as JSON text in the form of {\\\"project_id\\\" : \\\"my_project_id\\\", \\\"job_names\\\" : [\\\"jobid1\\\", \\\"jobid2\\\",...], \\\"operation_names\\\" : [\\\"opid1\\\", \\\"opid2\\\",...], \\\"transfer_statuses\\\":[\\\"status1\\\", \\\"status2\\\",...]}. Since `job_names`, `operation_names`, and `transfer_statuses` support multiple values, they must be specified with array notation. `job_names`, `operation_names`, and `transfer_statuses` are optional.", "type": "string" }, "pageToken": { - "description": "The list page token.", "type": "string", - "location": "query" + "location": "query", + "description": "The list page token." + }, + "name": { + "location": "path", + "description": "The value `transferOperations`.", + "type": "string", + "required": true, + "pattern": "^transferOperations$" }, "pageSize": { + "location": "query", "format": "int32", "description": "The list page size. The max allowed value is 256.", - "type": "integer", - "location": "query" + "type": "integer" } }, - "flatPath": "v1/transferJobs", - "path": "v1/transferJobs", - "id": "storagetransfer.transferJobs.list", - "description": "Lists transfer jobs.", - "httpMethod": "GET", + "flatPath": "v1/transferOperations", + "path": "v1/{+name}", + "id": "storagetransfer.transferOperations.list" + } + } + }, + "transferJobs": { + "methods": { + "list": { "response": { "$ref": "ListTransferJobsResponse" }, - "parameterOrder": [] + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "The list page token." + }, + "pageSize": { + "type": "integer", + "location": "query", + "format": "int32", + "description": "The list page size. The max allowed value is 256." + }, + "filter": { + "location": "query", + "description": "A list of query parameters specified as JSON text in the form of\n{\"project_id\":\"my_project_id\",\n\"job_names\":[\"jobid1\",\"jobid2\",...],\n\"job_statuses\":[\"status1\",\"status2\",...]}.\nSince `job_names` and `job_statuses` support multiple values, their values\nmust be specified with array notation. `project_id` is required. `job_names`\nand `job_statuses` are optional. The valid values for `job_statuses` are\ncase-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/transferJobs", + "id": "storagetransfer.transferJobs.list", + "path": "v1/transferJobs", + "description": "Lists transfer jobs." }, "get": { - "id": "storagetransfer.transferJobs.get", - "path": "v1/{+jobName}", - "description": "Gets a transfer job.", "response": { "$ref": "TransferJob" }, @@ -270,24 +270,27 @@ "jobName" ], "httpMethod": "GET", - "parameters": { - "projectId": { - "description": "The ID of the Google Cloud Platform Console project that owns the job.\nRequired.", - "type": "string", - "location": "query" - }, - "jobName": { - "pattern": "^transferJobs/.+$", - "location": "path", - "description": "The job to get.\nRequired.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], - "flatPath": "v1/transferJobs/{transferJobsId}" + "parameters": { + "projectId": { + "location": "query", + "description": "The ID of the Google Cloud Platform Console project that owns the job.\nRequired.", + "type": "string" + }, + "jobName": { + "type": "string", + "required": true, + "pattern": "^transferJobs/.+$", + "location": "path", + "description": "The job to get.\nRequired." + } + }, + "flatPath": "v1/transferJobs/{transferJobsId}", + "id": "storagetransfer.transferJobs.get", + "path": "v1/{+jobName}", + "description": "Gets a transfer job." }, "patch": { "response": { @@ -299,11 +302,11 @@ "httpMethod": "PATCH", "parameters": { "jobName": { + "type": "string", + "required": true, "pattern": "^transferJobs/.+$", "location": "path", - "description": "The name of job to update.\nRequired.", - "type": "string", - "required": true + "description": "The name of job to update.\nRequired." } }, "scopes": [ @@ -316,54 +319,38 @@ "request": { "$ref": "UpdateTransferJobRequest" } + }, + "create": { + "request": { + "$ref": "TransferJob" + }, + "description": "Creates a transfer job that runs periodically.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "TransferJob" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {}, + "flatPath": "v1/transferJobs", + "path": "v1/transferJobs", + "id": "storagetransfer.transferJobs.create" } } } }, "parameters": { - "$.xgafv": { - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" - ] - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "alt": { - "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", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string" - }, "key": { "location": "query", "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.", "type": "string" }, "access_token": { + "location": "query", "description": "OAuth access token.", - "type": "string", - "location": "query" + "type": "string" }, "quotaUser": { "location": "query", @@ -382,57 +369,396 @@ "type": "string" }, "oauth_token": { - "description": "OAuth 2.0 token for the current user.", "type": "string", - "location": "query" + "location": "query", + "description": "OAuth 2.0 token for the current user." }, "upload_protocol": { + "type": "string", "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." }, "prettyPrint": { - "description": "Returns response with indentations and line breaks.", "default": "true", "type": "boolean", - "location": "query" + "location": "query", + "description": "Returns response with indentations and line breaks." }, "fields": { + "type": "string", "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "description": "Selector specifying which fields to include in a partial response." }, "uploadType": { "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string" + }, + "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string", + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ] + }, + "callback": { + "type": "string", + "location": "query", + "description": "JSONP" + }, + "alt": { + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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", + "description": "Data format for response." } }, "schemas": { + "UpdateTransferJobRequest": { + "type": "object", + "properties": { + "transferJob": { + "$ref": "TransferJob", + "description": "The job to update. `transferJob` is expected to specify only three fields:\n`description`, `transferSpec`, and `status`. An UpdateTransferJobRequest\nthat specifies other fields will be rejected with an error\n`INVALID_ARGUMENT`.\nRequired." + }, + "projectId": { + "description": "The ID of the Google Cloud Platform Console project that owns the job.\nRequired.", + "type": "string" + }, + "updateTransferJobFieldMask": { + "format": "google-fieldmask", + "description": "The field mask of the fields in `transferJob` that are to be updated in\nthis request. Fields in `transferJob` that can be updated are:\n`description`, `transferSpec`, and `status`. To update the `transferSpec`\nof the job, a complete transfer specification has to be provided. An\nincomplete specification which misses any required fields will be rejected\nwith the error `INVALID_ARGUMENT`.", + "type": "string" + } + }, + "id": "UpdateTransferJobRequest", + "description": "Request passed to UpdateTransferJob." + }, + "ObjectConditions": { + "description": "Conditions that determine which objects will be transferred.", + "type": "object", + "properties": { + "excludePrefixes": { + "items": { + "type": "string" + }, + "type": "array", + "description": "`excludePrefixes` must follow the requirements described for\n`includePrefixes`.\n\nThe max size of `excludePrefixes` is 1000." + }, + "minTimeElapsedSinceLastModification": { + "type": "string", + "format": "google-duration", + "description": "If unspecified, `minTimeElapsedSinceLastModification` takes a zero value\nand `maxTimeElapsedSinceLastModification` takes the maximum possible\nvalue of Duration. Objects that satisfy the object conditions\nmust either have a `lastModificationTime` greater or equal to\n`NOW` - `maxTimeElapsedSinceLastModification` and less than\n`NOW` - `minTimeElapsedSinceLastModification`, or not have a\n`lastModificationTime`." + }, + "maxTimeElapsedSinceLastModification": { + "type": "string", + "format": "google-duration", + "description": "`maxTimeElapsedSinceLastModification` is the complement to\n`minTimeElapsedSinceLastModification`." + }, + "includePrefixes": { + "items": { + "type": "string" + }, + "type": "array", + "description": "If `includePrefixes` is specified, objects that satisfy the object\nconditions must have names that start with one of the `includePrefixes`\nand that do not start with any of the `excludePrefixes`. If `includePrefixes`\nis not specified, all objects except those that have names starting with\none of the `excludePrefixes` must satisfy the object conditions.\n\nRequirements:\n\n * Each include-prefix and exclude-prefix can contain any sequence of\n Unicode characters, of max length 1024 bytes when UTF8-encoded, and\n must not contain Carriage Return or Line Feed characters. Wildcard\n matching and regular expression matching are not supported.\n\n * Each include-prefix and exclude-prefix must omit the leading slash.\n For example, to include the `requests.gz` object in a transfer from\n `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include\n prefix as `logs/y=2015/requests.gz`.\n\n * None of the include-prefix or the exclude-prefix values can be empty,\n if specified.\n\n * Each include-prefix must include a distinct portion of the object\n namespace, i.e., no include-prefix may be a prefix of another\n include-prefix.\n\n * Each exclude-prefix must exclude a distinct portion of the object\n namespace, i.e., no exclude-prefix may be a prefix of another\n exclude-prefix.\n\n * If `includePrefixes` is specified, then each exclude-prefix must start\n with the value of a path explicitly included by `includePrefixes`.\n\nThe max size of `includePrefixes` is 1000." + } + }, + "id": "ObjectConditions" + }, + "Operation": { + "type": "object", + "properties": { + "metadata": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "description": "Represents the transfer operation object.", + "type": "object" + }, + "done": { + "type": "boolean", + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable." + }, + "response": { + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." + }, + "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "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 have the format of `transferOperations/some/unique/name`.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + } + }, + "id": "Operation", + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call." + }, + "TransferOptions": { + "type": "object", + "properties": { + "deleteObjectsFromSourceAfterTransfer": { + "description": "Whether objects should be deleted from the source after they are\ntransferred to the sink. Note that this option and\n`deleteObjectsUniqueInSink` are mutually exclusive.", + "type": "boolean" + }, + "deleteObjectsUniqueInSink": { + "type": "boolean", + "description": "Whether objects that exist only in the sink should be deleted. Note that\nthis option and `deleteObjectsFromSourceAfterTransfer` are mutually\nexclusive." + }, + "overwriteObjectsAlreadyExistingInSink": { + "type": "boolean", + "description": "Whether overwriting objects that already exist in the sink is allowed." + } + }, + "id": "TransferOptions", + "description": "TransferOptions uses three boolean parameters to define the actions\nto be performed on objects in a transfer." + }, + "TransferSpec": { + "description": "Configuration for running a transfer.", + "type": "object", + "properties": { + "awsS3DataSource": { + "$ref": "AwsS3Data", + "description": "An AWS S3 data source." + }, + "httpDataSource": { + "$ref": "HttpData", + "description": "An HTTP URL data source." + }, + "objectConditions": { + "$ref": "ObjectConditions", + "description": "Only objects that satisfy these object conditions are included in the set\nof data source and data sink objects. Object conditions based on\nobjects' `lastModificationTime` do not exclude objects in a data sink." + }, + "gcsDataSink": { + "$ref": "GcsData", + "description": "A Google Cloud Storage data sink." + }, + "gcsDataSource": { + "$ref": "GcsData", + "description": "A Google Cloud Storage data source." + }, + "transferOptions": { + "$ref": "TransferOptions", + "description": "If the option `deleteObjectsUniqueInSink` is `true`, object conditions\nbased on objects' `lastModificationTime` are ignored and do not exclude\nobjects in a data source or a data sink." + } + }, + "id": "TransferSpec" + }, + "Status": { + "type": "object", + "properties": { + "details": { + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array", + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." + }, + "code": { + "type": "integer", + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code." + }, + "message": { + "type": "string", + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client." + } + }, + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "ResumeTransferOperationRequest": { + "type": "object", + "properties": {}, + "id": "ResumeTransferOperationRequest", + "description": "Request passed to ResumeTransferOperation." + }, + "ListOperationsResponse": { + "type": "object", + "properties": { + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "Operation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "id": "ListOperationsResponse", + "description": "The response message for Operations.ListOperations." + }, + "GoogleServiceAccount": { + "type": "object", + "properties": { + "accountEmail": { + "type": "string", + "description": "Required." + } + }, + "id": "GoogleServiceAccount", + "description": "Google service account" + }, + "TimeOfDay": { + "type": "object", + "properties": { + "seconds": { + "format": "int32", + "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.", + "type": "integer" + }, + "minutes": { + "type": "integer", + "format": "int32", + "description": "Minutes of hour of day. Must be from 0 to 59." + }, + "hours": { + "format": "int32", + "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.", + "type": "integer" + }, + "nanos": { + "format": "int32", + "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "type": "integer" + } + }, + "id": "TimeOfDay", + "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`." + }, + "ErrorLogEntry": { + "type": "object", + "properties": { + "errorDetails": { + "description": "A list of messages that carry the error details.", + "items": { + "type": "string" + }, + "type": "array" + }, + "url": { + "type": "string", + "description": "A URL that refers to the target (a data source, a data sink,\nor an object) with which the error is associated.\nRequired." + } + }, + "id": "ErrorLogEntry", + "description": "An entry describing an error that has occurred." + }, + "TransferJob": { + "description": "This resource represents the configuration of a transfer job that runs\nperiodically.", + "type": "object", + "properties": { + "lastModificationTime": { + "type": "string", + "format": "google-datetime", + "description": "This field cannot be changed by user requests." + }, + "projectId": { + "description": "The ID of the Google Cloud Platform Console project that owns the job.", + "type": "string" + }, + "description": { + "description": "A description provided by the user for the job. Its max length is 1024\nbytes when Unicode-encoded.", + "type": "string" + }, + "transferSpec": { + "$ref": "TransferSpec", + "description": "Transfer specification." + }, + "creationTime": { + "type": "string", + "format": "google-datetime", + "description": "This field cannot be changed by user requests." + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "ENABLED", + "DISABLED", + "DELETED" + ], + "description": "Status of the job. This value MUST be specified for\n`CreateTransferJobRequests`.\n\nNOTE: The effect of the new job status takes place during a subsequent job\nrun. For example, if you change the job status from `ENABLED` to\n`DISABLED`, and an operation spawned by the transfer is running, the status\nchange would not affect the current operation.", + "type": "string", + "enumDescriptions": [ + "Zero is an illegal value.", + "New transfers will be performed based on the schedule.", + "New transfers will not be scheduled.", + "This is a soft delete state. After a transfer job is set to this\nstate, the job and all the transfer executions are subject to\ngarbage collection." + ] + }, + "schedule": { + "$ref": "Schedule", + "description": "Schedule specification." + }, + "name": { + "type": "string", + "description": "A globally unique name assigned by Storage Transfer Service when the\njob is created. This field should be left empty in requests to create a new\ntransfer job; otherwise, the requests result in an `INVALID_ARGUMENT`\nerror." + }, + "deletionTime": { + "type": "string", + "format": "google-datetime", + "description": "This field cannot be changed by user requests." + } + }, + "id": "TransferJob" + }, "Schedule": { - "id": "Schedule", "description": "Transfers can be scheduled to recur or to run just once.", "type": "object", "properties": { + "scheduleStartDate": { + "$ref": "Date", + "description": "The first day the recurring transfer is scheduled to run. If\n`scheduleStartDate` is in the past, the transfer will run for the first\ntime on the following day.\nRequired." + }, "scheduleEndDate": { - "description": "The last day the recurring transfer will be run. If `scheduleEndDate`\nis the same as `scheduleStartDate`, the transfer will be executed only\nonce.", - "$ref": "Date" + "$ref": "Date", + "description": "The last day the recurring transfer will be run. If `scheduleEndDate`\nis the same as `scheduleStartDate`, the transfer will be executed only\nonce." }, "startTimeOfDay": { "$ref": "TimeOfDay", "description": "The time in UTC at which the transfer will be scheduled to start in a day.\nTransfers may start later than this time. If not specified, recurring and\none-time transfers that are scheduled to run today will run immediately;\nrecurring transfers that are scheduled to run on a future date will start\nat approximately midnight UTC on that date. Note that when configuring a\ntransfer with the Cloud Platform Console, the transfer's start time in a\nday is specified in your local timezone." - }, - "scheduleStartDate": { - "description": "The first day the recurring transfer is scheduled to run. If\n`scheduleStartDate` is in the past, the transfer will run for the first\ntime on the following day.\nRequired.", - "$ref": "Date" } - } + }, + "id": "Schedule" }, "Date": { - "id": "Date", "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", "type": "object", "properties": { + "month": { + "type": "integer", + "format": "int32", + "description": "Month of year. Must be from 1 to 12." + }, "day": { "format": "int32", "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", @@ -442,18 +768,53 @@ "format": "int32", "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", "type": "integer" - }, - "month": { - "format": "int32", - "description": "Month of year. Must be from 1 to 12.", - "type": "integer" } - } + }, + "id": "Date" }, "TransferOperation": { "description": "A description of the execution of a transfer.", "type": "object", "properties": { + "status": { + "type": "string", + "enumDescriptions": [ + "Zero is an illegal value.", + "In progress.", + "Paused.", + "Completed successfully.", + "Terminated due to an unrecoverable failure.", + "Aborted by the user." + ], + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "PAUSED", + "SUCCESS", + "FAILED", + "ABORTED" + ], + "description": "Status of the transfer operation." + }, + "counters": { + "$ref": "TransferCounters", + "description": "Information about the progress of the transfer operation." + }, + "errorBreakdowns": { + "description": "Summarizes errors encountered with sample error log entries.", + "items": { + "$ref": "ErrorSummary" + }, + "type": "array" + }, + "name": { + "type": "string", + "description": "A globally unique ID assigned by the system." + }, + "projectId": { + "description": "The ID of the Google Cloud Platform Console project that owns the operation.\nRequired.", + "type": "string" + }, "endTime": { "format": "google-datetime", "description": "End time of this transfer execution.", @@ -471,52 +832,11 @@ "transferSpec": { "$ref": "TransferSpec", "description": "Transfer specification.\nRequired." - }, - "status": { - "description": "Status of the transfer operation.", - "type": "string", - "enumDescriptions": [ - "Zero is an illegal value.", - "In progress.", - "Paused.", - "Completed successfully.", - "Terminated due to an unrecoverable failure.", - "Aborted by the user." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "IN_PROGRESS", - "PAUSED", - "SUCCESS", - "FAILED", - "ABORTED" - ] - }, - "counters": { - "$ref": "TransferCounters", - "description": "Information about the progress of the transfer operation." - }, - "errorBreakdowns": { - "description": "Summarizes errors encountered with sample error log entries.", - "items": { - "$ref": "ErrorSummary" - }, - "type": "array" - }, - "name": { - "description": "A globally unique ID assigned by the system.", - "type": "string" - }, - "projectId": { - "description": "The ID of the Google Cloud Platform Console project that owns the operation.\nRequired.", - "type": "string" } }, "id": "TransferOperation" }, "AwsS3Data": { - "id": "AwsS3Data", - "description": "An AwsS3Data can be a data source, but not a data sink.\nIn an AwsS3Data, an object's name is the S3 object's key name.", "type": "object", "properties": { "bucketName": { @@ -527,109 +847,55 @@ "$ref": "AwsAccessKey", "description": "AWS access key used to sign the API requests to the AWS S3 bucket.\nPermissions on the bucket must be granted to the access ID of the\nAWS access key.\nRequired." } - } + }, + "id": "AwsS3Data", + "description": "An AwsS3Data can be a data source, but not a data sink.\nIn an AwsS3Data, an object's name is the S3 object's key name." }, "AwsAccessKey": { - "description": "AWS access key (see\n[AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).", "type": "object", "properties": { "accessKeyId": { - "description": "AWS access key ID.\nRequired.", - "type": "string" + "type": "string", + "description": "AWS access key ID.\nRequired." }, "secretAccessKey": { "description": "AWS secret access key. This field is not returned in RPC responses.\nRequired.", "type": "string" } }, - "id": "AwsAccessKey" + "id": "AwsAccessKey", + "description": "AWS access key (see\n[AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html))." }, "Empty": { - "id": "Empty", "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", - "properties": {} + "properties": {}, + "id": "Empty" }, "PauseTransferOperationRequest": { - "description": "Request passed to PauseTransferOperation.", "type": "object", "properties": {}, - "id": "PauseTransferOperationRequest" + "id": "PauseTransferOperationRequest", + "description": "Request passed to PauseTransferOperation." }, "TransferCounters": { - "id": "TransferCounters", "description": "A collection of counters that report the progress of a transfer operation.", "type": "object", "properties": { - "objectsFromSourceSkippedBySync": { - "format": "int64", - "description": "Objects in the data source that are not transferred because they already\nexist in the data sink.", - "type": "string" - }, - "bytesFoundFromSource": { - "format": "int64", - "description": "Bytes found in the data source that are scheduled to be transferred,\nwhich will be copied, excluded based on conditions, or skipped due to\nfailures.", - "type": "string" - }, - "objectsFoundFromSource": { - "format": "int64", - "description": "Objects found in the data source that are scheduled to be transferred,\nwhich will be copied, excluded based on conditions, or skipped due to\nfailures.", - "type": "string" - }, - "bytesDeletedFromSource": { - "format": "int64", - "description": "Bytes that are deleted from the data source.", - "type": "string" - }, - "objectsFailedToDeleteFromSink": { - "format": "int64", - "description": "Objects that failed to be deleted from the data sink.", - "type": "string" - }, - "objectsDeletedFromSink": { - "format": "int64", - "description": "Objects that are deleted from the data sink.", - "type": "string" - }, - "objectsFoundOnlyFromSink": { - "format": "int64", - "description": "Objects found only in the data sink that are scheduled to be deleted.", - "type": "string" - }, - "bytesFromSourceSkippedBySync": { - "format": "int64", - "description": "Bytes in the data source that are not transferred because they already\nexist in the data sink.", - "type": "string" - }, - "bytesDeletedFromSink": { - "format": "int64", - "description": "Bytes that are deleted from the data sink.", - "type": "string" - }, - "bytesFailedToDeleteFromSink": { - "format": "int64", - "description": "Bytes that failed to be deleted from the data sink.", - "type": "string" - }, - "bytesFromSourceFailed": { - "format": "int64", - "description": "Bytes in the data source that failed during the transfer.", - "type": "string" - }, "objectsCopiedToSink": { "format": "int64", "description": "Objects that are copied to the data sink.", "type": "string" }, "objectsFromSourceFailed": { + "type": "string", "format": "int64", - "description": "Objects in the data source that failed during the transfer.", - "type": "string" + "description": "Objects in the data source that failed during the transfer." }, "bytesFoundOnlyFromSink": { + "type": "string", "format": "int64", - "description": "Bytes found only in the data sink that are scheduled to be deleted.", - "type": "string" + "description": "Bytes found only in the data sink that are scheduled to be deleted." }, "objectsDeletedFromSource": { "format": "int64", @@ -637,36 +903,72 @@ "type": "string" }, "bytesCopiedToSink": { + "type": "string", "format": "int64", - "description": "Bytes that are copied to the data sink.", + "description": "Bytes that are copied to the data sink." + }, + "objectsFromSourceSkippedBySync": { + "format": "int64", + "description": "Objects in the data source that are not transferred because they already\nexist in the data sink.", + "type": "string" + }, + "bytesFoundFromSource": { + "type": "string", + "format": "int64", + "description": "Bytes found in the data source that are scheduled to be transferred,\nwhich will be copied, excluded based on conditions, or skipped due to\nfailures." + }, + "bytesDeletedFromSource": { + "type": "string", + "format": "int64", + "description": "Bytes that are deleted from the data source." + }, + "objectsFoundFromSource": { + "type": "string", + "format": "int64", + "description": "Objects found in the data source that are scheduled to be transferred,\nwhich will be copied, excluded based on conditions, or skipped due to\nfailures." + }, + "objectsFailedToDeleteFromSink": { + "format": "int64", + "description": "Objects that failed to be deleted from the data sink.", + "type": "string" + }, + "objectsDeletedFromSink": { + "type": "string", + "format": "int64", + "description": "Objects that are deleted from the data sink." + }, + "objectsFoundOnlyFromSink": { + "type": "string", + "format": "int64", + "description": "Objects found only in the data sink that are scheduled to be deleted." + }, + "bytesFromSourceSkippedBySync": { + "type": "string", + "format": "int64", + "description": "Bytes in the data source that are not transferred because they already\nexist in the data sink." + }, + "bytesDeletedFromSink": { + "format": "int64", + "description": "Bytes that are deleted from the data sink.", + "type": "string" + }, + "bytesFailedToDeleteFromSink": { + "type": "string", + "format": "int64", + "description": "Bytes that failed to be deleted from the data sink." + }, + "bytesFromSourceFailed": { + "format": "int64", + "description": "Bytes in the data source that failed during the transfer.", "type": "string" } - } + }, + "id": "TransferCounters" }, "ErrorSummary": { - "description": "A summary of errors by error code, plus a count and sample error log\nentries.", "type": "object", "properties": { "errorCode": { - "enumDescriptions": [ - "Not an error; returned on success\n\nHTTP Mapping: 200 OK", - "The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request", - "Unknown error. For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space. Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error", - "The client specified an invalid argument. Note that this differs\nfrom `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request", - "The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully. For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout", - "Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented whitelist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found", - "The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict", - "The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden", - "The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized", - "Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests", - "The operation was rejected because the system is not in a state\nrequired for the operation's execution. For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level\n (e.g., when a client-specified test-and-set fails, indicating the\n client should restart a read-modify-write sequence).\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n the system state has been explicitly fixed. E.g., if an \"rmdir\"\n fails because the directory is non-empty, `FAILED_PRECONDITION`\n should be returned since the client should not retry unless\n the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request", - "The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict", - "The operation was attempted past the valid range. E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request", - "The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented", - "Internal errors. This means that some invariants expected by the\nunderlying system have been broken. This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error", - "The service is currently unavailable. This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable", - "Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error" - ], "enum": [ "OK", "CANCELLED", @@ -687,12 +989,31 @@ "DATA_LOSS" ], "description": "Required.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Not an error; returned on success\n\nHTTP Mapping: 200 OK", + "The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request", + "Unknown error. For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space. Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error", + "The client specified an invalid argument. Note that this differs\nfrom `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request", + "The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully. For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout", + "Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented whitelist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found", + "The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict", + "The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden", + "The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized", + "Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests", + "The operation was rejected because the system is not in a state\nrequired for the operation's execution. For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level\n (e.g., when a client-specified test-and-set fails, indicating the\n client should restart a read-modify-write sequence).\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n the system state has been explicitly fixed. E.g., if an \"rmdir\"\n fails because the directory is non-empty, `FAILED_PRECONDITION`\n should be returned since the client should not retry unless\n the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request", + "The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict", + "The operation was attempted past the valid range. E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request", + "The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented", + "Internal errors. This means that some invariants expected by the\nunderlying system have been broken. This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error", + "The service is currently unavailable. This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable", + "Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error" + ] }, "errorCount": { + "type": "string", "format": "int64", - "description": "Count of this type of error.\nRequired.", - "type": "string" + "description": "Count of this type of error.\nRequired." }, "errorLogEntries": { "description": "Error samples.", @@ -702,26 +1023,27 @@ "type": "array" } }, - "id": "ErrorSummary" + "id": "ErrorSummary", + "description": "A summary of errors by error code, plus a count and sample error log\nentries." }, "HttpData": { - "id": "HttpData", - "description": "An HttpData specifies a list of objects on the web to be transferred over\nHTTP. The information of the objects to be transferred is contained in a\nfile referenced by a URL. The first line in the file must be\n\"TsvHttpData-1.0\", which specifies the format of the file. Subsequent lines\nspecify the information of the list of objects, one object per list entry.\nEach entry has the following tab-delimited fields:\n\n* HTTP URL - The location of the object.\n\n* Length - The size of the object in bytes.\n\n* MD5 - The base64-encoded MD5 hash of the object.\n\nFor an example of a valid TSV file, see\n[Transferring data from URLs](https://cloud.google.com/storage/transfer/create-url-list).\n\nWhen transferring data based on a URL list, keep the following in mind:\n\n* When an object located at `http(s)://hostname:port/\u003cURL-path\u003e` is transferred\nto a data sink, the name of the object at the data sink is\n`\u003chostname\u003e/\u003cURL-path\u003e`.\n\n* If the specified size of an object does not match the actual size of the\nobject fetched, the object will not be transferred.\n\n* If the specified MD5 does not match the MD5 computed from the transferred\nbytes, the object transfer will fail. For more information, see\n[Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)\n\n* Ensure that each URL you specify is publicly accessible. For\nexample, in Google Cloud Storage you can\n[share an object publicly]\n(https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get\na link to it.\n\n* Storage Transfer Service obeys `robots.txt` rules and requires the source\nHTTP server to support `Range` requests and to return a `Content-Length`\nheader in each response.\n\n* [ObjectConditions](#ObjectConditions) have no effect when filtering objects\nto transfer.", "type": "object", "properties": { "listUrl": { - "description": "The URL that points to the file that stores the object list entries.\nThis file must allow public access. Currently, only URLs with HTTP and\nHTTPS schemes are supported.\nRequired.", - "type": "string" + "type": "string", + "description": "The URL that points to the file that stores the object list entries.\nThis file must allow public access. Currently, only URLs with HTTP and\nHTTPS schemes are supported.\nRequired." } - } + }, + "id": "HttpData", + "description": "An HttpData specifies a list of objects on the web to be transferred over\nHTTP. The information of the objects to be transferred is contained in a\nfile referenced by a URL. The first line in the file must be\n\"TsvHttpData-1.0\", which specifies the format of the file. Subsequent lines\nspecify the information of the list of objects, one object per list entry.\nEach entry has the following tab-delimited fields:\n\n* HTTP URL - The location of the object.\n\n* Length - The size of the object in bytes.\n\n* MD5 - The base64-encoded MD5 hash of the object.\n\nFor an example of a valid TSV file, see\n[Transferring data from URLs](https://cloud.google.com/storage/transfer/create-url-list).\n\nWhen transferring data based on a URL list, keep the following in mind:\n\n* When an object located at `http(s)://hostname:port/\u003cURL-path\u003e` is transferred\nto a data sink, the name of the object at the data sink is\n`\u003chostname\u003e/\u003cURL-path\u003e`.\n\n* If the specified size of an object does not match the actual size of the\nobject fetched, the object will not be transferred.\n\n* If the specified MD5 does not match the MD5 computed from the transferred\nbytes, the object transfer will fail. For more information, see\n[Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)\n\n* Ensure that each URL you specify is publicly accessible. For\nexample, in Google Cloud Storage you can\n[share an object publicly]\n(https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get\na link to it.\n\n* Storage Transfer Service obeys `robots.txt` rules and requires the source\nHTTP server to support `Range` requests and to return a `Content-Length`\nheader in each response.\n\n* [ObjectConditions](#ObjectConditions) have no effect when filtering objects\nto transfer." }, "GcsData": { "description": "In a GcsData, an object's name is the Google Cloud Storage object's name and\nits `lastModificationTime` refers to the object's updated time, which changes\nwhen the content or the metadata of the object is updated.", "type": "object", "properties": { "bucketName": { - "description": "Google Cloud Storage bucket name (see\n[Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).\nRequired.", - "type": "string" + "type": "string", + "description": "Google Cloud Storage bucket name (see\n[Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).\nRequired." } }, "id": "GcsData" @@ -743,335 +1065,13 @@ } }, "id": "ListTransferJobsResponse" - }, - "UpdateTransferJobRequest": { - "id": "UpdateTransferJobRequest", - "description": "Request passed to UpdateTransferJob.", - "type": "object", - "properties": { - "transferJob": { - "$ref": "TransferJob", - "description": "The job to update. `transferJob` is expected to specify only three fields:\n`description`, `transferSpec`, and `status`. An UpdateTransferJobRequest\nthat specifies other fields will be rejected with an error\n`INVALID_ARGUMENT`.\nRequired." - }, - "projectId": { - "description": "The ID of the Google Cloud Platform Console project that owns the job.\nRequired.", - "type": "string" - }, - "updateTransferJobFieldMask": { - "format": "google-fieldmask", - "description": "The field mask of the fields in `transferJob` that are to be updated in\nthis request. Fields in `transferJob` that can be updated are:\n`description`, `transferSpec`, and `status`. To update the `transferSpec`\nof the job, a complete transfer specification has to be provided. An\nincomplete specification which misses any required fields will be rejected\nwith the error `INVALID_ARGUMENT`.", - "type": "string" - } - } - }, - "ObjectConditions": { - "id": "ObjectConditions", - "description": "Conditions that determine which objects will be transferred.", - "type": "object", - "properties": { - "excludePrefixes": { - "description": "`excludePrefixes` must follow the requirements described for\n`includePrefixes`.\n\nThe max size of `excludePrefixes` is 1000.", - "items": { - "type": "string" - }, - "type": "array" - }, - "minTimeElapsedSinceLastModification": { - "format": "google-duration", - "description": "If unspecified, `minTimeElapsedSinceLastModification` takes a zero value\nand `maxTimeElapsedSinceLastModification` takes the maximum possible\nvalue of Duration. Objects that satisfy the object conditions\nmust either have a `lastModificationTime` greater or equal to\n`NOW` - `maxTimeElapsedSinceLastModification` and less than\n`NOW` - `minTimeElapsedSinceLastModification`, or not have a\n`lastModificationTime`.", - "type": "string" - }, - "maxTimeElapsedSinceLastModification": { - "format": "google-duration", - "description": "`maxTimeElapsedSinceLastModification` is the complement to\n`minTimeElapsedSinceLastModification`.", - "type": "string" - }, - "includePrefixes": { - "description": "If `includePrefixes` is specified, objects that satisfy the object\nconditions must have names that start with one of the `includePrefixes`\nand that do not start with any of the `excludePrefixes`. If `includePrefixes`\nis not specified, all objects except those that have names starting with\none of the `excludePrefixes` must satisfy the object conditions.\n\nRequirements:\n\n * Each include-prefix and exclude-prefix can contain any sequence of\n Unicode characters, of max length 1024 bytes when UTF8-encoded, and\n must not contain Carriage Return or Line Feed characters. Wildcard\n matching and regular expression matching are not supported.\n\n * Each include-prefix and exclude-prefix must omit the leading slash.\n For example, to include the `requests.gz` object in a transfer from\n `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include\n prefix as `logs/y=2015/requests.gz`.\n\n * None of the include-prefix or the exclude-prefix values can be empty,\n if specified.\n\n * Each include-prefix must include a distinct portion of the object\n namespace, i.e., no include-prefix may be a prefix of another\n include-prefix.\n\n * Each exclude-prefix must exclude a distinct portion of the object\n namespace, i.e., no exclude-prefix may be a prefix of another\n exclude-prefix.\n\n * If `includePrefixes` is specified, then each exclude-prefix must start\n with the value of a path explicitly included by `includePrefixes`.\n\nThe max size of `includePrefixes` is 1000.", - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "Operation": { - "id": "Operation", - "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", - "type": "object", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "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 have the format of `transferOperations/some/unique/name`.", - "type": "string" - }, - "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." - }, - "metadata": { - "description": "Represents the transfer operation object.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - } - }, - "TransferOptions": { - "description": "TransferOptions uses three boolean parameters to define the actions\nto be performed on objects in a transfer.", - "type": "object", - "properties": { - "deleteObjectsFromSourceAfterTransfer": { - "description": "Whether objects should be deleted from the source after they are\ntransferred to the sink. Note that this option and\n`deleteObjectsUniqueInSink` are mutually exclusive.", - "type": "boolean" - }, - "deleteObjectsUniqueInSink": { - "description": "Whether objects that exist only in the sink should be deleted. Note that\nthis option and `deleteObjectsFromSourceAfterTransfer` are mutually\nexclusive.", - "type": "boolean" - }, - "overwriteObjectsAlreadyExistingInSink": { - "description": "Whether overwriting objects that already exist in the sink is allowed.", - "type": "boolean" - } - }, - "id": "TransferOptions" - }, - "TransferSpec": { - "description": "Configuration for running a transfer.", - "type": "object", - "properties": { - "gcsDataSink": { - "$ref": "GcsData", - "description": "A Google Cloud Storage data sink." - }, - "gcsDataSource": { - "description": "A Google Cloud Storage data source.", - "$ref": "GcsData" - }, - "transferOptions": { - "$ref": "TransferOptions", - "description": "If the option `deleteObjectsUniqueInSink` is `true`, object conditions\nbased on objects' `lastModificationTime` are ignored and do not exclude\nobjects in a data source or a data sink." - }, - "awsS3DataSource": { - "description": "An AWS S3 data source.", - "$ref": "AwsS3Data" - }, - "httpDataSource": { - "$ref": "HttpData", - "description": "An HTTP URL data source." - }, - "objectConditions": { - "$ref": "ObjectConditions", - "description": "Only objects that satisfy these object conditions are included in the set\nof data source and data sink objects. Object conditions based on\nobjects' `lastModificationTime` do not exclude objects in a data sink." - } - }, - "id": "TransferSpec" - }, - "ResumeTransferOperationRequest": { - "id": "ResumeTransferOperationRequest", - "description": "Request passed to ResumeTransferOperation.", - "type": "object", - "properties": {} - }, - "Status": { - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - } - } - }, - "ListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "type": "object", - "properties": { - "operations": { - "description": "A list of operations that matches the specified filter in the request.", - "items": { - "$ref": "Operation" - }, - "type": "array" - }, - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - } - }, - "id": "ListOperationsResponse" - }, - "GoogleServiceAccount": { - "description": "Google service account", - "type": "object", - "properties": { - "accountEmail": { - "description": "Required.", - "type": "string" - } - }, - "id": "GoogleServiceAccount" - }, - "TimeOfDay": { - "id": "TimeOfDay", - "description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.", - "type": "object", - "properties": { - "hours": { - "format": "int32", - "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.", - "type": "integer" - }, - "nanos": { - "format": "int32", - "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", - "type": "integer" - }, - "seconds": { - "format": "int32", - "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.", - "type": "integer" - }, - "minutes": { - "format": "int32", - "description": "Minutes of hour of day. Must be from 0 to 59.", - "type": "integer" - } - } - }, - "ErrorLogEntry": { - "id": "ErrorLogEntry", - "description": "An entry describing an error that has occurred.", - "type": "object", - "properties": { - "errorDetails": { - "description": "A list of messages that carry the error details.", - "items": { - "type": "string" - }, - "type": "array" - }, - "url": { - "description": "A URL that refers to the target (a data source, a data sink,\nor an object) with which the error is associated.\nRequired.", - "type": "string" - } - } - }, - "TransferJob": { - "description": "This resource represents the configuration of a transfer job that runs\nperiodically.", - "type": "object", - "properties": { - "description": { - "description": "A description provided by the user for the job. Its max length is 1024\nbytes when Unicode-encoded.", - "type": "string" - }, - "transferSpec": { - "description": "Transfer specification.", - "$ref": "TransferSpec" - }, - "creationTime": { - "format": "google-datetime", - "description": "This field cannot be changed by user requests.", - "type": "string" - }, - "status": { - "enumDescriptions": [ - "Zero is an illegal value.", - "New transfers will be performed based on the schedule.", - "New transfers will not be scheduled.", - "This is a soft delete state. After a transfer job is set to this\nstate, the job and all the transfer executions are subject to\ngarbage collection." - ], - "enum": [ - "STATUS_UNSPECIFIED", - "ENABLED", - "DISABLED", - "DELETED" - ], - "description": "Status of the job. This value MUST be specified for\n`CreateTransferJobRequests`.\n\nNOTE: The effect of the new job status takes place during a subsequent job\nrun. For example, if you change the job status from `ENABLED` to\n`DISABLED`, and an operation spawned by the transfer is running, the status\nchange would not affect the current operation.", - "type": "string" - }, - "schedule": { - "$ref": "Schedule", - "description": "Schedule specification." - }, - "name": { - "description": "A globally unique name assigned by Storage Transfer Service when the\njob is created. This field should be left empty in requests to create a new\ntransfer job; otherwise, the requests result in an `INVALID_ARGUMENT`\nerror.", - "type": "string" - }, - "deletionTime": { - "format": "google-datetime", - "description": "This field cannot be changed by user requests.", - "type": "string" - }, - "projectId": { - "description": "The ID of the Google Cloud Platform Console project that owns the job.", - "type": "string" - }, - "lastModificationTime": { - "format": "google-datetime", - "description": "This field cannot be changed by user requests.", - "type": "string" - } - }, - "id": "TransferJob" } }, "protocol": "rest", "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "version": "v1", - "baseUrl": "https://storagetransfer.googleapis.com/", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "View and manage your data across Google Cloud Platform services" - } - } - } - }, - "servicePath": "", - "description": "Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets.", - "kind": "discovery#restDescription", - "rootUrl": "https://storagetransfer.googleapis.com/", - "basePath": "", - "ownerDomain": "google.com", - "name": "storagetransfer", - "batchPath": "batch", - "revision": "20170921", - "id": "storagetransfer:v1", - "documentationLink": "https://cloud.google.com/storage/transfer", - "title": "Google Storage Transfer API" + "baseUrl": "https://storagetransfer.googleapis.com/" } diff --git a/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-api.json b/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-api.json index d7c6e71e5..242f010b2 100644 --- a/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-api.json +++ b/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-api.json @@ -1,188 +1,353 @@ { + "resources": { + "photo": { + "methods": { + "get": { + "description": "Gets the metadata of the specified\nPhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested Photo.\n* google.rpc.Code.NOT_FOUND if the requested\nPhoto does not exist.", + "response": { + "$ref": "Photo" + }, + "parameterOrder": [ + "photoId" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": { + "photoId": { + "location": "path", + "description": "Required. ID of the Photo.", + "required": true, + "type": "string" + }, + "view": { + "enum": [ + "BASIC", + "INCLUDE_DOWNLOAD_URL" + ], + "description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/photo/{photoId}", + "path": "v1/photo/{photoId}", + "id": "streetviewpublish.photo.get" + }, + "update": { + "response": { + "$ref": "Photo" + }, + "parameterOrder": [ + "id" + ], + "httpMethod": "PUT", + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": { + "id": { + "required": true, + "type": "string", + "location": "path", + "description": "Required. A unique identifier for a photo." + }, + "updateMask": { + "location": "query", + "description": "Mask that identifies fields on the photo metadata to update.\nIf not present, the old Photo\nmetadata will be entirely replaced with the\nnew Photo metadata in this request.\nThe update fails if invalid fields are specified. Multiple fields can be\nspecified in a comma-delimited list.\n\nThe following fields are valid:\n\n* `pose.heading`\n* `pose.latLngPair`\n* `pose.pitch`\n* `pose.roll`\n* `pose.level`\n* `pose.altitude`\n* `connections`\n* `places`\n\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e Repeated fields in\nupdateMask\nmean the entire set of repeated values will be replaced with the new\ncontents. For example, if\nupdateMask\ncontains `connections` and `UpdatePhotoRequest.photo.connections` is empty,\nall connections will be removed.\u003c/aside\u003e", + "format": "google-fieldmask", + "type": "string" + } + }, + "flatPath": "v1/photo/{id}", + "path": "v1/photo/{id}", + "id": "streetviewpublish.photo.update", + "description": "Updates the metadata of a Photo, such\nas pose, place association, connections, etc. Changing the pixels of a\nphoto is not supported.\n\nOnly the fields specified in the\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the requested photo does not exist.", + "request": { + "$ref": "Photo" + } + }, + "create": { + "flatPath": "v1/photo", + "path": "v1/photo", + "id": "streetviewpublish.photo.create", + "description": "After the client finishes uploading the photo with the returned\nUploadRef,\nCreatePhoto\npublishes the uploaded Photo to\nStreet View on Google Maps.\n\nCurrently, the only way to set heading, pitch, and roll in CreatePhoto is\nthrough the [Photo Sphere XMP\nmetadata](https://developers.google.com/streetview/spherical-metadata) in\nthe photo bytes. The `pose.heading`, `pose.pitch`, `pose.roll`,\n`pose.altitude`, and `pose.level` fields in Pose are ignored for\nCreatePhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the upload reference does not exist.\n* google.rpc.Code.RESOURCE_EXHAUSTED if the account has reached the\nstorage limit.", + "request": { + "$ref": "Photo" + }, + "response": { + "$ref": "Photo" + }, + "parameterOrder": [], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": {} + }, + "startUpload": { + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": {}, + "flatPath": "v1/photo:startUpload", + "path": "v1/photo:startUpload", + "id": "streetviewpublish.photo.startUpload", + "description": "Creates an upload session to start uploading photo bytes. The upload URL of\nthe returned UploadRef is used to\nupload the bytes for the Photo.\n\nIn addition to the photo requirements shown in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604,\nthe photo must also meet the following requirements:\n\n* Photo Sphere XMP metadata must be included in the photo medadata. See\nhttps://developers.google.com/streetview/spherical-metadata for the\nrequired fields.\n* The pixel size of the photo must meet the size requirements listed in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604, and\nthe photo must be a full 360 horizontally.\n\nAfter the upload is complete, the\nUploadRef is used with\nCreatePhoto\nto create the Photo object entry.", + "request": { + "$ref": "Empty" + }, + "response": { + "$ref": "UploadRef" + }, + "parameterOrder": [], + "httpMethod": "POST" + }, + "delete": { + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "photoId" + ], + "httpMethod": "DELETE", + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": { + "photoId": { + "location": "path", + "description": "Required. ID of the Photo.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/photo/{photoId}", + "path": "v1/photo/{photoId}", + "id": "streetviewpublish.photo.delete", + "description": "Deletes a Photo and its metadata.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.NOT_FOUND if the photo ID does not exist." + } + } + }, + "photos": { + "methods": { + "batchGet": { + "flatPath": "v1/photos:batchGet", + "path": "v1/photos:batchGet", + "id": "streetviewpublish.photos.batchGet", + "description": "Gets the metadata of the specified\nPhoto batch.\n\nNote that if\nBatchGetPhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchGetPhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchGetPhotosResponse.results.\nSee\nGetPhoto\nfor specific failures that can occur per photo.", + "response": { + "$ref": "BatchGetPhotosResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "parameters": { + "view": { + "location": "query", + "enum": [ + "BASIC", + "INCLUDE_DOWNLOAD_URL" + ], + "description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.", + "type": "string" + }, + "photoIds": { + "location": "query", + "description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`.", + "type": "string", + "repeated": true + } + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + }, + "list": { + "description": "Lists all the Photos that belong to\nthe user.", + "response": { + "$ref": "ListPhotosResponse" + }, + "parameterOrder": [], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "parameters": { + "pageToken": { + "location": "query", + "description": "The\nnextPageToken\nvalue returned from a previous\nListPhotos\nrequest, if any.", + "type": "string" + }, + "pageSize": { + "location": "query", + "description": "The maximum number of photos to return.\n`pageSize` must be non-negative. If `pageSize` is zero or is not provided,\nthe default page size of 100 will be used.\nThe number of photos returned in the response may be less than `pageSize`\nif the number of photos that belong to the user is less than `pageSize`.", + "format": "int32", + "type": "integer" + }, + "view": { + "description": "Specifies if a download URL for the photos bytes should be returned in the\nPhotos response.", + "type": "string", + "location": "query", + "enum": [ + "BASIC", + "INCLUDE_DOWNLOAD_URL" + ] + }, + "filter": { + "description": "The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.\n\nThe only filter supported at the moment is `placeId`.", + "type": "string", + "location": "query" + } + }, + "flatPath": "v1/photos", + "path": "v1/photos", + "id": "streetviewpublish.photos.list" + }, + "batchUpdate": { + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "BatchUpdatePhotosResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "flatPath": "v1/photos:batchUpdate", + "id": "streetviewpublish.photos.batchUpdate", + "path": "v1/photos:batchUpdate", + "request": { + "$ref": "BatchUpdatePhotosRequest" + }, + "description": "Updates the metadata of Photos, such\nas pose, place association, connections, etc. Changing the pixels of photos\nis not supported.\n\nNote that if\nBatchUpdatePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchUpdatePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchUpdatePhotosResponse.results.\nSee\nUpdatePhoto\nfor specific failures that can occur per photo.\n\nOnly the fields specified in\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e" + }, + "batchDelete": { + "id": "streetviewpublish.photos.batchDelete", + "path": "v1/photos:batchDelete", + "request": { + "$ref": "BatchDeletePhotosRequest" + }, + "description": "Deletes a list of Photos and their\nmetadata.\n\nNote that if\nBatchDeletePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchDeletePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchDeletePhotosResponse.results.\nSee\nDeletePhoto\nfor specific failures that can occur per photo.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "BatchDeletePhotosResponse" + }, + "parameters": {}, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ], + "flatPath": "v1/photos:batchDelete" + } + } + } + }, + "parameters": { + "uploadType": { + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "type": "string" + }, + "fields": { + "location": "query", + "description": "Selector specifying which fields to include in a partial response.", + "type": "string" + }, + "$.xgafv": { + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "enum": [ + "1", + "2" + ], + "description": "V1 error format.", + "type": "string" + }, + "callback": { + "location": "query", + "description": "JSONP", + "type": "string" + }, + "alt": { + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "type": "string", + "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" + }, + "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.", + "type": "string", + "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" + }, + "quotaUser": { + "type": "string", + "location": "query", + "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." + }, + "pp": { + "description": "Pretty-print response.", + "type": "boolean", + "default": "true", + "location": "query" + }, + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true", + "location": "query" + } + }, + "version": "v1", + "baseUrl": "https://streetviewpublish.googleapis.com/", + "servicePath": "", + "description": "Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images.\n", + "kind": "discovery#restDescription", "basePath": "", "id": "streetviewpublish:v1", "documentationLink": "https://developers.google.com/streetview/publish/", - "revision": "20170928", + "revision": "20171019", "discoveryVersion": "v1", "version_module": true, "schemas": { - "PhotoResponse": { - "description": "Response payload for a single\nPhoto\nin batch operations including\nBatchGetPhotos\nand\nBatchUpdatePhotos.", - "type": "object", - "properties": { - "status": { - "description": "The status for the operation to get or update a single photo in the batch\nrequest.", - "$ref": "Status" - }, - "photo": { - "$ref": "Photo", - "description": "The Photo resource, if the request\nwas successful." - } - }, - "id": "PhotoResponse" - }, - "Connection": { - "description": "A connection is the link from a source photo to a destination photo.", - "type": "object", - "properties": { - "target": { - "$ref": "PhotoId", - "description": "Required. The destination of the connection from the containing photo to\nanother photo." - } - }, - "id": "Connection" - }, - "BatchUpdatePhotosResponse": { - "description": "Response to batch update of metadata of one or more\nPhotos.", - "type": "object", - "properties": { - "results": { - "description": "List of results for each individual\nPhoto updated, in the same order as\nthe request.", - "type": "array", - "items": { - "$ref": "PhotoResponse" - } - } - }, - "id": "BatchUpdatePhotosResponse" - }, - "BatchDeletePhotosResponse": { - "description": "Response to batch delete of one or more\nPhotos.", - "type": "object", - "properties": { - "status": { - "description": "The status for the operation to delete a single\nPhoto in the batch request.", - "type": "array", - "items": { - "$ref": "Status" - } - } - }, - "id": "BatchDeletePhotosResponse" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "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. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - } - } - }, - "id": "Status" - }, - "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", - "type": "object", - "properties": {}, - "id": "Empty" - }, - "Level": { - "description": "Level information containing level number and its corresponding name.", - "type": "object", - "properties": { - "name": { - "description": "Required. A name assigned to this Level, restricted to 3 characters.\nConsider how the elevator buttons would be labeled for this level if there\nwas an elevator.", - "type": "string" - }, - "number": { - "description": "Floor number, used for ordering. 0 indicates the ground level, 1 indicates\nthe first level above ground level, -1 indicates the first level under\nground level. Non-integer values are OK.", - "format": "double", - "type": "number" - } - }, - "id": "Level" - }, - "BatchGetPhotosResponse": { - "description": "Response to batch get of Photos.", - "type": "object", - "properties": { - "results": { - "description": "List of results for each individual\nPhoto requested, in the same order as\nthe requests in\nBatchGetPhotos.", - "type": "array", - "items": { - "$ref": "PhotoResponse" - } - } - }, - "id": "BatchGetPhotosResponse" - }, - "Place": { - "description": "Place metadata for an entity.", - "type": "object", - "properties": { - "placeId": { - "description": "Place identifier, as described in\nhttps://developers.google.com/places/place-id.", - "type": "string" - } - }, - "id": "Place" - }, - "UploadRef": { - "description": "Upload reference for media files.", - "type": "object", - "properties": { - "uploadUrl": { - "description": "Required. An upload reference should be unique for each user. It follows\nthe form:\n\"https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}\"", - "type": "string" - } - }, - "id": "UploadRef" - }, - "LatLng": { - "id": "LatLng", - "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", - "type": "object", - "properties": { - "latitude": { - "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", - "format": "double", - "type": "number" - }, - "longitude": { - "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", - "format": "double", - "type": "number" - } - } - }, - "BatchDeletePhotosRequest": { - "id": "BatchDeletePhotosRequest", - "description": "Request to delete multiple Photos.", - "type": "object", - "properties": { - "photoIds": { - "description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, "UpdatePhotoRequest": { - "description": "Request to update the metadata of a\nPhoto. Updating the pixels of a photo\nis not supported.", - "type": "object", "properties": { "photo": { - "$ref": "Photo", - "description": "Required. Photo object containing the\nnew metadata." + "description": "Required. Photo object containing the\nnew metadata.", + "$ref": "Photo" }, "updateMask": { "description": "Mask that identifies fields on the photo metadata to update.\nIf not present, the old Photo\nmetadata will be entirely replaced with the\nnew Photo metadata in this request.\nThe update fails if invalid fields are specified. Multiple fields can be\nspecified in a comma-delimited list.\n\nThe following fields are valid:\n\n* `pose.heading`\n* `pose.latLngPair`\n* `pose.pitch`\n* `pose.roll`\n* `pose.level`\n* `pose.altitude`\n* `connections`\n* `places`\n\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e Repeated fields in\nupdateMask\nmean the entire set of repeated values will be replaced with the new\ncontents. For example, if\nupdateMask\ncontains `connections` and `UpdatePhotoRequest.photo.connections` is empty,\nall connections will be removed.\u003c/aside\u003e", @@ -190,9 +355,12 @@ "type": "string" } }, - "id": "UpdatePhotoRequest" + "id": "UpdatePhotoRequest", + "description": "Request to update the metadata of a\nPhoto. Updating the pixels of a photo\nis not supported.", + "type": "object" }, "PhotoId": { + "description": "Identifier for a Photo.", "type": "object", "properties": { "id": { @@ -200,8 +368,7 @@ "type": "string" } }, - "id": "PhotoId", - "description": "Identifier for a Photo." + "id": "PhotoId" }, "Pose": { "description": "Raw pose measurement for an entity.", @@ -231,9 +398,9 @@ "description": "Latitude and longitude pair of the pose, as explained here:\nhttps://cloud.google.com/datastore/docs/reference/rest/Shared.Types/LatLng\nWhen creating a Photo, if the\nlatitude and longitude pair are not provided here, the geolocation from the\nexif header will be used. If the latitude and longitude pair is not\nprovided and cannot be found in the exif header, the create photo process\nwill fail." }, "roll": { - "type": "number", "description": "Roll, measured in degrees. Value must be \u003e= 0 and \u003c360. A value of 0\nmeans level with the horizon.\nNaN indicates an unmeasured quantity.", - "format": "double" + "format": "double", + "type": "number" } }, "id": "Pose" @@ -243,11 +410,11 @@ "type": "object", "properties": { "updatePhotoRequests": { + "description": "Required. List of\nUpdatePhotoRequests.", "type": "array", "items": { "$ref": "UpdatePhotoRequest" - }, - "description": "Required. List of\nUpdatePhotoRequests." + } } }, "id": "BatchUpdatePhotosRequest" @@ -256,16 +423,16 @@ "description": "Response to list all photos that belong to a user.", "type": "object", "properties": { - "photos": { - "type": "array", - "items": { - "$ref": "Photo" - }, - "description": "List of photos. The maximum number of items returned is based on the\npageSize field\nin the request." - }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more\nresults in the list.", "type": "string" + }, + "photos": { + "description": "List of photos. The maximum number of items returned is based on the\npageSize field\nin the request.", + "type": "array", + "items": { + "$ref": "Photo" + } } }, "id": "ListPhotosResponse" @@ -274,10 +441,28 @@ "description": "Photo is used to store 360 photos along with photo metadata.", "type": "object", "properties": { - "downloadUrl": { - "description": "Output only. The download URL for the photo bytes. This field is set only\nwhen\nGetPhotoRequest.view\nis set to\nPhotoView.INCLUDE_DOWNLOAD_URL.", + "shareLink": { + "type": "string", + "description": "Output only. The share link for the photo." + }, + "captureTime": { + "description": "Absolute time when the photo was captured.\nWhen the photo has no exif timestamp, this is used to set a timestamp in\nthe photo metadata.", + "format": "google-datetime", "type": "string" }, + "thumbnailUrl": { + "description": "Output only. The thumbnail URL for showing a preview of the given photo.", + "type": "string" + }, + "viewCount": { + "description": "Output only. View count of the photo.", + "format": "int64", + "type": "string" + }, + "downloadUrl": { + "type": "string", + "description": "Output only. The download URL for the photo bytes. This field is set only\nwhen\nGetPhotoRequest.view\nis set to\nPhotoView.INCLUDE_DOWNLOAD_URL." + }, "connections": { "description": "Connections to other photos. A connection represents the link from this\nphoto to another photo.", "type": "array", @@ -293,44 +478,231 @@ } }, "uploadReference": { - "$ref": "UploadRef", - "description": "Required when creating a photo. Input only. The resource URL where the\nphoto bytes are uploaded to." + "description": "Required when creating a photo. Input only. The resource URL where the\nphoto bytes are uploaded to.", + "$ref": "UploadRef" }, "photoId": { - "$ref": "PhotoId", - "description": "Required when updating a photo. Output only when creating a photo.\nIdentifier for the photo, which is unique among all photos in\nGoogle." + "description": "Required when updating a photo. Output only when creating a photo.\nIdentifier for the photo, which is unique among all photos in\nGoogle.", + "$ref": "PhotoId" }, "pose": { "$ref": "Pose", "description": "Pose of the photo." - }, - "shareLink": { - "description": "Output only. The share link for the photo.", - "type": "string" - }, - "captureTime": { - "description": "Absolute time when the photo was captured.\nWhen the photo has no exif timestamp, this is used to set a timestamp in\nthe photo metadata.", - "format": "google-datetime", - "type": "string" - }, - "thumbnailUrl": { - "description": "Output only. The thumbnail URL for showing a preview of the given photo.", - "type": "string" - }, - "viewCount": { - "description": "Output only. View count of the photo.", - "format": "int64", - "type": "string" } }, "id": "Photo" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", + "type": "object", + "properties": { + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", + "type": "string" + }, + "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\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", + "type": "object" + }, + "done": { + "type": "boolean", + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable." + } + }, + "id": "Operation" + }, + "PhotoResponse": { + "description": "Response payload for a single\nPhoto\nin batch operations including\nBatchGetPhotos\nand\nBatchUpdatePhotos.", + "type": "object", + "properties": { + "photo": { + "description": "The Photo resource, if the request\nwas successful.", + "$ref": "Photo" + }, + "status": { + "$ref": "Status", + "description": "The status for the operation to get or update a single photo in the batch\nrequest." + } + }, + "id": "PhotoResponse" + }, + "Connection": { + "properties": { + "target": { + "$ref": "PhotoId", + "description": "Required. The destination of the connection from the containing photo to\nanother photo." + } + }, + "id": "Connection", + "description": "A connection is the link from a source photo to a destination photo.", + "type": "object" + }, + "BatchUpdatePhotosResponse": { + "description": "Response to batch update of metadata of one or more\nPhotos.", + "type": "object", + "properties": { + "results": { + "description": "List of results for each individual\nPhoto updated, in the same order as\nthe request.", + "type": "array", + "items": { + "$ref": "PhotoResponse" + } + } + }, + "id": "BatchUpdatePhotosResponse" + }, + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", + "type": "object", + "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "type": "array", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + } + }, + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + } + }, + "id": "Status" + }, + "BatchDeletePhotosResponse": { + "properties": { + "status": { + "description": "The status for the operation to delete a single\nPhoto in the batch request.", + "type": "array", + "items": { + "$ref": "Status" + } + } + }, + "id": "BatchDeletePhotosResponse", + "description": "Response to batch delete of one or more\nPhotos.", + "type": "object" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", + "type": "object", + "properties": {}, + "id": "Empty" + }, + "Level": { + "description": "Level information containing level number and its corresponding name.", + "type": "object", + "properties": { + "name": { + "description": "Required. A name assigned to this Level, restricted to 3 characters.\nConsider how the elevator buttons would be labeled for this level if there\nwas an elevator.", + "type": "string" + }, + "number": { + "description": "Floor number, used for ordering. 0 indicates the ground level, 1 indicates\nthe first level above ground level, -1 indicates the first level under\nground level. Non-integer values are OK.", + "format": "double", + "type": "number" + } + }, + "id": "Level" + }, + "UploadRef": { + "properties": { + "uploadUrl": { + "description": "Required. An upload reference should be unique for each user. It follows\nthe form:\n\"https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}\"", + "type": "string" + } + }, + "id": "UploadRef", + "description": "Upload reference for media files.", + "type": "object" + }, + "Place": { + "type": "object", + "properties": { + "placeId": { + "type": "string", + "description": "Place identifier, as described in\nhttps://developers.google.com/places/place-id." + } + }, + "id": "Place", + "description": "Place metadata for an entity." + }, + "BatchGetPhotosResponse": { + "description": "Response to batch get of Photos.", + "type": "object", + "properties": { + "results": { + "description": "List of results for each individual\nPhoto requested, in the same order as\nthe requests in\nBatchGetPhotos.", + "type": "array", + "items": { + "$ref": "PhotoResponse" + } + } + }, + "id": "BatchGetPhotosResponse" + }, + "BatchDeletePhotosRequest": { + "properties": { + "photoIds": { + "description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "BatchDeletePhotosRequest", + "description": "Request to delete multiple Photos.", + "type": "object" + }, + "LatLng": { + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "latitude": { + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "format": "double", + "type": "number" + }, + "longitude": { + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "format": "double", + "type": "number" + } + }, + "id": "LatLng" } }, + "protocol": "rest", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, - "protocol": "rest", "canonicalName": "Street View Publish", "auth": { "oauth2": { @@ -347,342 +719,5 @@ "batchPath": "batch", "fullyEncodeReservedExpansion": true, "title": "Street View Publish API", - "ownerName": "Google", - "resources": { - "photos": { - "methods": { - "batchUpdate": { - "response": { - "$ref": "BatchUpdatePhotosResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "flatPath": "v1/photos:batchUpdate", - "path": "v1/photos:batchUpdate", - "id": "streetviewpublish.photos.batchUpdate", - "request": { - "$ref": "BatchUpdatePhotosRequest" - }, - "description": "Updates the metadata of Photos, such\nas pose, place association, connections, etc. Changing the pixels of photos\nis not supported.\n\nNote that if\nBatchUpdatePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchUpdatePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchUpdatePhotosResponse.results.\nSee\nUpdatePhoto\nfor specific failures that can occur per photo.\n\nOnly the fields specified in\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e" - }, - "batchDelete": { - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "BatchDeletePhotosResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "parameters": {}, - "flatPath": "v1/photos:batchDelete", - "id": "streetviewpublish.photos.batchDelete", - "path": "v1/photos:batchDelete", - "description": "Deletes a list of Photos and their\nmetadata.\n\nNote that if\nBatchDeletePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchDeletePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchDeletePhotosResponse.results.\nSee\nDeletePhoto\nfor specific failures that can occur per photo.", - "request": { - "$ref": "BatchDeletePhotosRequest" - } - }, - "batchGet": { - "flatPath": "v1/photos:batchGet", - "id": "streetviewpublish.photos.batchGet", - "path": "v1/photos:batchGet", - "description": "Gets the metadata of the specified\nPhoto batch.\n\nNote that if\nBatchGetPhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchGetPhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchGetPhotosResponse.results.\nSee\nGetPhoto\nfor specific failures that can occur per photo.", - "httpMethod": "GET", - "response": { - "$ref": "BatchGetPhotosResponse" - }, - "parameterOrder": [], - "parameters": { - "view": { - "location": "query", - "enum": [ - "BASIC", - "INCLUDE_DOWNLOAD_URL" - ], - "description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.", - "type": "string" - }, - "photoIds": { - "location": "query", - "description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`.", - "type": "string", - "repeated": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ] - }, - "list": { - "flatPath": "v1/photos", - "path": "v1/photos", - "id": "streetviewpublish.photos.list", - "description": "Lists all the Photos that belong to\nthe user.", - "response": { - "$ref": "ListPhotosResponse" - }, - "parameterOrder": [], - "httpMethod": "GET", - "parameters": { - "filter": { - "location": "query", - "description": "The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.\n\nThe only filter supported at the moment is `placeId`.", - "type": "string" - }, - "pageToken": { - "type": "string", - "location": "query", - "description": "The\nnextPageToken\nvalue returned from a previous\nListPhotos\nrequest, if any." - }, - "pageSize": { - "location": "query", - "description": "The maximum number of photos to return.\n`pageSize` must be non-negative. If `pageSize` is zero or is not provided,\nthe default page size of 100 will be used.\nThe number of photos returned in the response may be less than `pageSize`\nif the number of photos that belong to the user is less than `pageSize`.", - "format": "int32", - "type": "integer" - }, - "view": { - "location": "query", - "enum": [ - "BASIC", - "INCLUDE_DOWNLOAD_URL" - ], - "description": "Specifies if a download URL for the photos bytes should be returned in the\nPhotos response.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ] - } - } - }, - "photo": { - "methods": { - "delete": { - "path": "v1/photo/{photoId}", - "id": "streetviewpublish.photo.delete", - "description": "Deletes a Photo and its metadata.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.NOT_FOUND if the photo ID does not exist.", - "response": { - "$ref": "Empty" - }, - "parameterOrder": [ - "photoId" - ], - "httpMethod": "DELETE", - "parameters": { - "photoId": { - "location": "path", - "description": "Required. ID of the Photo.", - "required": true, - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "flatPath": "v1/photo/{photoId}" - }, - "get": { - "response": { - "$ref": "Photo" - }, - "parameterOrder": [ - "photoId" - ], - "httpMethod": "GET", - "parameters": { - "photoId": { - "location": "path", - "description": "Required. ID of the Photo.", - "required": true, - "type": "string" - }, - "view": { - "enum": [ - "BASIC", - "INCLUDE_DOWNLOAD_URL" - ], - "description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "flatPath": "v1/photo/{photoId}", - "path": "v1/photo/{photoId}", - "id": "streetviewpublish.photo.get", - "description": "Gets the metadata of the specified\nPhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested Photo.\n* google.rpc.Code.NOT_FOUND if the requested\nPhoto does not exist." - }, - "update": { - "description": "Updates the metadata of a Photo, such\nas pose, place association, connections, etc. Changing the pixels of a\nphoto is not supported.\n\nOnly the fields specified in the\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the requested photo does not exist.", - "request": { - "$ref": "Photo" - }, - "response": { - "$ref": "Photo" - }, - "parameterOrder": [ - "id" - ], - "httpMethod": "PUT", - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "parameters": { - "id": { - "location": "path", - "description": "Required. A unique identifier for a photo.", - "required": true, - "type": "string" - }, - "updateMask": { - "type": "string", - "location": "query", - "description": "Mask that identifies fields on the photo metadata to update.\nIf not present, the old Photo\nmetadata will be entirely replaced with the\nnew Photo metadata in this request.\nThe update fails if invalid fields are specified. Multiple fields can be\nspecified in a comma-delimited list.\n\nThe following fields are valid:\n\n* `pose.heading`\n* `pose.latLngPair`\n* `pose.pitch`\n* `pose.roll`\n* `pose.level`\n* `pose.altitude`\n* `connections`\n* `places`\n\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e Repeated fields in\nupdateMask\nmean the entire set of repeated values will be replaced with the new\ncontents. For example, if\nupdateMask\ncontains `connections` and `UpdatePhotoRequest.photo.connections` is empty,\nall connections will be removed.\u003c/aside\u003e", - "format": "google-fieldmask" - } - }, - "flatPath": "v1/photo/{id}", - "path": "v1/photo/{id}", - "id": "streetviewpublish.photo.update" - }, - "create": { - "flatPath": "v1/photo", - "path": "v1/photo", - "id": "streetviewpublish.photo.create", - "request": { - "$ref": "Photo" - }, - "description": "After the client finishes uploading the photo with the returned\nUploadRef,\nCreatePhoto\npublishes the uploaded Photo to\nStreet View on Google Maps.\n\nCurrently, the only way to set heading, pitch, and roll in CreatePhoto is\nthrough the [Photo Sphere XMP\nmetadata](https://developers.google.com/streetview/spherical-metadata) in\nthe photo bytes. The `pose.heading`, `pose.pitch`, `pose.roll`,\n`pose.altitude`, and `pose.level` fields in Pose are ignored for\nCreatePhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the upload reference does not exist.\n* google.rpc.Code.RESOURCE_EXHAUSTED if the account has reached the\nstorage limit.", - "response": { - "$ref": "Photo" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ] - }, - "startUpload": { - "response": { - "$ref": "UploadRef" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/streetviewpublish" - ], - "flatPath": "v1/photo:startUpload", - "path": "v1/photo:startUpload", - "id": "streetviewpublish.photo.startUpload", - "request": { - "$ref": "Empty" - }, - "description": "Creates an upload session to start uploading photo bytes. The upload URL of\nthe returned UploadRef is used to\nupload the bytes for the Photo.\n\nIn addition to the photo requirements shown in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604,\nthe photo must also meet the following requirements:\n\n* Photo Sphere XMP metadata must be included in the photo medadata. See\nhttps://developers.google.com/streetview/spherical-metadata for the\nrequired fields.\n* The pixel size of the photo must meet the size requirements listed in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604, and\nthe photo must be a full 360 horizontally.\n\nAfter the upload is complete, the\nUploadRef is used with\nCreatePhoto\nto create the Photo object entry." - } - } - } - }, - "parameters": { - "upload_protocol": { - "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" - }, - "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "type": "boolean", - "default": "true", - "location": "query" - }, - "fields": { - "description": "Selector specifying which fields to include in a partial response.", - "type": "string", - "location": "query" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" - }, - "$.xgafv": { - "enum": [ - "1", - "2" - ], - "description": "V1 error format.", - "type": "string", - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - }, - "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "type": "string", - "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" - }, - "access_token": { - "type": "string", - "location": "query", - "description": "OAuth access token." - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "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.", - "type": "string", - "location": "query" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "type": "boolean", - "default": "true" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", - "location": "query" - }, - "oauth_token": { - "type": "string", - "location": "query", - "description": "OAuth 2.0 token for the current user." - } - }, - "version": "v1", - "baseUrl": "https://streetviewpublish.googleapis.com/", - "servicePath": "", - "kind": "discovery#restDescription", - "description": "Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images.\n" + "ownerName": "Google" } diff --git a/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-gen.go b/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-gen.go index 836c8cd5e..32430327f 100644 --- a/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-gen.go +++ b/vendor/google.golang.org/api/streetviewpublish/v1/streetviewpublish-gen.go @@ -500,6 +500,77 @@ func (s *ListPhotosResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Operation: This resource represents a long-running operation that is +// the result of a +// network API call. +type Operation struct { + // Done: 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. + Done bool `json:"done,omitempty"` + + // Error: The error result of the operation in case of failure or + // cancellation. + Error *Status `json:"error,omitempty"` + + // Metadata: 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. + Metadata googleapi.RawMessage `json:"metadata,omitempty"` + + // Name: 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 have the format of `operations/some/unique/name`. + Name string `json:"name,omitempty"` + + // Response: 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`. + Response googleapi.RawMessage `json:"response,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Done") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Done") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Operation) MarshalJSON() ([]byte, error) { + type noMethod Operation + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Photo: Photo is used to store 360 photos along with photo metadata. type Photo struct { // CaptureTime: Absolute time when the photo was captured. diff --git a/vendor/google.golang.org/api/testing/v1/testing-api.json b/vendor/google.golang.org/api/testing/v1/testing-api.json index bb55fb5a8..87f68ce11 100644 --- a/vendor/google.golang.org/api/testing/v1/testing-api.json +++ b/vendor/google.golang.org/api/testing/v1/testing-api.json @@ -1,179 +1,26 @@ { - "ownerDomain": "google.com", - "name": "testing", - "batchPath": "batch", - "id": "testing:v1", - "documentationLink": "https://developers.google.com/cloud-test-lab/", - "revision": "20170922", - "title": "Google Cloud Testing API", - "ownerName": "Google", - "discoveryVersion": "v1", - "resources": { - "projects": { - "resources": { - "testMatrices": { - "methods": { - "create": { - "id": "testing.projects.testMatrices.create", - "path": "v1/projects/{projectId}/testMatrices", - "description": "Request to run a matrix of tests according to the given specifications.\nUnsupported environments will be returned in the state UNSUPPORTED.\nMatrices are limited to at most 200 supported executions.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project\n- INVALID_ARGUMENT - if the request is malformed or if the matrix expands\n to more than 200 supported executions", - "request": { - "$ref": "TestMatrix" - }, - "response": { - "$ref": "TestMatrix" - }, - "parameterOrder": [ - "projectId" - ], - "httpMethod": "POST", - "parameters": { - "projectId": { - "description": "The GCE project under which this job will run.", - "type": "string", - "required": true, - "location": "path" - }, - "requestId": { - "location": "query", - "description": "A string id used to detect duplicated requests.\nIds are automatically scoped to a project, so\nusers should ensure the ID is unique per-project.\nA UUID is recommended.\n\nOptional, but strongly recommended.", - "type": "string" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "flatPath": "v1/projects/{projectId}/testMatrices" - }, - "cancel": { - "response": { - "$ref": "CancelTestMatrixResponse" - }, - "parameterOrder": [ - "projectId", - "testMatrixId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "projectId": { - "description": "Cloud project that owns the test.", - "type": "string", - "required": true, - "location": "path" - }, - "testMatrixId": { - "location": "path", - "description": "Test matrix that will be canceled.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel", - "id": "testing.projects.testMatrices.cancel", - "path": "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel", - "description": "Cancels unfinished test executions in a test matrix.\nThis call returns immediately and cancellation proceeds asychronously.\nIf the matrix is already final, this operation will have no effect.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the Test Matrix does not exist" - }, - "get": { - "httpMethod": "GET", - "parameterOrder": [ - "projectId", - "testMatrixId" - ], - "response": { - "$ref": "TestMatrix" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "parameters": { - "projectId": { - "description": "Cloud project that owns the test matrix.", - "type": "string", - "required": true, - "location": "path" - }, - "testMatrixId": { - "location": "path", - "description": "Unique test matrix id which was assigned by the service.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/projects/{projectId}/testMatrices/{testMatrixId}", - "path": "v1/projects/{projectId}/testMatrices/{testMatrixId}", - "id": "testing.projects.testMatrices.get", - "description": "Check the status of a test matrix.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the Test Matrix does not exist" - } - } - } - } - }, - "testEnvironmentCatalog": { - "methods": { - "get": { - "description": "Get the catalog of supported test environments.\n\nMay return any of the following canonical error codes:\n\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the environment type does not exist\n- INTERNAL - if an internal error occurred", - "response": { - "$ref": "TestEnvironmentCatalog" - }, - "parameterOrder": [ - "environmentType" - ], - "httpMethod": "GET", - "parameters": { - "projectId": { - "type": "string", - "location": "query", - "description": "For authorization, the cloud project requesting the TestEnvironmentCatalog.\nOptional" - }, - "environmentType": { - "description": "The type of environment that should be listed.\nRequired", - "type": "string", - "required": true, - "location": "path", - "enum": [ - "ENVIRONMENT_TYPE_UNSPECIFIED", - "ANDROID", - "NETWORK_CONFIGURATION" - ] - } - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ], - "flatPath": "v1/testEnvironmentCatalog/{environmentType}", - "id": "testing.testEnvironmentCatalog.get", - "path": "v1/testEnvironmentCatalog/{environmentType}" - } - } - } - }, "parameters": { "upload_protocol": { - "type": "string", "location": "query", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" }, "prettyPrint": { - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean", - "location": "query" - }, - "fields": { "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "description": "Returns response with indentations and line breaks.", + "type": "boolean", + "default": "true" }, "uploadType": { "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string" }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, "$.xgafv": { "enum": [ "1", @@ -208,77 +55,275 @@ "description": "Data format for response.", "default": "json" }, - "key": { - "location": "query", - "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.", - "type": "string" - }, "access_token": { "location": "query", "description": "OAuth access token.", "type": "string" }, - "quotaUser": { + "key": { "location": "query", - "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.", + "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.", "type": "string" }, + "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.", + "type": "string", + "location": "query" + }, "pp": { - "location": "query", "description": "Pretty-print response.", + "type": "boolean", "default": "true", - "type": "boolean" - }, - "bearer_token": { - "location": "query", - "description": "OAuth bearer token.", - "type": "string" + "location": "query" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string" + "type": "string", + "location": "query" + }, + "bearer_token": { + "type": "string", + "location": "query", + "description": "OAuth bearer token." } }, "schemas": { + "DeviceFile": { + "description": "A single device file description.", + "type": "object", + "properties": { + "obbFile": { + "$ref": "ObbFile", + "description": "A reference to an opaque binary blob file" + } + }, + "id": "DeviceFile" + }, + "ClientInfoDetail": { + "type": "object", + "properties": { + "key": { + "description": "The key of detailed client information.\nRequired", + "type": "string" + }, + "value": { + "description": "The value of detailed client information.\nRequired", + "type": "string" + } + }, + "id": "ClientInfoDetail", + "description": "Key-value pair of detailed information about the client which invoked the\ntest. For example {'Version', '1.0'}, {'Release Track', 'BETA'}" + }, + "EnvironmentVariable": { + "description": "A key-value pair passed as an environment variable to the test", + "type": "object", + "properties": { + "key": { + "description": "Key for the environment variable", + "type": "string" + }, + "value": { + "description": "Value for the environment variable", + "type": "string" + } + }, + "id": "EnvironmentVariable" + }, + "Environment": { + "type": "object", + "properties": { + "androidDevice": { + "description": "An Android device which must be used with an Android test.", + "$ref": "AndroidDevice" + } + }, + "id": "Environment", + "description": "The environment in which the test is run." + }, + "TestExecution": { + "description": "Specifies a single test to be executed in a single environment.", + "type": "object", + "properties": { + "testDetails": { + "$ref": "TestDetails", + "description": "Additional details about the running test.\n@OutputOnly" + }, + "matrixId": { + "description": "Id of the containing TestMatrix.\n@OutputOnly", + "type": "string" + }, + "environment": { + "$ref": "Environment", + "description": "How the host machine(s) are configured.\n@OutputOnly" + }, + "state": { + "type": "string", + "enumDescriptions": [ + "Do not use. For proto versioning only.", + "The execution or matrix is being validated.", + "The execution or matrix is waiting for resources to become available.", + "The execution is currently being processed.\n\nCan only be set on an execution.", + "The execution or matrix has terminated normally.\n\nOn a matrix this means that the matrix level processing completed normally,\nbut individual executions may be in an ERROR state.", + "The execution or matrix has stopped because it encountered an\ninfrastructure failure.", + "The execution was not run because it corresponds to a unsupported\nenvironment.\n\nCan only be set on an execution.", + "The execution was not run because the provided inputs are incompatible with\nthe requested environment.\n\nExample: requested AndroidVersion is lower than APK's minSdkVersion\n\nCan only be set on an execution.", + "The execution was not run because the provided inputs are incompatible with\nthe requested architecture.\n\nExample: requested device does not support running the native code in\nthe supplied APK\n\nCan only be set on an execution.", + "The user cancelled the execution.\n\nCan only be set on an execution.", + "The execution or matrix was not run because the provided inputs are not\nvalid.\n\nExamples: input file is not of the expected type, is malformed/corrupt, or\nwas flagged as malware" + ], + "enum": [ + "TEST_STATE_UNSPECIFIED", + "VALIDATING", + "PENDING", + "RUNNING", + "FINISHED", + "ERROR", + "UNSUPPORTED_ENVIRONMENT", + "INCOMPATIBLE_ENVIRONMENT", + "INCOMPATIBLE_ARCHITECTURE", + "CANCELLED", + "INVALID" + ], + "description": "Indicates the current progress of the test execution (e.g., FINISHED).\n@OutputOnly" + }, + "toolResultsStep": { + "$ref": "ToolResultsStep", + "description": "Where the results for this execution are written.\n@OutputOnly" + }, + "testSpecification": { + "description": "How to run the test.\n@OutputOnly", + "$ref": "TestSpecification" + }, + "projectId": { + "description": "The cloud project that owns the test execution.\n@OutputOnly", + "type": "string" + }, + "id": { + "description": "Unique id set by the backend.\n@OutputOnly", + "type": "string" + }, + "timestamp": { + "type": "string", + "description": "The time this test execution was initially created.\n@OutputOnly", + "format": "google-datetime" + } + }, + "id": "TestExecution" + }, + "GoogleCloudStorage": { + "description": "A storage location within Google cloud storage (GCS).", + "type": "object", + "properties": { + "gcsPath": { + "description": "The path to a directory in GCS that will\neventually contain the results for this test.\nThe requesting user must have write access on the bucket in the supplied\npath.\nRequired", + "type": "string" + } + }, + "id": "GoogleCloudStorage" + }, + "RoboDirective": { + "properties": { + "resourceName": { + "description": "The android resource name of the target UI element\nFor example,\n in Java: R.string.foo\n in xml: @string/foo\nOnly the “foo” part is needed.\nReference doc:\nhttps://developer.android.com/guide/topics/resources/accessing-resources.html\nRequired", + "type": "string" + }, + "inputText": { + "type": "string", + "description": "The text that Robo is directed to set. If left empty, the directive will be\ntreated as a CLICK on the element matching the resource_name.\nOptional" + }, + "actionType": { + "description": "The type of action that Robo should perform on the specified element.\nRequired.", + "type": "string", + "enumDescriptions": [ + "DO NOT USE. For proto versioning only.", + "Direct Robo to click on the specified element. No-op if specified element\nis not clickable.", + "Direct Robo to enter text on the specified element. No-op if specified\nelement is not enabled or does not allow text entry." + ], + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "SINGLE_CLICK", + "ENTER_TEXT" + ] + } + }, + "id": "RoboDirective", + "description": "Directs Robo to interact with a specific UI element if it is encountered\nduring the crawl. Currently, Robo can perform text entry or element click.", + "type": "object" + }, + "AndroidMatrix": { + "description": "A set of Android device configuration permutations is defined by the\nthe cross-product of the given axes. Internally, the given AndroidMatrix\nwill be expanded into a set of AndroidDevices.\n\nOnly supported permutations will be instantiated. Invalid permutations\n(e.g., incompatible models/versions) are ignored.", + "type": "object", + "properties": { + "androidModelIds": { + "description": "The ids of the set of Android device to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", + "type": "array", + "items": { + "type": "string" + } + }, + "orientations": { + "description": "The set of orientations to test with.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", + "type": "array", + "items": { + "type": "string" + } + }, + "androidVersionIds": { + "description": "The ids of the set of Android OS version to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", + "type": "array", + "items": { + "type": "string" + } + }, + "locales": { + "description": "The set of locales the test device will enable for testing.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": "AndroidMatrix" + }, "AndroidModel": { "description": "A description of an Android device tests may be run on.", "type": "object", "properties": { - "tags": { - "description": "Tags for this dimension.\nExamples: \"default\", \"preview\", \"deprecated\"", - "items": { - "type": "string" - }, - "type": "array" - }, "id": { "description": "The unique opaque id for this model.\nUse this for invoking the TestExecutionService.\n@OutputOnly", "type": "string" }, + "tags": { + "description": "Tags for this dimension.\nExamples: \"default\", \"preview\", \"deprecated\"", + "type": "array", + "items": { + "type": "string" + } + }, "manufacturer": { - "description": "The manufacturer of this device.\n@OutputOnly", - "type": "string" + "type": "string", + "description": "The manufacturer of this device.\n@OutputOnly" }, "brand": { "description": "The company that this device is branded with.\nExample: \"Google\", \"Samsung\"\n@OutputOnly", "type": "string" }, "screenX": { - "format": "int32", "description": "Screen size in the horizontal (X) dimension measured in pixels.\n@OutputOnly", + "format": "int32", "type": "integer" }, "codename": { - "type": "string", - "description": "The name of the industrial design.\nThis corresponds to android.os.Build.DEVICE\n@OutputOnly" + "description": "The name of the industrial design.\nThis corresponds to android.os.Build.DEVICE\n@OutputOnly", + "type": "string" }, "screenY": { - "format": "int32", "description": "Screen size in the vertical (Y) dimension measured in pixels.\n@OutputOnly", + "format": "int32", "type": "integer" }, "form": { + "type": "string", "enumDescriptions": [ "Do not use. For proto versioning only.", "A software stack that simulates the device", @@ -289,27 +334,26 @@ "VIRTUAL", "PHYSICAL" ], - "description": "Whether this device is virtual or physical.\n@OutputOnly", - "type": "string" + "description": "Whether this device is virtual or physical.\n@OutputOnly" }, "screenDensity": { - "type": "integer", + "description": "Screen density in DPI.\nThis corresponds to ro.sf.lcd_density\n@OutputOnly", "format": "int32", - "description": "Screen density in DPI.\nThis corresponds to ro.sf.lcd_density\n@OutputOnly" + "type": "integer" }, "supportedVersionIds": { + "description": "The set of Android versions this device supports.\n@OutputOnly", + "type": "array", "items": { "type": "string" - }, - "type": "array", - "description": "The set of Android versions this device supports.\n@OutputOnly" + } }, "supportedAbis": { "description": "The list of supported ABIs for this device.\nThis corresponds to either android.os.Build.SUPPORTED_ABIS (for API level\n21 and above) or android.os.Build.CPU_ABI/CPU_ABI2.\nThe most preferred ABI is the first element in the list.\n\nElements are optionally prefixed by \"version_id:\" (where version_id is\nthe id of an AndroidVersion), denoting an ABI that is supported only on\na particular version.\n@OutputOnly", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "name": { "description": "The human-readable marketing name for this device model.\nExamples: \"Nexus 5\", \"Galaxy S5\"\n@OutputOnly", @@ -319,58 +363,65 @@ "id": "AndroidModel" }, "TestSetup": { - "description": "A description of how to set up the device prior to running the test", "type": "object", "properties": { - "directoriesToPull": { - "description": "The directories on the device to upload to GCS at the end of the test;\nthey must be absolute, whitelisted paths.\nRefer to RegularFile for whitelisted paths.\nOptional", - "items": { - "type": "string" - }, - "type": "array" - }, - "filesToPush": { - "description": "Optional", - "items": { - "$ref": "DeviceFile" - }, - "type": "array" - }, "networkProfile": { "description": "The network traffic profile used for running the test.\nOptional", "type": "string" }, "environmentVariables": { "description": "Environment variables to set for the test (only applicable for\ninstrumentation tests).", + "type": "array", "items": { "$ref": "EnvironmentVariable" - }, - "type": "array" + } }, "account": { - "description": "The device will be logged in on this account for the duration of the test.\nOptional", - "$ref": "Account" + "$ref": "Account", + "description": "The device will be logged in on this account for the duration of the test.\nOptional" + }, + "directoriesToPull": { + "description": "List of directories on the device to upload to GCS at the end of the test;\nthey must be absolute paths under /sdcard or /data/local/tmp.\nPath names are restricted to characters a-z A-Z 0-9 _ - . + and /\n\nNote: The paths /sdcard and /data will be made available and treated as\nimplicit path substitutions. E.g. if /sdcard on a particular device does\nnot map to external storage, the system will replace it with the external\nstorage path prefix for that device.\n\nOptional", + "type": "array", + "items": { + "type": "string" + } + }, + "filesToPush": { + "description": "List of files to push to the device before starting the test.\n\nOptional", + "type": "array", + "items": { + "$ref": "DeviceFile" + } } }, - "id": "TestSetup" + "id": "TestSetup", + "description": "A description of how to set up the device prior to running the test" }, "TestSpecification": { - "id": "TestSpecification", "description": "A description of how to run the test.", "type": "object", "properties": { + "androidInstrumentationTest": { + "$ref": "AndroidInstrumentationTest", + "description": "An Android instrumentation test." + }, + "disablePerformanceMetrics": { + "description": "Disables performance metrics recording; may reduce test latency.", + "type": "boolean" + }, + "disableVideoRecording": { + "description": "Disables video recording; may reduce test latency.", + "type": "boolean" + }, "testTimeout": { - "format": "google-duration", "description": "Max time a test execution is allowed to run before it is\nautomatically cancelled.\nOptional, default is 5 min.", + "format": "google-duration", "type": "string" }, "autoGoogleLogin": { - "type": "boolean", - "description": "Enables automatic Google account login.\nIf set, the service will automatically generate a Google test account and\nadd it to the device, before executing the test. Note that test accounts\nmight be reused.\nMany applications show their full set of functionalities when an account is\npresent on the device. Logging into the device with these generated\naccounts allows testing more functionalities.\nDefault is false.\nOptional" - }, - "androidTestLoop": { - "description": "An Android Application with a Test Loop", - "$ref": "AndroidTestLoop" + "description": "Enables automatic Google account login.\nIf set, the service will automatically generate a Google test account and\nadd it to the device, before executing the test. Note that test accounts\nmight be reused.\nMany applications show their full set of functionalities when an account is\npresent on the device. Logging into the device with these generated\naccounts allows testing more functionalities.\nDefault is false.\nOptional", + "type": "boolean" }, "testSetup": { "$ref": "TestSetup", @@ -380,34 +431,73 @@ "$ref": "AndroidRoboTest", "description": "An Android robo test." }, - "androidInstrumentationTest": { - "description": "An Android instrumentation test.", - "$ref": "AndroidInstrumentationTest" - }, - "disablePerformanceMetrics": { - "description": "Disables performance metrics recording; may reduce test latency.", - "type": "boolean" - }, - "disableVideoRecording": { - "description": "Disables video recording; may reduce test latency.", - "type": "boolean" + "androidTestLoop": { + "description": "An Android Application with a Test Loop", + "$ref": "AndroidTestLoop" } - } + }, + "id": "TestSpecification" + }, + "ResultStorage": { + "description": "Locations where the results of running the test are stored.", + "type": "object", + "properties": { + "toolResultsHistory": { + "$ref": "ToolResultsHistory", + "description": "The tool results history that contains the tool results execution that\nresults are written to.\n\nOptional, if not provided the service will choose an appropriate value." + }, + "googleCloudStorage": { + "description": "Required.", + "$ref": "GoogleCloudStorage" + }, + "toolResultsExecution": { + "$ref": "ToolResultsExecution", + "description": "The tool results execution that results are written to.\n@OutputOnly" + } + }, + "id": "ResultStorage" }, "TestMatrix": { "description": "A group of one or more TestExecutions, built by taking a\nproduct of values over a pre-defined set of axes.", "type": "object", "properties": { - "resultStorage": { - "$ref": "ResultStorage", - "description": "Where the results for the matrix are written.\nRequired" + "projectId": { + "description": "The cloud project that owns the test matrix.\n@OutputOnly", + "type": "string" + }, + "testSpecification": { + "description": "How to run the test.\nRequired", + "$ref": "TestSpecification" + }, + "clientInfo": { + "$ref": "ClientInfo", + "description": "Information about the client which invoked the test.\nOptional" + }, + "testExecutions": { + "description": "The list of test executions that the service creates for this matrix.\n@OutputOnly", + "type": "array", + "items": { + "$ref": "TestExecution" + } + }, + "timestamp": { + "description": "The time this test matrix was initially created.\n@OutputOnly", + "format": "google-datetime", + "type": "string" + }, + "environmentMatrix": { + "$ref": "EnvironmentMatrix", + "description": "How the host machine(s) are configured.\nRequired" }, "testMatrixId": { "description": "Unique id set by the service.\n@OutputOnly", "type": "string" }, + "resultStorage": { + "description": "Where the results for the matrix are written.\nRequired", + "$ref": "ResultStorage" + }, "invalidMatrixDetails": { - "type": "string", "enumDescriptions": [ "Do not use. For proto versioning only.", "The matrix is INVALID, but there are no further details available.", @@ -452,10 +542,10 @@ "DEVICE_ADMIN_RECEIVER", "TEST_ONLY_APK" ], - "description": "Describes why the matrix is considered invalid.\nOnly useful for matrices in the INVALID state.\n@OutputOnly" + "description": "Describes why the matrix is considered invalid.\nOnly useful for matrices in the INVALID state.\n@OutputOnly", + "type": "string" }, "state": { - "description": "Indicates the current progress of the test matrix (e.g., FINISHED)\n@OutputOnly", "type": "string", "enumDescriptions": [ "Do not use. For proto versioning only.", @@ -482,97 +572,30 @@ "INCOMPATIBLE_ARCHITECTURE", "CANCELLED", "INVALID" - ] - }, - "testSpecification": { - "$ref": "TestSpecification", - "description": "How to run the test.\nRequired" - }, - "projectId": { - "description": "The cloud project that owns the test matrix.\n@OutputOnly", - "type": "string" - }, - "clientInfo": { - "$ref": "ClientInfo", - "description": "Information about the client which invoked the test.\nOptional" - }, - "testExecutions": { - "description": "The list of test executions that the service creates for this matrix.\n@OutputOnly", - "items": { - "$ref": "TestExecution" - }, - "type": "array" - }, - "timestamp": { - "format": "google-datetime", - "description": "The time this test matrix was initially created.\n@OutputOnly", - "type": "string" - }, - "environmentMatrix": { - "description": "How the host machine(s) are configured.\nRequired", - "$ref": "EnvironmentMatrix" + ], + "description": "Indicates the current progress of the test matrix (e.g., FINISHED)\n@OutputOnly" } }, "id": "TestMatrix" }, - "ResultStorage": { - "description": "Locations where the results of running the test are stored.", - "type": "object", - "properties": { - "toolResultsExecution": { - "$ref": "ToolResultsExecution", - "description": "The tool results execution that results are written to.\n@OutputOnly" - }, - "toolResultsHistory": { - "description": "The tool results history that contains the tool results execution that\nresults are written to.\n\nOptional, if not provided the service will choose an appropriate value.", - "$ref": "ToolResultsHistory" - }, - "googleCloudStorage": { - "$ref": "GoogleCloudStorage", - "description": "Required." - } - }, - "id": "ResultStorage" - }, - "FileReference": { - "type": "object", - "properties": { - "gcsPath": { - "description": "A path to a file in Google Cloud Storage.\nExample: gs://build-app-1414623860166/app-debug-unaligned.apk", - "type": "string" - } - }, - "id": "FileReference", - "description": "A reference to a file, used for user inputs." - }, "AndroidVersion": { - "description": "A version of the Android OS", "type": "object", "properties": { - "apiLevel": { - "format": "int32", - "description": "The API level for this Android version.\nExamples: 18, 19\n@OutputOnly", - "type": "integer" - }, - "distribution": { - "$ref": "Distribution", - "description": "Market share for this version.\n@OutputOnly" - }, - "releaseDate": { - "$ref": "Date", - "description": "The date this Android version became available in the market.\n@OutputOnly" - }, - "id": { - "description": "An opaque id for this Android version.\nUse this id to invoke the TestExecutionService.\n@OutputOnly", - "type": "string" - }, "tags": { + "type": "array", "items": { "type": "string" }, - "type": "array", "description": "Tags for this dimension.\nExamples: \"default\", \"preview\", \"deprecated\"" }, + "id": { + "type": "string", + "description": "An opaque id for this Android version.\nUse this id to invoke the TestExecutionService.\n@OutputOnly" + }, + "releaseDate": { + "description": "The date this Android version became available in the market.\n@OutputOnly", + "$ref": "Date" + }, "versionString": { "description": "A string representing this version of the Android OS.\nExamples: \"4.3\", \"4.4\"\n@OutputOnly", "type": "string" @@ -580,58 +603,79 @@ "codeName": { "description": "The code name for this Android version.\nExamples: \"JellyBean\", \"KitKat\"\n@OutputOnly", "type": "string" + }, + "apiLevel": { + "description": "The API level for this Android version.\nExamples: 18, 19\n@OutputOnly", + "format": "int32", + "type": "integer" + }, + "distribution": { + "$ref": "Distribution", + "description": "Market share for this version.\n@OutputOnly" } }, - "id": "AndroidVersion" + "id": "AndroidVersion", + "description": "A version of the Android OS" }, - "TestDetails": { + "FileReference": { + "description": "A reference to a file, used for user inputs.", "type": "object", "properties": { + "gcsPath": { + "description": "A path to a file in Google Cloud Storage.\nExample: gs://build-app-1414623860166/app-debug-unaligned.apk", + "type": "string" + } + }, + "id": "FileReference" + }, + "TestDetails": { + "properties": { + "progressMessages": { + "description": "Human-readable, detailed descriptions of the test's progress.\nFor example: \"Provisioning a device\", \"Starting Test\".\n\nDuring the course of execution new data may be appended\nto the end of progress_messages.\n@OutputOnly", + "type": "array", + "items": { + "type": "string" + } + }, "errorMessage": { "description": "If the TestState is ERROR, then this string will contain human-readable\ndetails about the error.\n@OutputOnly", "type": "string" - }, - "progressMessages": { - "description": "Human-readable, detailed descriptions of the test's progress.\nFor example: \"Provisioning a device\", \"Starting Test\".\n\nDuring the course of execution new data may be appended\nto the end of progress_messages.\n@OutputOnly", - "items": { - "type": "string" - }, - "type": "array" } }, "id": "TestDetails", - "description": "Additional details about the progress of the running test." + "description": "Additional details about the progress of the running test.", + "type": "object" }, "ToolResultsExecution": { - "description": "Represents a tool results execution resource.\n\nThis has the results of a TestMatrix.", - "type": "object", "properties": { - "historyId": { - "description": "A tool results history ID.\n@OutputOnly", - "type": "string" - }, "projectId": { "description": "The cloud project that owns the tool results execution.\n@OutputOnly", "type": "string" }, + "historyId": { + "description": "A tool results history ID.\n@OutputOnly", + "type": "string" + }, "executionId": { "description": "A tool results execution ID.\n@OutputOnly", "type": "string" } }, - "id": "ToolResultsExecution" + "id": "ToolResultsExecution", + "description": "Represents a tool results execution resource.\n\nThis has the results of a TestMatrix.", + "type": "object" }, "ToolResultsHistory": { "description": "Represents a tool results history resource.", "type": "object", "properties": { - "historyId": { - "description": "A tool results history ID.\nRequired", - "type": "string" - }, "projectId": { "description": "The cloud project that owns the tool results history.\nRequired", "type": "string" + }, + "historyId": { + "description": "A tool results history ID.\nRequired", + "type": "string" } }, "id": "ToolResultsHistory" @@ -640,34 +684,34 @@ "description": "A test of an android application that explores the application on a virtual\nor physical Android Device, finding culprits and crashes as it goes.", "type": "object", "properties": { - "roboDirectives": { - "description": "A set of directives Robo should apply during the crawl.\nThis allows users to customize the crawl. For example, the username and\npassword for a test account can be provided.\nOptional", - "items": { - "$ref": "RoboDirective" - }, - "type": "array" - }, "maxDepth": { - "format": "int32", + "type": "integer", "description": "The max depth of the traversal stack Robo can explore. Needs to be at least\n2 to make Robo explore the app beyond the first activity.\nDefault is 50.\nOptional", - "type": "integer" + "format": "int32" }, "appApk": { - "$ref": "FileReference", - "description": "The APK for the application under test.\nRequired" + "description": "The APK for the application under test.\nRequired", + "$ref": "FileReference" }, "appPackageId": { - "description": "The java package for the application under test.\nOptional, default is determined by examining the application's manifest.", - "type": "string" + "type": "string", + "description": "The java package for the application under test.\nOptional, default is determined by examining the application's manifest." }, "appInitialActivity": { - "type": "string", - "description": "The initial activity that should be used to start the app.\nOptional" + "description": "The initial activity that should be used to start the app.\nOptional", + "type": "string" }, "maxSteps": { - "format": "int32", "description": "The max number of steps Robo can execute.\nDefault is no limit.\nOptional", + "format": "int32", "type": "integer" + }, + "roboDirectives": { + "description": "A set of directives Robo should apply during the crawl.\nThis allows users to customize the crawl. For example, the username and\npassword for a test account can be provided.\nOptional", + "type": "array", + "items": { + "$ref": "RoboDirective" + } } }, "id": "AndroidRoboTest" @@ -676,82 +720,82 @@ "description": "Data about the relative number of devices running a\ngiven configuration of the Android platform.", "type": "object", "properties": { - "marketShare": { - "format": "double", - "description": "The estimated fraction (0-1) of the total market with this configuration.\n@OutputOnly", - "type": "number" - }, "measurementTime": { - "format": "google-datetime", "description": "The time this distribution was measured.\n@OutputOnly", + "format": "google-datetime", "type": "string" + }, + "marketShare": { + "description": "The estimated fraction (0-1) of the total market with this configuration.\n@OutputOnly", + "format": "double", + "type": "number" } }, "id": "Distribution" }, "Orientation": { - "description": "Screen orientation of the device.", "type": "object", "properties": { - "tags": { - "description": "Tags for this dimension.\nExamples: \"default\"", - "items": { - "type": "string" - }, - "type": "array" + "name": { + "description": "A human-friendly name for this orientation.\nExample: \"portrait\"\n@OutputOnly", + "type": "string" }, "id": { "description": "The id for this orientation.\nExample: \"portrait\"\n@OutputOnly", "type": "string" }, - "name": { - "description": "A human-friendly name for this orientation.\nExample: \"portrait\"\n@OutputOnly", - "type": "string" + "tags": { + "description": "Tags for this dimension.\nExamples: \"default\"", + "type": "array", + "items": { + "type": "string" + } } }, - "id": "Orientation" + "id": "Orientation", + "description": "Screen orientation of the device." }, "NetworkConfigurationCatalog": { "type": "object", "properties": { "configurations": { + "type": "array", "items": { "$ref": "NetworkConfiguration" - }, - "type": "array" + } } }, "id": "NetworkConfigurationCatalog" }, "AndroidTestLoop": { + "id": "AndroidTestLoop", "description": "A test of an Android Application with a Test Loop.\nThe intent \u003cintent-name\u003e will be implicitly added, since Games is the only\nuser of this api, for the time being.", "type": "object", "properties": { - "scenarioLabels": { - "description": "The list of scenario labels that should be run during the test.\nThe scenario labels should map to labels defined in the application's\nmanifest. For example, player_experience and\ncom.google.test.loops.player_experience add all of the loops labeled in the\nmanifest with the com.google.test.loops.player_experience name to the\nexecution.\nOptional. Scenarios can also be specified in the scenarios field.", - "items": { - "type": "string" - }, - "type": "array" - }, "scenarios": { "description": "The list of scenarios that should be run during the test.\nOptional, default is all test loops, derived from the application's\nmanifest.", + "type": "array", "items": { "format": "int32", "type": "integer" - }, - "type": "array" + } + }, + "scenarioLabels": { + "description": "The list of scenario labels that should be run during the test.\nThe scenario labels should map to labels defined in the application's\nmanifest. For example, player_experience and\ncom.google.test.loops.player_experience add all of the loops labeled in the\nmanifest with the com.google.test.loops.player_experience name to the\nexecution.\nOptional. Scenarios can also be specified in the scenarios field.", + "type": "array", + "items": { + "type": "string" + } + }, + "appApk": { + "$ref": "FileReference", + "description": "The APK for the application under test.\nRequired" }, "appPackageId": { "description": "The java package for the application under test.\nOptional, default is determined by examining the application's manifest.", "type": "string" - }, - "appApk": { - "description": "The APK for the application under test.\nRequired", - "$ref": "FileReference" } - }, - "id": "AndroidTestLoop" + } }, "GoogleAuto": { "description": "Enables automatic Google account login.\nIf set, the service will automatically generate a Google test account and add\nit to the device, before executing the test. Note that test accounts might be\nreused.\nMany applications show their full set of functionalities when an account is\npresent on the device. Logging into the device with these generated accounts\nallows testing more functionalities.", @@ -763,79 +807,114 @@ "description": "The currently supported Android devices.", "type": "object", "properties": { + "versions": { + "description": "The set of supported Android OS versions.\n@OutputOnly", + "type": "array", + "items": { + "$ref": "AndroidVersion" + } + }, "runtimeConfiguration": { "$ref": "AndroidRuntimeConfiguration", "description": "The set of supported runtime configurations.\n@OutputOnly" }, - "versions": { - "description": "The set of supported Android OS versions.\n@OutputOnly", - "items": { - "$ref": "AndroidVersion" - }, - "type": "array" - }, "models": { "description": "The set of supported Android device models.\n@OutputOnly", + "type": "array", "items": { "$ref": "AndroidModel" - }, - "type": "array" + } } }, "id": "AndroidDeviceCatalog" }, "AndroidDeviceList": { - "id": "AndroidDeviceList", - "description": "A list of Android device configurations in which the test is to be executed.", "type": "object", "properties": { "androidDevices": { "description": "A list of Android devices\nRequired", + "type": "array", "items": { "$ref": "AndroidDevice" - }, - "type": "array" + } } - } + }, + "id": "AndroidDeviceList", + "description": "A list of Android device configurations in which the test is to be executed." }, "ClientInfo": { - "id": "ClientInfo", "description": "Information about the client which invoked the test.", "type": "object", "properties": { - "clientInfoDetails": { - "description": "The list of detailed information about client.", - "items": { - "$ref": "ClientInfoDetail" - }, - "type": "array" - }, "name": { "description": "Client name, such as gcloud.\nRequired", "type": "string" + }, + "clientInfoDetails": { + "description": "The list of detailed information about client.", + "type": "array", + "items": { + "$ref": "ClientInfoDetail" + } } - } + }, + "id": "ClientInfo" }, "EnvironmentMatrix": { + "description": "The matrix of environments in which the test is to be executed.", + "type": "object", "properties": { - "androidMatrix": { - "$ref": "AndroidMatrix", - "description": "A matrix of Android devices." - }, "androidDeviceList": { "$ref": "AndroidDeviceList", "description": "A list of Android devices; the test will be run only on the specified\ndevices." + }, + "androidMatrix": { + "$ref": "AndroidMatrix", + "description": "A matrix of Android devices." } }, - "id": "EnvironmentMatrix", - "description": "The matrix of environments in which the test is to be executed.", - "type": "object" + "id": "EnvironmentMatrix" + }, + "Date": { + "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.", + "type": "object", + "properties": { + "year": { + "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", + "format": "int32", + "type": "integer" + }, + "day": { + "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of year. Must be from 1 to 12.", + "format": "int32", + "type": "integer" + } + }, + "id": "Date" }, "CancelTestMatrixResponse": { "description": "Response containing the current state of the specified test matrix.", "type": "object", "properties": { "testState": { + "enum": [ + "TEST_STATE_UNSPECIFIED", + "VALIDATING", + "PENDING", + "RUNNING", + "FINISHED", + "ERROR", + "UNSUPPORTED_ENVIRONMENT", + "INCOMPATIBLE_ENVIRONMENT", + "INCOMPATIBLE_ARCHITECTURE", + "CANCELLED", + "INVALID" + ], "description": "The current rolled-up state of the test matrix.\nIf this state is already final, then the cancelation request will\nhave no effect.", "type": "string", "enumDescriptions": [ @@ -850,87 +929,50 @@ "The execution was not run because the provided inputs are incompatible with\nthe requested architecture.\n\nExample: requested device does not support running the native code in\nthe supplied APK\n\nCan only be set on an execution.", "The user cancelled the execution.\n\nCan only be set on an execution.", "The execution or matrix was not run because the provided inputs are not\nvalid.\n\nExamples: input file is not of the expected type, is malformed/corrupt, or\nwas flagged as malware" - ], - "enum": [ - "TEST_STATE_UNSPECIFIED", - "VALIDATING", - "PENDING", - "RUNNING", - "FINISHED", - "ERROR", - "UNSUPPORTED_ENVIRONMENT", - "INCOMPATIBLE_ENVIRONMENT", - "INCOMPATIBLE_ARCHITECTURE", - "CANCELLED", - "INVALID" ] } }, "id": "CancelTestMatrixResponse" }, - "Date": { - "type": "object", - "properties": { - "month": { - "format": "int32", - "description": "Month of year. Must be from 1 to 12.", - "type": "integer" - }, - "day": { - "format": "int32", - "description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.", - "type": "integer" - }, - "year": { - "format": "int32", - "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.", - "type": "integer" - } - }, - "id": "Date", - "description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`." - }, "Account": { + "id": "Account", "description": "Identifies an account and how to log into it", "type": "object", "properties": { "googleAuto": { - "description": "An automatic google login account", - "$ref": "GoogleAuto" + "$ref": "GoogleAuto", + "description": "An automatic google login account" } - }, - "id": "Account" + } }, "TestEnvironmentCatalog": { + "id": "TestEnvironmentCatalog", + "description": "A description of a test environment.", + "type": "object", "properties": { "androidDeviceCatalog": { - "$ref": "AndroidDeviceCatalog", - "description": "Android devices suitable for running Android Instrumentation Tests." + "description": "Android devices suitable for running Android Instrumentation Tests.", + "$ref": "AndroidDeviceCatalog" }, "networkConfigurationCatalog": { "$ref": "NetworkConfigurationCatalog", "description": "Supported network configurations" } - }, - "id": "TestEnvironmentCatalog", - "description": "A description of a test environment.", - "type": "object" + } }, "Locale": { - "description": "A location/region designation for language.", - "type": "object", "properties": { - "tags": { - "description": "Tags for this dimension.\nExamples: \"default\"", - "items": { - "type": "string" - }, - "type": "array" - }, "id": { "description": "The id for this locale.\nExample: \"en_US\"\n@OutputOnly", "type": "string" }, + "tags": { + "description": "Tags for this dimension.\nExamples: \"default\"", + "type": "array", + "items": { + "type": "string" + } + }, "region": { "description": "A human-friendy string representing the region for this locale.\nExample: \"United States\"\nNot present for every locale.\n@OutputOnly", "type": "string" @@ -940,9 +982,12 @@ "type": "string" } }, - "id": "Locale" + "id": "Locale", + "description": "A location/region designation for language.", + "type": "object" }, "ObbFile": { + "id": "ObbFile", "description": "An opaque binary blob file to install on the device before the test starts", "type": "object", "properties": { @@ -954,60 +999,54 @@ "description": "OBB file name which must conform to the format as specified by\nAndroid\ne.g. [main|patch].0300110.com.example.android.obb\nwhich will be installed into\n \u003cshared-storage\u003e/Android/obb/\u003cpackage-name\u003e/\non the device\nRequired", "type": "string" } - }, - "id": "ObbFile" + } }, "AndroidRuntimeConfiguration": { "description": "Configuration that can be selected at the time a test is run.", "type": "object", "properties": { - "orientations": { - "description": "The set of available orientations.\n@OutputOnly", - "items": { - "$ref": "Orientation" - }, - "type": "array" - }, "locales": { "description": "The set of available locales.\n@OutputOnly", + "type": "array", "items": { "$ref": "Locale" - }, - "type": "array" + } + }, + "orientations": { + "description": "The set of available orientations.\n@OutputOnly", + "type": "array", + "items": { + "$ref": "Orientation" + } } }, "id": "AndroidRuntimeConfiguration" }, "AndroidDevice": { - "id": "AndroidDevice", - "description": "A single Android device.", - "type": "object", "properties": { "locale": { "description": "The locale the test device used for testing.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", "type": "string" }, - "androidVersionId": { - "type": "string", - "description": "The id of the Android OS version to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired" - }, "androidModelId": { "description": "The id of the Android device to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", "type": "string" }, - "orientation": { - "description": "How the device is oriented during the test.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", - "type": "string" - } - } - }, - "NetworkConfiguration": { - "type": "object", - "properties": { - "id": { - "description": "The unique opaque id for this network traffic configuration\n@OutputOnly", + "androidVersionId": { + "description": "The id of the Android OS version to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", "type": "string" }, + "orientation": { + "type": "string", + "description": "How the device is oriented during the test.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired" + } + }, + "id": "AndroidDevice", + "description": "A single Android device.", + "type": "object" + }, + "NetworkConfiguration": { + "properties": { "upRule": { "description": "The emulation rule applying to the upload traffic", "$ref": "TrafficRule" @@ -1015,60 +1054,65 @@ "downRule": { "$ref": "TrafficRule", "description": "The emulation rule applying to the download traffic" + }, + "id": { + "type": "string", + "description": "The unique opaque id for this network traffic configuration\n@OutputOnly" } }, - "id": "NetworkConfiguration" + "id": "NetworkConfiguration", + "type": "object" }, "ToolResultsStep": { + "id": "ToolResultsStep", "description": "Represents a tool results step resource.\n\nThis has the results of a TestExecution.", "type": "object", "properties": { - "executionId": { - "description": "A tool results execution ID.\n@OutputOnly", - "type": "string" - }, "stepId": { "description": "A tool results step ID.\n@OutputOnly", "type": "string" }, + "projectId": { + "description": "The cloud project that owns the tool results step.\n@OutputOnly", + "type": "string" + }, "historyId": { "description": "A tool results history ID.\n@OutputOnly", "type": "string" }, - "projectId": { - "description": "The cloud project that owns the tool results step.\n@OutputOnly", + "executionId": { + "description": "A tool results execution ID.\n@OutputOnly", "type": "string" } - }, - "id": "ToolResultsStep" + } }, "TrafficRule": { "description": "Network emulation parameters", "type": "object", "properties": { - "bandwidth": { + "burst": { + "description": "Burst size in kbits", "format": "float", + "type": "number" + }, + "bandwidth": { "description": "Bandwidth in kbits/second", + "format": "float", "type": "number" }, "packetDuplicationRatio": { - "format": "float", + "type": "number", "description": "Packet duplication ratio (0.0 - 1.0)", - "type": "number" + "format": "float" }, "delay": { - "format": "google-duration", "description": "Packet delay, must be \u003e= 0", + "format": "google-duration", "type": "string" }, "packetLossRatio": { - "format": "float", "description": "Packet loss ratio (0.0 - 1.0)", - "type": "number" - }, - "burst": { "format": "float", - "description": "Burst size in kbits", "type": "number" } }, @@ -1079,8 +1123,8 @@ "type": "object", "properties": { "testApk": { - "description": "The APK containing the test code to be executed.\nRequired", - "$ref": "FileReference" + "$ref": "FileReference", + "description": "The APK containing the test code to be executed.\nRequired" }, "testRunnerClass": { "description": "The InstrumentationTestRunner class.\nOptional, default is determined by examining the application's manifest.", @@ -1095,12 +1139,10 @@ "type": "string" }, "appApk": { - "$ref": "FileReference", - "description": "The APK for the application under test.\nRequired" + "description": "The APK for the application under test.\nRequired", + "$ref": "FileReference" }, "orchestratorOption": { - "description": "The option of whether running each test within its own invocation of\ninstrumentation with Android Test Orchestrator or not.\n** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or\nhigher! **\nOrchestrator offers the following benefits:\n - No shared state\n - Crashes are isolated\n - Logs are scoped per test\n\nSee\n\u003chttps://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator\u003e\nfor more information about Android Test Orchestrator.\n\nOptional, if empty, test will be run without orchestrator.", - "type": "string", "enumDescriptions": [ "This means that the server should choose the mode. And test will be run\nwithout orchestrator.\nUsing orchestrator is highly encouraged because of all the benefits it\noffers. And in the future, all instrumentation tests will be run with\norchestrator by default if preference unspecified.", "Run test using orchestrator.\n** Only compatible with AndroidJUnitRunner version 1.0 or higher! **\nRecommended.", @@ -1110,221 +1152,26 @@ "ORCHESTRATOR_OPTION_UNSPECIFIED", "USE_ORCHESTRATOR", "DO_NOT_USE_ORCHESTRATOR" - ] + ], + "description": "The option of whether running each test within its own invocation of\ninstrumentation with Android Test Orchestrator or not.\n** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or\nhigher! **\nOrchestrator offers the following benefits:\n - No shared state\n - Crashes are isolated\n - Logs are scoped per test\n\nSee\n\u003chttps://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator\u003e\nfor more information about Android Test Orchestrator.\n\nOptional, if empty, test will be run without orchestrator.", + "type": "string" }, "testTargets": { "description": "Each target must be fully qualified with the package name or class name,\nin one of these formats:\n - \"package package_name\"\n - \"class package_name.class_name\"\n - \"class package_name.class_name#method_name\"\n\nOptional, if empty, all targets in the module will be run.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } } }, "id": "AndroidInstrumentationTest" - }, - "DeviceFile": { - "id": "DeviceFile", - "description": "A single device file description.", - "type": "object", - "properties": { - "obbFile": { - "description": "A reference to an opaque binary blob file", - "$ref": "ObbFile" - } - } - }, - "ClientInfoDetail": { - "properties": { - "value": { - "description": "The value of detailed client information.\nRequired", - "type": "string" - }, - "key": { - "description": "The key of detailed client information.\nRequired", - "type": "string" - } - }, - "id": "ClientInfoDetail", - "description": "Key-value pair of detailed information about the client which invoked the\ntest. For example {'Version', '1.0'}, {'Release Track', 'BETA'}", - "type": "object" - }, - "EnvironmentVariable": { - "description": "A key-value pair passed as an environment variable to the test", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the environment variable" - }, - "value": { - "description": "Value for the environment variable", - "type": "string" - } - }, - "id": "EnvironmentVariable" - }, - "Environment": { - "properties": { - "androidDevice": { - "description": "An Android device which must be used with an Android test.", - "$ref": "AndroidDevice" - } - }, - "id": "Environment", - "description": "The environment in which the test is run.", - "type": "object" - }, - "TestExecution": { - "properties": { - "environment": { - "description": "How the host machine(s) are configured.\n@OutputOnly", - "$ref": "Environment" - }, - "state": { - "enum": [ - "TEST_STATE_UNSPECIFIED", - "VALIDATING", - "PENDING", - "RUNNING", - "FINISHED", - "ERROR", - "UNSUPPORTED_ENVIRONMENT", - "INCOMPATIBLE_ENVIRONMENT", - "INCOMPATIBLE_ARCHITECTURE", - "CANCELLED", - "INVALID" - ], - "description": "Indicates the current progress of the test execution (e.g., FINISHED).\n@OutputOnly", - "type": "string", - "enumDescriptions": [ - "Do not use. For proto versioning only.", - "The execution or matrix is being validated.", - "The execution or matrix is waiting for resources to become available.", - "The execution is currently being processed.\n\nCan only be set on an execution.", - "The execution or matrix has terminated normally.\n\nOn a matrix this means that the matrix level processing completed normally,\nbut individual executions may be in an ERROR state.", - "The execution or matrix has stopped because it encountered an\ninfrastructure failure.", - "The execution was not run because it corresponds to a unsupported\nenvironment.\n\nCan only be set on an execution.", - "The execution was not run because the provided inputs are incompatible with\nthe requested environment.\n\nExample: requested AndroidVersion is lower than APK's minSdkVersion\n\nCan only be set on an execution.", - "The execution was not run because the provided inputs are incompatible with\nthe requested architecture.\n\nExample: requested device does not support running the native code in\nthe supplied APK\n\nCan only be set on an execution.", - "The user cancelled the execution.\n\nCan only be set on an execution.", - "The execution or matrix was not run because the provided inputs are not\nvalid.\n\nExamples: input file is not of the expected type, is malformed/corrupt, or\nwas flagged as malware" - ] - }, - "toolResultsStep": { - "$ref": "ToolResultsStep", - "description": "Where the results for this execution are written.\n@OutputOnly" - }, - "projectId": { - "description": "The cloud project that owns the test execution.\n@OutputOnly", - "type": "string" - }, - "testSpecification": { - "$ref": "TestSpecification", - "description": "How to run the test.\n@OutputOnly" - }, - "id": { - "description": "Unique id set by the backend.\n@OutputOnly", - "type": "string" - }, - "timestamp": { - "format": "google-datetime", - "description": "The time this test execution was initially created.\n@OutputOnly", - "type": "string" - }, - "testDetails": { - "description": "Additional details about the running test.\n@OutputOnly", - "$ref": "TestDetails" - }, - "matrixId": { - "description": "Id of the containing TestMatrix.\n@OutputOnly", - "type": "string" - } - }, - "id": "TestExecution", - "description": "Specifies a single test to be executed in a single environment.", - "type": "object" - }, - "GoogleCloudStorage": { - "description": "A storage location within Google cloud storage (GCS).", - "type": "object", - "properties": { - "gcsPath": { - "description": "The path to a directory in GCS that will\neventually contain the results for this test.\nThe requesting user must have write access on the bucket in the supplied\npath.\nRequired", - "type": "string" - } - }, - "id": "GoogleCloudStorage" - }, - "RoboDirective": { - "properties": { - "inputText": { - "description": "The text that Robo is directed to set. If left empty, the directive will be\ntreated as a CLICK on the element matching the resource_name.\nOptional", - "type": "string" - }, - "resourceName": { - "description": "The android resource name of the target UI element\nFor example,\n in Java: R.string.foo\n in xml: @string/foo\nOnly the “foo” part is needed.\nReference doc:\nhttps://developer.android.com/guide/topics/resources/accessing-resources.html\nRequired", - "type": "string" - }, - "actionType": { - "description": "The type of action that Robo should perform on the specified element.\nRequired.", - "type": "string", - "enumDescriptions": [ - "DO NOT USE. For proto versioning only.", - "Direct Robo to click on the specified element. No-op if specified element\nis not clickable.", - "Direct Robo to enter text on the specified element. No-op if specified\nelement is not enabled or does not allow text entry." - ], - "enum": [ - "ACTION_TYPE_UNSPECIFIED", - "SINGLE_CLICK", - "ENTER_TEXT" - ] - } - }, - "id": "RoboDirective", - "description": "Directs Robo to interact with a specific UI element if it is encountered\nduring the crawl. Currently, Robo can perform text entry or element click.", - "type": "object" - }, - "AndroidMatrix": { - "description": "A set of Android device configuration permutations is defined by the\nthe cross-product of the given axes. Internally, the given AndroidMatrix\nwill be expanded into a set of AndroidDevices.\n\nOnly supported permutations will be instantiated. Invalid permutations\n(e.g., incompatible models/versions) are ignored.", - "type": "object", - "properties": { - "orientations": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The set of orientations to test with.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired" - }, - "locales": { - "description": "The set of locales the test device will enable for testing.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", - "items": { - "type": "string" - }, - "type": "array" - }, - "androidVersionIds": { - "description": "The ids of the set of Android OS version to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", - "items": { - "type": "string" - }, - "type": "array" - }, - "androidModelIds": { - "description": "The ids of the set of Android device to be used.\nUse the EnvironmentDiscoveryService to get supported options.\nRequired", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "id": "AndroidMatrix" } }, - "protocol": "rest", "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" + "x32": "http://www.google.com/images/icons/product/search-32.gif", + "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "version": "v1", "baseUrl": "https://testing.googleapis.com/", "auth": { @@ -1343,5 +1190,158 @@ "description": "Allows developers to run automated tests for their mobile applications on Google infrastructure.", "servicePath": "", "rootUrl": "https://testing.googleapis.com/", - "basePath": "" + "basePath": "", + "ownerDomain": "google.com", + "name": "testing", + "batchPath": "batch", + "revision": "20171019", + "documentationLink": "https://developers.google.com/cloud-test-lab/", + "id": "testing:v1", + "title": "Google Cloud Testing API", + "ownerName": "Google", + "discoveryVersion": "v1", + "resources": { + "testEnvironmentCatalog": { + "methods": { + "get": { + "description": "Get the catalog of supported test environments.\n\nMay return any of the following canonical error codes:\n\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the environment type does not exist\n- INTERNAL - if an internal error occurred", + "response": { + "$ref": "TestEnvironmentCatalog" + }, + "parameterOrder": [ + "environmentType" + ], + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "parameters": { + "projectId": { + "location": "query", + "description": "For authorization, the cloud project requesting the TestEnvironmentCatalog.\nOptional", + "type": "string" + }, + "environmentType": { + "location": "path", + "enum": [ + "ENVIRONMENT_TYPE_UNSPECIFIED", + "ANDROID", + "NETWORK_CONFIGURATION" + ], + "description": "The type of environment that should be listed.\nRequired", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/testEnvironmentCatalog/{environmentType}", + "path": "v1/testEnvironmentCatalog/{environmentType}", + "id": "testing.testEnvironmentCatalog.get" + } + } + }, + "projects": { + "resources": { + "testMatrices": { + "methods": { + "get": { + "description": "Check the status of a test matrix.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the Test Matrix does not exist", + "response": { + "$ref": "TestMatrix" + }, + "parameterOrder": [ + "projectId", + "testMatrixId" + ], + "httpMethod": "GET", + "parameters": { + "projectId": { + "location": "path", + "description": "Cloud project that owns the test matrix.", + "required": true, + "type": "string" + }, + "testMatrixId": { + "required": true, + "type": "string", + "location": "path", + "description": "Unique test matrix id which was assigned by the service." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "flatPath": "v1/projects/{projectId}/testMatrices/{testMatrixId}", + "path": "v1/projects/{projectId}/testMatrices/{testMatrixId}", + "id": "testing.projects.testMatrices.get" + }, + "create": { + "path": "v1/projects/{projectId}/testMatrices", + "id": "testing.projects.testMatrices.create", + "request": { + "$ref": "TestMatrix" + }, + "description": "Request to run a matrix of tests according to the given specifications.\nUnsupported environments will be returned in the state UNSUPPORTED.\nMatrices are limited to at most 200 supported executions.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project\n- INVALID_ARGUMENT - if the request is malformed or if the matrix expands\n to more than 200 supported executions", + "response": { + "$ref": "TestMatrix" + }, + "parameterOrder": [ + "projectId" + ], + "httpMethod": "POST", + "parameters": { + "projectId": { + "location": "path", + "description": "The GCE project under which this job will run.", + "required": true, + "type": "string" + }, + "requestId": { + "location": "query", + "description": "A string id used to detect duplicated requests.\nIds are automatically scoped to a project, so\nusers should ensure the ID is unique per-project.\nA UUID is recommended.\n\nOptional, but strongly recommended.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "flatPath": "v1/projects/{projectId}/testMatrices" + }, + "cancel": { + "response": { + "$ref": "CancelTestMatrixResponse" + }, + "parameterOrder": [ + "projectId", + "testMatrixId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": { + "projectId": { + "description": "Cloud project that owns the test.", + "required": true, + "type": "string", + "location": "path" + }, + "testMatrixId": { + "location": "path", + "description": "Test matrix that will be canceled.", + "required": true, + "type": "string" + } + }, + "flatPath": "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel", + "path": "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel", + "id": "testing.projects.testMatrices.cancel", + "description": "Cancels unfinished test executions in a test matrix.\nThis call returns immediately and cancellation proceeds asychronously.\nIf the matrix is already final, this operation will have no effect.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project\n- INVALID_ARGUMENT - if the request is malformed\n- NOT_FOUND - if the Test Matrix does not exist" + } + } + } + } + } + } } diff --git a/vendor/google.golang.org/api/testing/v1/testing-gen.go b/vendor/google.golang.org/api/testing/v1/testing-gen.go index 60a6a2388..aae64d7be 100644 --- a/vendor/google.golang.org/api/testing/v1/testing-gen.go +++ b/vendor/google.golang.org/api/testing/v1/testing-gen.go @@ -1864,10 +1864,20 @@ type TestSetup struct { // Optional Account *Account `json:"account,omitempty"` - // DirectoriesToPull: The directories on the device to upload to GCS at - // the end of the test; - // they must be absolute, whitelisted paths. - // Refer to RegularFile for whitelisted paths. + // DirectoriesToPull: List of directories on the device to upload to GCS + // at the end of the test; + // they must be absolute paths under /sdcard or /data/local/tmp. + // Path names are restricted to characters a-z A-Z 0-9 _ - . + and + // / + // + // Note: The paths /sdcard and /data will be made available and treated + // as + // implicit path substitutions. E.g. if /sdcard on a particular device + // does + // not map to external storage, the system will replace it with the + // external + // storage path prefix for that device. + // // Optional DirectoriesToPull []string `json:"directoriesToPull,omitempty"` @@ -1876,7 +1886,10 @@ type TestSetup struct { // instrumentation tests). EnvironmentVariables []*EnvironmentVariable `json:"environmentVariables,omitempty"` - // FilesToPush: Optional + // FilesToPush: List of files to push to the device before starting the + // test. + // + // Optional FilesToPush []*DeviceFile `json:"filesToPush,omitempty"` // NetworkProfile: The network traffic profile used for running the diff --git a/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-api.json b/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-api.json index 3a08a9e99..f43bd5cb0 100644 --- a/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-api.json +++ b/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-api.json @@ -1,12 +1,12 @@ { "kind": "discovery#restDescription", - "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/UYGCzApTAApQ5LVMe3mi28BTsws\"", + "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/qTGcqTfP2AvSFxr0hOGEezA1IHs\"", "discoveryVersion": "v1", "id": "toolresults:v1beta3", "name": "toolresults", "canonicalName": "Tool Results", "version": "v1beta3", - "revision": "20170925", + "revision": "20171017", "title": "Cloud Tool Results API", "description": "Reads and publishes results from Firebase Test Lab.", "ownerDomain": "google.com", @@ -431,6 +431,91 @@ } } }, + "GraphicsStats": { + "id": "GraphicsStats", + "type": "object", + "description": "Graphics statistics for the App. The information is collected from 'adb shell dumpsys graphicsstats'. For more info see: https://developer.android.com/training/testing/performance.html Statistics will only be present for API 23+.", + "properties": { + "buckets": { + "type": "array", + "description": "Histogram of frame render times. There should be 154 buckets ranging from [5ms, 6ms) to [4950ms, infinity)", + "items": { + "$ref": "GraphicsStatsBucket" + } + }, + "highInputLatencyCount": { + "type": "string", + "description": "Total \"high input latency\" events.", + "format": "int64" + }, + "jankyFrames": { + "type": "string", + "description": "Total frames with slow render time. Should be \u003c= total_frames.", + "format": "int64" + }, + "missedVsyncCount": { + "type": "string", + "description": "Total \"missed vsync\" events.", + "format": "int64" + }, + "p50Millis": { + "type": "string", + "description": "50th percentile frame render time in milliseconds.", + "format": "int64" + }, + "p90Millis": { + "type": "string", + "description": "90th percentile frame render time in milliseconds.", + "format": "int64" + }, + "p95Millis": { + "type": "string", + "description": "95th percentile frame render time in milliseconds.", + "format": "int64" + }, + "p99Millis": { + "type": "string", + "description": "99th percentile frame render time in milliseconds.", + "format": "int64" + }, + "slowBitmapUploadCount": { + "type": "string", + "description": "Total \"slow bitmap upload\" events.", + "format": "int64" + }, + "slowDrawCount": { + "type": "string", + "description": "Total \"slow draw\" events.", + "format": "int64" + }, + "slowUiThreadCount": { + "type": "string", + "description": "Total \"slow UI thread\" events.", + "format": "int64" + }, + "totalFrames": { + "type": "string", + "description": "Total frames rendered by package.", + "format": "int64" + } + } + }, + "GraphicsStatsBucket": { + "id": "GraphicsStatsBucket", + "type": "object", + "properties": { + "frameCount": { + "type": "string", + "description": "Number of frames in the bucket.", + "format": "int64" + }, + "renderMillis": { + "type": "string", + "description": "Lower bound of render time in milliseconds.", + "format": "int64" + } + } + }, "History": { "id": "History", "type": "object", @@ -684,6 +769,10 @@ "type": "string", "description": "A tool results execution ID." }, + "graphicsStats": { + "$ref": "GraphicsStats", + "description": "Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run." + }, "historyId": { "type": "string", "description": "A tool results history ID." @@ -1114,11 +1203,15 @@ "description": "Type of issue. Required.", "enum": [ "anr", + "compatibleWithOrchestrator", "fatalException", "nativeCrash", - "unspecifiedType" + "unspecifiedType", + "unusedRoboDirective" ], "enumDescriptions": [ + "", + "", "", "", "", diff --git a/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-gen.go b/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-gen.go index aa4275c5c..cf10b336b 100644 --- a/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-gen.go +++ b/vendor/google.golang.org/api/toolresults/v1beta3/toolresults-gen.go @@ -940,6 +940,102 @@ func (s *FileReference) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GraphicsStats: Graphics statistics for the App. The information is +// collected from 'adb shell dumpsys graphicsstats'. For more info see: +// https://developer.android.com/training/testing/performance.html +// Statistics will only be present for API 23+. +type GraphicsStats struct { + // Buckets: Histogram of frame render times. There should be 154 buckets + // ranging from [5ms, 6ms) to [4950ms, infinity) + Buckets []*GraphicsStatsBucket `json:"buckets,omitempty"` + + // HighInputLatencyCount: Total "high input latency" events. + HighInputLatencyCount int64 `json:"highInputLatencyCount,omitempty,string"` + + // JankyFrames: Total frames with slow render time. Should be <= + // total_frames. + JankyFrames int64 `json:"jankyFrames,omitempty,string"` + + // MissedVsyncCount: Total "missed vsync" events. + MissedVsyncCount int64 `json:"missedVsyncCount,omitempty,string"` + + // P50Millis: 50th percentile frame render time in milliseconds. + P50Millis int64 `json:"p50Millis,omitempty,string"` + + // P90Millis: 90th percentile frame render time in milliseconds. + P90Millis int64 `json:"p90Millis,omitempty,string"` + + // P95Millis: 95th percentile frame render time in milliseconds. + P95Millis int64 `json:"p95Millis,omitempty,string"` + + // P99Millis: 99th percentile frame render time in milliseconds. + P99Millis int64 `json:"p99Millis,omitempty,string"` + + // SlowBitmapUploadCount: Total "slow bitmap upload" events. + SlowBitmapUploadCount int64 `json:"slowBitmapUploadCount,omitempty,string"` + + // SlowDrawCount: Total "slow draw" events. + SlowDrawCount int64 `json:"slowDrawCount,omitempty,string"` + + // SlowUiThreadCount: Total "slow UI thread" events. + SlowUiThreadCount int64 `json:"slowUiThreadCount,omitempty,string"` + + // TotalFrames: Total frames rendered by package. + TotalFrames int64 `json:"totalFrames,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "Buckets") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Buckets") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GraphicsStats) MarshalJSON() ([]byte, error) { + type noMethod GraphicsStats + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type GraphicsStatsBucket struct { + // FrameCount: Number of frames in the bucket. + FrameCount int64 `json:"frameCount,omitempty,string"` + + // RenderMillis: Lower bound of render time in milliseconds. + RenderMillis int64 `json:"renderMillis,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "FrameCount") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "FrameCount") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GraphicsStatsBucket) MarshalJSON() ([]byte, error) { + type noMethod GraphicsStatsBucket + raw := noMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // History: A History represents a sorted list of Executions ordered by // the start_timestamp_millis field (descending). It can be used to // group all the Executions of a continuous build. @@ -1489,6 +1585,11 @@ type PerfMetricsSummary struct { // ExecutionId: A tool results execution ID. ExecutionId string `json:"executionId,omitempty"` + // GraphicsStats: Graphics statistics for the entire run. Statistics are + // reset at the beginning of the run and collected at the end of the + // run. + GraphicsStats *GraphicsStats `json:"graphicsStats,omitempty"` + // HistoryId: A tool results history ID. HistoryId string `json:"historyId,omitempty"` @@ -2422,9 +2523,11 @@ type TestIssue struct { // // Possible values: // "anr" + // "compatibleWithOrchestrator" // "fatalException" // "nativeCrash" // "unspecifiedType" + // "unusedRoboDirective" Type string `json:"type,omitempty"` // Warning: Warning message with additional details of the issue. Should diff --git a/vendor/google.golang.org/api/translate/v2/translate-api.json b/vendor/google.golang.org/api/translate/v2/translate-api.json index 5ea4c63fd..ea2ab6aa0 100644 --- a/vendor/google.golang.org/api/translate/v2/translate-api.json +++ b/vendor/google.golang.org/api/translate/v2/translate-api.json @@ -1,10 +1,50 @@ { - "basePath": "/language/translate/", - "documentationLink": "https://code.google.com/apis/language/translate/v2/getting_started.html", "revision": "20170525", + "documentationLink": "https://code.google.com/apis/language/translate/v2/getting_started.html", "id": "translate:v2", "discoveryVersion": "v1", "schemas": { + "TranslationsResource": { + "properties": { + "detectedSourceLanguage": { + "description": "The source language of the initial request, detected automatically, if\nno source language was passed within the initial request. If the\nsource language was passed, auto-detection of the language will not\noccur and this field will be empty.", + "type": "string" + }, + "model": { + "description": "The `model` type used for this translation. Valid values are\nlisted in public documentation. Can be different from requested `model`.\nPresent only if specific model type was explicitly requested.", + "type": "string" + }, + "translatedText": { + "description": "Text translated into the target language.", + "type": "string" + } + }, + "id": "TranslationsResource", + "type": "object" + }, + "DetectionsResource": { + "id": "DetectionsResource", + "description": "An array of languages which we detect for the given text The most likely language list first.", + "items": { + "properties": { + "confidence": { + "format": "float", + "description": "The confidence of the detection result of this language.", + "type": "number" + }, + "language": { + "description": "The language we detected.", + "type": "string" + }, + "isReliable": { + "description": "A boolean to indicate is the language detection result reliable.", + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, "TranslationsListResponse": { "description": "The main language translation response message.", "type": "object", @@ -20,13 +60,10 @@ "id": "TranslationsListResponse" }, "TranslateTextRequest": { - "id": "TranslateTextRequest", - "description": "The main translation request message for the Cloud Translation API.", - "type": "object", "properties": { "target": { - "type": "string", - "description": "The language to use for translation of the input text, set to one of the\nlanguage codes listed in Language Support." + "description": "The language to use for translation of the input text, set to one of the\nlanguage codes listed in Language Support.", + "type": "string" }, "format": { "description": "The format of the source text, in either HTML (default) or plain-text. A\nvalue of \"html\" indicates HTML and a value of \"text\" indicates plain-text.", @@ -47,16 +84,19 @@ "description": "The `model` type requested for this translation. Valid values are\nlisted in public documentation.", "type": "string" } - } + }, + "id": "TranslateTextRequest", + "description": "The main translation request message for the Cloud Translation API.", + "type": "object" }, "DetectLanguageRequest": { "properties": { "q": { + "description": "The input text upon which to perform language detection. Repeat this\nparameter to perform language detection on multiple text inputs.", "items": { "type": "string" }, - "type": "array", - "description": "The input text upon which to perform language detection. Repeat this\nparameter to perform language detection on multiple text inputs." + "type": "array" } }, "id": "DetectLanguageRequest", @@ -64,7 +104,6 @@ "type": "object" }, "LanguagesResource": { - "type": "object", "properties": { "name": { "description": "Human readable name of the language localized to the target language.", @@ -75,10 +114,10 @@ "type": "string" } }, - "id": "LanguagesResource" + "id": "LanguagesResource", + "type": "object" }, "DetectionsListResponse": { - "type": "object", "properties": { "detections": { "description": "A detections contains detection results of several text", @@ -88,10 +127,10 @@ "type": "array" } }, - "id": "DetectionsListResponse" + "id": "DetectionsListResponse", + "type": "object" }, "GetSupportedLanguagesRequest": { - "type": "object", "properties": { "target": { "description": "The language to use to return localized, human readable names of supported\nlanguages.", @@ -99,68 +138,28 @@ } }, "id": "GetSupportedLanguagesRequest", - "description": "The request message for discovering supported languages." + "description": "The request message for discovering supported languages.", + "type": "object" }, "LanguagesListResponse": { "properties": { "languages": { + "description": "List of source/target languages supported by the translation API. If target parameter is unspecified, the list is sorted by the ASCII code point order of the language code. If target parameter is specified, the list is sorted by the collation order of the language name in the target language.", "items": { "$ref": "LanguagesResource" }, - "type": "array", - "description": "List of source/target languages supported by the translation API. If target parameter is unspecified, the list is sorted by the ASCII code point order of the language code. If target parameter is specified, the list is sorted by the collation order of the language name in the target language." + "type": "array" } }, "id": "LanguagesListResponse", "type": "object" - }, - "DetectionsResource": { - "description": "An array of languages which we detect for the given text The most likely language list first.", - "items": { - "type": "object", - "properties": { - "confidence": { - "format": "float", - "description": "The confidence of the detection result of this language.", - "type": "number" - }, - "language": { - "description": "The language we detected.", - "type": "string" - }, - "isReliable": { - "description": "A boolean to indicate is the language detection result reliable.", - "type": "boolean" - } - } - }, - "type": "array", - "id": "DetectionsResource" - }, - "TranslationsResource": { - "type": "object", - "properties": { - "detectedSourceLanguage": { - "type": "string", - "description": "The source language of the initial request, detected automatically, if\nno source language was passed within the initial request. If the\nsource language was passed, auto-detection of the language will not\noccur and this field will be empty." - }, - "model": { - "description": "The `model` type used for this translation. Valid values are\nlisted in public documentation. Can be different from requested `model`.\nPresent only if specific model type was explicitly requested.", - "type": "string" - }, - "translatedText": { - "description": "Text translated into the target language.", - "type": "string" - } - }, - "id": "TranslationsResource" } }, + "protocol": "rest", "icons": { "x16": "https://www.google.com/images/icons/product/translate-16.png", "x32": "https://www.google.com/images/icons/product/translate-32.png" }, - "protocol": "rest", "canonicalName": "Translate", "auth": { "oauth2": { @@ -184,25 +183,108 @@ "title": "Google Cloud Translation API", "ownerName": "Google", "resources": { - "detections": { + "translations": { "methods": { - "detect": { + "list": { "response": { - "$ref": "DetectionsListResponse" + "$ref": "TranslationsListResponse" }, - "parameterOrder": [], + "parameterOrder": [ + "q", + "target" + ], + "httpMethod": "GET", + "parameters": { + "cid": { + "description": "The customization id for translate", + "type": "string", + "repeated": true, + "location": "query" + }, + "target": { + "location": "query", + "description": "The language to use for translation of the input text, set to one of the\nlanguage codes listed in Language Support.", + "required": true, + "type": "string" + }, + "format": { + "enum": [ + "html", + "text" + ], + "description": "The format of the source text, in either HTML (default) or plain-text. A\nvalue of \"html\" indicates HTML and a value of \"text\" indicates plain-text.", + "type": "string", + "enumDescriptions": [ + "Specifies the input is in HTML", + "Specifies the input is in plain textual format" + ], + "location": "query" + }, + "model": { + "location": "query", + "description": "The `model` type requested for this translation. Valid values are\nlisted in public documentation.", + "type": "string" + }, + "q": { + "repeated": true, + "location": "query", + "description": "The input text to translate. Repeat this parameter to perform translation\noperations on multiple text inputs.", + "required": true, + "type": "string" + }, + "source": { + "location": "query", + "description": "The language of the source text, set to one of the language codes listed in\nLanguage Support. If the source language is not specified, the API will\nattempt to identify the source language automatically and return it within\nthe response.", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-translation", + "https://www.googleapis.com/auth/cloud-platform" + ], + "id": "language.translations.list", + "path": "v2", + "description": "Translates input text, returning translated text." + }, + "translate": { "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "TranslationsListResponse" + }, "parameters": {}, "scopes": [ "https://www.googleapis.com/auth/cloud-translation", "https://www.googleapis.com/auth/cloud-platform" ], - "id": "language.detections.detect", + "path": "v2", + "id": "language.translations.translate", + "request": { + "$ref": "TranslateTextRequest" + }, + "description": "Translates input text, returning translated text." + } + } + }, + "detections": { + "methods": { + "detect": { "path": "v2/detect", + "id": "language.detections.detect", + "description": "Detects the language of text within a request.", "request": { "$ref": "DetectLanguageRequest" }, - "description": "Detects the language of text within a request." + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "DetectionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-translation", + "https://www.googleapis.com/auth/cloud-platform" + ], + "parameters": {} }, "list": { "path": "v2/detect", @@ -239,107 +321,24 @@ "$ref": "LanguagesListResponse" }, "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/cloud-translation", + "https://www.googleapis.com/auth/cloud-platform" + ], "parameters": { + "model": { + "description": "The model type for which supported languages should be returned.", + "type": "string", + "location": "query" + }, "target": { "location": "query", "description": "The language to use to return localized, human readable names of supported\nlanguages.", "type": "string" - }, - "model": { - "location": "query", - "description": "The model type for which supported languages should be returned.", - "type": "string" } }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-translation", - "https://www.googleapis.com/auth/cloud-platform" - ], - "id": "language.languages.list", - "path": "v2/languages" - } - } - }, - "translations": { - "methods": { - "list": { - "description": "Translates input text, returning translated text.", - "parameterOrder": [ - "q", - "target" - ], - "response": { - "$ref": "TranslationsListResponse" - }, - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/cloud-translation", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": { - "target": { - "location": "query", - "description": "The language to use for translation of the input text, set to one of the\nlanguage codes listed in Language Support.", - "required": true, - "type": "string" - }, - "format": { - "enumDescriptions": [ - "Specifies the input is in HTML", - "Specifies the input is in plain textual format" - ], - "location": "query", - "enum": [ - "html", - "text" - ], - "description": "The format of the source text, in either HTML (default) or plain-text. A\nvalue of \"html\" indicates HTML and a value of \"text\" indicates plain-text.", - "type": "string" - }, - "model": { - "description": "The `model` type requested for this translation. Valid values are\nlisted in public documentation.", - "type": "string", - "location": "query" - }, - "q": { - "required": true, - "type": "string", - "repeated": true, - "location": "query", - "description": "The input text to translate. Repeat this parameter to perform translation\noperations on multiple text inputs." - }, - "source": { - "description": "The language of the source text, set to one of the language codes listed in\nLanguage Support. If the source language is not specified, the API will\nattempt to identify the source language automatically and return it within\nthe response.", - "type": "string", - "location": "query" - }, - "cid": { - "description": "The customization id for translate", - "type": "string", - "repeated": true, - "location": "query" - } - }, - "id": "language.translations.list", - "path": "v2" - }, - "translate": { - "path": "v2", - "id": "language.translations.translate", - "description": "Translates input text, returning translated text.", - "request": { - "$ref": "TranslateTextRequest" - }, - "httpMethod": "POST", - "parameterOrder": [], - "response": { - "$ref": "TranslationsListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-translation", - "https://www.googleapis.com/auth/cloud-platform" - ], - "parameters": {} + "path": "v2/languages", + "id": "language.languages.list" } } } @@ -356,16 +355,16 @@ "default": "true", "type": "boolean" }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" + }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, "callback": { "location": "query", "description": "JSONP", @@ -385,6 +384,11 @@ "type": "string" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -393,22 +397,17 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] - }, - "access_token": { - "location": "query", - "description": "OAuth access token.", - "type": "string" + "default": "json" }, "key": { - "location": "query", "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.", - "type": "string" + "type": "string", + "location": "query" + }, + "access_token": { + "description": "OAuth access token.", + "type": "string", + "location": "query" }, "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. Overrides userIp if both are provided.", @@ -416,25 +415,26 @@ "location": "query" }, "pp": { + "description": "Pretty-print response.", "default": "true", "type": "boolean", - "location": "query", - "description": "Pretty-print response." + "location": "query" }, "bearer_token": { - "type": "string", "location": "query", - "description": "OAuth bearer token." + "description": "OAuth bearer token.", + "type": "string" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string" + "type": "string", + "location": "query" } }, "version": "v2", "baseUrl": "https://translation.googleapis.com/language/translate/", "kind": "discovery#restDescription", "description": "The Google Cloud Translation API lets websites and programs integrate with\n Google Translate programmatically.", - "servicePath": "language/translate/" + "servicePath": "language/translate/", + "basePath": "/language/translate/" } diff --git a/vendor/google.golang.org/api/vault/v1/vault-api.json b/vendor/google.golang.org/api/vault/v1/vault-api.json index 2166c59a4..7d8d9850a 100644 --- a/vendor/google.golang.org/api/vault/v1/vault-api.json +++ b/vendor/google.golang.org/api/vault/v1/vault-api.json @@ -9,139 +9,36 @@ "resources": { "matters": { "methods": { - "delete": { - "httpMethod": "DELETE", - "response": { - "$ref": "Matter" - }, - "parameterOrder": [ - "matterId" - ], - "parameters": { - "matterId": { - "location": "path", - "description": "The matter ID", - "type": "string", - "required": true - } - }, - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], - "flatPath": "v1/matters/{matterId}", - "path": "v1/matters/{matterId}", - "id": "vault.matters.delete", - "description": "Deletes the specified matter. Returns matter with updated state." - }, - "addPermissions": { - "response": { - "$ref": "MatterPermission" - }, - "parameterOrder": [ - "matterId" - ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], - "parameters": { - "matterId": { - "location": "path", - "description": "The matter ID.", - "type": "string", - "required": true - } - }, - "flatPath": "v1/matters/{matterId}:addPermissions", - "id": "vault.matters.addPermissions", - "path": "v1/matters/{matterId}:addPermissions", - "request": { - "$ref": "AddMatterPermissionsRequest" - }, - "description": "Adds an account as a matter collaborator." - }, - "list": { - "flatPath": "v1/matters", - "path": "v1/matters", - "id": "vault.matters.list", - "description": "Lists matters the user has access to.", - "httpMethod": "GET", - "parameterOrder": [], - "response": { - "$ref": "ListMattersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/ediscovery", - "https://www.googleapis.com/auth/ediscovery.readonly" - ], - "parameters": { - "pageSize": { - "location": "query", - "format": "int32", - "description": "The number of matters to return in the response.\nDefault and maximum are 100.", - "type": "integer" - }, - "view": { - "description": "Specifies which parts of the matter to return in response.", - "type": "string", - "location": "query", - "enum": [ - "VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ] - }, - "state": { - "location": "query", - "enum": [ - "STATE_UNSPECIFIED", - "OPEN", - "CLOSED", - "DELETED" - ], - "description": "If set, list only matters with that specific state. The default is listing\nmatters of all states.", - "type": "string" - }, - "pageToken": { - "description": "The pagination token as returned in the response.", - "type": "string", - "location": "query" - } - } - }, "create": { - "description": "Creates a new matter with the given name and description. The initial state\nis open, and the owner is the method caller. Returns the created matter\nwith default view.", - "request": { - "$ref": "Matter" - }, - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "Matter" }, - "parameters": {}, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/ediscovery" ], + "parameters": {}, "flatPath": "v1/matters", + "id": "vault.matters.create", "path": "v1/matters", - "id": "vault.matters.create" + "request": { + "$ref": "Matter" + }, + "description": "Creates a new matter with the given name and description. The initial state\nis open, and the owner is the method caller. Returns the created matter\nwith default view." }, "reopen": { + "description": "Reopens the specified matter. Returns matter with updated state.", "request": { "$ref": "ReopenMatterRequest" }, - "description": "Reopens the specified matter. Returns matter with updated state.", - "response": { - "$ref": "ReopenMatterResponse" - }, + "httpMethod": "POST", "parameterOrder": [ "matterId" ], - "httpMethod": "POST", - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], + "response": { + "$ref": "ReopenMatterResponse" + }, "parameters": { "matterId": { "description": "The matter ID.", @@ -150,15 +47,14 @@ "location": "path" } }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], "flatPath": "v1/matters/{matterId}:reopen", - "id": "vault.matters.reopen", - "path": "v1/matters/{matterId}:reopen" + "path": "v1/matters/{matterId}:reopen", + "id": "vault.matters.reopen" }, "removePermissions": { - "description": "Removes an account as a matter collaborator.", - "request": { - "$ref": "RemoveMatterPermissionsRequest" - }, "response": { "$ref": "Empty" }, @@ -166,6 +62,9 @@ "matterId" ], "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], "parameters": { "matterId": { "description": "The matter ID.", @@ -174,18 +73,15 @@ "location": "path" } }, - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], "flatPath": "v1/matters/{matterId}:removePermissions", "id": "vault.matters.removePermissions", - "path": "v1/matters/{matterId}:removePermissions" + "path": "v1/matters/{matterId}:removePermissions", + "request": { + "$ref": "RemoveMatterPermissionsRequest" + }, + "description": "Removes an account as a matter collaborator." }, "get": { - "flatPath": "v1/matters/{matterId}", - "id": "vault.matters.get", - "path": "v1/matters/{matterId}", - "description": "Gets the specified matter.", "response": { "$ref": "Matter" }, @@ -214,20 +110,13 @@ "type": "string", "required": true } - } + }, + "flatPath": "v1/matters/{matterId}", + "id": "vault.matters.get", + "path": "v1/matters/{matterId}", + "description": "Gets the specified matter." }, - "undelete": { - "request": { - "$ref": "UndeleteMatterRequest" - }, - "description": "Undeletes the specified matter. Returns matter with updated state.", - "response": { - "$ref": "Matter" - }, - "parameterOrder": [ - "matterId" - ], - "httpMethod": "POST", + "close": { "scopes": [ "https://www.googleapis.com/auth/ediscovery" ], @@ -239,53 +128,87 @@ "required": true } }, - "flatPath": "v1/matters/{matterId}:undelete", - "id": "vault.matters.undelete", - "path": "v1/matters/{matterId}:undelete" - }, - "close": { "flatPath": "v1/matters/{matterId}:close", - "path": "v1/matters/{matterId}:close", "id": "vault.matters.close", + "path": "v1/matters/{matterId}:close", "request": { "$ref": "CloseMatterRequest" }, "description": "Closes the specified matter. Returns matter with updated state.", + "response": { + "$ref": "CloseMatterResponse" + }, + "parameterOrder": [ + "matterId" + ], + "httpMethod": "POST" + }, + "undelete": { "httpMethod": "POST", "parameterOrder": [ "matterId" ], "response": { - "$ref": "CloseMatterResponse" + "$ref": "Matter" }, + "parameters": { + "matterId": { + "type": "string", + "required": true, + "location": "path", + "description": "The matter ID." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], + "flatPath": "v1/matters/{matterId}:undelete", + "path": "v1/matters/{matterId}:undelete", + "id": "vault.matters.undelete", + "description": "Undeletes the specified matter. Returns matter with updated state.", + "request": { + "$ref": "UndeleteMatterRequest" + } + }, + "update": { + "response": { + "$ref": "Matter" + }, + "parameterOrder": [ + "matterId" + ], + "httpMethod": "PUT", "scopes": [ "https://www.googleapis.com/auth/ediscovery" ], "parameters": { "matterId": { + "location": "path", "description": "The matter ID.", "type": "string", - "required": true, - "location": "path" + "required": true } - } - }, - "update": { - "description": "Updates the specified matter.\nThis updates only the name and description of the matter, identified by\nmatter id. Changes to any other fields are ignored.\nReturns the default view of the matter.", + }, + "flatPath": "v1/matters/{matterId}", + "id": "vault.matters.update", + "path": "v1/matters/{matterId}", "request": { "$ref": "Matter" }, - "httpMethod": "PUT", - "parameterOrder": [ - "matterId" - ], + "description": "Updates the specified matter.\nThis updates only the name and description of the matter, identified by\nmatter id. Changes to any other fields are ignored.\nReturns the default view of the matter." + }, + "delete": { "response": { "$ref": "Matter" }, + "parameterOrder": [ + "matterId" + ], + "httpMethod": "DELETE", "parameters": { "matterId": { "location": "path", - "description": "The matter ID.", + "description": "The matter ID", "type": "string", "required": true } @@ -294,18 +217,122 @@ "https://www.googleapis.com/auth/ediscovery" ], "flatPath": "v1/matters/{matterId}", + "id": "vault.matters.delete", "path": "v1/matters/{matterId}", - "id": "vault.matters.update" + "description": "Deletes the specified matter. Returns matter with updated state." + }, + "list": { + "description": "Lists matters the user has access to.", + "httpMethod": "GET", + "parameterOrder": [], + "response": { + "$ref": "ListMattersResponse" + }, + "parameters": { + "pageToken": { + "type": "string", + "location": "query", + "description": "The pagination token as returned in the response." + }, + "pageSize": { + "format": "int32", + "description": "The number of matters to return in the response.\nDefault and maximum are 100.", + "type": "integer", + "location": "query" + }, + "view": { + "enum": [ + "VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "description": "Specifies which parts of the matter to return in response.", + "type": "string", + "location": "query" + }, + "state": { + "type": "string", + "location": "query", + "enum": [ + "STATE_UNSPECIFIED", + "OPEN", + "CLOSED", + "DELETED" + ], + "description": "If set, list only matters with that specific state. The default is listing\nmatters of all states." + } + }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery", + "https://www.googleapis.com/auth/ediscovery.readonly" + ], + "flatPath": "v1/matters", + "path": "v1/matters", + "id": "vault.matters.list" + }, + "addPermissions": { + "response": { + "$ref": "MatterPermission" + }, + "parameterOrder": [ + "matterId" + ], + "httpMethod": "POST", + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], + "parameters": { + "matterId": { + "type": "string", + "required": true, + "location": "path", + "description": "The matter ID." + } + }, + "flatPath": "v1/matters/{matterId}:addPermissions", + "id": "vault.matters.addPermissions", + "path": "v1/matters/{matterId}:addPermissions", + "request": { + "$ref": "AddMatterPermissionsRequest" + }, + "description": "Adds an account as a matter collaborator." } }, "resources": { "holds": { "methods": { + "delete": { + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], + "parameters": { + "holdId": { + "location": "path", + "description": "The hold ID.", + "type": "string", + "required": true + }, + "matterId": { + "location": "path", + "description": "The matter ID.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/matters/{matterId}/holds/{holdId}", + "id": "vault.matters.holds.delete", + "path": "v1/matters/{matterId}/holds/{holdId}", + "description": "Removes a hold by ID. This will release any HeldAccounts on this Hold.", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "matterId", + "holdId" + ], + "httpMethod": "DELETE" + }, "list": { - "flatPath": "v1/matters/{matterId}/holds", - "id": "vault.matters.holds.list", - "path": "v1/matters/{matterId}/holds", - "description": "Lists holds within a matter. An empty page token in ListHoldsResponse\ndenotes no more holds to list.", "response": { "$ref": "ListHoldsResponse" }, @@ -314,60 +341,64 @@ ], "httpMethod": "GET", "parameters": { + "matterId": { + "location": "path", + "description": "The matter ID.", + "type": "string", + "required": true + }, + "pageToken": { + "description": "The pagination token as returned in the response.\nAn empty token means start from the beginning.", + "type": "string", + "location": "query" + }, "pageSize": { "format": "int32", "description": "The number of holds to return in the response, between 0 and 100 inclusive.\nLeaving this empty, or as 0, is the same as page_size = 100.", "type": "integer", "location": "query" - }, - "matterId": { - "description": "The matter ID.", - "type": "string", - "required": true, - "location": "path" - }, - "pageToken": { - "location": "query", - "description": "The pagination token as returned in the response.\nAn empty token means start from the beginning.", - "type": "string" } }, "scopes": [ "https://www.googleapis.com/auth/ediscovery", "https://www.googleapis.com/auth/ediscovery.readonly" - ] + ], + "flatPath": "v1/matters/{matterId}/holds", + "id": "vault.matters.holds.list", + "path": "v1/matters/{matterId}/holds", + "description": "Lists holds within a matter. An empty page token in ListHoldsResponse\ndenotes no more holds to list." }, "get": { "description": "Gets a hold by ID.", - "httpMethod": "GET", + "response": { + "$ref": "Hold" + }, "parameterOrder": [ "matterId", "holdId" ], - "response": { - "$ref": "Hold" + "httpMethod": "GET", + "parameters": { + "holdId": { + "location": "path", + "description": "The hold ID.", + "type": "string", + "required": true + }, + "matterId": { + "location": "path", + "description": "The matter ID.", + "type": "string", + "required": true + } }, "scopes": [ "https://www.googleapis.com/auth/ediscovery", "https://www.googleapis.com/auth/ediscovery.readonly" ], - "parameters": { - "holdId": { - "description": "The hold ID.", - "type": "string", - "required": true, - "location": "path" - }, - "matterId": { - "description": "The matter ID.", - "type": "string", - "required": true, - "location": "path" - } - }, "flatPath": "v1/matters/{matterId}/holds/{holdId}", - "path": "v1/matters/{matterId}/holds/{holdId}", - "id": "vault.matters.holds.get" + "id": "vault.matters.holds.get", + "path": "v1/matters/{matterId}/holds/{holdId}" }, "update": { "response": { @@ -382,17 +413,17 @@ "https://www.googleapis.com/auth/ediscovery" ], "parameters": { + "matterId": { + "location": "path", + "description": "The matter ID.", + "type": "string", + "required": true + }, "holdId": { "description": "The ID of the hold.", "type": "string", "required": true, "location": "path" - }, - "matterId": { - "description": "The matter ID.", - "type": "string", - "required": true, - "location": "path" } }, "flatPath": "v1/matters/{matterId}/holds/{holdId}", @@ -404,13 +435,13 @@ "description": "Updates the OU and/or query parameters of a hold. You cannot add accounts\nto a hold that covers an OU, nor can you add OUs to a hold that covers\nindividual accounts. Accounts listed in the hold will be ignored." }, "create": { - "httpMethod": "POST", - "parameterOrder": [ - "matterId" - ], "response": { "$ref": "Hold" }, + "parameterOrder": [ + "matterId" + ], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/ediscovery" ], @@ -423,50 +454,56 @@ } }, "flatPath": "v1/matters/{matterId}/holds", - "path": "v1/matters/{matterId}/holds", "id": "vault.matters.holds.create", + "path": "v1/matters/{matterId}/holds", "request": { "$ref": "Hold" }, "description": "Creates a hold in the given matter." - }, - "delete": { - "description": "Removes a hold by ID. This will release any HeldAccounts on this Hold.", - "parameterOrder": [ - "matterId", - "holdId" - ], - "response": { - "$ref": "Empty" - }, - "httpMethod": "DELETE", - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], - "parameters": { - "holdId": { - "description": "The hold ID.", - "type": "string", - "required": true, - "location": "path" - }, - "matterId": { - "description": "The matter ID.", - "type": "string", - "required": true, - "location": "path" - } - }, - "flatPath": "v1/matters/{matterId}/holds/{holdId}", - "id": "vault.matters.holds.delete", - "path": "v1/matters/{matterId}/holds/{holdId}" } }, "resources": { "accounts": { "methods": { + "delete": { + "httpMethod": "DELETE", + "response": { + "$ref": "Empty" + }, + "parameterOrder": [ + "matterId", + "holdId", + "accountId" + ], + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ], + "parameters": { + "matterId": { + "location": "path", + "description": "The matter ID.", + "type": "string", + "required": true + }, + "holdId": { + "type": "string", + "required": true, + "location": "path", + "description": "The hold ID." + }, + "accountId": { + "location": "path", + "description": "The ID of the account to remove from the hold.", + "type": "string", + "required": true + } + }, + "flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}", + "path": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}", + "id": "vault.matters.holds.accounts.delete", + "description": "Removes a HeldAccount from a hold. If this request leaves the hold with\nno held accounts, the hold will not apply to any accounts." + }, "list": { - "description": "Lists HeldAccounts for a hold. This will only list individually specified\nheld accounts. If the hold is on an OU, then use\n\u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e\nto enumerate its members.", "response": { "$ref": "ListHeldAccountsResponse" }, @@ -477,16 +514,16 @@ "httpMethod": "GET", "parameters": { "matterId": { - "location": "path", - "description": "The matter ID.", - "type": "string", - "required": true - }, - "holdId": { - "description": "The hold ID.", "type": "string", "required": true, - "location": "path" + "location": "path", + "description": "The matter ID." + }, + "holdId": { + "location": "path", + "description": "The hold ID.", + "type": "string", + "required": true } }, "scopes": [ @@ -495,13 +532,10 @@ ], "flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts", "id": "vault.matters.holds.accounts.list", - "path": "v1/matters/{matterId}/holds/{holdId}/accounts" + "path": "v1/matters/{matterId}/holds/{holdId}/accounts", + "description": "Lists HeldAccounts for a hold. This will only list individually specified\nheld accounts. If the hold is on an OU, then use\n\u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e\nto enumerate its members." }, "create": { - "request": { - "$ref": "HeldAccount" - }, - "description": "Adds a HeldAccount to a hold. Accounts can only be added to a hold that\nhas no held_org_unit set. Attempting to add an account to an OU-based\nhold will result in an error.", "httpMethod": "POST", "parameterOrder": [ "matterId", @@ -521,53 +555,19 @@ "required": true }, "matterId": { + "location": "path", "description": "The matter ID.", "type": "string", - "required": true, - "location": "path" + "required": true } }, "flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts", "path": "v1/matters/{matterId}/holds/{holdId}/accounts", - "id": "vault.matters.holds.accounts.create" - }, - "delete": { - "description": "Removes a HeldAccount from a hold. If this request leaves the hold with\nno held accounts, the hold will not apply to any accounts.", - "response": { - "$ref": "Empty" + "id": "vault.matters.holds.accounts.create", + "request": { + "$ref": "HeldAccount" }, - "parameterOrder": [ - "matterId", - "holdId", - "accountId" - ], - "httpMethod": "DELETE", - "parameters": { - "holdId": { - "description": "The hold ID.", - "type": "string", - "required": true, - "location": "path" - }, - "accountId": { - "location": "path", - "description": "The ID of the account to remove from the hold.", - "type": "string", - "required": true - }, - "matterId": { - "description": "The matter ID.", - "type": "string", - "required": true, - "location": "path" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/ediscovery" - ], - "flatPath": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}", - "id": "vault.matters.holds.accounts.delete", - "path": "v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}" + "description": "Adds a HeldAccount to a hold. Accounts can only be added to a hold that\nhas no held_org_unit set. Attempting to add an account to an OU-based\nhold will result in an error." } } } @@ -577,41 +577,41 @@ } }, "parameters": { - "key": { - "location": "query", - "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.", - "type": "string" - }, "access_token": { "location": "query", "description": "OAuth access token.", "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.", + "type": "string", + "location": "query" + }, "quotaUser": { "location": "query", "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.", "type": "string" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "bearer_token": { + "location": "query", "description": "OAuth bearer token.", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", "type": "string", "location": "query" }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, "upload_protocol": { - "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" }, "prettyPrint": { "location": "query", @@ -619,15 +619,15 @@ "default": "true", "type": "boolean" }, - "fields": { - "location": "query", - "description": "Selector specifying which fields to include in a partial response.", - "type": "string" - }, "uploadType": { - "location": "query", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" + "type": "string", + "location": "query" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "type": "string", + "location": "query" }, "$.xgafv": { "enumDescriptions": [ @@ -648,6 +648,11 @@ "location": "query" }, "alt": { + "enum": [ + "json", + "media", + "proto" + ], "type": "string", "enumDescriptions": [ "Responses with Content-Type of application/json", @@ -656,240 +661,39 @@ ], "location": "query", "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ] + "default": "json" } }, "version": "v1", "baseUrl": "https://vault.googleapis.com/", - "servicePath": "", "description": "Archiving and eDiscovery for G Suite.", "kind": "discovery#restDescription", + "servicePath": "", "basePath": "", - "revision": "20170812", - "documentationLink": "https://developers.google.com/vault", "id": "vault:v1", + "documentationLink": "https://developers.google.com/vault", + "revision": "20170812", "discoveryVersion": "v1", "version_module": true, "schemas": { - "AddMatterPermissionsRequest": { - "description": "Add an account with the permission specified. The role cannot be owner.\nIf an account already has a role in the matter, it will be\noverwritten.", - "type": "object", - "properties": { - "sendEmails": { - "description": "True to send notification email to the added account.\nFalse to not send notification email.", - "type": "boolean" - }, - "matterPermission": { - "$ref": "MatterPermission", - "description": "The MatterPermission to add." - }, - "ccMe": { - "description": "Only relevant if send_emails is true.\nTrue to CC requestor in the email message.\nFalse to not CC requestor.", - "type": "boolean" - } - }, - "id": "AddMatterPermissionsRequest" - }, - "Matter": { - "description": "Represents a matter.", - "type": "object", - "properties": { - "description": { - "description": "The description of the matter.", - "type": "string" - }, - "matterId": { - "description": "The matter ID which is generated by the server.\nShould be blank when creating a new matter.", - "type": "string" - }, - "state": { - "description": "The state of the matter.", - "type": "string", - "enumDescriptions": [ - "The matter has no specified state.", - "This matter is open.", - "This matter is closed.", - "This matter is deleted." - ], - "enum": [ - "STATE_UNSPECIFIED", - "OPEN", - "CLOSED", - "DELETED" - ] - }, - "matterPermissions": { - "description": "List of users and access to the matter. Currently there is no programmer\ndefined limit on the number of permissions a matter can have.", - "items": { - "$ref": "MatterPermission" - }, - "type": "array" - }, - "name": { - "description": "The name of the matter.", - "type": "string" - } - }, - "id": "Matter" - }, - "HeldAccount": { - "description": "An account being held in a particular hold. This structure is immutable.\nThis can be either a single user or a google group, depending on the corpus.", - "type": "object", - "properties": { - "accountId": { - "description": "The account's ID as provided by the\n\u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e.", - "type": "string" - }, - "holdTime": { - "format": "google-datetime", - "description": "When the account was put on hold.", - "type": "string" - } - }, - "id": "HeldAccount" - }, - "ReopenMatterResponse": { - "description": "Response to a ReopenMatterRequest.", - "type": "object", - "properties": { - "matter": { - "description": "The updated matter, with state OPEN.", - "$ref": "Matter" - } - }, - "id": "ReopenMatterResponse" - }, - "CorpusQuery": { - "description": "Corpus specific queries.", - "type": "object", - "properties": { - "groupsQuery": { - "description": "Details pertaining to Groups holds. If set, corpus must be Groups.", - "$ref": "HeldGroupsQuery" - }, - "mailQuery": { - "description": "Details pertaining to mail holds. If set, corpus must be mail.", - "$ref": "HeldMailQuery" - }, - "driveQuery": { - "description": "Details pertaining to Drive holds. If set, corpus must be Drive.", - "$ref": "HeldDriveQuery" - } - }, - "id": "CorpusQuery" - }, - "Hold": { - "description": "Represents a hold within Vault. A hold restricts purging of\nartifacts based on the combination of the query and accounts restrictions.\nA hold can be configured to either apply to an explicitly configured set\nof accounts, or can be applied to all members of an organizational unit.", - "type": "object", - "properties": { - "orgUnit": { - "$ref": "HeldOrgUnit", - "description": "If set, the hold applies to all members of the organizational unit and\naccounts must be empty. This property is mutable. For groups holds,\nset the accounts field." - }, - "query": { - "description": "The corpus-specific query. If set, the corpusQuery must match corpus\ntype.", - "$ref": "CorpusQuery" - }, - "corpus": { - "description": "The corpus to be searched.", - "type": "string", - "enumDescriptions": [ - "No corpus specified.", - "Drive.", - "Mail.", - "Groups." - ], - "enum": [ - "CORPUS_TYPE_UNSPECIFIED", - "DRIVE", - "MAIL", - "GROUPS" - ] - }, - "updateTime": { - "format": "google-datetime", - "description": "The last time this hold was modified.", - "type": "string" - }, - "name": { - "description": "The name of the hold.", - "type": "string" - }, - "holdId": { - "description": "The unique immutable ID of the hold. Assigned during creation.", - "type": "string" - }, - "accounts": { - "description": "If set, the hold applies to the enumerated accounts and org_unit must be\nempty.", - "items": { - "$ref": "HeldAccount" - }, - "type": "array" - } - }, - "id": "Hold" - }, - "ListHoldsResponse": { - "description": "The holds for a matter.", - "type": "object", - "properties": { - "nextPageToken": { - "description": "Page token to retrieve the next page of results in the list.\nIf this is empty, then there are no more holds to list.", - "type": "string" - }, - "holds": { - "description": "The list of holds.", - "items": { - "$ref": "Hold" - }, - "type": "array" - } - }, - "id": "ListHoldsResponse" - }, - "ListHeldAccountsResponse": { - "description": "Returns a list of held accounts for a hold.", - "type": "object", - "properties": { - "accounts": { - "description": "The held accounts on a hold.", - "items": { - "$ref": "HeldAccount" - }, - "type": "array" - } - }, - "id": "ListHeldAccountsResponse" - }, - "UndeleteMatterRequest": { - "description": "Undelete a matter by ID.", - "type": "object", - "properties": {}, - "id": "UndeleteMatterRequest" - }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", "properties": {}, "id": "Empty" }, + "ReopenMatterRequest": { + "id": "ReopenMatterRequest", + "description": "Reopen a matter by ID.", + "type": "object", + "properties": {} + }, "CloseMatterRequest": { "description": "Close a matter by ID.", "type": "object", "properties": {}, "id": "CloseMatterRequest" }, - "ReopenMatterRequest": { - "description": "Reopen a matter by ID.", - "type": "object", - "properties": {}, - "id": "ReopenMatterRequest" - }, "RemoveMatterPermissionsRequest": { "description": "Remove an account as a matter collaborator.", "type": "object", @@ -905,10 +709,6 @@ "description": "Currently each matter only has one owner, and all others are collaborators.\nWhen an account is purged, its corresponding MatterPermission resources\ncease to exist.", "type": "object", "properties": { - "accountId": { - "description": "The account id, as provided by \u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e.", - "type": "string" - }, "role": { "enumDescriptions": [ "No role assigned.", @@ -922,6 +722,10 @@ ], "description": "The user's role in this matter.", "type": "string" + }, + "accountId": { + "type": "string", + "description": "The account id, as provided by \u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e." } }, "id": "MatterPermission" @@ -948,10 +752,6 @@ "description": "Query options for mail holds.", "type": "object", "properties": { - "terms": { - "description": "The search terms for the hold.", - "type": "string" - }, "endTime": { "format": "google-datetime", "description": "The end date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", @@ -961,6 +761,10 @@ "format": "google-datetime", "description": "The start date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", "type": "string" + }, + "terms": { + "description": "The search terms for the hold.", + "type": "string" } }, "id": "HeldMailQuery" @@ -970,12 +774,33 @@ "type": "object", "properties": { "matter": { - "description": "The updated matter, with state CLOSED.", - "$ref": "Matter" + "$ref": "Matter", + "description": "The updated matter, with state CLOSED." } }, "id": "CloseMatterResponse" }, + "HeldGroupsQuery": { + "description": "Query options for group holds.", + "type": "object", + "properties": { + "startTime": { + "format": "google-datetime", + "description": "The start date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", + "type": "string" + }, + "terms": { + "description": "The search terms for the hold.", + "type": "string" + }, + "endTime": { + "format": "google-datetime", + "description": "The end date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", + "type": "string" + } + }, + "id": "HeldGroupsQuery" + }, "HeldDriveQuery": { "description": "Query options for drive holds.", "type": "object", @@ -987,29 +812,7 @@ }, "id": "HeldDriveQuery" }, - "HeldGroupsQuery": { - "description": "Query options for group holds.", - "type": "object", - "properties": { - "endTime": { - "format": "google-datetime", - "description": "The end date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", - "type": "string" - }, - "startTime": { - "format": "google-datetime", - "description": "The start date range for the search query. These timestamps are in GMT and\nrounded down to the start of the given date.", - "type": "string" - }, - "terms": { - "description": "The search terms for the hold.", - "type": "string" - } - }, - "id": "HeldGroupsQuery" - }, "HeldOrgUnit": { - "description": "A organizational unit being held in a particular hold.\nThis structure is immutable.", "type": "object", "properties": { "orgUnitId": { @@ -1022,14 +825,211 @@ "type": "string" } }, - "id": "HeldOrgUnit" + "id": "HeldOrgUnit", + "description": "A organizational unit being held in a particular hold.\nThis structure is immutable." + }, + "AddMatterPermissionsRequest": { + "description": "Add an account with the permission specified. The role cannot be owner.\nIf an account already has a role in the matter, it will be\noverwritten.", + "type": "object", + "properties": { + "sendEmails": { + "description": "True to send notification email to the added account.\nFalse to not send notification email.", + "type": "boolean" + }, + "matterPermission": { + "description": "The MatterPermission to add.", + "$ref": "MatterPermission" + }, + "ccMe": { + "description": "Only relevant if send_emails is true.\nTrue to CC requestor in the email message.\nFalse to not CC requestor.", + "type": "boolean" + } + }, + "id": "AddMatterPermissionsRequest" + }, + "Matter": { + "properties": { + "matterId": { + "description": "The matter ID which is generated by the server.\nShould be blank when creating a new matter.", + "type": "string" + }, + "state": { + "enumDescriptions": [ + "The matter has no specified state.", + "This matter is open.", + "This matter is closed.", + "This matter is deleted." + ], + "enum": [ + "STATE_UNSPECIFIED", + "OPEN", + "CLOSED", + "DELETED" + ], + "description": "The state of the matter.", + "type": "string" + }, + "matterPermissions": { + "description": "List of users and access to the matter. Currently there is no programmer\ndefined limit on the number of permissions a matter can have.", + "items": { + "$ref": "MatterPermission" + }, + "type": "array" + }, + "name": { + "description": "The name of the matter.", + "type": "string" + }, + "description": { + "description": "The description of the matter.", + "type": "string" + } + }, + "id": "Matter", + "description": "Represents a matter.", + "type": "object" + }, + "HeldAccount": { + "description": "An account being held in a particular hold. This structure is immutable.\nThis can be either a single user or a google group, depending on the corpus.", + "type": "object", + "properties": { + "holdTime": { + "format": "google-datetime", + "description": "When the account was put on hold.", + "type": "string" + }, + "accountId": { + "type": "string", + "description": "The account's ID as provided by the\n\u003ca href=\"https://developers.google.com/admin-sdk/\"\u003eAdmin SDK\u003c/a\u003e." + } + }, + "id": "HeldAccount" + }, + "ReopenMatterResponse": { + "id": "ReopenMatterResponse", + "description": "Response to a ReopenMatterRequest.", + "type": "object", + "properties": { + "matter": { + "$ref": "Matter", + "description": "The updated matter, with state OPEN." + } + } + }, + "CorpusQuery": { + "description": "Corpus specific queries.", + "type": "object", + "properties": { + "groupsQuery": { + "$ref": "HeldGroupsQuery", + "description": "Details pertaining to Groups holds. If set, corpus must be Groups." + }, + "mailQuery": { + "$ref": "HeldMailQuery", + "description": "Details pertaining to mail holds. If set, corpus must be mail." + }, + "driveQuery": { + "$ref": "HeldDriveQuery", + "description": "Details pertaining to Drive holds. If set, corpus must be Drive." + } + }, + "id": "CorpusQuery" + }, + "Hold": { + "id": "Hold", + "description": "Represents a hold within Vault. A hold restricts purging of\nartifacts based on the combination of the query and accounts restrictions.\nA hold can be configured to either apply to an explicitly configured set\nof accounts, or can be applied to all members of an organizational unit.", + "type": "object", + "properties": { + "query": { + "$ref": "CorpusQuery", + "description": "The corpus-specific query. If set, the corpusQuery must match corpus\ntype." + }, + "orgUnit": { + "description": "If set, the hold applies to all members of the organizational unit and\naccounts must be empty. This property is mutable. For groups holds,\nset the accounts field.", + "$ref": "HeldOrgUnit" + }, + "corpus": { + "description": "The corpus to be searched.", + "type": "string", + "enumDescriptions": [ + "No corpus specified.", + "Drive.", + "Mail.", + "Groups." + ], + "enum": [ + "CORPUS_TYPE_UNSPECIFIED", + "DRIVE", + "MAIL", + "GROUPS" + ] + }, + "updateTime": { + "format": "google-datetime", + "description": "The last time this hold was modified.", + "type": "string" + }, + "holdId": { + "description": "The unique immutable ID of the hold. Assigned during creation.", + "type": "string" + }, + "name": { + "description": "The name of the hold.", + "type": "string" + }, + "accounts": { + "description": "If set, the hold applies to the enumerated accounts and org_unit must be\nempty.", + "items": { + "$ref": "HeldAccount" + }, + "type": "array" + } + } + }, + "ListHoldsResponse": { + "description": "The holds for a matter.", + "type": "object", + "properties": { + "holds": { + "description": "The list of holds.", + "items": { + "$ref": "Hold" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Page token to retrieve the next page of results in the list.\nIf this is empty, then there are no more holds to list.", + "type": "string" + } + }, + "id": "ListHoldsResponse" + }, + "ListHeldAccountsResponse": { + "description": "Returns a list of held accounts for a hold.", + "type": "object", + "properties": { + "accounts": { + "description": "The held accounts on a hold.", + "items": { + "$ref": "HeldAccount" + }, + "type": "array" + } + }, + "id": "ListHeldAccountsResponse" + }, + "UndeleteMatterRequest": { + "description": "Undelete a matter by ID.", + "type": "object", + "properties": {}, + "id": "UndeleteMatterRequest" } }, - "protocol": "rest", "icons": { "x32": "http://www.google.com/images/icons/product/search-32.gif", "x16": "http://www.google.com/images/icons/product/search-16.gif" }, + "protocol": "rest", "canonicalName": "Vault", "auth": { "oauth2": { diff --git a/vendor/google.golang.org/api/videointelligence/v1beta1/videointelligence-api.json b/vendor/google.golang.org/api/videointelligence/v1beta1/videointelligence-api.json index 8d0c425fd..9ca5085c7 100644 --- a/vendor/google.golang.org/api/videointelligence/v1beta1/videointelligence-api.json +++ b/vendor/google.golang.org/api/videointelligence/v1beta1/videointelligence-api.json @@ -1,15 +1,206 @@ { + "basePath": "", + "revision": "20171004", + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "id": "videointelligence:v1beta1", "discoveryVersion": "v1", "version_module": true, "schemas": { + "GoogleCloudVideointelligenceV1_SafeSearchAnnotation": { + "description": "Safe search annotation (based on per-frame visual signals only).\nIf no unsafe content has been detected in a frame, no annotations\nare present for that frame.", + "type": "object", + "properties": { + "time": { + "format": "google-duration", + "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the video frame for this annotation.", + "type": "string" + }, + "adult": { + "description": "Likelihood of adult content.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + } + }, + "id": "GoogleCloudVideointelligenceV1_SafeSearchAnnotation" + }, + "GoogleCloudVideointelligenceV1beta2_LabelAnnotation": { + "description": "Label annotation.", + "type": "object", + "properties": { + "frames": { + "description": "All video frames where a label was detected.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta2_LabelFrame" + }, + "type": "array" + }, + "segments": { + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta2_LabelSegment" + }, + "type": "array", + "description": "All video segments where a label was detected." + }, + "categoryEntities": { + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta2_Entity" + }, + "type": "array", + "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`." + }, + "entity": { + "$ref": "GoogleCloudVideointelligenceV1beta2_Entity", + "description": "Detected entity." + } + }, + "id": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" + }, + "GoogleCloudVideointelligenceV1beta1_SafeSearchAnnotation": { + "id": "GoogleCloudVideointelligenceV1beta1_SafeSearchAnnotation", + "description": "Safe search annotation (based on per-frame visual signals only).\nIf no unsafe content has been detected in a frame, no annotations\nare present for that frame. If only some types of unsafe content\nhave been detected in a frame, the likelihood is set to `UNKNOWN`\nfor all other types of unsafe content.", + "type": "object", + "properties": { + "adult": { + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Likelihood of adult content.", + "type": "string" + }, + "racy": { + "description": "Likelihood of racy content.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + }, + "timeOffset": { + "format": "int64", + "description": "Video time offset in microseconds.", + "type": "string" + }, + "spoof": { + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Likelihood that an obvious modification was made to the original\nversion to make it appear funny or offensive.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ] + }, + "violent": { + "description": "Likelihood of violent content.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + }, + "medical": { + "description": "Likelihood of medical content.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "Very unlikely.", + "Unlikely.", + "Possible.", + "Likely.", + "Very likely." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + } + } + }, + "GoogleCloudVideointelligenceV1beta1_AnnotateVideoProgress": { + "type": "object", + "properties": { + "annotationProgress": { + "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta1_VideoAnnotationProgress" + }, + "type": "array" + } + }, + "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoProgress", + "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service." + }, "GoogleCloudVideointelligenceV1beta2_Entity": { + "id": "GoogleCloudVideointelligenceV1beta2_Entity", "description": "Detected entity from video analysis.", "type": "object", "properties": { - "description": { - "description": "Textual description, e.g. `Fixed-gear bicycle`.", - "type": "string" - }, "languageCode": { "description": "Language code for `description` in BCP-47 format.", "type": "string" @@ -17,18 +208,21 @@ "entityId": { "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).", "type": "string" + }, + "description": { + "type": "string", + "description": "Textual description, e.g. `Fixed-gear bicycle`." } - }, - "id": "GoogleCloudVideointelligenceV1beta2_Entity" + } }, "GoogleCloudVideointelligenceV1beta2_VideoSegment": { "description": "Video segment.", "type": "object", "properties": { "endTimeOffset": { + "type": "string", "format": "google-duration", - "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).", - "type": "string" + "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive)." }, "startTimeOffset": { "format": "google-duration", @@ -38,18 +232,47 @@ }, "id": "GoogleCloudVideointelligenceV1beta2_VideoSegment" }, + "GoogleCloudVideointelligenceV1_VideoAnnotationResults": { + "type": "object", + "properties": { + "error": { + "$ref": "GoogleRpc_Status", + "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail." + }, + "shotAnnotations": { + "items": { + "$ref": "GoogleCloudVideointelligenceV1_VideoSegment" + }, + "type": "array", + "description": "Shot annotations. Each shot is represented as a video segment." + }, + "safeSearchAnnotations": { + "description": "Safe search annotations.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1_SafeSearchAnnotation" + }, + "type": "array" + }, + "inputUri": { + "type": "string", + "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/)." + }, + "labelAnnotations": { + "description": "Label annotations. There is exactly one element for each unique label.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" + }, + "type": "array" + } + }, + "id": "GoogleCloudVideointelligenceV1_VideoAnnotationResults", + "description": "Annotation results for a single video." + }, "GoogleCloudVideointelligenceV1_LabelLocation": { "description": "Label location.", "type": "object", "properties": { "level": { - "enumDescriptions": [ - "Unspecified.", - "Video-level. Corresponds to the whole video.", - "Segment-level. Corresponds to one of `AnnotateSpec.segments`.", - "Shot-level. Corresponds to a single shot (i.e. a series of frames\nwithout a major camera position or background change).", - "Frame-level. Corresponds to a single video frame." - ], "enum": [ "LABEL_LEVEL_UNSPECIFIED", "VIDEO_LEVEL", @@ -58,7 +281,14 @@ "FRAME_LEVEL" ], "description": "Label level.", - "type": "string" + "type": "string", + "enumDescriptions": [ + "Unspecified.", + "Video-level. Corresponds to the whole video.", + "Segment-level. Corresponds to one of `AnnotateSpec.segments`.", + "Shot-level. Corresponds to a single shot (i.e. a series of frames\nwithout a major camera position or background change).", + "Frame-level. Corresponds to a single video frame." + ] }, "confidence": { "format": "float", @@ -72,55 +302,19 @@ }, "id": "GoogleCloudVideointelligenceV1_LabelLocation" }, - "GoogleCloudVideointelligenceV1_VideoAnnotationResults": { - "description": "Annotation results for a single video.", - "type": "object", - "properties": { - "labelAnnotations": { - "description": "Label annotations. There is exactly one element for each unique label.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" - }, - "type": "array" - }, - "error": { - "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail.", - "$ref": "GoogleRpc_Status" - }, - "shotAnnotations": { - "description": "Shot annotations. Each shot is represented as a video segment.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1_VideoSegment" - }, - "type": "array" - }, - "safeSearchAnnotations": { - "description": "Safe search annotations.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1_SafeSearchAnnotation" - }, - "type": "array" - }, - "inputUri": { - "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).", - "type": "string" - } - }, - "id": "GoogleCloudVideointelligenceV1_VideoAnnotationResults" - }, "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse": { + "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse", "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", "type": "object", "properties": { "annotationResults": { - "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults" }, - "type": "array" + "type": "array", + "description": "Annotation results for all videos specified in `AnnotateVideoRequest`." } - }, - "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse" + } }, "GoogleCloudVideointelligenceV1beta1_LabelAnnotation": { "description": "Label annotation.", @@ -148,10 +342,6 @@ "description": "Label annotation.", "type": "object", "properties": { - "description": { - "description": "Textual description, e.g. `Fixed-gear bicycle`.", - "type": "string" - }, "locations": { "description": "Where the label was detected and with what confidence.", "items": { @@ -162,6 +352,10 @@ "languageCode": { "description": "Language code for `description` in BCP-47 format.", "type": "string" + }, + "description": { + "description": "Textual description, e.g. `Fixed-gear bicycle`.", + "type": "string" } }, "id": "GoogleCloudVideointelligenceV1_LabelAnnotation" @@ -170,13 +364,22 @@ "description": "Video context and/or feature-specific parameters.", "type": "object", "properties": { + "segments": { + "description": "Video segments to annotate. The segments may overlap and are not required\nto be contiguous or span the whole video. If unspecified, each video\nis treated as a single segment.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment" + }, + "type": "array" + }, + "labelDetectionModel": { + "description": "Model to use for label detection.\nSupported values: \"latest\" and \"stable\" (the default).", + "type": "string" + }, "shotChangeDetectionModel": { "description": "Model to use for shot change detection.\nSupported values: \"latest\" and \"stable\" (the default).", "type": "string" }, "labelDetectionMode": { - "description": "If label detection has been requested, what labels should be detected\nin addition to video-level labels or segment-level labels. If unspecified,\ndefaults to `SHOT_MODE`.", - "type": "string", "enumDescriptions": [ "Unspecified.", "Detect shot-level labels.", @@ -188,7 +391,9 @@ "SHOT_MODE", "FRAME_MODE", "SHOT_AND_FRAME_MODE" - ] + ], + "description": "If label detection has been requested, what labels should be detected\nin addition to video-level labels or segment-level labels. If unspecified,\ndefaults to `SHOT_MODE`.", + "type": "string" }, "stationaryCamera": { "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.", @@ -197,17 +402,6 @@ "safeSearchDetectionModel": { "description": "Model to use for safe search detection.\nSupported values: \"latest\" and \"stable\" (the default).", "type": "string" - }, - "segments": { - "description": "Video segments to annotate. The segments may overlap and are not required\nto be contiguous or span the whole video. If unspecified, each video\nis treated as a single segment.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment" - }, - "type": "array" - }, - "labelDetectionModel": { - "description": "Model to use for label detection.\nSupported values: \"latest\" and \"stable\" (the default).", - "type": "string" } }, "id": "GoogleCloudVideointelligenceV1beta1_VideoContext" @@ -216,14 +410,18 @@ "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", "type": "object", "properties": { + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, "details": { "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", "items": { - "type": "object", "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", "type": "any" - } + }, + "type": "object" }, "type": "array" }, @@ -231,10 +429,6 @@ "format": "int32", "description": "The status code, which should be an enum value of google.rpc.Code.", "type": "integer" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", - "type": "string" } }, "id": "GoogleRpc_Status" @@ -282,10 +476,6 @@ "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).", "type": "string" }, - "explicitAnnotation": { - "description": "Explicit content annotation.", - "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation" - }, "segmentLabelAnnotations": { "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.", "items": { @@ -293,6 +483,10 @@ }, "type": "array" }, + "explicitAnnotation": { + "description": "Explicit content annotation.", + "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation" + }, "shotAnnotations": { "description": "Shot annotations. Each shot is represented as a video segment.", "items": { @@ -303,20 +497,6 @@ }, "id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults" }, - "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation": { - "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.", - "type": "object", - "properties": { - "frames": { - "description": "All video frames where explicit content was detected.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame" - }, - "type": "array" - } - }, - "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation" - }, "GoogleCloudVideointelligenceV1beta1_LabelLocation": { "description": "Label location.", "type": "object", @@ -345,47 +525,65 @@ "type": "number" }, "segment": { - "description": "Video segment. Set to [-1, -1] for video-level labels.\nSet to [timestamp, timestamp] for frame-level labels.\nOtherwise, corresponds to one of `AnnotateSpec.segments`\n(if specified) or to shot boundaries (if requested).", - "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment" + "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment", + "description": "Video segment. Set to [-1, -1] for video-level labels.\nSet to [timestamp, timestamp] for frame-level labels.\nOtherwise, corresponds to one of `AnnotateSpec.segments`\n(if specified) or to shot boundaries (if requested)." } }, "id": "GoogleCloudVideointelligenceV1beta1_LabelLocation" }, + "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation": { + "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.", + "type": "object", + "properties": { + "frames": { + "description": "All video frames where explicit content was detected.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame" + }, + "type": "array" + } + }, + "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation" + }, "GoogleCloudVideointelligenceV1beta2_LabelFrame": { "description": "Video frame level annotation results for label detection.", "type": "object", "properties": { - "confidence": { - "format": "float", - "description": "Confidence that the label is accurate. Range: [0, 1].", - "type": "number" - }, "timeOffset": { "format": "google-duration", "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.", "type": "string" + }, + "confidence": { + "format": "float", + "description": "Confidence that the label is accurate. Range: [0, 1].", + "type": "number" } }, "id": "GoogleCloudVideointelligenceV1beta2_LabelFrame" }, "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress": { + "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress", "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", "type": "object", "properties": { "annotationProgress": { - "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", "items": { "$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress" }, - "type": "array" + "type": "array", + "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`." } - }, - "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress" + } }, "GoogleCloudVideointelligenceV1_VideoAnnotationProgress": { "description": "Annotation progress for a single video.", "type": "object", "properties": { + "inputUri": { + "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).", + "type": "string" + }, "progressPercent": { "format": "int32", "description": "Approximate percentage processed thus far.\nGuaranteed to be 100 when fully processed.", @@ -400,10 +598,6 @@ "format": "google-datetime", "description": "Time when the request was received.", "type": "string" - }, - "inputUri": { - "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).", - "type": "string" } }, "id": "GoogleCloudVideointelligenceV1_VideoAnnotationProgress" @@ -426,25 +620,9 @@ "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "type": "object", "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "type": "boolean" - }, - "response": { - "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", - "type": "object", - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - } - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.", - "type": "string" - }, "error": { - "description": "The error result of the operation in case of failure or cancellation.", - "$ref": "GoogleRpc_Status" + "$ref": "GoogleRpc_Status", + "description": "The error result of the operation in case of failure or cancellation." }, "metadata": { "additionalProperties": { @@ -453,25 +631,29 @@ }, "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", "type": "object" + }, + "done": { + "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", + "type": "boolean" + }, + "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\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", + "type": "object" + }, + "name": { + "type": "string", + "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`." } }, "id": "GoogleLongrunning_Operation" }, "GoogleCloudVideointelligenceV1beta1_VideoAnnotationResults": { - "description": "Annotation results for a single video.", "type": "object", "properties": { - "error": { - "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail.", - "$ref": "GoogleRpc_Status" - }, - "shotAnnotations": { - "description": "Shot annotations. Each shot is represented as a video segment.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment" - }, - "type": "array" - }, "safeSearchAnnotations": { "description": "Safe search annotations.", "items": { @@ -489,14 +671,29 @@ "$ref": "GoogleCloudVideointelligenceV1beta1_LabelAnnotation" }, "type": "array" + }, + "error": { + "$ref": "GoogleRpc_Status", + "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail." + }, + "shotAnnotations": { + "description": "Shot annotations. Each shot is represented as a video segment.", + "items": { + "$ref": "GoogleCloudVideointelligenceV1beta1_VideoSegment" + }, + "type": "array" } }, - "id": "GoogleCloudVideointelligenceV1beta1_VideoAnnotationResults" + "id": "GoogleCloudVideointelligenceV1beta1_VideoAnnotationResults", + "description": "Annotation results for a single video." }, "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress": { - "description": "Annotation progress for a single video.", "type": "object", "properties": { + "inputUri": { + "type": "string", + "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/)." + }, "progressPercent": { "format": "int32", "description": "Approximate percentage processed thus far.\nGuaranteed to be 100 when fully processed.", @@ -511,17 +708,12 @@ "format": "google-datetime", "description": "Time when the request was received.", "type": "string" - }, - "inputUri": { - "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).", - "type": "string" } }, - "id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress" + "id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress", + "description": "Annotation progress for a single video." }, "GoogleCloudVideointelligenceV1_AnnotateVideoResponse": { - "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", - "type": "object", "properties": { "annotationResults": { "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", @@ -531,10 +723,11 @@ "type": "array" } }, - "id": "GoogleCloudVideointelligenceV1_AnnotateVideoResponse" + "id": "GoogleCloudVideointelligenceV1_AnnotateVideoResponse", + "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", + "type": "object" }, "GoogleCloudVideointelligenceV1beta1_AnnotateVideoResponse": { - "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", "type": "object", "properties": { "annotationResults": { @@ -545,7 +738,8 @@ "type": "array" } }, - "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoResponse" + "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoResponse", + "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service." }, "GoogleCloudVideointelligenceV1beta1_VideoAnnotationProgress": { "description": "Annotation progress for a single video.", @@ -574,7 +768,6 @@ "id": "GoogleCloudVideointelligenceV1beta1_VideoAnnotationProgress" }, "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame": { - "description": "Video frame level annotation results for explicit content.", "type": "object", "properties": { "pornographyLikelihood": { @@ -603,9 +796,11 @@ "type": "string" } }, - "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame" + "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame", + "description": "Video frame level annotation results for explicit content." }, "GoogleCloudVideointelligenceV1beta1_AnnotateVideoRequest": { + "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoRequest", "description": "Video annotation request.", "type": "object", "properties": { @@ -618,13 +813,13 @@ ], "description": "Requested video annotation features.", "items": { - "type": "string", "enum": [ "FEATURE_UNSPECIFIED", "LABEL_DETECTION", "SHOT_CHANGE_DETECTION", "SAFE_SEARCH_DETECTION" - ] + ], + "type": "string" }, "type": "array" }, @@ -641,15 +836,14 @@ "type": "string" }, "inputUri": { - "description": "Input video location. Currently, only\n[Google Cloud Storage](https://cloud.google.com/storage/) URIs are\nsupported, which must be specified in the following format:\n`gs://bucket-id/object-id` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](/storage/docs/reference-uris).\nA video URI may include wildcards in `object-id`, and thus identify\nmultiple videos. Supported wildcards: '*' to match 0 or more characters;\n'?' to match 1 character. If unset, the input video should be embedded\nin the request as `input_content`. If set, `input_content` should be unset.", - "type": "string" + "type": "string", + "description": "Input video location. Currently, only\n[Google Cloud Storage](https://cloud.google.com/storage/) URIs are\nsupported, which must be specified in the following format:\n`gs://bucket-id/object-id` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](/storage/docs/reference-uris).\nA video URI may include wildcards in `object-id`, and thus identify\nmultiple videos. Supported wildcards: '*' to match 0 or more characters;\n'?' to match 1 character. If unset, the input video should be embedded\nin the request as `input_content`. If set, `input_content` should be unset." }, "inputContent": { "description": "The video data bytes. Encoding: base64. If unset, the input video(s)\nshould be specified via `input_uri`. If set, `input_uri` should be unset.", "type": "string" } - }, - "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoRequest" + } }, "GoogleCloudVideointelligenceV1beta1_VideoSegment": { "description": "Video segment.", @@ -672,207 +866,17 @@ "description": "Video segment level annotation results for label detection.", "type": "object", "properties": { + "segment": { + "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", + "description": "Video segment where a label was detected." + }, "confidence": { "format": "float", "description": "Confidence that the label is accurate. Range: [0, 1].", "type": "number" - }, - "segment": { - "description": "Video segment where a label was detected.", - "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment" } }, "id": "GoogleCloudVideointelligenceV1beta2_LabelSegment" - }, - "GoogleCloudVideointelligenceV1_SafeSearchAnnotation": { - "description": "Safe search annotation (based on per-frame visual signals only).\nIf no unsafe content has been detected in a frame, no annotations\nare present for that frame.", - "type": "object", - "properties": { - "time": { - "format": "google-duration", - "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the video frame for this annotation.", - "type": "string" - }, - "adult": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood of adult content.", - "type": "string" - } - }, - "id": "GoogleCloudVideointelligenceV1_SafeSearchAnnotation" - }, - "GoogleCloudVideointelligenceV1beta2_LabelAnnotation": { - "description": "Label annotation.", - "type": "object", - "properties": { - "entity": { - "description": "Detected entity.", - "$ref": "GoogleCloudVideointelligenceV1beta2_Entity" - }, - "frames": { - "description": "All video frames where a label was detected.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta2_LabelFrame" - }, - "type": "array" - }, - "segments": { - "description": "All video segments where a label was detected.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta2_LabelSegment" - }, - "type": "array" - }, - "categoryEntities": { - "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta2_Entity" - }, - "type": "array" - } - }, - "id": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" - }, - "GoogleCloudVideointelligenceV1beta1_SafeSearchAnnotation": { - "description": "Safe search annotation (based on per-frame visual signals only).\nIf no unsafe content has been detected in a frame, no annotations\nare present for that frame. If only some types of unsafe content\nhave been detected in a frame, the likelihood is set to `UNKNOWN`\nfor all other types of unsafe content.", - "type": "object", - "properties": { - "adult": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood of adult content.", - "type": "string" - }, - "racy": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood of racy content.", - "type": "string" - }, - "timeOffset": { - "format": "int64", - "description": "Video time offset in microseconds.", - "type": "string" - }, - "spoof": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood that an obvious modification was made to the original\nversion to make it appear funny or offensive.", - "type": "string" - }, - "violent": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood of violent content.", - "type": "string" - }, - "medical": { - "enumDescriptions": [ - "Unknown likelihood.", - "Very unlikely.", - "Unlikely.", - "Possible.", - "Likely.", - "Very likely." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood of medical content.", - "type": "string" - } - }, - "id": "GoogleCloudVideointelligenceV1beta1_SafeSearchAnnotation" - }, - "GoogleCloudVideointelligenceV1beta1_AnnotateVideoProgress": { - "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.", - "type": "object", - "properties": { - "annotationProgress": { - "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", - "items": { - "$ref": "GoogleCloudVideointelligenceV1beta1_VideoAnnotationProgress" - }, - "type": "array" - } - }, - "id": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoProgress" } }, "icons": { @@ -900,18 +904,18 @@ "videos": { "methods": { "annotate": { - "httpMethod": "POST", - "parameterOrder": [], "response": { "$ref": "GoogleLongrunning_Operation" }, + "parameterOrder": [], + "httpMethod": "POST", "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ], "parameters": {}, "flatPath": "v1beta1/videos:annotate", - "path": "v1beta1/videos:annotate", "id": "videointelligence.videos.annotate", + "path": "v1beta1/videos:annotate", "request": { "$ref": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoRequest" }, @@ -921,26 +925,15 @@ } }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, - "prettyPrint": { - "location": "query", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "type": "boolean" - }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" }, "callback": { "description": "JSONP", @@ -948,6 +941,7 @@ "location": "query" }, "$.xgafv": { + "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" @@ -957,24 +951,23 @@ "1", "2" ], - "description": "V1 error format.", - "type": "string" + "description": "V1 error format." }, "alt": { - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], "type": "string", "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" + "location": "query", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ] }, "key": { "location": "query", @@ -992,29 +985,36 @@ "location": "query" }, "pp": { + "location": "query", "description": "Pretty-print response.", "default": "true", - "type": "boolean", - "location": "query" + "type": "boolean" }, "oauth_token": { - "location": "query", "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", "type": "string", "location": "query" + }, + "bearer_token": { + "location": "query", + "description": "OAuth bearer token.", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string", + "location": "query" + }, + "prettyPrint": { + "location": "query", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "type": "boolean" } }, "version": "v1beta1", "baseUrl": "https://videointelligence.googleapis.com/", "kind": "discovery#restDescription", "description": "Cloud Video Intelligence API.", - "servicePath": "", - "basePath": "", - "revision": "20170925", - "documentationLink": "https://cloud.google.com/video-intelligence/docs/", - "id": "videointelligence:v1beta1" + "servicePath": "" } diff --git a/vendor/google.golang.org/api/vision/v1/vision-api.json b/vendor/google.golang.org/api/vision/v1/vision-api.json index 91f6e1a47..e9c2c9444 100644 --- a/vendor/google.golang.org/api/vision/v1/vision-api.json +++ b/vendor/google.golang.org/api/vision/v1/vision-api.json @@ -1,40 +1,41 @@ { - "ownerDomain": "google.com", - "name": "vision", - "batchPath": "batch", - "title": "Google Cloud Vision API", - "ownerName": "Google", - "resources": { - "images": { - "methods": { - "annotate": { - "description": "Run image detection and annotation for a batch of images.", - "request": { - "$ref": "BatchAnnotateImagesRequest" - }, - "response": { - "$ref": "BatchAnnotateImagesResponse" - }, - "parameterOrder": [], - "httpMethod": "POST", - "parameters": {}, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-vision" - ], - "flatPath": "v1/images:annotate", - "id": "vision.images.annotate", - "path": "v1/images:annotate" - } - } - } - }, "parameters": { - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "key": { + "location": "query", + "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.", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", "type": "string", "location": "query" }, + "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.", + "type": "string", + "location": "query" + }, + "pp": { + "location": "query", + "description": "Pretty-print response.", + "default": "true", + "type": "boolean" + }, + "bearer_token": { + "description": "OAuth bearer token.", + "type": "string", + "location": "query" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "type": "string", + "location": "query" + }, + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", @@ -42,19 +43,14 @@ "type": "boolean" }, "fields": { - "location": "query", "description": "Selector specifying which fields to include in a partial response.", - "type": "string" + "type": "string", + "location": "query" }, "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." - }, - "callback": { - "location": "query", - "description": "JSONP", - "type": "string" + "location": "query" }, "$.xgafv": { "description": "V1 error format.", @@ -69,7 +65,13 @@ "2" ] }, + "callback": { + "description": "JSONP", + "type": "string", + "location": "query" + }, "alt": { + "description": "Data format for response.", "default": "json", "enum": [ "json", @@ -82,38 +84,6 @@ "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], - "location": "query", - "description": "Data format for response." - }, - "key": { - "location": "query", - "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.", - "type": "string" - }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, - "quotaUser": { - "location": "query", - "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.", - "type": "string" - }, - "pp": { - "location": "query", - "description": "Pretty-print response.", - "default": "true", - "type": "boolean" - }, - "oauth_token": { - "location": "query", - "description": "OAuth 2.0 token for the current user.", - "type": "string" - }, - "bearer_token": { - "description": "OAuth bearer token.", - "type": "string", "location": "query" } }, @@ -124,369 +94,11 @@ "kind": "discovery#restDescription", "basePath": "", "id": "vision:v1", - "revision": "20170922", + "revision": "20171012", "documentationLink": "https://cloud.google.com/vision/", "discoveryVersion": "v1", "version_module": true, "schemas": { - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.", - "type": "object", - "properties": { - "details": { - "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "code": { - "format": "int32", - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer" - }, - "message": { - "type": "string", - "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client." - } - }, - "id": "Status" - }, - "LatLongRect": { - "description": "Rectangle determined by min and max `LatLng` pairs.", - "type": "object", - "properties": { - "minLatLng": { - "$ref": "LatLng", - "description": "Min lat/long pair." - }, - "maxLatLng": { - "$ref": "LatLng", - "description": "Max lat/long pair." - } - }, - "id": "LatLongRect" - }, - "Symbol": { - "properties": { - "boundingBox": { - "description": "The bounding box for the symbol.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3).", - "$ref": "BoundingPoly" - }, - "text": { - "description": "The actual UTF-8 representation of the symbol.", - "type": "string" - }, - "property": { - "$ref": "TextProperty", - "description": "Additional information detected for the symbol." - } - }, - "id": "Symbol", - "description": "A single symbol representation.", - "type": "object" - }, - "CropHintsAnnotation": { - "description": "Set of crop hints that are used to generate new crops when serving images.", - "type": "object", - "properties": { - "cropHints": { - "description": "Crop hint results.", - "items": { - "$ref": "CropHint" - }, - "type": "array" - } - }, - "id": "CropHintsAnnotation" - }, - "LatLng": { - "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", - "type": "object", - "properties": { - "latitude": { - "format": "double", - "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", - "type": "number" - }, - "longitude": { - "format": "double", - "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", - "type": "number" - } - }, - "id": "LatLng" - }, - "Color": { - "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n import com.google.type.Color;\n\n // ...\n public static java.awt.Color fromProto(Color protocolor) {\n float alpha = protocolor.hasAlpha()\n ? protocolor.getAlpha().getValue()\n : 1.0;\n\n return new java.awt.Color(\n protocolor.getRed(),\n protocolor.getGreen(),\n protocolor.getBlue(),\n alpha);\n }\n\n public static Color toProto(java.awt.Color color) {\n float red = (float) color.getRed();\n float green = (float) color.getGreen();\n float blue = (float) color.getBlue();\n float denominator = 255.0;\n Color.Builder resultBuilder =\n Color\n .newBuilder()\n .setRed(red / denominator)\n .setGreen(green / denominator)\n .setBlue(blue / denominator);\n int alpha = color.getAlpha();\n if (alpha != 255) {\n result.setAlpha(\n FloatValue\n .newBuilder()\n .setValue(((float) alpha) / denominator)\n .build());\n }\n return resultBuilder.build();\n }\n // ...\n\nExample (iOS / Obj-C):\n\n // ...\n static UIColor* fromProto(Color* protocolor) {\n float red = [protocolor red];\n float green = [protocolor green];\n float blue = [protocolor blue];\n FloatValue* alpha_wrapper = [protocolor alpha];\n float alpha = 1.0;\n if (alpha_wrapper != nil) {\n alpha = [alpha_wrapper value];\n }\n return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n }\n\n static Color* toProto(UIColor* color) {\n CGFloat red, green, blue, alpha;\n if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {\n return nil;\n }\n Color* result = [Color alloc] init];\n [result setRed:red];\n [result setGreen:green];\n [result setBlue:blue];\n if (alpha \u003c= 0.9999) {\n [result setAlpha:floatWrapperWithValue(alpha)];\n }\n [result autorelease];\n return result;\n }\n // ...\n\n Example (JavaScript):\n\n // ...\n\n var protoToCssColor = function(rgb_color) {\n var redFrac = rgb_color.red || 0.0;\n var greenFrac = rgb_color.green || 0.0;\n var blueFrac = rgb_color.blue || 0.0;\n var red = Math.floor(redFrac * 255);\n var green = Math.floor(greenFrac * 255);\n var blue = Math.floor(blueFrac * 255);\n\n if (!('alpha' in rgb_color)) {\n return rgbToCssColor_(red, green, blue);\n }\n\n var alphaFrac = rgb_color.alpha.value || 0.0;\n var rgbParams = [red, green, blue].join(',');\n return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n };\n\n var rgbToCssColor_ = function(red, green, blue) {\n var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n var hexString = rgbNumber.toString(16);\n var missingZeros = 6 - hexString.length;\n var resultBuilder = ['#'];\n for (var i = 0; i \u003c missingZeros; i++) {\n resultBuilder.push('0');\n }\n resultBuilder.push(hexString);\n return resultBuilder.join('');\n };\n\n // ...", - "type": "object", - "properties": { - "alpha": { - "format": "float", - "description": "The fraction of this color that should be applied to the pixel. That is,\nthe final pixel color is defined by the equation:\n\n pixel color = alpha * (this color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color. This\nuses a wrapper message rather than a simple float scalar so that it is\npossible to distinguish between a default value and the value being unset.\nIf omitted, this color object is to be rendered as a solid color\n(as if the alpha value had been explicitly given with a value of 1.0).", - "type": "number" - }, - "blue": { - "type": "number", - "format": "float", - "description": "The amount of blue in the color as a value in the interval [0, 1]." - }, - "green": { - "format": "float", - "description": "The amount of green in the color as a value in the interval [0, 1].", - "type": "number" - }, - "red": { - "type": "number", - "format": "float", - "description": "The amount of red in the color as a value in the interval [0, 1]." - } - }, - "id": "Color" - }, - "ImageProperties": { - "id": "ImageProperties", - "description": "Stores image properties, such as dominant colors.", - "type": "object", - "properties": { - "dominantColors": { - "description": "If present, dominant colors completed successfully.", - "$ref": "DominantColorsAnnotation" - } - } - }, - "Feature": { - "description": "Users describe the type of Google Cloud Vision API tasks to perform over\nimages by using *Feature*s. Each Feature indicates a type of image\ndetection task to perform. Features encode the Cloud Vision API\nvertical to operate on and the number of top-scoring results to return.", - "type": "object", - "properties": { - "maxResults": { - "format": "int32", - "description": "Maximum number of results of this type.", - "type": "integer" - }, - "type": { - "type": "string", - "enumDescriptions": [ - "Unspecified feature type.", - "Run face detection.", - "Run landmark detection.", - "Run logo detection.", - "Run label detection.", - "Run OCR.", - "Run dense text document OCR. Takes precedence when both\nDOCUMENT_TEXT_DETECTION and TEXT_DETECTION are present.", - "Run computer vision models to compute image safe-search properties.", - "Compute a set of image properties, such as the image's dominant colors.", - "Run crop hints.", - "Run web detection." - ], - "enum": [ - "TYPE_UNSPECIFIED", - "FACE_DETECTION", - "LANDMARK_DETECTION", - "LOGO_DETECTION", - "LABEL_DETECTION", - "TEXT_DETECTION", - "DOCUMENT_TEXT_DETECTION", - "SAFE_SEARCH_DETECTION", - "IMAGE_PROPERTIES", - "CROP_HINTS", - "WEB_DETECTION" - ], - "description": "The feature type." - } - }, - "id": "Feature" - }, - "SafeSearchAnnotation": { - "type": "object", - "properties": { - "adult": { - "description": "Represents the adult content likelihood for the image.", - "type": "string", - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ] - }, - "spoof": { - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Spoof likelihood. The likelihood that an modification\nwas made to the image's canonical version to make it appear\nfunny or offensive.", - "type": "string" - }, - "medical": { - "type": "string", - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Likelihood that this is a medical image." - }, - "violence": { - "type": "string", - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Violence likelihood." - } - }, - "id": "SafeSearchAnnotation", - "description": "Set of features pertaining to the image, computed by computer vision\nmethods over safe-search verticals (for example, adult, spoof, medical,\nviolence)." - }, - "DominantColorsAnnotation": { - "description": "Set of dominant colors and their corresponding scores.", - "type": "object", - "properties": { - "colors": { - "description": "RGB color values with their score and pixel fraction.", - "items": { - "$ref": "ColorInfo" - }, - "type": "array" - } - }, - "id": "DominantColorsAnnotation" - }, - "TextAnnotation": { - "description": "TextAnnotation contains a structured representation of OCR extracted text.\nThe hierarchy of an OCR extracted text structure is like this:\n TextAnnotation -\u003e Page -\u003e Block -\u003e Paragraph -\u003e Word -\u003e Symbol\nEach structural component, starting from Page, may further have their own\nproperties. Properties describe detected languages, breaks etc.. Please\nrefer to the google.cloud.vision.v1.TextAnnotation.TextProperty message\ndefinition below for more detail.", - "type": "object", - "properties": { - "pages": { - "description": "List of pages detected by OCR.", - "items": { - "$ref": "Page" - }, - "type": "array" - }, - "text": { - "description": "UTF-8 text detected on the pages.", - "type": "string" - } - }, - "id": "TextAnnotation" - }, - "Vertex": { - "description": "A vertex represents a 2D point in the image.\nNOTE: the vertex coordinates are in the same scale as the original image.", - "type": "object", - "properties": { - "y": { - "format": "int32", - "description": "Y coordinate.", - "type": "integer" - }, - "x": { - "format": "int32", - "description": "X coordinate.", - "type": "integer" - } - }, - "id": "Vertex" - }, - "DetectedLanguage": { - "description": "Detected language for a structural component.", - "type": "object", - "properties": { - "languageCode": { - "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more\ninformation, see\nhttp://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", - "type": "string" - }, - "confidence": { - "type": "number", - "format": "float", - "description": "Confidence of detected language. Range [0, 1]." - } - }, - "id": "DetectedLanguage" - }, - "WebEntity": { - "description": "Entity deduced from similar images on the Internet.", - "type": "object", - "properties": { - "entityId": { - "description": "Opaque entity ID.", - "type": "string" - }, - "description": { - "type": "string", - "description": "Canonical description of the entity, in English." - }, - "score": { - "format": "float", - "description": "Overall relevancy score for the entity.\nNot normalized and not comparable across different image queries.", - "type": "number" - } - }, - "id": "WebEntity" - }, - "BoundingPoly": { - "properties": { - "vertices": { - "description": "The bounding polygon vertices.", - "items": { - "$ref": "Vertex" - }, - "type": "array" - } - }, - "id": "BoundingPoly", - "description": "A bounding polygon for the detected image annotation.", - "type": "object" - }, "TextProperty": { "description": "Additional information detected on the structural component.", "type": "object", @@ -499,24 +111,51 @@ "type": "array" }, "detectedBreak": { - "description": "Detected start or end of a text segment.", - "$ref": "DetectedBreak" + "$ref": "DetectedBreak", + "description": "Detected start or end of a text segment." } }, "id": "TextProperty" }, + "BoundingPoly": { + "id": "BoundingPoly", + "description": "A bounding polygon for the detected image annotation.", + "type": "object", + "properties": { + "vertices": { + "description": "The bounding polygon vertices.", + "items": { + "$ref": "Vertex" + }, + "type": "array" + } + } + }, + "WebEntity": { + "description": "Entity deduced from similar images on the Internet.", + "type": "object", + "properties": { + "entityId": { + "description": "Opaque entity ID.", + "type": "string" + }, + "description": { + "description": "Canonical description of the entity, in English.", + "type": "string" + }, + "score": { + "type": "number", + "format": "float", + "description": "Overall relevancy score for the entity.\nNot normalized and not comparable across different image queries." + } + }, + "id": "WebEntity" + }, "AnnotateImageResponse": { + "id": "AnnotateImageResponse", "description": "Response to an image annotation request.", "type": "object", "properties": { - "error": { - "$ref": "Status", - "description": "If set, represents the error message for the operation.\nNote that filled-in image annotations are guaranteed to be\ncorrect, even when `error` is set." - }, - "fullTextAnnotation": { - "$ref": "TextAnnotation", - "description": "If present, text (OCR) detection or document (OCR) text detection has\ncompleted successfully.\nThis annotation provides the structural hierarchy for the OCR detected\ntext." - }, "landmarkAnnotations": { "description": "If present, landmark detection has completed successfully.", "items": { @@ -539,27 +178,23 @@ "type": "array" }, "imagePropertiesAnnotation": { - "$ref": "ImageProperties", - "description": "If present, image properties were extracted successfully." + "description": "If present, image properties were extracted successfully.", + "$ref": "ImageProperties" }, "logoAnnotations": { + "description": "If present, logo detection has completed successfully.", "items": { "$ref": "EntityAnnotation" }, - "type": "array", - "description": "If present, logo detection has completed successfully." - }, - "webDetection": { - "$ref": "WebDetection", - "description": "If present, web detection has completed successfully." + "type": "array" }, "cropHintsAnnotation": { - "description": "If present, crop hints have completed successfully.", - "$ref": "CropHintsAnnotation" + "$ref": "CropHintsAnnotation", + "description": "If present, crop hints have completed successfully." }, - "safeSearchAnnotation": { - "$ref": "SafeSearchAnnotation", - "description": "If present, safe-search annotation has completed successfully." + "webDetection": { + "description": "If present, web detection has completed successfully.", + "$ref": "WebDetection" }, "labelAnnotations": { "description": "If present, label detection has completed successfully.", @@ -567,37 +202,52 @@ "$ref": "EntityAnnotation" }, "type": "array" + }, + "safeSearchAnnotation": { + "$ref": "SafeSearchAnnotation", + "description": "If present, safe-search annotation has completed successfully." + }, + "error": { + "description": "If set, represents the error message for the operation.\nNote that filled-in image annotations are guaranteed to be\ncorrect, even when `error` is set.", + "$ref": "Status" + }, + "fullTextAnnotation": { + "$ref": "TextAnnotation", + "description": "If present, text (OCR) detection or document (OCR) text detection has\ncompleted successfully.\nThis annotation provides the structural hierarchy for the OCR detected\ntext." } - }, - "id": "AnnotateImageResponse" + } }, "CropHintsParams": { "description": "Parameters for crop hints annotation request.", "type": "object", "properties": { "aspectRatios": { - "description": "Aspect ratios in floats, representing the ratio of the width to the height\nof the image. For example, if the desired aspect ratio is 4/3, the\ncorresponding float value should be 1.33333. If not specified, the\nbest possible crop is returned. The number of provided aspect ratios is\nlimited to a maximum of 16; any aspect ratios provided after the 16th are\nignored.", "items": { "format": "float", "type": "number" }, - "type": "array" + "type": "array", + "description": "Aspect ratios in floats, representing the ratio of the width to the height\nof the image. For example, if the desired aspect ratio is 4/3, the\ncorresponding float value should be 1.33333. If not specified, the\nbest possible crop is returned. The number of provided aspect ratios is\nlimited to a maximum of 16; any aspect ratios provided after the 16th are\nignored." } }, "id": "CropHintsParams" }, "Block": { - "id": "Block", "description": "Logical element on the page.", "type": "object", "properties": { + "paragraphs": { + "items": { + "$ref": "Paragraph" + }, + "type": "array", + "description": "List of paragraphs in this block (if this blocks is of type text)." + }, "property": { "$ref": "TextProperty", "description": "Additional information detected for the block." }, "blockType": { - "description": "Detected block type (text, image etc) for this block.", - "type": "string", "enumDescriptions": [ "Unknown block type.", "Regular text block.", @@ -613,85 +263,28 @@ "PICTURE", "RULER", "BARCODE" - ] + ], + "description": "Detected block type (text, image etc) for this block.", + "type": "string" }, "boundingBox": { "description": "The bounding box for the block.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3).", "$ref": "BoundingPoly" - }, - "paragraphs": { - "description": "List of paragraphs in this block (if this blocks is of type text).", - "items": { - "$ref": "Paragraph" - }, - "type": "array" - } - } - }, - "Property": { - "description": "A `Property` consists of a user-supplied name/value pair.", - "type": "object", - "properties": { - "value": { - "description": "Value of the property.", - "type": "string" - }, - "uint64Value": { - "format": "uint64", - "description": "Value of numeric properties.", - "type": "string" - }, - "name": { - "description": "Name of the property.", - "type": "string" } }, - "id": "Property" - }, - "LocationInfo": { - "id": "LocationInfo", - "description": "Detected entity location information.", - "type": "object", - "properties": { - "latLng": { - "description": "lat/long location coordinates.", - "$ref": "LatLng" - } - } - }, - "ImageSource": { - "description": "External image source (Google Cloud Storage image location).", - "type": "object", - "properties": { - "gcsImageUri": { - "description": "NOTE: For new code `image_uri` below is preferred.\nGoogle Cloud Storage image URI, which must be in the following form:\n`gs://bucket_name/object_name` (for details, see\n[Google Cloud Storage Request\nURIs](https://cloud.google.com/storage/docs/reference-uris)).\nNOTE: Cloud Storage object versioning is not supported.", - "type": "string" - }, - "imageUri": { - "description": "Image URI which supports:\n1) Google Cloud Storage image URI, which must be in the following form:\n`gs://bucket_name/object_name` (for details, see\n[Google Cloud Storage Request\nURIs](https://cloud.google.com/storage/docs/reference-uris)).\nNOTE: Cloud Storage object versioning is not supported.\n2) Publicly accessible image HTTP/HTTPS URL.\nThis is preferred over the legacy `gcs_image_uri` above. When both\n`gcs_image_uri` and `image_uri` are specified, `image_uri` takes\nprecedence.", - "type": "string" - } - }, - "id": "ImageSource" - }, - "BatchAnnotateImagesResponse": { - "description": "Response to a batch image annotation request.", - "type": "object", - "properties": { - "responses": { - "description": "Individual responses to image annotation requests within the batch.", - "items": { - "$ref": "AnnotateImageResponse" - }, - "type": "array" - } - }, - "id": "BatchAnnotateImagesResponse" + "id": "Block" }, "WebDetection": { "description": "Relevant information for the image from the Internet.", "type": "object", "properties": { + "pagesWithMatchingImages": { + "description": "Web pages containing the matching images from the Internet.", + "items": { + "$ref": "WebPage" + }, + "type": "array" + }, "visuallySimilarImages": { "description": "The visually similar image results.", "items": { @@ -719,19 +312,71 @@ "$ref": "WebEntity" }, "type": "array" - }, - "pagesWithMatchingImages": { - "description": "Web pages containing the matching images from the Internet.", - "items": { - "$ref": "WebPage" - }, - "type": "array" } }, "id": "WebDetection" }, + "BatchAnnotateImagesResponse": { + "description": "Response to a batch image annotation request.", + "type": "object", + "properties": { + "responses": { + "description": "Individual responses to image annotation requests within the batch.", + "items": { + "$ref": "AnnotateImageResponse" + }, + "type": "array" + } + }, + "id": "BatchAnnotateImagesResponse" + }, + "ImageSource": { + "description": "External image source (Google Cloud Storage image location).", + "type": "object", + "properties": { + "imageUri": { + "description": "Image URI which supports:\n1) Google Cloud Storage image URI, which must be in the following form:\n`gs://bucket_name/object_name` (for details, see\n[Google Cloud Storage Request\nURIs](https://cloud.google.com/storage/docs/reference-uris)).\nNOTE: Cloud Storage object versioning is not supported.\n2) Publicly accessible image HTTP/HTTPS URL.\nThis is preferred over the legacy `gcs_image_uri` above. When both\n`gcs_image_uri` and `image_uri` are specified, `image_uri` takes\nprecedence.", + "type": "string" + }, + "gcsImageUri": { + "type": "string", + "description": "NOTE: For new code `image_uri` below is preferred.\nGoogle Cloud Storage image URI, which must be in the following form:\n`gs://bucket_name/object_name` (for details, see\n[Google Cloud Storage Request\nURIs](https://cloud.google.com/storage/docs/reference-uris)).\nNOTE: Cloud Storage object versioning is not supported." + } + }, + "id": "ImageSource" + }, + "Property": { + "properties": { + "name": { + "description": "Name of the property.", + "type": "string" + }, + "value": { + "description": "Value of the property.", + "type": "string" + }, + "uint64Value": { + "format": "uint64", + "description": "Value of numeric properties.", + "type": "string" + } + }, + "id": "Property", + "description": "A `Property` consists of a user-supplied name/value pair.", + "type": "object" + }, + "LocationInfo": { + "description": "Detected entity location information.", + "type": "object", + "properties": { + "latLng": { + "$ref": "LatLng", + "description": "lat/long location coordinates." + } + }, + "id": "LocationInfo" + }, "Position": { - "id": "Position", "description": "A 3D position in the image, used primarily for Face detection landmarks.\nA valid Position must have both x and y coordinates.\nThe position coordinates are in the same scale as the original image.", "type": "object", "properties": { @@ -750,30 +395,11 @@ "description": "X coordinate.", "type": "number" } - } - }, - "ColorInfo": { - "description": "Color information consists of RGB channels, score, and the fraction of\nthe image that the color occupies in the image.", - "type": "object", - "properties": { - "pixelFraction": { - "format": "float", - "description": "The fraction of pixels the color occupies in the image.\nValue in range [0, 1].", - "type": "number" - }, - "color": { - "description": "RGB components of the color.", - "$ref": "Color" - }, - "score": { - "format": "float", - "description": "Image-specific score for this color. Value in range [0, 1].", - "type": "number" - } }, - "id": "ColorInfo" + "id": "Position" }, "WebPage": { + "id": "WebPage", "description": "Metadata for web pages.", "type": "object", "properties": { @@ -786,25 +412,33 @@ "description": "The result web page URL.", "type": "string" } + } + }, + "ColorInfo": { + "description": "Color information consists of RGB channels, score, and the fraction of\nthe image that the color occupies in the image.", + "type": "object", + "properties": { + "pixelFraction": { + "format": "float", + "description": "The fraction of pixels the color occupies in the image.\nValue in range [0, 1].", + "type": "number" + }, + "color": { + "$ref": "Color", + "description": "RGB components of the color." + }, + "score": { + "format": "float", + "description": "Image-specific score for this color. Value in range [0, 1].", + "type": "number" + } }, - "id": "WebPage" + "id": "ColorInfo" }, "EntityAnnotation": { "description": "Set of detected entity features.", "type": "object", "properties": { - "score": { - "type": "number", - "format": "float", - "description": "Overall score of the result. Range [0, 1]." - }, - "locations": { - "description": "The location information for the detected entity. Multiple\n`LocationInfo` elements can be present because one location may\nindicate the location of the scene in the image, and another location\nmay indicate the location of the place where the image was taken.\nLocation information is usually present for landmarks.", - "items": { - "$ref": "LocationInfo" - }, - "type": "array" - }, "mid": { "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", "type": "string" @@ -815,8 +449,8 @@ "type": "number" }, "boundingPoly": { - "$ref": "BoundingPoly", - "description": "Image region to which this entity belongs. Not produced\nfor `LABEL_DETECTION` features." + "description": "Image region to which this entity belongs. Not produced\nfor `LABEL_DETECTION` features.", + "$ref": "BoundingPoly" }, "locale": { "description": "The language code for the locale in which the entity textual\n`description` is expressed.", @@ -828,8 +462,8 @@ "description": "The relevancy of the ICA (Image Content Annotation) label to the\nimage. For example, the relevancy of \"tower\" is likely higher to an image\ncontaining the detected \"Eiffel Tower\" than to an image containing a\ndetected distant towering building, even though the confidence that\nthere is a tower in each image may be the same. Range [0, 1]." }, "description": { - "type": "string", - "description": "Entity textual description, expressed in its `locale` language." + "description": "Entity textual description, expressed in its `locale` language.", + "type": "string" }, "properties": { "description": "Some entities may have optional user-supplied `Property` (name/value)\nfields, such a score or string that qualifies the entity.", @@ -837,6 +471,18 @@ "$ref": "Property" }, "type": "array" + }, + "score": { + "format": "float", + "description": "Overall score of the result. Range [0, 1].", + "type": "number" + }, + "locations": { + "description": "The location information for the detected entity. Multiple\n`LocationInfo` elements can be present because one location may\nindicate the location of the scene in the image, and another location\nmay indicate the location of the place where the image was taken.\nLocation information is usually present for landmarks.", + "items": { + "$ref": "LocationInfo" + }, + "type": "array" } }, "id": "EntityAnnotation" @@ -846,19 +492,19 @@ "description": "Single crop hint that is used to generate a new crop when serving an image.", "type": "object", "properties": { + "boundingPoly": { + "$ref": "BoundingPoly", + "description": "The bounding polygon for the crop region. The coordinates of the bounding\nbox are in the original image's scale, as returned in `ImageParams`." + }, "importanceFraction": { - "type": "number", "format": "float", - "description": "Fraction of importance of this salient region with respect to the original\nimage." + "description": "Fraction of importance of this salient region with respect to the original\nimage.", + "type": "number" }, "confidence": { "format": "float", "description": "Confidence of this being a salient region. Range [0, 1].", "type": "number" - }, - "boundingPoly": { - "description": "The bounding polygon for the crop region. The coordinates of the bounding\nbox are in the original image's scale, as returned in `ImageParams`.", - "$ref": "BoundingPoly" } } }, @@ -866,11 +512,44 @@ "description": "A face-specific landmark (for example, a face feature).\nLandmark positions may fall outside the bounds of the image\nif the face is near one or more edges of the image.\nTherefore it is NOT guaranteed that `0 \u003c= x \u003c width` or\n`0 \u003c= y \u003c height`.", "type": "object", "properties": { - "position": { - "$ref": "Position", - "description": "Face landmark position." - }, "type": { + "enum": [ + "UNKNOWN_LANDMARK", + "LEFT_EYE", + "RIGHT_EYE", + "LEFT_OF_LEFT_EYEBROW", + "RIGHT_OF_LEFT_EYEBROW", + "LEFT_OF_RIGHT_EYEBROW", + "RIGHT_OF_RIGHT_EYEBROW", + "MIDPOINT_BETWEEN_EYES", + "NOSE_TIP", + "UPPER_LIP", + "LOWER_LIP", + "MOUTH_LEFT", + "MOUTH_RIGHT", + "MOUTH_CENTER", + "NOSE_BOTTOM_RIGHT", + "NOSE_BOTTOM_LEFT", + "NOSE_BOTTOM_CENTER", + "LEFT_EYE_TOP_BOUNDARY", + "LEFT_EYE_RIGHT_CORNER", + "LEFT_EYE_BOTTOM_BOUNDARY", + "LEFT_EYE_LEFT_CORNER", + "RIGHT_EYE_TOP_BOUNDARY", + "RIGHT_EYE_RIGHT_CORNER", + "RIGHT_EYE_BOTTOM_BOUNDARY", + "RIGHT_EYE_LEFT_CORNER", + "LEFT_EYEBROW_UPPER_MIDPOINT", + "RIGHT_EYEBROW_UPPER_MIDPOINT", + "LEFT_EAR_TRAGION", + "RIGHT_EAR_TRAGION", + "LEFT_EYE_PUPIL", + "RIGHT_EYE_PUPIL", + "FOREHEAD_GLABELLA", + "CHIN_GNATHION", + "CHIN_LEFT_GONION", + "CHIN_RIGHT_GONION" + ], "description": "Face landmark type.", "type": "string", "enumDescriptions": [ @@ -909,72 +588,35 @@ "Chin gnathion.", "Chin left gonion.", "Chin right gonion." - ], - "enum": [ - "UNKNOWN_LANDMARK", - "LEFT_EYE", - "RIGHT_EYE", - "LEFT_OF_LEFT_EYEBROW", - "RIGHT_OF_LEFT_EYEBROW", - "LEFT_OF_RIGHT_EYEBROW", - "RIGHT_OF_RIGHT_EYEBROW", - "MIDPOINT_BETWEEN_EYES", - "NOSE_TIP", - "UPPER_LIP", - "LOWER_LIP", - "MOUTH_LEFT", - "MOUTH_RIGHT", - "MOUTH_CENTER", - "NOSE_BOTTOM_RIGHT", - "NOSE_BOTTOM_LEFT", - "NOSE_BOTTOM_CENTER", - "LEFT_EYE_TOP_BOUNDARY", - "LEFT_EYE_RIGHT_CORNER", - "LEFT_EYE_BOTTOM_BOUNDARY", - "LEFT_EYE_LEFT_CORNER", - "RIGHT_EYE_TOP_BOUNDARY", - "RIGHT_EYE_RIGHT_CORNER", - "RIGHT_EYE_BOTTOM_BOUNDARY", - "RIGHT_EYE_LEFT_CORNER", - "LEFT_EYEBROW_UPPER_MIDPOINT", - "RIGHT_EYEBROW_UPPER_MIDPOINT", - "LEFT_EAR_TRAGION", - "RIGHT_EAR_TRAGION", - "LEFT_EYE_PUPIL", - "RIGHT_EYE_PUPIL", - "FOREHEAD_GLABELLA", - "CHIN_GNATHION", - "CHIN_LEFT_GONION", - "CHIN_RIGHT_GONION" ] + }, + "position": { + "$ref": "Position", + "description": "Face landmark position." } }, "id": "Landmark" }, "WebImage": { - "id": "WebImage", "description": "Metadata for online images.", "type": "object", "properties": { "score": { - "type": "number", "format": "float", - "description": "(Deprecated) Overall relevancy score for the image." + "description": "(Deprecated) Overall relevancy score for the image.", + "type": "number" }, "url": { "description": "The result image URL.", "type": "string" } - } + }, + "id": "WebImage" }, "Word": { "description": "A word representation.", "type": "object", "properties": { - "boundingBox": { - "$ref": "BoundingPoly", - "description": "The bounding box for the word.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3)." - }, "symbols": { "description": "List of symbols in the word.\nThe order of the symbols follows the natural reading order.", "items": { @@ -985,6 +627,10 @@ "property": { "$ref": "TextProperty", "description": "Additional information detected for the word." + }, + "boundingBox": { + "$ref": "BoundingPoly", + "description": "The bounding box for the word.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3)." } }, "id": "Word" @@ -1006,10 +652,16 @@ "id": "Image" }, "Paragraph": { + "description": "Structural unit of text representing a number of words in certain order.", + "type": "object", "properties": { + "property": { + "$ref": "TextProperty", + "description": "Additional information detected for the paragraph." + }, "boundingBox": { - "$ref": "BoundingPoly", - "description": "The bounding box for the paragraph.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3)." + "description": "The bounding box for the paragraph.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3).", + "$ref": "BoundingPoly" }, "words": { "description": "List of words in this paragraph.", @@ -1017,34 +669,15 @@ "$ref": "Word" }, "type": "array" - }, - "property": { - "description": "Additional information detected for the paragraph.", - "$ref": "TextProperty" } }, - "id": "Paragraph", - "description": "Structural unit of text representing a number of words in certain order.", - "type": "object" + "id": "Paragraph" }, "FaceAnnotation": { "description": "A face annotation object contains the results of face detection.", "type": "object", "properties": { - "fdBoundingPoly": { - "$ref": "BoundingPoly", - "description": "The `fd_bounding_poly` bounding polygon is tighter than the\n`boundingPoly`, and encloses only the skin part of the face. Typically, it\nis used to eliminate the face from any image analysis that detects the\n\"amount of skin\" visible in an image. It is not based on the\nlandmarker results, only on the initial face detection, hence\nthe \u003ccode\u003efd\u003c/code\u003e (face detection) prefix." - }, "surpriseLikelihood": { - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], - "description": "Surprise likelihood.", "type": "string", "enumDescriptions": [ "Unknown likelihood.", @@ -1053,7 +686,16 @@ "It is possible that the image belongs to the specified vertical.", "It is likely that the image belongs to the specified vertical.", "It is very likely that the image belongs to the specified vertical." - ] + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Surprise likelihood." }, "landmarks": { "description": "Detected face landmarks.", @@ -1063,32 +705,7 @@ "type": "array" }, "angerLikelihood": { - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ], - "enum": [ - "UNKNOWN", - "VERY_UNLIKELY", - "UNLIKELY", - "POSSIBLE", - "LIKELY", - "VERY_LIKELY" - ], "description": "Anger likelihood.", - "type": "string" - }, - "landmarkingConfidence": { - "format": "float", - "description": "Face landmarking confidence. Range [0, 1].", - "type": "number" - }, - "joyLikelihood": { - "description": "Joy likelihood.", "type": "string", "enumDescriptions": [ "Unknown likelihood.", @@ -1107,7 +724,12 @@ "VERY_LIKELY" ] }, - "underExposedLikelihood": { + "landmarkingConfidence": { + "format": "float", + "description": "Face landmarking confidence. Range [0, 1].", + "type": "number" + }, + "joyLikelihood": { "enumDescriptions": [ "Unknown likelihood.", "It is very unlikely that the image belongs to the specified vertical.", @@ -1124,9 +746,29 @@ "LIKELY", "VERY_LIKELY" ], - "description": "Under-exposed likelihood.", + "description": "Joy likelihood.", "type": "string" }, + "underExposedLikelihood": { + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Under-exposed likelihood.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." + ] + }, "panAngle": { "type": "number", "format": "float", @@ -1138,6 +780,14 @@ "type": "number" }, "blurredLikelihood": { + "enumDescriptions": [ + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." + ], "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -1147,18 +797,9 @@ "VERY_LIKELY" ], "description": "Blurred likelihood.", - "type": "string", - "enumDescriptions": [ - "Unknown likelihood.", - "It is very unlikely that the image belongs to the specified vertical.", - "It is unlikely that the image belongs to the specified vertical.", - "It is possible that the image belongs to the specified vertical.", - "It is likely that the image belongs to the specified vertical.", - "It is very likely that the image belongs to the specified vertical." - ] + "type": "string" }, "headwearLikelihood": { - "type": "string", "enumDescriptions": [ "Unknown likelihood.", "It is very unlikely that the image belongs to the specified vertical.", @@ -1175,7 +816,8 @@ "LIKELY", "VERY_LIKELY" ], - "description": "Headwear likelihood." + "description": "Headwear likelihood.", + "type": "string" }, "boundingPoly": { "description": "The bounding polygon around the face. The coordinates of the bounding box\nare in the original image's scale, as returned in `ImageParams`.\nThe bounding box is computed to \"frame\" the face in accordance with human\nexpectations. It is based on the landmarker results.\nNote that one or more x and/or y coordinates may not be generated in the\n`BoundingPoly` (the polygon will be unbounded) if only a partial face\nappears in the image to be annotated.", @@ -1187,6 +829,351 @@ "type": "number" }, "sorrowLikelihood": { + "description": "Sorrow likelihood.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + }, + "tiltAngle": { + "format": "float", + "description": "Pitch angle, which indicates the upwards/downwards angle that the face is\npointing relative to the image's horizontal plane. Range [-180,180].", + "type": "number" + }, + "fdBoundingPoly": { + "$ref": "BoundingPoly", + "description": "The `fd_bounding_poly` bounding polygon is tighter than the\n`boundingPoly`, and encloses only the skin part of the face. Typically, it\nis used to eliminate the face from any image analysis that detects the\n\"amount of skin\" visible in an image. It is not based on the\nlandmarker results, only on the initial face detection, hence\nthe \u003ccode\u003efd\u003c/code\u003e (face detection) prefix." + } + }, + "id": "FaceAnnotation" + }, + "BatchAnnotateImagesRequest": { + "id": "BatchAnnotateImagesRequest", + "description": "Multiple image annotation requests are batched into a single service call.", + "type": "object", + "properties": { + "requests": { + "items": { + "$ref": "AnnotateImageRequest" + }, + "type": "array", + "description": "Individual image annotation requests for this batch." + } + } + }, + "DetectedBreak": { + "description": "Detected start or end of a structural component.", + "type": "object", + "properties": { + "isPrefix": { + "description": "True if break prepends the element.", + "type": "boolean" + }, + "type": { + "enum": [ + "UNKNOWN", + "SPACE", + "SURE_SPACE", + "EOL_SURE_SPACE", + "HYPHEN", + "LINE_BREAK" + ], + "description": "Detected break type.", + "type": "string", + "enumDescriptions": [ + "Unknown break label type.", + "Regular space.", + "Sure space (very wide).", + "Line-wrapping break.", + "End-line hyphen that is not present in text; does not co-occur with\n`SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", + "Line break that ends a paragraph." + ] + } + }, + "id": "DetectedBreak" + }, + "ImageContext": { + "description": "Image context and/or feature-specific parameters.", + "type": "object", + "properties": { + "languageHints": { + "description": "List of languages to use for TEXT_DETECTION. In most cases, an empty value\nyields the best results since it enables automatic language detection. For\nlanguages based on the Latin alphabet, setting `language_hints` is not\nneeded. In rare cases, when the language of the text in the image is known,\nsetting a hint will help get better results (although it will be a\nsignificant hindrance if the hint is wrong). Text detection returns an\nerror if one or more of the specified languages is not one of the\n[supported languages](/vision/docs/languages).", + "items": { + "type": "string" + }, + "type": "array" + }, + "latLongRect": { + "$ref": "LatLongRect", + "description": "lat/long rectangle that specifies the location of the image." + }, + "cropHintsParams": { + "$ref": "CropHintsParams", + "description": "Parameters for crop hints annotation request." + } + }, + "id": "ImageContext" + }, + "Page": { + "type": "object", + "properties": { + "width": { + "type": "integer", + "format": "int32", + "description": "Page width in pixels." + }, + "blocks": { + "items": { + "$ref": "Block" + }, + "type": "array", + "description": "List of blocks of text, images etc on this page." + }, + "property": { + "$ref": "TextProperty", + "description": "Additional information detected on the page." + }, + "height": { + "format": "int32", + "description": "Page height in pixels.", + "type": "integer" + } + }, + "id": "Page", + "description": "Detected page from OCR." + }, + "AnnotateImageRequest": { + "type": "object", + "properties": { + "features": { + "description": "Requested features.", + "items": { + "$ref": "Feature" + }, + "type": "array" + }, + "image": { + "$ref": "Image", + "description": "The image to be processed." + }, + "imageContext": { + "description": "Additional context that may accompany the image.", + "$ref": "ImageContext" + } + }, + "id": "AnnotateImageRequest", + "description": "Request for performing Google Cloud Vision API tasks over a user-provided\nimage, with user-requested features." + }, + "Status": { + "type": "object", + "properties": { + "code": { + "format": "int32", + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", + "type": "string" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons." + }, + "Symbol": { + "type": "object", + "properties": { + "text": { + "description": "The actual UTF-8 representation of the symbol.", + "type": "string" + }, + "property": { + "description": "Additional information detected for the symbol.", + "$ref": "TextProperty" + }, + "boundingBox": { + "$ref": "BoundingPoly", + "description": "The bounding box for the symbol.\nThe vertices are in the order of top-left, top-right, bottom-right,\nbottom-left. When a rotation of the bounding box is detected the rotation\nis represented as around the top-left corner as defined when the text is\nread in the 'natural' orientation.\nFor example:\n * when the text is horizontal it might look like:\n 0----1\n | |\n 3----2\n * when it's rotated 180 degrees around the top-left corner it becomes:\n 2----3\n | |\n 1----0\n and the vertice order will still be (0, 1, 2, 3)." + } + }, + "id": "Symbol", + "description": "A single symbol representation." + }, + "LatLongRect": { + "description": "Rectangle determined by min and max `LatLng` pairs.", + "type": "object", + "properties": { + "maxLatLng": { + "description": "Max lat/long pair.", + "$ref": "LatLng" + }, + "minLatLng": { + "description": "Min lat/long pair.", + "$ref": "LatLng" + } + }, + "id": "LatLongRect" + }, + "CropHintsAnnotation": { + "description": "Set of crop hints that are used to generate new crops when serving images.", + "type": "object", + "properties": { + "cropHints": { + "description": "Crop hint results.", + "items": { + "$ref": "CropHint" + }, + "type": "array" + } + }, + "id": "CropHintsAnnotation" + }, + "LatLng": { + "description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)", + "type": "object", + "properties": { + "longitude": { + "format": "double", + "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].", + "type": "number" + }, + "latitude": { + "format": "double", + "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].", + "type": "number" + } + }, + "id": "LatLng" + }, + "Color": { + "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n import com.google.type.Color;\n\n // ...\n public static java.awt.Color fromProto(Color protocolor) {\n float alpha = protocolor.hasAlpha()\n ? protocolor.getAlpha().getValue()\n : 1.0;\n\n return new java.awt.Color(\n protocolor.getRed(),\n protocolor.getGreen(),\n protocolor.getBlue(),\n alpha);\n }\n\n public static Color toProto(java.awt.Color color) {\n float red = (float) color.getRed();\n float green = (float) color.getGreen();\n float blue = (float) color.getBlue();\n float denominator = 255.0;\n Color.Builder resultBuilder =\n Color\n .newBuilder()\n .setRed(red / denominator)\n .setGreen(green / denominator)\n .setBlue(blue / denominator);\n int alpha = color.getAlpha();\n if (alpha != 255) {\n result.setAlpha(\n FloatValue\n .newBuilder()\n .setValue(((float) alpha) / denominator)\n .build());\n }\n return resultBuilder.build();\n }\n // ...\n\nExample (iOS / Obj-C):\n\n // ...\n static UIColor* fromProto(Color* protocolor) {\n float red = [protocolor red];\n float green = [protocolor green];\n float blue = [protocolor blue];\n FloatValue* alpha_wrapper = [protocolor alpha];\n float alpha = 1.0;\n if (alpha_wrapper != nil) {\n alpha = [alpha_wrapper value];\n }\n return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n }\n\n static Color* toProto(UIColor* color) {\n CGFloat red, green, blue, alpha;\n if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {\n return nil;\n }\n Color* result = [Color alloc] init];\n [result setRed:red];\n [result setGreen:green];\n [result setBlue:blue];\n if (alpha \u003c= 0.9999) {\n [result setAlpha:floatWrapperWithValue(alpha)];\n }\n [result autorelease];\n return result;\n }\n // ...\n\n Example (JavaScript):\n\n // ...\n\n var protoToCssColor = function(rgb_color) {\n var redFrac = rgb_color.red || 0.0;\n var greenFrac = rgb_color.green || 0.0;\n var blueFrac = rgb_color.blue || 0.0;\n var red = Math.floor(redFrac * 255);\n var green = Math.floor(greenFrac * 255);\n var blue = Math.floor(blueFrac * 255);\n\n if (!('alpha' in rgb_color)) {\n return rgbToCssColor_(red, green, blue);\n }\n\n var alphaFrac = rgb_color.alpha.value || 0.0;\n var rgbParams = [red, green, blue].join(',');\n return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n };\n\n var rgbToCssColor_ = function(red, green, blue) {\n var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n var hexString = rgbNumber.toString(16);\n var missingZeros = 6 - hexString.length;\n var resultBuilder = ['#'];\n for (var i = 0; i \u003c missingZeros; i++) {\n resultBuilder.push('0');\n }\n resultBuilder.push(hexString);\n return resultBuilder.join('');\n };\n\n // ...", + "type": "object", + "properties": { + "red": { + "format": "float", + "description": "The amount of red in the color as a value in the interval [0, 1].", + "type": "number" + }, + "alpha": { + "format": "float", + "description": "The fraction of this color that should be applied to the pixel. That is,\nthe final pixel color is defined by the equation:\n\n pixel color = alpha * (this color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color. This\nuses a wrapper message rather than a simple float scalar so that it is\npossible to distinguish between a default value and the value being unset.\nIf omitted, this color object is to be rendered as a solid color\n(as if the alpha value had been explicitly given with a value of 1.0).", + "type": "number" + }, + "blue": { + "format": "float", + "description": "The amount of blue in the color as a value in the interval [0, 1].", + "type": "number" + }, + "green": { + "format": "float", + "description": "The amount of green in the color as a value in the interval [0, 1].", + "type": "number" + } + }, + "id": "Color" + }, + "ImageProperties": { + "description": "Stores image properties, such as dominant colors.", + "type": "object", + "properties": { + "dominantColors": { + "description": "If present, dominant colors completed successfully.", + "$ref": "DominantColorsAnnotation" + } + }, + "id": "ImageProperties" + }, + "Feature": { + "type": "object", + "properties": { + "maxResults": { + "format": "int32", + "description": "Maximum number of results of this type.", + "type": "integer" + }, + "type": { + "enumDescriptions": [ + "Unspecified feature type.", + "Run face detection.", + "Run landmark detection.", + "Run logo detection.", + "Run label detection.", + "Run OCR.", + "Run dense text document OCR. Takes precedence when both\nDOCUMENT_TEXT_DETECTION and TEXT_DETECTION are present.", + "Run computer vision models to compute image safe-search properties.", + "Compute a set of image properties, such as the image's dominant colors.", + "Run crop hints.", + "Run web detection." + ], + "enum": [ + "TYPE_UNSPECIFIED", + "FACE_DETECTION", + "LANDMARK_DETECTION", + "LOGO_DETECTION", + "LABEL_DETECTION", + "TEXT_DETECTION", + "DOCUMENT_TEXT_DETECTION", + "SAFE_SEARCH_DETECTION", + "IMAGE_PROPERTIES", + "CROP_HINTS", + "WEB_DETECTION" + ], + "description": "The feature type.", + "type": "string" + } + }, + "id": "Feature", + "description": "Users describe the type of Google Cloud Vision API tasks to perform over\nimages by using *Feature*s. Each Feature indicates a type of image\ndetection task to perform. Features encode the Cloud Vision API\nvertical to operate on and the number of top-scoring results to return." + }, + "SafeSearchAnnotation": { + "description": "Set of features pertaining to the image, computed by computer vision\nmethods over safe-search verticals (for example, adult, spoof, medical,\nviolence).", + "type": "object", + "properties": { + "violence": { + "description": "Likelihood that this image contains violent content.", + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ] + }, + "adult": { "enumDescriptions": [ "Unknown likelihood.", "It is very unlikely that the image belongs to the specified vertical.", @@ -1203,133 +1190,116 @@ "LIKELY", "VERY_LIKELY" ], - "description": "Sorrow likelihood.", + "description": "Represents the adult content likelihood for the image. Adult content may\ncontain elements such as nudity, pornographic images or cartoons, or\nsexual activities.", "type": "string" }, - "tiltAngle": { - "format": "float", - "description": "Pitch angle, which indicates the upwards/downwards angle that the face is\npointing relative to the image's horizontal plane. Range [-180,180].", - "type": "number" - } - }, - "id": "FaceAnnotation" - }, - "BatchAnnotateImagesRequest": { - "description": "Multiple image annotation requests are batched into a single service call.", - "type": "object", - "properties": { - "requests": { - "description": "Individual image annotation requests for this batch.", - "items": { - "$ref": "AnnotateImageRequest" - }, - "type": "array" - } - }, - "id": "BatchAnnotateImagesRequest" - }, - "DetectedBreak": { - "description": "Detected start or end of a structural component.", - "type": "object", - "properties": { - "type": { + "spoof": { + "type": "string", "enumDescriptions": [ - "Unknown break label type.", - "Regular space.", - "Sure space (very wide).", - "Line-wrapping break.", - "End-line hyphen that is not present in text; does not co-occur with\n`SPACE`, `LEADER_SPACE`, or `LINE_BREAK`.", - "Line break that ends a paragraph." + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." ], "enum": [ "UNKNOWN", - "SPACE", - "SURE_SPACE", - "EOL_SURE_SPACE", - "HYPHEN", - "LINE_BREAK" + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" ], - "description": "Detected break type.", + "description": "Spoof likelihood. The likelihood that an modification\nwas made to the image's canonical version to make it appear\nfunny or offensive." + }, + "medical": { + "type": "string", + "enumDescriptions": [ + "Unknown likelihood.", + "It is very unlikely that the image belongs to the specified vertical.", + "It is unlikely that the image belongs to the specified vertical.", + "It is possible that the image belongs to the specified vertical.", + "It is likely that the image belongs to the specified vertical.", + "It is very likely that the image belongs to the specified vertical." + ], + "enum": [ + "UNKNOWN", + "VERY_UNLIKELY", + "UNLIKELY", + "POSSIBLE", + "LIKELY", + "VERY_LIKELY" + ], + "description": "Likelihood that this is a medical image." + } + }, + "id": "SafeSearchAnnotation" + }, + "DominantColorsAnnotation": { + "type": "object", + "properties": { + "colors": { + "description": "RGB color values with their score and pixel fraction.", + "items": { + "$ref": "ColorInfo" + }, + "type": "array" + } + }, + "id": "DominantColorsAnnotation", + "description": "Set of dominant colors and their corresponding scores." + }, + "TextAnnotation": { + "description": "TextAnnotation contains a structured representation of OCR extracted text.\nThe hierarchy of an OCR extracted text structure is like this:\n TextAnnotation -\u003e Page -\u003e Block -\u003e Paragraph -\u003e Word -\u003e Symbol\nEach structural component, starting from Page, may further have their own\nproperties. Properties describe detected languages, breaks etc.. Please\nrefer to the google.cloud.vision.v1.TextAnnotation.TextProperty message\ndefinition below for more detail.", + "type": "object", + "properties": { + "pages": { + "description": "List of pages detected by OCR.", + "items": { + "$ref": "Page" + }, + "type": "array" + }, + "text": { + "description": "UTF-8 text detected on the pages.", "type": "string" - }, - "isPrefix": { - "description": "True if break prepends the element.", - "type": "boolean" } }, - "id": "DetectedBreak" + "id": "TextAnnotation" }, - "ImageContext": { - "description": "Image context and/or feature-specific parameters.", - "type": "object", + "DetectedLanguage": { "properties": { - "cropHintsParams": { - "$ref": "CropHintsParams", - "description": "Parameters for crop hints annotation request." + "confidence": { + "format": "float", + "description": "Confidence of detected language. Range [0, 1].", + "type": "number" }, - "languageHints": { - "description": "List of languages to use for TEXT_DETECTION. In most cases, an empty value\nyields the best results since it enables automatic language detection. For\nlanguages based on the Latin alphabet, setting `language_hints` is not\nneeded. In rare cases, when the language of the text in the image is known,\nsetting a hint will help get better results (although it will be a\nsignificant hindrance if the hint is wrong). Text detection returns an\nerror if one or more of the specified languages is not one of the\n[supported languages](/vision/docs/languages).", - "items": { - "type": "string" - }, - "type": "array" - }, - "latLongRect": { - "description": "lat/long rectangle that specifies the location of the image.", - "$ref": "LatLongRect" + "languageCode": { + "description": "The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more\ninformation, see\nhttp://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", + "type": "string" } }, - "id": "ImageContext" - }, - "Page": { - "description": "Detected page from OCR.", - "type": "object", - "properties": { - "height": { - "format": "int32", - "description": "Page height in pixels.", - "type": "integer" - }, - "width": { - "format": "int32", - "description": "Page width in pixels.", - "type": "integer" - }, - "blocks": { - "description": "List of blocks of text, images etc on this page.", - "items": { - "$ref": "Block" - }, - "type": "array" - }, - "property": { - "$ref": "TextProperty", - "description": "Additional information detected on the page." - } - }, - "id": "Page" - }, - "AnnotateImageRequest": { - "properties": { - "features": { - "items": { - "$ref": "Feature" - }, - "type": "array", - "description": "Requested features." - }, - "image": { - "$ref": "Image", - "description": "The image to be processed." - }, - "imageContext": { - "description": "Additional context that may accompany the image.", - "$ref": "ImageContext" - } - }, - "id": "AnnotateImageRequest", - "description": "Request for performing Google Cloud Vision API tasks over a user-provided\nimage, with user-requested features.", + "id": "DetectedLanguage", + "description": "Detected language for a structural component.", "type": "object" + }, + "Vertex": { + "description": "A vertex represents a 2D point in the image.\nNOTE: the vertex coordinates are in the same scale as the original image.", + "type": "object", + "properties": { + "y": { + "format": "int32", + "description": "Y coordinate.", + "type": "integer" + }, + "x": { + "format": "int32", + "description": "X coordinate.", + "type": "integer" + } + }, + "id": "Vertex" } }, "icons": { @@ -1350,5 +1320,35 @@ } } }, - "rootUrl": "https://vision.googleapis.com/" + "rootUrl": "https://vision.googleapis.com/", + "ownerDomain": "google.com", + "name": "vision", + "batchPath": "batch", + "title": "Google Cloud Vision API", + "ownerName": "Google", + "resources": { + "images": { + "methods": { + "annotate": { + "request": { + "$ref": "BatchAnnotateImagesRequest" + }, + "description": "Run image detection and annotation for a batch of images.", + "httpMethod": "POST", + "parameterOrder": [], + "response": { + "$ref": "BatchAnnotateImagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision" + ], + "parameters": {}, + "flatPath": "v1/images:annotate", + "path": "v1/images:annotate", + "id": "vision.images.annotate" + } + } + } + } } diff --git a/vendor/google.golang.org/api/vision/v1/vision-gen.go b/vendor/google.golang.org/api/vision/v1/vision-gen.go index d85c0218b..65c3e4ee0 100644 --- a/vendor/google.golang.org/api/vision/v1/vision-gen.go +++ b/vendor/google.golang.org/api/vision/v1/vision-gen.go @@ -1795,7 +1795,11 @@ func (s *Property) MarshalJSON() ([]byte, error) { // medical, // violence). type SafeSearchAnnotation struct { - // Adult: Represents the adult content likelihood for the image. + // Adult: Represents the adult content likelihood for the image. Adult + // content may + // contain elements such as nudity, pornographic images or cartoons, + // or + // sexual activities. // // Possible values: // "UNKNOWN" - Unknown likelihood. @@ -1845,7 +1849,7 @@ type SafeSearchAnnotation struct { // specified vertical. Spoof string `json:"spoof,omitempty"` - // Violence: Violence likelihood. + // Violence: Likelihood that this image contains violent content. // // Possible values: // "UNKNOWN" - Unknown likelihood. diff --git a/vendor/google.golang.org/api/youtubereporting/v1/youtubereporting-api.json b/vendor/google.golang.org/api/youtubereporting/v1/youtubereporting-api.json index fa2576b28..4c54da9f4 100644 --- a/vendor/google.golang.org/api/youtubereporting/v1/youtubereporting-api.json +++ b/vendor/google.golang.org/api/youtubereporting/v1/youtubereporting-api.json @@ -1,10 +1,16 @@ { + "batchPath": "batch", + "revision": "20171018", + "documentationLink": "https://developers.google.com/youtube/reporting/v1/reports/", + "id": "youtubereporting:v1", + "title": "YouTube Reporting API", "discoveryVersion": "v1", "ownerName": "Google", "resources": { "media": { "methods": { "download": { + "description": "Method for media download. Download is supported\non the URI `/v1/media/{+name}?alt=media`.", "supportsMediaDownload": true, "response": { "$ref": "Media" @@ -13,76 +19,42 @@ "resourceName" ], "httpMethod": "GET", - "parameters": { - "resourceName": { - "pattern": "^.+$", - "location": "path", - "description": "Name of the media that is being downloaded. See\nReadRequest.resource_name.", - "type": "string", - "required": true - } - }, "scopes": [ "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly" ], + "parameters": { + "resourceName": { + "type": "string", + "required": true, + "pattern": "^.+$", + "location": "path", + "description": "Name of the media that is being downloaded. See\nReadRequest.resource_name." + } + }, "flatPath": "v1/media/{mediaId}", "id": "youtubereporting.media.download", - "path": "v1/media/{+resourceName}", - "description": "Method for media download. Download is supported\non the URI `/v1/media/{+name}?alt=media`." + "path": "v1/media/{+resourceName}" } } }, "jobs": { "methods": { "delete": { + "description": "Deletes a job.", + "httpMethod": "DELETE", + "parameterOrder": [ + "jobId" + ], "response": { "$ref": "Empty" }, - "parameterOrder": [ - "jobId" - ], - "httpMethod": "DELETE", "parameters": { "jobId": { - "description": "The ID of the job to delete.", "type": "string", "required": true, - "location": "path" - }, - "onBehalfOfContentOwner": { - "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string", - "location": "query" - } - }, - "scopes": [ - "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", - "https://www.googleapis.com/auth/yt-analytics.readonly" - ], - "flatPath": "v1/jobs/{jobId}", - "id": "youtubereporting.jobs.delete", - "path": "v1/jobs/{jobId}", - "description": "Deletes a job." - }, - "get": { - "response": { - "$ref": "Job" - }, - "parameterOrder": [ - "jobId" - ], - "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", - "https://www.googleapis.com/auth/yt-analytics.readonly" - ], - "parameters": { - "jobId": { "location": "path", - "description": "The ID of the job to retrieve.", - "type": "string", - "required": true + "description": "The ID of the job to delete." }, "onBehalfOfContentOwner": { "location": "query", @@ -90,21 +62,50 @@ "type": "string" } }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ], "flatPath": "v1/jobs/{jobId}", - "id": "youtubereporting.jobs.get", "path": "v1/jobs/{jobId}", - "description": "Gets a job." + "id": "youtubereporting.jobs.delete" + }, + "get": { + "flatPath": "v1/jobs/{jobId}", + "path": "v1/jobs/{jobId}", + "id": "youtubereporting.jobs.get", + "description": "Gets a job.", + "httpMethod": "GET", + "parameterOrder": [ + "jobId" + ], + "response": { + "$ref": "Job" + }, + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path", + "description": "The ID of the job to retrieve." + }, + "onBehalfOfContentOwner": { + "location": "query", + "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", + "type": "string" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] }, "list": { - "flatPath": "v1/jobs", - "id": "youtubereporting.jobs.list", - "path": "v1/jobs", - "description": "Lists jobs.", "response": { "$ref": "ListJobsResponse" }, - "httpMethod": "GET", "parameterOrder": [], + "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly" @@ -116,46 +117,50 @@ "type": "boolean" }, "pageToken": { - "description": "A token identifying a page of results the server should return. Typically,\nthis is the value of\nListReportTypesResponse.next_page_token\nreturned in response to the previous call to the `ListJobs` method.", "type": "string", - "location": "query" + "location": "query", + "description": "A token identifying a page of results the server should return. Typically,\nthis is the value of\nListReportTypesResponse.next_page_token\nreturned in response to the previous call to the `ListJobs` method." }, "pageSize": { - "format": "int32", - "description": "Requested page size. Server may return fewer jobs than requested.\nIf unspecified, server will pick an appropriate default.", "type": "integer", - "location": "query" + "location": "query", + "format": "int32", + "description": "Requested page size. Server may return fewer jobs than requested.\nIf unspecified, server will pick an appropriate default." }, "onBehalfOfContentOwner": { + "type": "string", "location": "query", - "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string" + "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel)." } - } + }, + "flatPath": "v1/jobs", + "id": "youtubereporting.jobs.list", + "path": "v1/jobs", + "description": "Lists jobs." }, "create": { + "flatPath": "v1/jobs", + "id": "youtubereporting.jobs.create", + "path": "v1/jobs", + "request": { + "$ref": "Job" + }, + "description": "Creates a job and returns it.", "response": { "$ref": "Job" }, "parameterOrder": [], "httpMethod": "POST", - "parameters": { - "onBehalfOfContentOwner": { - "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string", - "location": "query" - } - }, "scopes": [ "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly" ], - "flatPath": "v1/jobs", - "id": "youtubereporting.jobs.create", - "path": "v1/jobs", - "description": "Creates a job and returns it.", - "request": { - "$ref": "Job" + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "location": "query", + "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel)." + } } } }, @@ -163,15 +168,18 @@ "reports": { "methods": { "get": { - "description": "Gets the metadata of a specific report.", - "httpMethod": "GET", + "response": { + "$ref": "Report" + }, "parameterOrder": [ "jobId", "reportId" ], - "response": { - "$ref": "Report" - }, + "httpMethod": "GET", + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ], "parameters": { "jobId": { "type": "string", @@ -180,37 +188,41 @@ "description": "The ID of the job." }, "onBehalfOfContentOwner": { + "location": "query", "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string", - "location": "query" + "type": "string" }, "reportId": { - "location": "path", - "description": "The ID of the report to retrieve.", "type": "string", - "required": true + "required": true, + "location": "path", + "description": "The ID of the report to retrieve." } }, - "scopes": [ - "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", - "https://www.googleapis.com/auth/yt-analytics.readonly" - ], "flatPath": "v1/jobs/{jobId}/reports/{reportId}", + "id": "youtubereporting.jobs.reports.get", "path": "v1/jobs/{jobId}/reports/{reportId}", - "id": "youtubereporting.jobs.reports.get" + "description": "Gets the metadata of a specific report." }, "list": { - "path": "v1/jobs/{jobId}/reports", + "flatPath": "v1/jobs/{jobId}/reports", "id": "youtubereporting.jobs.reports.list", + "path": "v1/jobs/{jobId}/reports", "description": "Lists reports created by a specific job.\nReturns NOT_FOUND if the job does not exist.", - "httpMethod": "GET", - "parameterOrder": [ - "jobId" - ], "response": { "$ref": "ListReportsResponse" }, + "parameterOrder": [ + "jobId" + ], + "httpMethod": "GET", "parameters": { + "startTimeBefore": { + "type": "string", + "location": "query", + "format": "google-datetime", + "description": "If set, only reports whose start time is smaller than the specified\ndate/time are returned." + }, "jobId": { "location": "path", "description": "The ID of the job.", @@ -218,16 +230,16 @@ "required": true }, "createdAfter": { + "location": "query", "format": "google-datetime", "description": "If set, only reports created after the specified date/time are returned.", - "type": "string", - "location": "query" + "type": "string" }, "startTimeAtOrAfter": { - "format": "google-datetime", - "description": "If set, only reports whose start time is greater than or equal the\nspecified date/time are returned.", "type": "string", - "location": "query" + "location": "query", + "format": "google-datetime", + "description": "If set, only reports whose start time is greater than or equal the\nspecified date/time are returned." }, "pageToken": { "location": "query", @@ -241,22 +253,15 @@ "type": "integer" }, "onBehalfOfContentOwner": { - "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string", - "location": "query" - }, - "startTimeBefore": { "type": "string", "location": "query", - "format": "google-datetime", - "description": "If set, only reports whose start time is smaller than the specified\ndate/time are returned." + "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel)." } }, "scopes": [ "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly" - ], - "flatPath": "v1/jobs/{jobId}/reports" + ] } } } @@ -265,88 +270,87 @@ "reportTypes": { "methods": { "list": { - "id": "youtubereporting.reportTypes.list", - "path": "v1/reportTypes", - "description": "Lists report types.", "response": { "$ref": "ListReportTypesResponse" }, "parameterOrder": [], "httpMethod": "GET", - "scopes": [ - "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", - "https://www.googleapis.com/auth/yt-analytics.readonly" - ], "parameters": { + "onBehalfOfContentOwner": { + "location": "query", + "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", + "type": "string" + }, "includeSystemManaged": { "location": "query", "description": "If set to true, also system-managed report types will be returned;\notherwise only the report types that can be used to create new reporting\njobs will be returned.", "type": "boolean" }, "pageToken": { + "type": "string", "location": "query", - "description": "A token identifying a page of results the server should return. Typically,\nthis is the value of\nListReportTypesResponse.next_page_token\nreturned in response to the previous call to the `ListReportTypes` method.", - "type": "string" + "description": "A token identifying a page of results the server should return. Typically,\nthis is the value of\nListReportTypesResponse.next_page_token\nreturned in response to the previous call to the `ListReportTypes` method." }, "pageSize": { "type": "integer", "location": "query", "format": "int32", "description": "Requested page size. Server may return fewer report types than requested.\nIf unspecified, server will pick an appropriate default." - }, - "onBehalfOfContentOwner": { - "description": "The content owner's external ID on which behalf the user is acting on. If\nnot set, the user is acting for himself (his own channel).", - "type": "string", - "location": "query" } }, - "flatPath": "v1/reportTypes" + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ], + "flatPath": "v1/reportTypes", + "id": "youtubereporting.reportTypes.list", + "path": "v1/reportTypes", + "description": "Lists report types." } } } }, "parameters": { + "upload_protocol": { + "location": "query", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "type": "string" + }, "prettyPrint": { "location": "query", "description": "Returns response with indentations and line breaks.", "default": "true", "type": "boolean" }, + "uploadType": { + "type": "string", + "location": "query", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")." + }, "fields": { "location": "query", "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, - "uploadType": { - "location": "query", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "type": "string" - }, - "callback": { - "description": "JSONP", - "type": "string", - "location": "query" - }, "$.xgafv": { + "location": "query", + "enum": [ + "1", + "2" + ], "description": "V1 error format.", "type": "string", "enumDescriptions": [ "v1 error format", "v2 error format" - ], - "location": "query", - "enum": [ - "1", - "2" ] }, - "alt": { + "callback": { "type": "string", - "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", + "description": "JSONP" + }, + "alt": { "location": "query", "description": "Data format for response.", "default": "json", @@ -354,22 +358,28 @@ "json", "media", "proto" + ], + "type": "string", + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" ] }, + "access_token": { + "location": "query", + "description": "OAuth access token.", + "type": "string" + }, "key": { "type": "string", "location": "query", "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." }, - "access_token": { - "description": "OAuth access token.", - "type": "string", - "location": "query" - }, "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.", "type": "string", - "location": "query" + "location": "query", + "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." }, "pp": { "location": "query", @@ -377,23 +387,69 @@ "default": "true", "type": "boolean" }, - "oauth_token": { - "description": "OAuth 2.0 token for the current user.", - "type": "string", - "location": "query" - }, "bearer_token": { - "type": "string", "location": "query", - "description": "OAuth bearer token." + "description": "OAuth bearer token.", + "type": "string" }, - "upload_protocol": { - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "type": "string", - "location": "query" + "oauth_token": { + "location": "query", + "description": "OAuth 2.0 token for the current user.", + "type": "string" } }, "schemas": { + "Job": { + "type": "object", + "properties": { + "createTime": { + "format": "google-datetime", + "description": "The creation date/time of the job.", + "type": "string" + }, + "reportTypeId": { + "type": "string", + "description": "The type of reports this job creates. Corresponds to the ID of a\nReportType." + }, + "expireTime": { + "type": "string", + "format": "google-datetime", + "description": "The date/time when this job will expire/expired. After a job expired, no\nnew reports are generated." + }, + "name": { + "description": "The name of the job (max. 100 characters).", + "type": "string" + }, + "id": { + "type": "string", + "description": "The server-generated ID of the job (max. 40 characters)." + }, + "systemManaged": { + "type": "boolean", + "description": "True if this a system-managed job that cannot be modified by the user;\notherwise false." + } + }, + "id": "Job", + "description": "A job creating reports of a specific type." + }, + "ListReportsResponse": { + "type": "object", + "properties": { + "nextPageToken": { + "description": "A token to retrieve next page of results.\nPass this value in the\nListReportsRequest.page_token\nfield in the subsequent call to `ListReports` method to retrieve the next\npage of results.", + "type": "string" + }, + "reports": { + "description": "The list of report types.", + "items": { + "$ref": "Report" + }, + "type": "array" + } + }, + "id": "ListReportsResponse", + "description": "Response message for ReportingService.ListReports." + }, "Media": { "description": "Media resource.", "type": "object", @@ -406,12 +462,11 @@ "id": "Media" }, "ReportType": { - "description": "A report type.", "type": "object", "properties": { "systemManaged": { - "description": "True if this a system-managed report type; otherwise false. Reporting jobs\nfor system-managed report types are created automatically and can thus not\nbe used in the `CreateJob` method.", - "type": "boolean" + "type": "boolean", + "description": "True if this a system-managed report type; otherwise false. Reporting jobs\nfor system-managed report types are created automatically and can thus not\nbe used in the `CreateJob` method." }, "id": { "description": "The ID of the report type (max. 100 characters).", @@ -423,26 +478,27 @@ "type": "string" }, "name": { - "description": "The name of the report type (max. 100 characters).", - "type": "string" + "type": "string", + "description": "The name of the report type (max. 100 characters)." } }, - "id": "ReportType" + "id": "ReportType", + "description": "A report type." }, "ListReportTypesResponse": { "description": "Response message for ReportingService.ListReportTypes.", "type": "object", "properties": { + "nextPageToken": { + "type": "string", + "description": "A token to retrieve next page of results.\nPass this value in the\nListReportTypesRequest.page_token\nfield in the subsequent call to `ListReportTypes` method to retrieve the next\npage of results." + }, "reportTypes": { "description": "The list of report types.", "items": { "$ref": "ReportType" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results.\nPass this value in the\nListReportTypesRequest.page_token\nfield in the subsequent call to `ListReportTypes` method to retrieve the next\npage of results.", - "type": "string" } }, "id": "ListReportTypesResponse" @@ -465,18 +521,18 @@ "type": "string" }, "jobExpireTime": { + "type": "string", "format": "google-datetime", - "description": "The date/time when the job this report belongs to will expire/expired.", - "type": "string" + "description": "The date/time when the job this report belongs to will expire/expired." }, "endTime": { + "type": "string", "format": "google-datetime", - "description": "The end of the time period that the report instance covers. The value is\nexclusive.", - "type": "string" + "description": "The end of the time period that the report instance covers. The value is\nexclusive." }, "downloadUrl": { - "type": "string", - "description": "The URL from which the report can be downloaded (max. 1000 characters)." + "description": "The URL from which the report can be downloaded (max. 1000 characters).", + "type": "string" }, "startTime": { "format": "google-datetime", @@ -493,105 +549,49 @@ "id": "Empty" }, "ListJobsResponse": { + "description": "Response message for ReportingService.ListJobs.", + "type": "object", "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results.\nPass this value in the\nListJobsRequest.page_token\nfield in the subsequent call to `ListJobs` method to retrieve the next\npage of results.", - "type": "string" - }, "jobs": { - "description": "The list of jobs.", "items": { "$ref": "Job" }, - "type": "array" - } - }, - "id": "ListJobsResponse", - "description": "Response message for ReportingService.ListJobs.", - "type": "object" - }, - "Job": { - "description": "A job creating reports of a specific type.", - "type": "object", - "properties": { - "id": { - "description": "The server-generated ID of the job (max. 40 characters).", - "type": "string" - }, - "systemManaged": { - "description": "True if this a system-managed job that cannot be modified by the user;\notherwise false.", - "type": "boolean" - }, - "createTime": { - "format": "google-datetime", - "description": "The creation date/time of the job.", - "type": "string" - }, - "expireTime": { - "format": "google-datetime", - "description": "The date/time when this job will expire/expired. After a job expired, no\nnew reports are generated.", - "type": "string" - }, - "reportTypeId": { - "description": "The type of reports this job creates. Corresponds to the ID of a\nReportType.", - "type": "string" - }, - "name": { - "description": "The name of the job (max. 100 characters).", - "type": "string" - } - }, - "id": "Job" - }, - "ListReportsResponse": { - "description": "Response message for ReportingService.ListReports.", - "type": "object", - "properties": { - "reports": { - "description": "The list of report types.", - "items": { - "$ref": "Report" - }, - "type": "array" + "type": "array", + "description": "The list of jobs." }, "nextPageToken": { - "description": "A token to retrieve next page of results.\nPass this value in the\nListReportsRequest.page_token\nfield in the subsequent call to `ListReports` method to retrieve the next\npage of results.", + "description": "A token to retrieve next page of results.\nPass this value in the\nListJobsRequest.page_token\nfield in the subsequent call to `ListJobs` method to retrieve the next\npage of results.", "type": "string" } }, - "id": "ListReportsResponse" + "id": "ListJobsResponse" } }, - "icons": { - "x32": "http://www.google.com/images/icons/product/search-32.gif", - "x16": "http://www.google.com/images/icons/product/search-16.gif" - }, "protocol": "rest", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, "version": "v1", "baseUrl": "https://youtubereporting.googleapis.com/", "canonicalName": "YouTube Reporting", "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/yt-analytics.readonly": { - "description": "View YouTube Analytics reports for your YouTube content" - }, "https://www.googleapis.com/auth/yt-analytics-monetary.readonly": { "description": "View monetary and non-monetary YouTube Analytics reports for your YouTube content" + }, + "https://www.googleapis.com/auth/yt-analytics.readonly": { + "description": "View YouTube Analytics reports for your YouTube content" } } } }, - "servicePath": "", - "description": "Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files.", "kind": "discovery#restDescription", + "description": "Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files.", + "servicePath": "", "rootUrl": "https://youtubereporting.googleapis.com/", "basePath": "", "ownerDomain": "google.com", - "name": "youtubereporting", - "batchPath": "batch", - "id": "youtubereporting:v1", - "documentationLink": "https://developers.google.com/youtube/reporting/v1/reports/", - "revision": "20170926", - "title": "YouTube Reporting API" + "name": "youtubereporting" }